| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Forgot to commit the ValueTracking header file along with r52396. | Matthijs Kooijman | 2008-06-17 | 1 | -0/+7 |
| | | | | | llvm-svn: 52401 | ||||
| * | Learn IPConstProp to propagate arguments that are directly returned. Strictly | Matthijs Kooijman | 2008-06-17 | 1 | -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. llvm-svn: 52397 | ||||
| * | Learn IPConstProp to look at individual return values and propagate them | Matthijs Kooijman | 2008-06-17 | 2 | -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. llvm-svn: 52396 | ||||
| * | 80 column fixes. | Matthijs Kooijman | 2008-06-17 | 1 | -3/+3 |
| | | | | | llvm-svn: 52391 | ||||
| * | Use a SmallVector instead of an array, since auto_ptr doesn't handle arrays | Matthijs Kooijman | 2008-06-17 | 1 | -11/+8 |
| | | | | | | | properly. llvm-svn: 52390 | ||||
| * | add a new -enable-value-prop flag for llcbeta, that enables propagation | Chris Lattner | 2008-06-17 | 3 | -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. llvm-svn: 52383 | ||||
| * | Fix spelling. | Duncan Sands | 2008-06-17 | 1 | -1/+1 |
| | | | | | llvm-svn: 52381 | ||||
| * | Rather than avoiding to wrap ISD::DECLARE GV operand in X86ISD::Wrapper, ↵ | Evan Cheng | 2008-06-17 | 2 | -3/+22 |
| | | | | | | | simply handle it at dagisel time with x86 specific isel code. llvm-svn: 52377 | ||||
| * | Add a missing ~ (dtor became ctor) which caused crashes on a bunch of stuff. | Chris Lattner | 2008-06-16 | 1 | -2/+5 |
| | | | | | llvm-svn: 52374 | ||||
| * | Do not issue identity copies. | Evan Cheng | 2008-06-16 | 2 | -13/+36 |
| | | | | | llvm-svn: 52373 | ||||
| * | Refine the change in r52258 for avoiding use-before-def conditions | Dan Gohman | 2008-06-16 | 3 | -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. llvm-svn: 52371 | ||||
| * | switch TypeHasCycleThroughItself from using an std::set to using a SmallPtrSet, | Chris Lattner | 2008-06-16 | 1 | -5/+5 |
| | | | | | | | this speeds up the linking testcase in PR1860 by 44% (.379 -> 0.263) llvm-svn: 52365 | ||||
| * | stop making PATypeHolder's so crazily. | Chris Lattner | 2008-06-16 | 1 | -33/+33 |
| | | | | | llvm-svn: 52364 | ||||
| * | Horizontal-add instructions are not commutative. | Evan Cheng | 2008-06-16 | 2 | -12/+15 |
| | | | | | llvm-svn: 52363 | ||||
| * | Switch over to SetVector to ensure same order of iterations do not vary ↵ | Evan Cheng | 2008-06-16 | 1 | -8/+9 |
| | | | | | | | across runs. llvm-svn: 52361 | ||||
| * | Move some documentation from the header file into ProgrammersManual. About ↵ | Gabor Greif | 2008-06-16 | 2 | -169/+183 |
| | | | | | | | to improve. llvm-svn: 52360 | ||||
| * | use a real associative container for type association instead of using | Chris Lattner | 2008-06-16 | 1 | -8/+94 |
| | | | | | | | | a vector with a linear search. This speeds up the linking testcase in PR1860 from 0.965s to 0.385s on my system. llvm-svn: 52357 | ||||
| * | - Add "Commutative" property to intrinsics. This allows tblgen to generate ↵ | Evan Cheng | 2008-06-16 | 7 | -92/+189 |
| | | | | | | | | | the commuted variants for dagisel matching code. - Mark lots of X86 intrinsics as "Commutative" to allow load folding. llvm-svn: 52353 | ||||
| * | mpsadbw is commutable. | Evan Cheng | 2008-06-16 | 1 | -1/+1 |
| | | | | | llvm-svn: 52352 | ||||
| * | bail out sooner if we have two concrete but different types. | Chris Lattner | 2008-06-16 | 1 | -0/+4 |
| | | | | | llvm-svn: 52351 | ||||
| * | simplify some code. | Chris Lattner | 2008-06-16 | 1 | -24/+21 |
| | | | | | llvm-svn: 52350 | ||||
| * | Apply a patch from Nathan Keynes, which speeds up llvm-link on | Chris Lattner | 2008-06-16 | 1 | -1/+0 |
| | | | | | | | | the testcases in PR1860 from taking more than 1 hour (when I killed it) to taking 1s. llvm-svn: 52347 | ||||
| * | Remove special case handling of empty MBBs now that we assign indices to them. | Owen Anderson | 2008-06-16 | 1 | -8/+5 |
| | | | | | llvm-svn: 52345 | ||||
| * | handle vectors. Any integers that got here would necessarily be different ↵ | Chris Lattner | 2008-06-16 | 1 | -8/+11 |
| | | | | | | | already. llvm-svn: 52341 | ||||
| * | Simplify ResolveTypes by pulling the null case out into the one | Chris Lattner | 2008-06-16 | 1 | -42/+30 |
| | | | | | | | | | | client that cares and simplifying its control flow. Remove the DestST argument to ResolveTypes and RecursiveResolveTypes* which are dead now. llvm-svn: 52340 | ||||
| * | Iterating over SmallPtrSet is not deterministic. | Evan Cheng | 2008-06-16 | 1 | -6/+6 |
| | | | | | llvm-svn: 52339 | ||||
| * | simplify RecursiveResolveTypes and ResolveTypes by pulling the naming out of | Chris Lattner | 2008-06-16 | 1 | -23/+20 |
| | | | | | | | ResolveTypes into the one place that needs it. llvm-svn: 52338 | ||||
| * | Add a new flag that disables symbol lookup with dlsym when set. This allows | Chris Lattner | 2008-06-16 | 2 | -36/+48 |
| | | | | | | | | a JIT client to completely control symbol lookup with the LazyFunctionCreator interface. llvm-svn: 52335 | ||||
| * | Add support for icache invalidation on non-darwin ppc systems. | Chris Lattner | 2008-06-16 | 1 | -2/+19 |
| | | | | | | | Patch by Gary Benson! llvm-svn: 52332 | ||||
| * | Re-enable empty block indexing by default, since it doesn't seem to have any | Owen Anderson | 2008-06-16 | 1 | -21/+9 |
| | | | | | | | impact on code quality or compile time. llvm-svn: 52329 | ||||
| * | Make BuildSubAggregate use FindInsertedElement again to prevent it from | Matthijs Kooijman | 2008-06-16 | 1 | -20/+48 |
| | | | | | | | | | inserting extractvalues. In particular, this prevents the insertion of extractvalues that can't be folded away later. Also add an example of when this stuff is needed. llvm-svn: 52328 | ||||
| * | Make the InsertBefore argument to FindInsertedValue optional, so you can ↵ | Matthijs Kooijman | 2008-06-16 | 2 | -4/+12 |
| | | | | | | | find an inserted value without modifying the code. llvm-svn: 52319 | ||||
| * | Pass around Instruction* instead of Instruction& in FindInsertedValue and ↵ | Matthijs Kooijman | 2008-06-16 | 3 | -7/+7 |
| | | | | | | | friends. llvm-svn: 52318 | ||||
| * | Make testcase check for extractvalue instead of extractelement. | Matthijs Kooijman | 2008-06-16 | 1 | -1/+1 |
| | | | | | llvm-svn: 52317 | ||||
| * | 80 column fixes. | Matthijs Kooijman | 2008-06-16 | 2 | -16/+33 |
| | | | | | llvm-svn: 52316 | ||||
| * | Move FindScalarValue from InstructionCombining.cpp to ValueTracking.cpp. While | Matthijs Kooijman | 2008-06-16 | 3 | -147/+138 |
| | | | | | | | | | | | I'm at it, rename it to FindInsertedValue. The only functional change is that newly created instructions are no longer added to instcombine's worklist, but that is not really necessary anyway (and I'll commit some improvements next that will completely remove the need). llvm-svn: 52315 | ||||
| * | Store the result of multiple identical run lines in a temporary file. | Matthijs Kooijman | 2008-06-16 | 1 | -5/+6 |
| | | | | | llvm-svn: 52314 | ||||
| * | Add comment. | Matthijs Kooijman | 2008-06-16 | 1 | -0/+3 |
| | | | | | llvm-svn: 52313 | ||||
| * | Minor comment fix. | Argyrios Kyrtzidis | 2008-06-16 | 1 | -1/+1 |
| | | | | | llvm-svn: 52312 | ||||
| * | Fix PR numbers, I accidentally switched two digits. | Matthijs Kooijman | 2008-06-16 | 5 | -5/+5 |
| | | | | | llvm-svn: 52311 | ||||
| * | Allow these transforms for types like i256 while | Duncan Sands | 2008-06-16 | 2 | -8/+12 |
| | | | | | | | | | still excluding types like i1 (not byte sized) and i120 (loading an i120 requires loading an i64, an i32, an i16 and an i8, which is expensive). llvm-svn: 52310 | ||||
| * | Fix read after free found by valgrind. | Evan Cheng | 2008-06-16 | 1 | -15/+10 |
| | | | | | llvm-svn: 52309 | ||||
| * | Add option to commuteInstruction() which forces it to create a new ↵ | Evan Cheng | 2008-06-16 | 6 | -13/+51 |
| | | | | | | | (commuted) instruction. llvm-svn: 52308 | ||||
| * | Make indexing empty basic blocks an option for the moment. | Owen Anderson | 2008-06-16 | 1 | -9/+21 |
| | | | | | llvm-svn: 52306 | ||||
| * | add a const version of stripPointerCasts | Chris Lattner | 2008-06-16 | 1 | -0/+3 |
| | | | | | llvm-svn: 52305 | ||||
| * | simplify some code by using a helper function. This really really | Chris Lattner | 2008-06-16 | 1 | -22/+16 |
| | | | | | | | wants a 'nocapture' predicate. llvm-svn: 52304 | ||||
| * | move a bunch of predicates up into their own section | Chris Lattner | 2008-06-16 | 1 | -157/+171 |
| | | | | | | | in this file, no other changes. llvm-svn: 52303 | ||||
| * | Other parts of this code treat noalias arguments as objects for | Chris Lattner | 2008-06-16 | 1 | -4/+8 |
| | | | | | | | the purposes of escape analysis. llvm-svn: 52302 | ||||
| * | If we are checking to see if the result of a call aliases a | Chris Lattner | 2008-06-16 | 2 | -1/+44 |
| | | | | | | | | pointer derived from a local allocation, if the local allocation never escapes, the pointers can't alias. This implements PR2436 llvm-svn: 52301 | ||||
| * | Assign indices to empty basic blocks. This will be necessary for ↵ | Owen Anderson | 2008-06-16 | 1 | -4/+9 |
| | | | | | | | StrongPHIElimination in the near future. llvm-svn: 52300 | ||||

