| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | simplify code, no functionality change. | Chris Lattner | 2008-02-14 | 1 | -7/+9 |
| | | | | | llvm-svn: 47116 | ||||
| * | Fix PR2032. Inform the alias analysis of changes to the underlying program. | Nick Lewycky | 2008-02-14 | 1 | -0/+2 |
| | | | | | llvm-svn: 47111 | ||||
| * | A loop latch phi node may have uses inside loop, not just in loop header. | Devang Patel | 2008-02-13 | 1 | -4/+5 |
| | | | | | llvm-svn: 47093 | ||||
| * | Rename APInt's isPositive to isNonNegative, to reflect what it | Dan Gohman | 2008-02-13 | 1 | -6/+6 |
| | | | | | | | actually does. llvm-svn: 47090 | ||||
| * | While moving exit condition, do not drop loop latch on the floor. | Devang Patel | 2008-02-13 | 1 | -4/+9 |
| | | | | | llvm-svn: 47089 | ||||
| * | Keep track of exit value operand number when operands are swapped. | Devang Patel | 2008-02-13 | 1 | -1/+6 |
| | | | | | llvm-svn: 47082 | ||||
| * | remove some dead code. | Chris Lattner | 2008-02-13 | 1 | -4/+0 |
| | | | | | llvm-svn: 47066 | ||||
| * | Re-apply the patch to improve the optimizations of memcpy's, with several | Owen Anderson | 2008-02-12 | 1 | -1/+79 |
| | | | | | | | bugs fixed. This now passes PPC bootstrap. llvm-svn: 47026 | ||||
| * | Fix for bug 1996: optimize out loads of undef. This code basically just | Eli Friedman | 2008-02-12 | 1 | -1/+28 |
| | | | | | | | checks for a malloc/alloca immediately followed by a load. llvm-svn: 47006 | ||||
| * | Fix scalarrepl to not 'miscompile' undefined code, part #2. | Chris Lattner | 2008-02-10 | 1 | -1/+1 |
| | | | | | | | | This fixes the store case, my previous patch just fixed the load case. rdar://5707076. llvm-svn: 46932 | ||||
| * | Fix PR 1995. | Devang Patel | 2008-02-08 | 1 | -21/+17 |
| | | | | | llvm-svn: 46898 | ||||
| * | Temporarily reverting: | Bill Wendling | 2008-02-06 | 1 | -82/+0 |
| | | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080128/057882.html This is causing a miscompilation on PPC G5 and just now seeing it on iMac x86-64. llvm-svn: 46822 | ||||
| * | Make RenamePass faster by making the 'is this a new phi node' | Chris Lattner | 2008-02-05 | 1 | -11/+11 |
| | | | | | | | | | check more intelligent. This speeds up mem2reg from 5.29s to 0.79s on a synthetic testcase with tons of predecessors and phi nodes. llvm-svn: 46767 | ||||
| * | Fix a bug compiling PR1978 (perhaps not the only one though) which | Chris Lattner | 2008-02-05 | 1 | -54/+5 |
| | | | | | | | | | | was incorrectly simplifying "x == (gep x, 1, i)" into false, even though i could be negative. As it turns out, all the code to handle this already existed, we just need to disable the incorrect optimization case and let the general case handle it. llvm-svn: 46739 | ||||
| * | Be more precise when eliminating pointers bue to memcpy's. This allows more | Owen Anderson | 2008-02-04 | 1 | -4/+10 |
| | | | | | | | stores to be deleted in some cases. llvm-svn: 46694 | ||||
| * | Allow GVN to hack on memcpy's, making them open to further optimization. | Owen Anderson | 2008-02-04 | 1 | -0/+82 |
| | | | | | llvm-svn: 46693 | ||||
| * | There are some cases where icmp(add) can be folded into a new icmp. Handle them. | Nick Lewycky | 2008-02-03 | 1 | -0/+32 |
| | | | | | llvm-svn: 46687 | ||||
| * | Hack on vectors too. | Nick Lewycky | 2008-02-03 | 1 | -1/+1 |
| | | | | | llvm-svn: 46684 | ||||
| * | Fold away one multiply in instcombine. This would normally be caught in | Nick Lewycky | 2008-02-03 | 1 | -0/+24 |
| | | | | | | | reassociate anyways, but they could be generated during instcombine's run. llvm-svn: 46683 | ||||
| * | Don't drop function/call return attributes like 'nounwind'. | Duncan Sands | 2008-02-01 | 1 | -0/+8 |
| | | | | | llvm-svn: 46645 | ||||
| * | Remove a couple more cases of "getNumUses() == 0". No need to walk the linked | Nick Lewycky | 2008-01-30 | 1 | -2/+2 |
| | | | | | | | list just to see if whether the list is empty. llvm-svn: 46555 | ||||
| * | Use empty() instead of comparing size() with zero. | Nick Lewycky | 2008-01-30 | 1 | -1/+1 |
| | | | | | llvm-svn: 46554 | ||||
| * | Don't DCE FreeInst's. We were using those! Patch from Owen Anderson. | Nick Lewycky | 2008-01-30 | 1 | -1/+1 |
| | | | | | llvm-svn: 46553 | ||||
| * | Make DSE much more aggressive by performing DCE earlier. Update a testcase ↵ | Owen Anderson | 2008-01-30 | 1 | -2/+55 |
| | | | | | | | to reflect this increased aggressiveness. llvm-svn: 46542 | ||||
| * | Fix a bug where scalarrepl would discard offset if type would match. | Chris Lattner | 2008-01-30 | 1 | -2/+2 |
| | | | | | | | | In practice this can only happen on code with already undefined behavior, but this is still a good thing to handle correctly. llvm-svn: 46539 | ||||
| * | Don't let globalopt hack on volatile loads or stores. | Chris Lattner | 2008-01-29 | 1 | -1/+4 |
| | | | | | llvm-svn: 46523 | ||||
| * | Use empty() instead of comparing size() with zero. | Dan Gohman | 2008-01-29 | 4 | -4/+4 |
| | | | | | llvm-svn: 46514 | ||||
| * | eliminate additions of 0.0 when they are obviously dead. This has to be ↵ | Chris Lattner | 2008-01-29 | 1 | -0/+47 |
| | | | | | | | | | careful to avoid turning -0.0 + 0.0 -> -0.0 which is incorrect. llvm-svn: 46499 | ||||
| * | Add support for eliminating memcpy's at the end of functions. Also fix some ↵ | Owen Anderson | 2008-01-29 | 1 | -26/+63 |
| | | | | | | | | | errors I noticed in the handling of eliminating stores to byval arguments. llvm-svn: 46494 | ||||
| * | Filter loops that subtract induction variables. | Devang Patel | 2008-01-29 | 1 | -17/+17 |
| | | | | | | | | | These loops are not yet handled. Fix PR 1912. llvm-svn: 46484 | ||||
| * | Transform calls to memcpy into llvm.memcpy calls, patch by Eli Friedman. | Chris Lattner | 2008-01-28 | 1 | -0/+30 |
| | | | | | llvm-svn: 46433 | ||||
| * | Handle some more combinations of extend and icmp. Fixes PR1940. | Nick Lewycky | 2008-01-28 | 1 | -8/+12 |
| | | | | | llvm-svn: 46431 | ||||
| * | Fix PR1932 by disabling an xform invalid for fdiv. | Chris Lattner | 2008-01-28 | 1 | -9/+10 |
| | | | | | llvm-svn: 46429 | ||||
| * | Fix PR1938 by forcing the code that uses an undefined value to branch one | Chris Lattner | 2008-01-28 | 1 | -4/+19 |
| | | | | | | | | | way or the other. Rewriting the code itself prevents subsequent analysis passes from making contradictory conclusions about the code that could cause an infeasible path to be made feasible. llvm-svn: 46427 | ||||
| * | Be more careful modifying the use_list while also iterating through it. | Nick Lewycky | 2008-01-27 | 1 | -1/+2 |
| | | | | | llvm-svn: 46417 | ||||
| * | Revert r46393: readonly/readnone functions are no | Duncan Sands | 2008-01-27 | 1 | -9/+6 |
| | | | | | | | longer allowed to write through byval arguments. llvm-svn: 46416 | ||||
| * | The CorrelatedExpressionElimination pass is known to be buggy. Remove it. | Bill Wendling | 2008-01-27 | 1 | -1486/+0 |
| | | | | | | | This fixes PR1769. llvm-svn: 46408 | ||||
| * | Fold fptrunc(add (fpextend x), (fpextend y)) -> add(x,y), as GCC does. | Chris Lattner | 2008-01-27 | 1 | -3/+75 |
| | | | | | llvm-svn: 46406 | ||||
| * | If there are no machine instructions emitted for a function, then insert | Bill Wendling | 2008-01-26 | 1 | -14/+1 |
| | | | | | | | | a "nop" instruction so that we don't have the function's label associated with something that it's not supposed to be associated with. llvm-svn: 46394 | ||||
| * | Create an explicit copy for byval parameters even | Duncan Sands | 2008-01-26 | 1 | -6/+9 |
| | | | | | | | when inlining a readonly function. llvm-svn: 46393 | ||||
| * | If we have a function like this: | Bill Wendling | 2008-01-26 | 1 | -1/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | void bork() { int *address = 0; *address = 0; } It's compiled into LLVM code that looks like this: define void @bork() noreturn nounwind { entry: unreachable } This is bad on some platforms (like PPC) because it will generate the label for the function but no body. The label could end up being associated with some non-code related stuff, like a section. This places a "trap" instruction if the SimplifyCFG pass removed all code from the function leaving only one "unreachable" instruction. llvm-svn: 46387 | ||||
| * | Do this more neatly. | Duncan Sands | 2008-01-25 | 1 | -2/+1 |
| | | | | | llvm-svn: 46369 | ||||
| * | DeadStoreElimination can treat byval parameters as if there were alloca's ↵ | Owen Anderson | 2008-01-25 | 1 | -5/+6 |
| | | | | | | | for the purpose of removing end-of-function stores. llvm-svn: 46351 | ||||
| * | Enable the fix I just checked in, silly me. | Nick Lewycky | 2008-01-22 | 1 | -1/+0 |
| | | | | | llvm-svn: 46247 | ||||
| * | Multiply can be evaluated in a different type, so long as the target type has | Nick Lewycky | 2008-01-22 | 1 | -0/+10 |
| | | | | | | | a smaller bitwidth. llvm-svn: 46244 | ||||
| * | Make sure the caller doesn't use freed memory. | Duncan Sands | 2008-01-20 | 1 | -1/+3 |
| | | | | | | | Fixes PR1935. llvm-svn: 46203 | ||||
| * | Initializing an unsigned with ~0UL causes the compiler | Duncan Sands | 2008-01-20 | 1 | -9/+9 |
| | | | | | | | to complain on x86-64 (gcc 4.1). Use ~0U instead. llvm-svn: 46197 | ||||
| * | DAE bug fix. Don't lose parameter attributes on vararg arguments. | Evan Cheng | 2008-01-17 | 1 | -5/+9 |
| | | | | | llvm-svn: 46113 | ||||
| * | Fix arg promotion to propagate the correct attrs on the calls to | Chris Lattner | 2008-01-17 | 1 | -14/+25 |
| | | | | | | | | promoted functions. This is important for varargs calls in particular. Thanks to duncan for providing a great testcase. llvm-svn: 46108 | ||||
| * | Handle attribute(used) global variables that are i8. | Chris Lattner | 2008-01-16 | 1 | -14/+13 |
| | | | | | llvm-svn: 46090 | ||||

