summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix test.Evan Cheng2008-12-031-4/+2
| | | | llvm-svn: 60476
* testcase for br undef folding.Chris Lattner2008-12-031-0/+12
| | | | llvm-svn: 60471
* Teach jump threading some more simple tricks:Chris Lattner2008-12-032-16/+178
| | | | | | | | | | | | | | | | 1) have it fold "br undef", which does occur with surprising frequency as jump threading iterates. 2) teach j-t to delete dead blocks. This removes the successor edges, reducing the in-edges of other blocks, allowing recursive simplification. 3) Fold things like: br COND, BBX, BBY BBX: br COND, BBZ, BBW which also happens because jump threading iterates. llvm-svn: 60470
* third time is the charm.Chris Lattner2008-12-031-1/+3
| | | | llvm-svn: 60469
* fix assertion.Chris Lattner2008-12-031-1/+1
| | | | llvm-svn: 60468
* don't spew tons of stuff to the output. This testcase is *not* forChris Lattner2008-12-031-1/+1
| | | | | | loop deletion (it is for a ton of passes), which is very bad. llvm-svn: 60465
* Rename DeleteBlockIfDead to DeleteDeadBlock and make it Chris Lattner2008-12-033-14/+8
| | | | | | | unconditionally delete the block. All likely clients will do the checking anyway. llvm-svn: 60464
* Factor some code out of SimplifyCFG, forming a new Chris Lattner2008-12-033-21/+39
| | | | | | DeleteBlockIfDead method. llvm-svn: 60463
* Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86'sDan Gohman2008-12-037-20/+164
| | | | | | | | | | | | foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked). llvm-svn: 60461
* Change label to 'carry' for unsigned adds.Bill Wendling2008-12-031-2/+2
| | | | llvm-svn: 60460
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-038-6/+25
| | | | | | | | | is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
* Fix a missing #include.Dan Gohman2008-12-031-0/+1
| | | | llvm-svn: 60458
* Add an explicit keyword.Dan Gohman2008-12-031-1/+1
| | | | llvm-svn: 60457
* Replace a #include with a forward-declaration.Dan Gohman2008-12-031-1/+1
| | | | llvm-svn: 60456
* Fix this comment to reflect that it applies to types otherDan Gohman2008-12-031-1/+1
| | | | | | than just i32. llvm-svn: 60455
* Fix byval arguments in the fastcc calling convention. The fastcc conventionDan Gohman2008-12-033-2/+26
| | | | | | | | | delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM. llvm-svn: 60453
* Add nounwind attributes to this test.Dan Gohman2008-12-031-2/+2
| | | | llvm-svn: 60451
* testcases for recent dag combiner changesDale Johannesen2008-12-033-0/+54
| | | | llvm-svn: 60449
* Fix isIntN to work with APInts > 64 bits. This method is onlyChris Lattner2008-12-021-5/+7
| | | | | | used by clang apparently. llvm-svn: 60446
* Remove a (what appears to be) overly strict assertion. Here is what happened:Evan Cheng2008-12-022-1/+18
| | | | | | | | | | | 1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. llvm-svn: 60443
* Minor rewrite per review feedback.Dale Johannesen2008-12-021-8/+7
| | | | llvm-svn: 60442
* Non-functional change: make custom lowering for truncate stylisticallyScott Michel2008-12-021-5/+12
| | | | | | consistent with the way it's generally done in other places. llvm-svn: 60439
* CellSPU:Scott Michel2008-12-024-45/+260
| | | | | | | | | | - Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch - Update SPU calling convention info, even if it's not used yet (but can be at some point or another) - Ensure that any-extended f32 loads are custom lowered, especially when they're promoted for use in printf. llvm-svn: 60438
* Fix a typo in a comment.Dan Gohman2008-12-021-1/+1
| | | | llvm-svn: 60434
* Add support for folding spills into preceding defs when doing pre-alloc ↵Owen Anderson2008-12-021-27/+101
| | | | | | splitting. llvm-svn: 60433
* One more transformation.Dale Johannesen2008-12-021-0/+8
| | | | llvm-svn: 60432
* Make the code do what the comment says it does.Dale Johannesen2008-12-021-4/+5
| | | | llvm-svn: 60431
* Comment typeo fix, thanks Duncan!Chris Lattner2008-12-022-2/+2
| | | | llvm-svn: 60429
* make it possible to custom lower TRUNCATE (needed for the CellSPU target)Tilmann Scheller2008-12-021-0/+5
| | | | llvm-svn: 60409
* Implement PRE of loads in the GVN pass with a pretty cheap and Chris Lattner2008-12-022-54/+211
| | | | | | | | | | | | | | | | | | | | | | | straight-forward implementation. This does not require any extra alias analysis queries beyond what we already do for non-local loads. Some programs really really like load PRE. For example, SPASS triggers this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc. The biggest limitation to the implementation is that it does not split critical edges. This is a huge killer on many programs and should be addressed after the initial patch is enabled by default. The implementation of this should incidentally speed up rejection of non-local loads because it avoids creating the repl densemap in cases when it won't be used for fully redundant loads. This is currently disabled by default. Before I turn this on, I need to fix a couple of miscompilations in the testsuite, look at compile time performance numbers, and look at perf impact. This is pretty close to ready though. llvm-svn: 60408
* Add a new SCEV representing signed division.Nick Lewycky2008-12-025-11/+131
| | | | llvm-svn: 60407
* Removed some unnecessary code in widening.Mon P Wang2008-12-021-115/+9
| | | | llvm-svn: 60406
* add a little helper function that does PHI translation.Chris Lattner2008-12-022-0/+24
| | | | llvm-svn: 60405
* add a noteChris Lattner2008-12-021-0/+21
| | | | llvm-svn: 60404
* Remove some errors that crept in. No functionality change.Bill Wendling2008-12-021-3/+4
| | | | llvm-svn: 60403
* Merge two if-statements into one.Bill Wendling2008-12-021-7/+3
| | | | llvm-svn: 60402
* More styalistic changes. No functionality change.Bill Wendling2008-12-021-15/+12
| | | | llvm-svn: 60401
* add densemap range insertion method.Chris Lattner2008-12-021-0/+8
| | | | llvm-svn: 60400
* - Remove the buggy -X/C -> X/-C transform. This isn't valid when X isn't aBill Wendling2008-12-022-12/+10
| | | | | | | | | constant. If X is a constant, then this is folded elsewhere. - Added a note to Target/README.txt to indicate that we'd like to implement this when we're able. llvm-svn: 60399
* Improve comment.Bill Wendling2008-12-021-4/+3
| | | | llvm-svn: 60398
* - Reduce nesting.Bill Wendling2008-12-021-24/+18
| | | | | | | | - No need to do a swap on a canonicalized pattern. No functionality change. llvm-svn: 60397
* some random comment improvements.Chris Lattner2008-12-021-11/+22
| | | | llvm-svn: 60395
* Add a test for my previous PRE fix.Owen Anderson2008-12-021-0/+27
| | | | llvm-svn: 60394
* Fix an issue that Chris noticed, where local PRE was not properly instantiatingOwen Anderson2008-12-021-2/+7
| | | | | | | a new value numbering set after splitting a critical edge. This increases the number of instances of PRE on 403.gcc from ~60 to ~570. llvm-svn: 60393
* Fix PR3124: overly strict assert.Evan Cheng2008-12-022-2/+19
| | | | llvm-svn: 60392
* Add a few more transformations.Dale Johannesen2008-12-021-0/+24
| | | | llvm-svn: 60391
* Second stab at target-dependent lowering of everyone's favorite nodes: [SU]ADDOBill Wendling2008-12-023-28/+36
| | | | | | | | | | | - LowerXADDO lowers [SU]ADDO into an ADD with an implicit EFLAGS define. The EFLAGS are fed into a SETCC node which has the conditional COND_O or COND_C, depending on the type of ADDO requested. - LowerBRCOND now recognizes if it's coming from a SETCC node with COND_O or COND_C set. llvm-svn: 60388
* Reapply r60382. This time, don't mark "ADC" nodes with "implicit EFLAGS".Bill Wendling2008-12-023-29/+110
| | | | llvm-svn: 60385
* Temporarily revert r60382. It caused CodeGen/X86/i2k.ll and others to fail.Bill Wendling2008-12-013-135/+40
| | | | llvm-svn: 60383
* - Have "ADD" instructions return an implicit EFLAGS.Bill Wendling2008-12-013-40/+135
| | | | | | - Add support for seto, setno, setc, and setnc instructions. llvm-svn: 60382
OpenPOWER on IntegriCloud