summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* We are not using DBG_STOPPOINT anymore.Devang Patel2009-11-2111-65/+1
| | | | llvm-svn: 89536
* Be more clever about calculating live variables through new basic blocks.Jakob Stoklund Olesen2009-11-213-43/+31
| | | | | | | | | | | | When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. llvm-svn: 89530
* Add more optimizations for object size checking, enable handling ofEric Christopher2009-11-211-35/+144
| | | | | | | object size intrinsic and verify return type is correct. Collect various code in one place. llvm-svn: 89523
* Remove dead code.Devang Patel2009-11-211-15/+0
| | | | llvm-svn: 89522
* When generating a vector the really slow way, via loadsDale Johannesen2009-11-211-3/+9
| | | | | | | and stores, handle the case where the element size is not a valid target type correctly (PPC). llvm-svn: 89521
* There is no need to use FoldingSet to unique DIEs. Devang Patel2009-11-214-309/+58
| | | | | | DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode. llvm-svn: 89518
* Added two SubtargetFeatures::AddFeatures methods, which accept a ↵Viktor Kutuzov2009-11-211-0/+27
| | | | | | comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. llvm-svn: 89516
* Restructure code to allow renaming of multiple-register groups for anti-dep ↵David Goodwin2009-11-201-44/+73
| | | | | | breaking. llvm-svn: 89511
* Enable hoisting load from constant memories.Evan Cheng2009-11-201-21/+6
| | | | llvm-svn: 89510
* Fix a thinko that caused spurious @GOTOFFs.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89509
* Update for new getBlockAddress signature.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89507
* Target-independent support for TargetFlags on BlockAddress operands,Dan Gohman2009-11-2012-28/+78
| | | | | | and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
* Recommitting PALIGNR shift width fixes.Sean Callanan2009-11-201-8/+8
| | | | | | | Thanks to Daniel Dunbar for fixing clang intrinsics: http://llvm.org/viewvc/llvm-project?view=rev&revision=89499 llvm-svn: 89500
* Remove an incorrect overaggressive optimizationDale Johannesen2009-11-201-5/+3
| | | | | | (PPC specific). llvm-svn: 89496
* Reverting PALIGNR fix until I figure out how thisSean Callanan2009-11-201-8/+8
| | | | | | broke the Clang testsuite. llvm-svn: 89495
* Fixed PALIGNR to take 8-bit rotations in all cases.Sean Callanan2009-11-201-8/+8
| | | | | | | Also fixed the corresponding testcase, and the PALIGNR intrinsic (tested for correctness with llvm-gcc). llvm-svn: 89491
* Do not hold on to a map slot while new entries may be inserted into the map.Devang Patel2009-11-201-27/+33
| | | | | | Use ValueMap, instead of std::map. llvm-svn: 89490
* Cleanups.David Greene2009-11-201-3/+6
| | | | | | Make things a little more efficient as suggested by Evan. llvm-svn: 89489
* There is no need to emit source location info for DW_TAG_pointer_type.Devang Patel2009-11-201-1/+1
| | | | llvm-svn: 89487
* Make Loop::getLoopLatch() work on loops which don't have preheaders, asDan Gohman2009-11-201-1/+6
| | | | | | | | | | | | it may be used in contexts where preheader insertion may have failed due to an indirectbr. Make LoopSimplify's LoopSimplify::SeparateNestedLoop properly fail in the case that it would require splitting an indirectbr edge. These fix PR5502. llvm-svn: 89484
* Fix IPSCCP's code for deleting dead blocks to tolerate outstandingDan Gohman2009-11-201-2/+6
| | | | | | blockaddress users. This fixes PR5569. llvm-svn: 89483
* Revert "Add some rough optimizations for checking routines.", it buildeth not.Daniel Dunbar2009-11-201-119/+12
| | | | llvm-svn: 89482
* Add some rough optimizations for checking routines.Eric Christopher2009-11-201-12/+119
| | | | llvm-svn: 89479
* Remat VLDRD from constpool. Clean up some instruction property specifications.Evan Cheng2009-11-204-9/+10
| | | | llvm-svn: 89478
* Add option -licm-const-load to hoist all loads from constant memory.Evan Cheng2009-11-201-19/+56
| | | | llvm-svn: 89477
* The verify() call of CPEIsInRange() isn't right for the assertion check ofJim Grosbach2009-11-201-2/+5
| | | | | | | | | | constant pool ranges, as CPEIsInRange() makes conservative assumptions about the potential alignment changes from branch adjustments. The verification, on the other hand, runs after those branch adjustments are made, so the effects on alignment are known and already taken into account. The sanity check in verify should check the range directly instead. llvm-svn: 89473
* Use stripPointerCasts(). Thanks Duncan!Dan Gohman2009-11-201-1/+1
| | | | llvm-svn: 89472
* Remove some old experimental code that is no longer needed. Remove ↵David Goodwin2009-11-208-241/+79
| | | | | | additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. llvm-svn: 89471
* More consistent labelling of basic blocks in debug outputJakob Stoklund Olesen2009-11-201-1/+2
| | | | llvm-svn: 89470
* Revert the rule that considers comparisons between two pointers in theDan Gohman2009-11-201-9/+4
| | | | | | | | | | | | same object to be a non-capture; Duncan pointed out a way that such a comparison could be a capture. Make the rule that considers a comparison against null more specific, and only consider noalias return values compared against null. This still supports test/Transforms/GVN/nonescaping-malloc.ll, and is not susceptible to the problem Duncan pointed out with noalias arguments. llvm-svn: 89468
* Move the handling of CommaSeparated options into ProvideOption.Mikhail Glushenkov2009-11-201-23/+33
| | | | | | | | Makes '--comma-separated val1,val2' mean the same thing as '--comma-separated=val1,val2' (that is, 'val1' and 'val2' are not lumped together as 'val1,val2'). Also declutters the main loop a bit. llvm-svn: 89463
* Fix PR5563, an expensive checks failure when running onDuncan Sands2009-11-201-1/+1
| | | | | | | | | | | | | tests/Transforms/InstCombine/shufflemask-undef.ll. If anyone cares, the use of 2*e here (and the equivalent all over the place in instcombine) seems wrong, though harmless: it should really be twice the length of the input vector. I think shufflevector used to require that the mask have the same length as the input, but I don't think that's true any more. I don't care enough about vectors to do anything about this... llvm-svn: 89456
* Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048),Duncan Sands2009-11-202-35/+23
| | | | | | | | which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. llvm-svn: 89454
* Fix fast-isel to avoid selecting the return instruction if aDan Gohman2009-11-201-3/+15
| | | | | | tail call has been encountered. llvm-svn: 89444
* Remove verifySizes() since it's not adding much value.Jim Grosbach2009-11-201-36/+0
| | | | llvm-svn: 89443
* Also CSE non-pic load from constant pools.Evan Cheng2009-11-201-1/+4
| | | | llvm-svn: 89440
* Add an experimental option to run gep-splitting and no-load GVNDan Gohman2009-11-201-0/+11
| | | | | | just before codegen. llvm-svn: 89439
* Simplify this code; it's not necessary to check isIdentifiedObject hereDan Gohman2009-11-201-7/+5
| | | | | | | | because if the results from getUnderlyingObject match, the values must be from the same underlying object, even if we don't know what that object is. llvm-svn: 89434
* Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName.Jakob Stoklund Olesen2009-11-206-7/+14
| | | | | | Fix debug code that assumes getBasicBlock never returns NULL. llvm-svn: 89428
* Teach getSmallConstantTripMultiple about Shl operators.Dan Gohman2009-11-201-0/+5
| | | | llvm-svn: 89426
* Fix codegen of conditional move of immediates. We were not making use of the ↵Evan Cheng2009-11-201-65/+127
| | | | | | immediate forms of cmov instructions at all. llvm-svn: 89423
* Removed references to LiveStacks from Spiller.* . They're no longer needed.Lang Hames2009-11-203-15/+9
| | | | llvm-svn: 89422
* Refine the capture tracking rules for comparisons to be moreDan Gohman2009-11-201-6/+19
| | | | | | | | | careful about crazy methods of capturing pointers using comparisons. Comparisons of identified objects with null in the default address space are not captures. And, comparisons of two pointers within the same identified object are not captures. llvm-svn: 89421
* Use isVoidTy().Dan Gohman2009-11-201-2/+1
| | | | llvm-svn: 89419
* Update comment to reflect instruction.Eric Christopher2009-11-201-1/+1
| | | | llvm-svn: 89414
* Refine this to only apply to null in the default address space.Dan Gohman2009-11-191-2/+4
| | | | llvm-svn: 89411
* Try to fix JITTest.FarCallToKnownFunction on ARM and PPC.Jeffrey Yasskin2009-11-191-10/+14
| | | | llvm-svn: 89410
* Use CMAKE_DL_LIBS instead of raw library name. Fixes bug 5536.Oscar Fuentes2009-11-191-1/+1
| | | | | | Patch by Tobias Grosser! llvm-svn: 89406
* Fix a couple of problems with maintaining liveness information for antidep ↵David Goodwin2009-11-192-18/+50
| | | | | | breaking. llvm-svn: 89404
* When placing constant islands and adjusting for alignment padding, inlineJim Grosbach2009-11-191-7/+66
| | | | | | | | | | | assembly can confuse things utterly, as it's assumed that instructions in inline assembly are 4 bytes wide. For Thumb mode, that's often not true, so the calculations for when alignment padding will be present get thrown off, ultimately leading to out of range constant pool entry references. Making more conservative assumptions that padding may be necessary when inline asm is present avoids this situation. llvm-svn: 89403
OpenPOWER on IntegriCloud