summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Visibility hidden GVs do not require extra load of symbol address from the ↵Evan Cheng2008-12-045-4/+12
| | | | | | GOT or non-lazy-ptr. llvm-svn: 60519
* 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
* add a debugging option to help track down j-t problems.Chris Lattner2008-12-041-1/+14
| | | | llvm-svn: 60514
* 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
* Make the debugging dump be a full line.Dale Johannesen2008-12-031-0/+1
| | | | llvm-svn: 60509
* Remove an unused field.Dale Johannesen2008-12-031-8/+1
| | | | llvm-svn: 60508
* Have PseudoSourceValue override Value::dump, so that it worksDan Gohman2008-12-032-2/+5
| | | | | | | on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. llvm-svn: 60507
* Fix a misspelled function name.Dale Johannesen2008-12-031-4/+4
| | | | llvm-svn: 60506
* Factor some code into a new FoldSingleEntryPHINodes method.Chris Lattner2008-12-034-23/+28
| | | | llvm-svn: 60501
* Fix an inconsistency in a comment.Dan Gohman2008-12-031-4/+3
| | | | llvm-svn: 60500
* Use mmx (punpckldq VR64, (mmx_v_set0)) to clear high 32-bits of a VR64 register.Evan Cheng2008-12-031-3/+13
| | | | llvm-svn: 60499
* 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
* A step towards geting linux ppc to work (see PR 3099)Dale Johannesen2008-12-031-0/+2
| | | | llvm-svn: 60497
* 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
* Fix a really wrong comment.Dale Johannesen2008-12-031-1/+1
| | | | llvm-svn: 60494
* Split foldMemoryOperand into public non-virtual and protected virtualDan Gohman2008-12-0315-97/+165
| | | | | | | 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-0316-45/+45
| | | | llvm-svn: 60487
* Extend X86's addFrameReference to add a MachineMemOperand forDan Gohman2008-12-031-1/+18
| | | | | | | the frame reference. This will help post-RA scheduling determine that spills to distinct stack slots are independent. llvm-svn: 60486
* Update a comment.Dan Gohman2008-12-031-3/+4
| | | | llvm-svn: 60484
* 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-035-0/+14
| | | | | | Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
* Add support for ISD::TRAP to the XCore backendRichard Osborne2008-12-032-1/+16
| | | | llvm-svn: 60479
* Refactor code. No functionality change.Evan Cheng2008-12-031-72/+75
| | | | llvm-svn: 60478
* CC should only be a ConstantSDNode at this point. Just use 'cast' instead of ↵Bill Wendling2008-12-031-9/+9
| | | | | | 'dyn_cast'. llvm-svn: 60477
* Teach jump threading some more simple tricks:Chris Lattner2008-12-031-16/+156
| | | | | | | | | | | | | | | | 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
* Rename DeleteBlockIfDead to DeleteDeadBlock and make it Chris Lattner2008-12-032-10/+5
| | | | | | | 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-032-21/+34
| | | | | | DeleteBlockIfDead method. llvm-svn: 60463
* Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86'sDan Gohman2008-12-032-5/+37
| | | | | | | | | | | | 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
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-036-5/+15
| | | | | | | | | 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
* 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-031-0/+5
| | | | | | | | | 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
* 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
* 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-023-45/+179
| | | | | | | | | | - 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-021-1/+1
| | | | 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-021-54/+193
| | | | | | | | | | | | | | | | | | | | | | | 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-022-10/+76
| | | | 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-021-0/+13
| | | | llvm-svn: 60405
* add a noteChris Lattner2008-12-021-0/+21
| | | | llvm-svn: 60404
OpenPOWER on IntegriCloud