summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach StackSlotColoring to update MachineMemOperands whenDan Gohman2008-12-051-3/+20
| | | | | | | changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. llvm-svn: 60584
* Ignore IMPLICIT_DEF instructions when computing physreg liveness.Dan Gohman2008-12-051-0/+7
| | | | | | | | | | While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. llvm-svn: 60583
* Factor out some common code.Owen Anderson2008-12-041-76/+39
| | | | llvm-svn: 60553
* When allocating a stack temporary, use the correctDuncan Sands2008-12-041-1/+1
| | | | | | | number of bytes for types such as i1 which are not a multiple of 8 bits in length. llvm-svn: 60543
* Use register names instead of numbers in debug output.Dan Gohman2008-12-041-2/+3
| | | | llvm-svn: 60525
* Make debug output more informative.Dan Gohman2008-12-041-1/+1
| | | | llvm-svn: 60524
* Add minimal support for disambiguating memory references. CurrentlyDan Gohman2008-12-041-13/+123
| | | | | | the main thing this covers is spills to distinct spill slots. llvm-svn: 60517
* Rewrite the liveness bookkeeping code to fix a bunch ofDan Gohman2008-12-031-34/+42
| | | | | | issues with subreg operands and tied operands. llvm-svn: 60510
* Have PseudoSourceValue override Value::dump, so that it worksDan Gohman2008-12-031-0/+4
| | | | | | | on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. llvm-svn: 60507
* Fix an inconsistency in a comment.Dan Gohman2008-12-031-4/+3
| | | | llvm-svn: 60500
* Don't charge the full latency for anti and output dependencies. This isDan Gohman2008-12-031-3/+6
| | | | | | | an area where eventually it would be good to use target-dependent information. llvm-svn: 60498
* When looking for anti-dependences on the critical path, don't botherDan Gohman2008-12-031-0/+4
| | | | | | examining non-anti-dependence edges. llvm-svn: 60496
* Add a comment about callee-saved registers.Dan Gohman2008-12-031-0/+2
| | | | llvm-svn: 60495
* Split foldMemoryOperand into public non-virtual and protected virtualDan Gohman2008-12-031-0/+68
| | | | | | | parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
* Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.Dan Gohman2008-12-031-3/+3
| | | | llvm-svn: 60487
* Only check that the result of the mapping was notDuncan Sands2008-12-031-0/+1
| | | | | | a new node if the node was actually remapped. llvm-svn: 60482
* Fix bug 3140.Rafael Espindola2008-12-031-0/+8
| | | | | | Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-031-1/+1
| | | | | | | | | 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
* Remove a (what appears to be) overly strict assertion. Here is what happened:Evan Cheng2008-12-021-1/+0
| | | | | | | | | | | 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
* 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
* 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 it possible to custom lower TRUNCATE (needed for the CellSPU target)Tilmann Scheller2008-12-021-0/+5
| | | | llvm-svn: 60409
* Removed some unnecessary code in widening.Mon P Wang2008-12-021-115/+9
| | | | llvm-svn: 60406
* Fix PR3124: overly strict assert.Evan Cheng2008-12-021-2/+4
| | | | llvm-svn: 60392
* Add a few more transformations.Dale Johannesen2008-12-021-0/+24
| | | | llvm-svn: 60391
* Expand getVTList, getNodeValueTypes, and SelectNodeTo to handle more value ↵Bill Wendling2008-12-011-0/+33
| | | | | | types. llvm-svn: 60381
* There are no longer any places that require aDuncan Sands2008-12-013-18/+26
| | | | | | | | MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. llvm-svn: 60349
* Change the interface to the type legalization methodDuncan Sands2008-12-015-72/+34
| | | | | | | | | | | ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. llvm-svn: 60348
* Followup to r60283: optimize arbitrary width signed divisions as well Eli Friedman2008-11-301-71/+34
| | | | | | as unsigned divisions. Same caveats as before. llvm-svn: 60284
* Fix for PR2164: allow transforming arbitrary-width unsigned divides intoEli Friedman2008-11-301-95/+65
| | | | | | | | | | | multiplies. Some more cleverness would be nice, though. It would be nice if we could do this transformation on illegal types. Also, we would prefer a narrower constant when possible so that we can use a narrower multiply, which can be cheaper. llvm-svn: 60283
* APIntify a test which is potentially unsafe otherwise, and fix the Eli Friedman2008-11-301-3/+10
| | | | | | | | | nearby FIXME. I'm not sure what the right way to fix the Cell test was; if the approach I used isn't okay, please let me know. llvm-svn: 60277
* Silence a warning.Nick Lewycky2008-11-271-1/+1
| | | | | | | Despite changing the order of evaluation, this doesn't actually change the meaning of the statement. llvm-svn: 60177
* Removing redundant semicolons. No functionality change.Sanjiv Gupta2008-11-271-2/+2
| | | | llvm-svn: 60149
* Avoid inserting noop's in the middle of a loop.Evan Cheng2008-11-271-1/+7
| | | | llvm-svn: 60141
* Add a missing case in visitADD.Dale Johannesen2008-11-271-0/+3
| | | | llvm-svn: 60137
* Allow custom lowering of ADDE/ADDC/SUBE/SUBC operations.Sanjiv Gupta2008-11-261-6/+36
| | | | llvm-svn: 60102
* LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs codeDan Gohman2008-11-261-1/+1
| | | | | | | and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. llvm-svn: 60092
* A simplification for checking whether the signs of the operands and sum ↵Bill Wendling2008-11-251-15/+14
| | | | | | differ. Thanks, Duncan. llvm-svn: 60043
* Suppress warnings.Dan Gohman2008-11-251-7/+7
| | | | llvm-svn: 60041
* Now with the correct type for the 0.Bill Wendling2008-11-251-1/+1
| | | | llvm-svn: 60016
* Get rid of unused variable.Bill Wendling2008-11-251-1/+0
| | | | llvm-svn: 60015
* Hacker's Delight says, "Signed integer overflow of addition occurs if and onlyBill Wendling2008-11-251-4/+48
| | | | | | | if the operands have the same sign and the sum has sign opposite to that of the operands." llvm-svn: 60014
* Initial support for anti-dependence breaking. Currently this code does notDan Gohman2008-11-253-261/+643
| | | | | | | | | introduce any new spilling; it just uses unused registers. Refactor the SUnit topological sort code out of the RRList scheduler and make use of it to help with the post-pass scheduler. llvm-svn: 59999
* - Make lowering of "add with overflow" customizable by back-ends.Bill Wendling2008-11-242-18/+29
| | | | | | | - Mark "add with overflow" as having a custom lowering for X86. Give it a null lowering representation for now. llvm-svn: 59971
* Check in the rest of this change. The isAntiDep flag needs to be passedDan Gohman2008-11-242-2/+2
| | | | | | | to removePred because an SUnit can both data-depend and anti-depend on the same SUnit. llvm-svn: 59969
* Pass the isAntiDep argument.Dan Gohman2008-11-241-1/+1
| | | | llvm-svn: 59968
* Run post-RA scheduling after branch folding, as it tends toDan Gohman2008-11-241-4/+7
| | | | | | obscure tail-merging opportunities. llvm-svn: 59967
* Minor fix debug for register allocation debug output.Matthijs Kooijman2008-11-242-4/+4
| | | | llvm-svn: 59961
OpenPOWER on IntegriCloud