summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Extend CaptureTracking to indicate when a value is never stored, evenDan Gohman2009-11-193-14/+30
| | | | | | | | if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load. llvm-svn: 89398
* Refactor cmov selection code out to a separate function. No functionality ↵Evan Cheng2009-11-191-116/+122
| | | | | | change. llvm-svn: 89396
* Comparing a pointer with null is not a capture.Dan Gohman2009-11-191-0/+5
| | | | llvm-svn: 89389
* Place new basic blocks immediately after their predecessor when splittingJakob Stoklund Olesen2009-11-191-7/+7
| | | | | | | | | critical edges in PHIElimination. This has a huge impact on regalloc performance, and we recover almost all of the 10% compile time regression that edge splitting introduced. llvm-svn: 89381
* Reverting the EH table patches.Bill Wendling2009-11-192-31/+8
| | | | | | | | | | | | | $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp llvm-svn: 89379
* Added NLdStLN which is similar to NLdSt with the exception that op7_4 is notJohnny Chen2009-11-192-76/+169
| | | | | | | | fully specified at this level. Subclasses of NLdStLN can specify selective bit(s) for Inst{7-4}, as is done for VLD[234]LN* and VST[234]LN* inside ARMInstrNEON.td. llvm-svn: 89377
* Fix a small bug.David Greene2009-11-191-1/+1
| | | | | | | Fix one case we missed to make sure we reserve registers from allocation. llvm-svn: 89376
* Enable hoisting of loads from constant memory by default. In cases whereDan Gohman2009-11-191-11/+1
| | | | | | | | they are lowered to instruction sequences more complex than a simple load, such that CodeGen cannot rematerialize them, a reload from a spill slot is likely to be cheaper than the complex sequence. llvm-svn: 89374
* Use StringRef::min instead of std::min.Daniel Dunbar2009-11-191-5/+5
| | | | llvm-svn: 89372
* fix typoJim Grosbach2009-11-191-1/+1
| | | | llvm-svn: 89369
* Trailing whitespace.Mikhail Glushenkov2009-11-191-25/+25
| | | | llvm-svn: 89364
* Fix a typo in a comment.Dan Gohman2009-11-191-1/+1
| | | | llvm-svn: 89360
* Add support for spreading register allocation.David Greene2009-11-191-7/+60
| | | | | | | | | | | | | Add a -linearscan-skip-count argument (default to 0) that tells the allocator to remember the last N registers it allocated and skip them when looking for a register candidate. This tends to spread out register usage and free up post-allocation scheduling at the cost of slightly more register pressure. The primary benefit is the ability to backschedule reloads. This is turned off by default. llvm-svn: 89356
* Unbreak x64 MSVC build. Patch by Nicolas Capens!Benjamin Kramer2009-11-191-0/+3
| | | | llvm-svn: 89341
* Add PS3 Triple class, Credit to John Thompson.Edward O'Callaghan2009-11-191-1/+4
| | | | llvm-svn: 89339
* 80 col violation.Evan Cheng2009-11-191-1/+2
| | | | llvm-svn: 89337
* More consistent thumb1 asm printing.Evan Cheng2009-11-194-11/+27
| | | | llvm-svn: 89328
* Shrink ldr / str [sp, imm0-1024] to 16-bit instructions.Evan Cheng2009-11-191-8/+26
| | | | llvm-svn: 89326
* Eliminate more * 4 in Thumb1 asm printing for consistency sake.Evan Cheng2009-11-191-4/+4
| | | | llvm-svn: 89325
* - Add sugregister logic to handle f64=(f32,f32).Bruno Cardoso Lopes2009-11-194-2/+166
| | | | | | | | | | | | - Support mips1 like load/store of doubles: Instead of: sdc $f0, X($3) Generate: swc $f0, X($3) swc $f1, X+4($3) llvm-svn: 89322
* Only use small sections for non linux targets!Bruno Cardoso Lopes2009-11-191-0/+7
| | | | llvm-svn: 89316
* Added a new Spiller implementation which wraps ↵Lang Hames2009-11-193-25/+55
| | | | | | | | | | LiveIntervals::addIntervalsForSpills. All spiller calls in RegAllocLinearScan now go through the new Spiller interface. The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial". (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code). llvm-svn: 89311
* Teach IVUsers to keep things simpler and track loop-invariant strides onlyJim Grosbach2009-11-191-0/+10
| | | | | | | for uses inside the loop. This works better with LSR. Disabled behind -simplify-iv-users while benchmarking. llvm-svn: 89299
* Eliminate duplicate phi nodes in loops. Loop rotation, for example, can ↵Jim Grosbach2009-11-191-0/+6
| | | | | | introduce these, and it's beneficial to later passes to clean them up. llvm-svn: 89298
* Make EliminateDuplicatePHINodes() available as a utility functionJim Grosbach2009-11-191-1/+1
| | | | llvm-svn: 89297
* The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EHBill Wendling2009-11-192-5/+6
| | | | | | exception table than DataRel. llvm-svn: 89279
* There should be no need to keep renumbering blocks during tail duplication.Bob Wilson2009-11-181-3/+0
| | | | llvm-svn: 89275
* Add XCore support for indirectbr / blockaddress.Richard Osborne2009-11-184-1/+23
| | | | llvm-svn: 89273
OpenPOWER on IntegriCloud