aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Move SCEVExpander::visitAddExpr out-of-line.Dan Gohman2008-06-182-9/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52464 91177308-0d34-0410-b5e6-96231b3b80d8
* Move LSR's private isZero function to a public SCEV memberDan Gohman2008-06-184-27/+24
| | | | | | | function, and make use of it in several places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52463 91177308-0d34-0410-b5e6-96231b3b80d8
* fix validator warningGabor Greif2008-06-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52461 91177308-0d34-0410-b5e6-96231b3b80d8
* prettify, no semantic changesGabor Greif2008-06-181-92/+138
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52460 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite the DeadArgumentElimination pass, to use a more explicit tracking ofMatthijs Kooijman2008-06-182-369/+508
| | | | | | | | | | | | | | dependencies between return values and/or arguments. Also make the handling of arguments and return values the same. The pass now looks properly inside returned structs, but only at the first level (ie, not inside nested structs). Also add a testcase for testing various variations of (multiple) dead rerturn values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52459 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r52397 (make IPConstProp promote returned arguments), but fixed thisMatthijs Kooijman2008-06-182-3/+64
| | | | | | | | | time. Sorry for the trouble! This time, also add a testcase, which I should have done in the first place... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52455 91177308-0d34-0410-b5e6-96231b3b80d8
* XOR32rr, etc. are not AsCheapAsMove, but MOV32ri, etc. are.Evan Cheng2008-06-181-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52454 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r52396, it was unrelated to the breakage (that was caused by r52397, myMatthijs Kooijman2008-06-182-62/+106
| | | | | | | commit after this). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52453 91177308-0d34-0410-b5e6-96231b3b80d8
* Complete support for two-address pass rematerialization. Now *almost* always ↵Evan Cheng2008-06-181-49/+128
| | | | | | a win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52452 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MachineRegisterInfo::use_empty.Evan Cheng2008-06-181-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52451 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic.Evan Cheng2008-06-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52450 91177308-0d34-0410-b5e6-96231b3b80d8
* If compiling for PPC on an i386 box, the LTO wouldn't get the altivec (andBill Wendling2008-06-182-24/+51
| | | | | | | | | other) feature information. The workaround is inelegant and could be cleaned up if this information were available some other way (say, in the IR). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52447 91177308-0d34-0410-b5e6-96231b3b80d8
* implement some simple bswap optimizations, rdar://5992453Chris Lattner2008-06-182-126/+195
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52442 91177308-0d34-0410-b5e6-96231b3b80d8
* temporarily revert this testcase since its patch was reverted.Chris Lattner2008-06-181-30/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52441 91177308-0d34-0410-b5e6-96231b3b80d8
* make truncate/sext elimination capable of changing phi's. This Chris Lattner2008-06-182-7/+50
| | | | | | | implements rdar://6013816 and the testcase in Transforms/InstCombine/sext-misc.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52440 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak DECLARE isel in pic mode.Evan Cheng2008-06-181-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52439 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve dominance frontier while trivially unswitching loop.Devang Patel2008-06-182-0/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52438 91177308-0d34-0410-b5e6-96231b3b80d8
* Check empty dominance frontier.Devang Patel2008-06-181-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52437 91177308-0d34-0410-b5e6-96231b3b80d8
* Auto-upgrade code for multiple-value return statements. This codeDan Gohman2008-06-172-0/+30
| | | | | | | isn't actually called yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52435 91177308-0d34-0410-b5e6-96231b3b80d8
* In InsertValueInst's copy ctor, actually copy the operands.Dan Gohman2008-06-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52434 91177308-0d34-0410-b5e6-96231b3b80d8
* We don't want to find dependencies within the same block in this case. It ↵Owen Anderson2008-06-171-1/+1
| | | | | | | | | leads to incorrect results because we're detecting something at or after the call we're querying on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52433 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the ExtractValueInst::getIndexedType that accepts oneDan Gohman2008-06-171-0/+6
| | | | | | | index value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52432 91177308-0d34-0410-b5e6-96231b3b80d8
* Live-through live interval is [mbb start, mbb end+1].Evan Cheng2008-06-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52431 91177308-0d34-0410-b5e6-96231b3b80d8
* When extending a liveinterval by commuting, don't throw away the live ranges ↵Evan Cheng2008-06-171-2/+13
| | | | | | that are not affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52430 91177308-0d34-0410-b5e6-96231b3b80d8
* Consistently set "Buckets[NumBuckets] = reinterpret_cast<void*>(-1)" ↵Ted Kremenek2008-06-171-1/+1
| | | | | | throughout FoldingSet.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52425 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an insertBefore method for attaching previously unattached instructions,Owen Anderson2008-06-172-0/+10
| | | | | | | such as those created by clone(), to a basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52424 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix use of placement new to actually use an address. Owen Anderson2008-06-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52423 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not safe to remove SUBREG_TO_REG that looks like identity copies, e.g. ↵Evan Cheng2008-06-171-11/+6
| | | | | | movl %eax, %eax on x86-64 actually does a zero-extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52421 91177308-0d34-0410-b5e6-96231b3b80d8
* Add one more 'magic' define :)Anton Korobeynikov2008-06-171-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52420 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak non-PPC buildsAnton Korobeynikov2008-06-171-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52419 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide generic hooks for icache invalidation. Add PPC implementation.Anton Korobeynikov2008-06-175-29/+16
| | | | | | | Patch by Gary Benson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52418 91177308-0d34-0410-b5e6-96231b3b80d8
* revert recent patch which is causing widespread breakage.Chris Lattner2008-06-171-85/+53
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52415 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't forget to initialize SymbolSearchingDisabled.Evan Cheng2008-06-171-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52414 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo that changed the logic to something wrong.Duncan Sands2008-06-171-1/+1
| | | | | | | Spotted by Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52411 91177308-0d34-0410-b5e6-96231b3b80d8
* Split type expansion into ExpandInteger and ExpandFloatDuncan Sands2008-06-177-1500/+1611
| | | | | | | | | rather than bundling them together. Rename FloatToInt to PromoteFloat (better, if not perfect). Reorganize files by types rather than by operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52408 91177308-0d34-0410-b5e6-96231b3b80d8
* Forgot to commit the ValueTracking header file along with r52396.Matthijs Kooijman2008-06-171-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52401 91177308-0d34-0410-b5e6-96231b3b80d8
* Learn IPConstProp to propagate arguments that are directly returned. StrictlyMatthijs Kooijman2008-06-171-2/+11
| | | | | | | | | | speaking these are not constant values. However, when a function always returns one of its arguments, then from the point of view of each caller the return value is constant (or at least a known value) and can be replaced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52397 91177308-0d34-0410-b5e6-96231b3b80d8
* Learn IPConstProp to look at individual return values and propagate themMatthijs Kooijman2008-06-172-62/+106
| | | | | | | | | | | | individually. Also learn IPConstProp how returning first class aggregates work, in addition to old style multiple return instructions. Modify the return-constants testscase to confirm this behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52396 91177308-0d34-0410-b5e6-96231b3b80d8
* 80 column fixes.Matthijs Kooijman2008-06-171-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52391 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a SmallVector instead of an array, since auto_ptr doesn't handle arraysMatthijs Kooijman2008-06-171-11/+8
| | | | | | | properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52390 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new -enable-value-prop flag for llcbeta, that enables propagationChris Lattner2008-06-173-14/+141
| | | | | | | | | | | | | | of value info (sign/zero ext info) from one MBB to another. This doesn't handle much right now because of two limitations: 1) only handles zext/sext, not random bit propagation (no assert exists for this) 2) doesn't handle phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52383 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix spelling.Duncan Sands2008-06-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52381 91177308-0d34-0410-b5e6-96231b3b80d8
* Rather than avoiding to wrap ISD::DECLARE GV operand in X86ISD::Wrapper, ↵Evan Cheng2008-06-172-3/+22
| | | | | | simply handle it at dagisel time with x86 specific isel code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52377 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missing ~ (dtor became ctor) which caused crashes on a bunch of stuff.Chris Lattner2008-06-161-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52374 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not issue identity copies.Evan Cheng2008-06-162-13/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52373 91177308-0d34-0410-b5e6-96231b3b80d8
* Refine the change in r52258 for avoiding use-before-def conditionsDan Gohman2008-06-163-12/+43
| | | | | | | | | | when changing the stride of a comparison so that it's slightly more precise, by having it scan the instruction list to determine if there is a use of the condition after the point where the condition will be inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52371 91177308-0d34-0410-b5e6-96231b3b80d8
* switch TypeHasCycleThroughItself from using an std::set to using a SmallPtrSet,Chris Lattner2008-06-161-5/+5
| | | | | | | this speeds up the linking testcase in PR1860 by 44% (.379 -> 0.263) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52365 91177308-0d34-0410-b5e6-96231b3b80d8
* stop making PATypeHolder's so crazily.Chris Lattner2008-06-161-33/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52364 91177308-0d34-0410-b5e6-96231b3b80d8
* Horizontal-add instructions are not commutative.Evan Cheng2008-06-162-12/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52363 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch over to SetVector to ensure same order of iterations do not vary ↵Evan Cheng2008-06-161-8/+9
| | | | | | across runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52361 91177308-0d34-0410-b5e6-96231b3b80d8