| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | fdiv/frem of undef can produce undef, because the undef operand | Chris Lattner | 2008-02-19 | 1 | -4/+11 |
| | | | | | | | | can be a SNaN. We could be more aggressive and turn this into unreachable, but that is less nice, and not really worth it. llvm-svn: 47313 | ||||
| * | Factor the profitability check for return slot optimization out into a ↵ | Owen Anderson | 2008-02-19 | 1 | -14/+26 |
| | | | | | | | | | static function. At some point in the future, this check will become smarter. llvm-svn: 47310 | ||||
| * | An sret parameter is required to be the first parameter, so there's no need ↵ | Owen Anderson | 2008-02-19 | 1 | -8/+3 |
| | | | | | | | | | to loop over all the parameters of the callee looking for it. llvm-svn: 47309 | ||||
| * | Cleanup some of my patches from yesterday. Refactor the check for which xform | Owen Anderson | 2008-02-19 | 1 | -22/+23 |
| | | | | | | | | to apply to a memcpy into processInstruction. Also, fix a bug in the check due to missing braces. llvm-svn: 47307 | ||||
| * | Fix Transforms/GVN/memcpy.ll, which Chris broke in r47275 by reordering the ↵ | Owen Anderson | 2008-02-19 | 1 | -1/+2 |
| | | | | | | | branches. memcpy's are a kind of CallInst. llvm-svn: 47305 | ||||
| * | Correctly fold divide-by-constant, even when faced with overflow. | Nick Lewycky | 2008-02-18 | 1 | -2/+27 |
| | | | | | llvm-svn: 47287 | ||||
| * | Transforming -A + -B --> -(A + B) isn't safe for FP, thanks | Chris Lattner | 2008-02-18 | 1 | -4/+6 |
| | | | | | | | to Dale for noticing this! llvm-svn: 47276 | ||||
| * | minor code simplification, no functionality change. | Chris Lattner | 2008-02-18 | 1 | -8/+6 |
| | | | | | llvm-svn: 47275 | ||||
| * | Simplify caller updating using a CallSite, as | Duncan Sands | 2008-02-18 | 1 | -22/+16 |
| | | | | | | | | | requested by Chris. While there, do the same for an existing function committed by someone called "lattner" :) llvm-svn: 47273 | ||||
| * | Add support to GVN for performing sret return slot optimization. This means ↵ | Owen Anderson | 2008-02-18 | 1 | -2/+66 |
| | | | | | | | | | | | | that, if an sret function tail calls another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct return value. llvm-gcc does not emit this by default. Instead, it allocates space in the caller for the sret of the tail call and then uses memcpy to copy the result into the caller's sret parameter. This optimization detects and optimizes that case. llvm-svn: 47265 | ||||
| * | switch simplifycfg from using vectors for most things to smallvectors, | Chris Lattner | 2008-02-18 | 1 | -14/+12 |
| | | | | | | | this speeds it up 2.3% on eon. llvm-svn: 47261 | ||||
| * | optimize away stackrestore calls that have no intervening alloca or call. | Chris Lattner | 2008-02-18 | 1 | -10/+18 |
| | | | | | llvm-svn: 47258 | ||||
| * | simplify some code, BreakUpSubtract always returns nonnull now. | Chris Lattner | 2008-02-18 | 1 | -4/+2 |
| | | | | | llvm-svn: 47251 | ||||
| * | Fold (-x + -y) -> -(x+y) which promotes better association, fixing | Chris Lattner | 2008-02-17 | 1 | -2/+10 |
| | | | | | | | the second half of PR2047 llvm-svn: 47244 | ||||
| * | fix pasto | Chris Lattner | 2008-02-17 | 1 | -1/+1 |
| | | | | | llvm-svn: 47242 | ||||
| * | Split up subtracts into add+negate if they have a reassociable use or operand | Chris Lattner | 2008-02-17 | 1 | -5/+8 |
| | | | | | | | that is also a subtract. This implements PR2047 and Transforms/Reassociate/subtest2.ll llvm-svn: 47241 | ||||
| * | make the logic for breaking up subtracts more explicit, no | Chris Lattner | 2008-02-17 | 1 | -9/+22 |
| | | | | | | | functionality change. llvm-svn: 47239 | ||||
| * | Remove any 'nest' parameter attributes if the function | Duncan Sands | 2008-02-16 | 1 | -10/+52 |
| | | | | | | | is not passed as an argument to a trampoline intrinsic. llvm-svn: 47220 | ||||
| * | Fix PR2028 | Devang Patel | 2008-02-15 | 1 | -2/+2 |
| | | | | | llvm-svn: 47150 | ||||
| * | If loop header is also loop exiting block then OrigPN is incoming value for ↵ | Devang Patel | 2008-02-14 | 1 | -1/+7 |
| | | | | | | | | | B loop header. Fixes PR 2030. llvm-svn: 47141 | ||||
| * | Fix PR2029 | Chris Lattner | 2008-02-14 | 1 | -0/+11 |
| | | | | | llvm-svn: 47129 | ||||
| * | 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 | ||||

