124737685676daae7a560e4884375ae2fb6b7f3d |
|
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
LoopUnroll: always check for NULL LoopPassManager git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
b78d83d837fc72a6565f186b0ad92d48cdfdb805 |
|
08-May-2012 |
Andrew Trick <atrick@apple.com> |
Allow NULL LoopPassManager argument in UnrollLoop. PR12734. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
d9fc1ce8096f7138c60edc3a6655583bf209780e |
|
10-Apr-2012 |
Andrew Trick <atrick@apple.com> |
Fix 12513: Loop unrolling breaks with indirect branches. Take this opportunity to generalize the indirectbr bailout logic for loop transformations. CFG transformations will never get indirectbr right, and there's no point trying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
1da282764aa8f155973769b44e4d5e67a0420af9 |
|
16-Dec-2011 |
Andrew Trick <atrick@apple.com> |
Avoid a confusing assert for silly options: -unroll-runtime -unroll-count=1. No need for an explicit test case for an unsupported combination of options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
5d73448bb7f3d326f310e6f35030821b103b1cdb |
|
09-Dec-2011 |
Andrew Trick <atrick@apple.com> |
Add -unroll-runtime for unrolling loops with run-time trip counts. Patch by Brendon Cahoon! This extends the existing LoopUnroll and LoopUnrollPass. Brendon measured no regressions in the llvm test suite with -unroll-runtime enabled. This implementation works by using the existing loop unrolling code to unroll the loop by a power-of-two (default 8). It generates an if-then-else sequence of code prior to the loop to execute the extra iterations before entering the unrolled loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
7cb3dcb927a8f8a872cdf309f78cd80e197d2f14 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Comments. Thanks for the spell check Nick! Also, my apologies for spoiling the autocomplete on SimplifyInstructions.cpp. I couldn't think of a better filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
39f40299a6efc06747db0de53deb9be248913998 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Invoke SimplifyIndVar when we partially unroll a loop. Fixes PR10534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
2d31ae3d9dfb153f081a5521374b2b42befd50a1 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Cleanup. Added LoopBlocksDFS::perform for simple clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
b1eede12818d91a32adac928c6fffcf6d2800dc0 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Fix the LoopUnroller to handle nontrivial loops and partial unrolling. These are not individual bug fixes. I had to rewrite a good chunk of the unroller to make it sane. I think it was getting lucky on trivial completely unrolled loops with no early exits. I included some fairly simple unit tests for partial unrolling. I didn't do much stress testing, so it may not be perfect, but should be usable now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
70d0ca999c7a2ef07ea39d26d67b5df57e6e6496 |
|
09-Aug-2011 |
Andrew Trick <atrick@apple.com> |
LoopUnroll looks like it has some stale code. Remove it to prove my sanity and avoid further confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
1009c3299be8c147ecd3fbd2d75ba1bafb2c84b1 |
|
03-Aug-2011 |
Andrew Trick <atrick@apple.com> |
SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget to notify SCEV of a change. Add forgetLoop in a couple of those places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
478849e98ca4661d77c1d6f3f96e8b28e1183fbd |
|
26-Jul-2011 |
Andrew Trick <atrick@apple.com> |
Add clarifying comments for the new arguments to UnrollLoop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
2045ce154a69b8f251d3a5259324528f0def337b |
|
23-Jul-2011 |
Andrew Trick <atrick@apple.com> |
Move trip count discovery outside of the generic LoopUnroll helper. This removes its dependence on canonical induction variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
ba03377fa171d2340bfff2ec817e62ec09eab992 |
|
23-Jul-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
95c3e48f9557adb6064d580684bb14cacec2f826 |
|
23-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Reinstate r133513 (reverted in r133700) with an additional fix for a -Wshorten-64-to-32 warning in Instructions.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
e59fbc04ad343435705c28b3cf7038d65fe4af0a |
|
23-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Revert r133513: "Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512)." Due to some additional warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
9ee714789e7fa2eff314bca10ded0323e48d1def |
|
21-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 |
|
21-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Reinstate r133435 and r133449 (reverted in r133499) now that the clang self-hosted build failure has been fixed (r133512). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
a88a0ca8082006b37d14d8aee4a644b20bae8bc9 |
|
21-Jun-2011 |
Chad Rosier <mcrosier@apple.com> |
Revert r133435 and r133449 to appease buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
72f5f313d87558958696ce69593d82efcdfa9128 |
|
20-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Change how PHINodes store their operands. Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses. Note that this loses an optimization in SplitCriticalEdge(), because we can no longer walk the use list of a BasicBlock to find phi nodes. See the comment I removed starting "However, the foreach loop is slow for blocks with lots of predecessors". Extend replaceAllUsesWith() on a BasicBlock to also update any phi nodes in the block's successors. This mimics what would have happened when PHINodes were proper Users of their incoming blocks. (Note that this only works if OldBB->replaceAllUsesWith(NewBB) is called when OldBB still has a terminator instruction, so it still has some successors.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
f5ebfb0d2852e70f11ca7b8d11f704a1378756d8 |
|
18-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Don't unroll loops whose header block's address is taken. This is part of a futile attempt to not "break" bizzaro code like this: l1: printf("l1: %p\n", &&l1); ++x; if( x < 3 ) goto l1; Previously we'd fold &&l1 to 1, which is fine per our semantics but not helpful to the user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
b298db72531e607c4c4db31df3373f74a9b983b1 |
|
11-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
random cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
8f9ffbd056172da470bcd3a9f1d5b4c2414fce59 |
|
07-Jan-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove all uses of the "ugly" method BranchInst::setUnconditionalDest(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
b6133d148312a3ec15beb67c2f49a21e5082b666 |
|
23-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Replace calls to ConstantFoldInstruction with calls to SimplifyInstruction in two places that are really interested in simplified instructions, not constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
1ed219a9d2279ce5a5bbcf16d9b7ccc05cce638c |
|
13-Oct-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Be more consistent in using ValueToValueMapTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
572365ec88aeb78908acb7efe381e45ab0b4a50a |
|
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Preserve ScalarEvolution in the loop unroller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
e9916a302f1bacad234d7dafc1df3dc968a6ba0f |
|
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Use ValueMap instead of DenseMap. The ValueMapper used by various cloning utility maps MDNodes also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
29d3dd8a64791031eea00ffbae51843dc9982df9 |
|
24-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Cosmetic change. Do not use "ValueMap" as a name for a local variable or an argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
3943084136b71934ae62e240c256494b4589584f |
|
21-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Rename ValueMapTy as ValueToValueMapTy to clearly indicate that this has no replationship with ADT/ValueMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
bbf81d88116d23fb0776412b5916f7d0b8b3ca7e |
|
10-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Add a DominatorTree argument to isLCSSA so that it doesn't have to compute a set of reachable blocks for itself each time it is called, which is fairly frequently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
5deb57c68552a85094b786dfdbd16e3744716733 |
|
27-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't bother with sprintf, just pass the Twine through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
a9ad9c24ae9921db4b245ce887159da943588f92 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
92329c7fbe572892c17aa2d2542a10e3ea16132f |
|
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add Loop contains utility methods for testing whether a loop contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
7b550ccfc5a3346c17e0390a59e2d6d19bc52705 |
|
06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of extraneous LLVMContext arguments from various APIs, addressing PR5325. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
692ad8dd0630f80babeb631ec8ae5bf6b54456cd |
|
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Teach LoopUnroll how to bail if LoopSimplify can't give it what it needs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
438b583dbd20f63b70d0b5abb7780a50bf03dd83 |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Revert r85667. LoopUnroll currently can't call utility functions which auto-update the DominatorTree because it doesn't keep the DominatorTree current while it works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
f230d8ad15f7ad5cdc5f3950b9d4f0c773d0bac0 |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Merge the enhancements from LoopUnroll's FoldBlockIntoPredecessor into MergeBlockIntoPredecessor. This makes SimplifyCFG slightly more aggressive, and makes it unnecessary for LoopUnroll to have its own copy of this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
b56c966019db6b186221ff7dd695603ac1d0bc70 |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|
928a75f057fc5efa74d6fc512449bddb10df20ff |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename UnrollLoop.cpp to LoopUnroll.cpp, and LoopUnroll.cpp to LoopUnrollPass.cpp, for consistency with other passes which are similarly split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Utils/LoopUnroll.cpp
|