62c102360ad39e005c3c8c42fe85bfc9f2f23474 |
|
06-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove duplicated forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
1508e5e0495a3b3d034cb8e0b9be16b01749d8b3 |
|
22-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Cleanup IVUsers::addUsersIfInteresting. Keep the public interface clean, even though LLVM proper does not currently use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
75ae20366fd1b480f4cc38400bb075c43c9f4f7f |
|
16-Mar-2012 |
Andrew Trick <atrick@apple.com> |
LSR fix: Add isSimplifiedLoopNest to IVUsers analysis. Only record IVUsers that are dominated by simplified loop headers. Otherwise SCEVExpander will crash while looking for a preheader. I previously tried to work around this in LSR itself, but that was insufficient. This way, LSR can continue to run if some uses are not in simple loops, as long as we don't attempt to analyze those users. Fixes <rdar://problem/11049788> Segmentation fault: 11 in LoopStrengthReduce git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
260bf5364e151754c16f723d62c4080009bf98cb |
|
06-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Put all IVUsers in the processed set. Allow querying IVUsers with isIVUserOrOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
4b4bb71bcdfd8c17cd4acb6116fc9a56c5fecd47 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Added a SimplifyIndVar utility to simplify induction variable users based on ScalarEvolution without changing the induction variable phis. This utility is the main tool of IndVarSimplifyPass, but the pass also restructures induction variables in strange ways that are sensitive to pass ordering. This provides a way for other loop passes to simplify new uses of induction variables created during transformation. The utility may be used by any pass that preserves ScalarEvolution. Soon LoopUnroll will use it. The net effect in this checkin is to cleanup the IndVarSimplify pass by factoring out the SimplifyIndVar algorithm into a standalone utility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
4417e537b65c14b378aeca75b2773582dd102f63 |
|
21-Jun-2011 |
Andrew Trick <atrick@apple.com> |
IVUsers no longer needs to record the phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
f85092c25525f75eef6982ffa40c9b48b87da987 |
|
20-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Prototyping Sign/ZeroExtend elimination without canonical IVs. No functionality enabled by default. Use -disable-iv-rewrite. Extended IVUsers to keep track of the phi that represents the users' IV. Added the WidenIV transform to replace a narrow IV with a wide IV by doing a one-for-one replacement of IV users instead of expanding the SCEV expressions. [sz]exts are removed and truncs are inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
5fd5b125ff41088c005b7107e8cf92f281313040 |
|
18-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Avoid creating canonical induction variables for non-native types. For example, on 32-bit architecture, don't promote all uses of the IV to 64-bits just because one use is a 64-bit cast. Alternate implementation of the patch by Arnaud de Grandmaison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
191bd64a39490fa75d35b9aaecdd57b00c7a8b5f |
|
01-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Revert 112442 and 112440 until the compile time problems introduced by 112440 are resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
eaa40ff74e41176250bd6b50116ab03b0c596d5e |
|
29-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Make IVUsers iterative instead of recursive. This has the side effect of reversing the order of most of IVUser's results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
c056454ecfe66f7c646fedef594f4ed48a9f3bf0 |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove the Expr member from IVUsers. Instead of remembering the expression, just ask ScalarEvolution for it on demand. This helps IVUsers be more robust in the case of expressions changing underneath it. This fixes PR6862. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
448db1cdef5872713ef77beffacf502ae3450cd7 |
|
08-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Generalize IVUsers to track arbitrary expressions rather than expressions explicitly split into stride-and-offset pairs. Also, add the ability to track multiple post-increment loops on the same expression. This refines the concept of "normalizing" SCEV expressions used for to post-increment uses, and introduces a dedicated utility routine for normalizing and denormalizing expressions. This fixes the expansion of expressions which are post-increment users of more than one loop at a time. More broadly, this takes LSR another step closer to being able to reason about more than one loop at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
3f46a3abeedba8d517b4182de34c821d752db058 |
|
01-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
572645cf84060c0fc25cb91d38cb9079918b3a88 |
|
12-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
f7d848349e25f470e63bc176d4d120bdcf0e1649 |
|
01-Feb-2010 |
Bill Wendling <isanbard@gmail.com> |
Add "dump" method to IVUsersOneStride. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
bafbbdde38dedf05b53b731cbc083b2c483ae64e |
|
19-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Add a new helper function to IVUsers for returning the "canonical" form of an expression. This is the expression without the post-increment adjustment made, which is useful in determining which registers will be used by the expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
6bec5bb344fc0374431aed1cb63418de607a1aec |
|
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Reapply LoopStrengthReduce and IVUsers cleanups, excluding the part of 91296 that caused trouble -- the Processed list needs to be preserved for the livetime of the pass, as AddUsersIfInteresting is called from other passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
04149f7ffd033773adfe85e4acf3f560e29bd47d |
|
17-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
35d913e6f3ff9267bb130c918d1286156e18797d |
|
14-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Make the IVUses member private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
586f69a11881d828c056ce017b3fb432341d9657 |
|
12-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Teach LSR to avoid changing cmp iv stride if it will create an immediate that cannot be folded into target cmp instruction. - Avoid a phase ordering issue where early cmp optimization would prevent the later count-to-zero optimization. - Add missing checks which could cause LSR to reuse stride that does not have users. - Fix a bug in count-to-zero optimization code which failed to find the pre-inc iv's phi node. - Remove, tighten, loosen some incorrect checks disable valid transformations. - Quite a bit of code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
9661c13c37d017df6f91a399c0160b82e8a6c39f |
|
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few dead insertion methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
deb052a3dd0227579f86d74b3c1d70384ea5c16b |
|
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
0bba49cebc50c7bd4662a4807bcb3ee7f42cb470 |
|
07-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Change all SCEV* to SCEV *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
b1d7a5d1146c30a54002b7ab49daf024e3174b95 |
|
01-Jul-2009 |
Misha Brukman <brukman+llvm@gmail.com> |
Use correct format for LLVM header #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
372b46cad9f745859f542f9d2216991585ae83f4 |
|
22-Jun-2009 |
Owen Anderson <resistor@mac.com> |
SCEVHandle is no more! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
4e8a98519ebf75ed47456ea42706aaa57ecd2c27 |
|
18-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove the code from IVUsers that attempted to handle casted induction variables in cases where the cast isn't foldable. It ended up being a pessimization in many cases. This could be fixed, but it would require a bunch of complicated code in IVUsers' clients. The advantages of this approach aren't visible enough to justify it at this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|
81db61a2e6d3c95a2738c3559a108e05e9d7a05a |
|
12-May-2009 |
Dan Gohman <gohman@apple.com> |
Factor the code for collecting IV users out of LSR into an IVUsers class, and generalize it so that it can be used by IndVarSimplify. Implement the base IndVarSimplify transformation code using IVUsers. This removes TestOrigIVForWrap and associated code, as ScalarEvolution now has enough builtin overflow detection and folding logic to handle all the same cases, and more. Run "opt -iv-users -analyze -disable-output" on your favorite loop for an example of what IVUsers does. This lets IndVarSimplify eliminate IV casts and compute trip counts in more cases. Also, this happens to finally fix the remaining testcases in PR1301. Now that IndVarSimplify is being more aggressive, it occasionally runs into the problem where ScalarEvolutionExpander's code for avoiding duplicate expansions makes it difficult to ensure that all expanded instructions dominate all the instructions that will use them. As a temporary measure, IndVarSimplify now uses a FixUsesBeforeDefs function to fix up instructions inserted by SCEVExpander. Fortunately, this code is contained, and can be easily removed once a more comprehensive solution is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/IVUsers.h
|