de2d8694e25a814696358e95141f4b1aa4d8847e |
|
20-Sep-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r275480 Bug: http://b/31320715 This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from aosp/dev. Test: Build AOSP and run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/lib/Analysis/IVUsers.cpp
|
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/Analysis/IVUsers.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/Analysis/IVUsers.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Analysis/IVUsers.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Analysis/IVUsers.cpp
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Analysis/IVUsers.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Analysis/IVUsers.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Analysis/IVUsers.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
286c4dc355b8be6806081b23c3097485821c7642 |
|
12-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163344. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
cc77eece74c8db09acc2af425e7e6c88a5bb30d1 |
|
06-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "ifndef NDEBUG" No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
31f61e8b221eee4f839687e9ec4df89a469a2652 |
|
14-Jul-2012 |
Andrew Trick <atrick@apple.com> |
IVUsers should only generate SCEV's for values that are safe to speculate. This allows SCEVExpander to run on the IV expressions. This codifies an assumption made by LSR to complete the fix for PR11356, but I haven't been able to generate a separate unit test for this part. I'm adding it as an extra safety check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
a3b10b83597dabd926a5153ac2eb867e7920f471 |
|
20-Mar-2012 |
Andrew Trick <atrick@apple.com> |
LSR: teach isSimplifiedLoopNest to handle PHI IVUsers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
f9492288bbc51e5d34f19ba53dc778bc83be807c |
|
20-Mar-2012 |
Andrew Trick <atrick@apple.com> |
LSR: fix IVUsers isSimplifiedLoopNest to perform a full domtree walk instead of skipping the current loop. My prior fix was incomplete because of an overzealous compile-time optimization: Better fix for: <rdar://problem/11049788> Segmentation fault: 11 in LoopStrengthReduce git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
ce1823cd1bc0bdf7c7e829bbe1c695cb4fc13d6a |
|
13-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Slightly more useful tracing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
71997f303e47343e994fba53814455753eeb7e05 |
|
02-Jul-2011 |
Dan Gohman <gohman@apple.com> |
Teach IVUsers to stop at non-affine expressions unless they are both outside the loop and reducible. This more completely hides them from LSR, which isn't usually able to do anything meaningful with non-affine expressions anyway, and this consequently hides them from SCEVExpander, which is acutely unprepared for non-affine expressions. Replace test/CodeGen/X86/lsr-nonaffine.ll with a new test that tests the new behavior. This works around the bug in PR10117 / rdar://problem/9633149, and is generally an improvement besides. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
56caa098085977c14cfab39d92c7dfa15dde0d90 |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars --disable-iv-rewrite: sever ties with IVUsers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
cc1ffc6652e3ed42529037f9aaede4ac51d5e52f |
|
27-May-2011 |
Dan Gohman <gohman@apple.com> |
Update this comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
37da40875873d70b83dc08b2803052bec9b68886 |
|
04-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added DisableIVRewrite and WidenIVs. This adds functionality to remove size/zero extension during indvars without generating a canonical IV and rewriting all IV users. It's disabled by default so should have no effect on codegen. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
9fc5cdf77c812aaa80419036de27576d45894d0d |
|
02-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
split dom frontier handling stuff out to its own DominanceFrontier header, so that Dominators.h is *just* domtree. Also prune #includes a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
081c34b725980f995be9080eaec24cd3dfaaf065 |
|
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
2ab36d350293c77fc8941ce1023e4899df7e3a82 |
|
12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
|
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
831c8ec016e70030752ddd68390ac8d3a5148892 |
|
03-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
stop forcing a noop AssemblyAnnotationWriter to silence #uses comments, these don't happen anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
bbc1da8dedf77c0dd3845e09c2d78024d8738646 |
|
18-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Tweak IVUsers' concept of "interesting" to exclude add recurrences where the step value is an induction variable from an outer loop, to avoid trouble trying to re-expand such expressions. This effectively hides such expressions from indvars and lsr, which prevents them from getting into trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
|
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
e521ccb5bd1142b41723de519b15e13ab82914e1 |
|
11-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a cast to void to show that the return value is being intentionally ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
87527c594f94ad72d8d1cb35b91f53e720d67cf1 |
|
11-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete a dead check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
86eeeaf87747912a6c2404c383a416b07233c748 |
|
11-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
b3cdb0ec31482b7fd730ccee92b19455f6f3022b |
|
09-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in IVUsers which was permitting non-affine addrecs to be sent to LSR, which it isn't prepared to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
3d3238699280ec8ccd5c5579bc04a48229abe7ef |
|
06-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
454d26dc43207ec537d843229db6f5e6a302e23d |
|
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Remove unused variables and parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
0402577f3888889afb7a2bd18399987daefdecbe |
|
14-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Simplify this code; no need for a custom subclass if it doesn't need to override anything from the parent class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
4207d6af5ec7695e201edb2f77646476e1d7c8b7 |
|
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Use an AssemblyAnnotatorWriter to clean up IVUsers' debug output. The "uses=" comments are just clutter in this context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
a10756ee657a4d43a48cca5c166919093930ed6b |
|
21-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Re-implement the main strength-reduction portion of LoopStrengthReduction. This new version is much more aggressive about doing "full" reduction in cases where it reduces register pressure, and also more aggressive about rewriting induction variables to count down (or up) to zero when doing so reduces register pressure. It currently uses fairly simplistic algorithms for finding reuse opportunities, but it introduces a new framework allows it to combine multiple strategies at once to form hybrid solutions, instead of doing all full-reduction or all base+index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
3073329c532aab96b58a322f2ac8bf93abefc60e |
|
09-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand instead of getName() to print loop header names, so that unnamed blocks are handled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
63c4560526c54d443e224e7c18701b1f5857e6bf |
|
23-Dec-2009 |
David Greene <greened@obbligato.org> |
Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.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/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
e2f65ee4b17c775f1ea6d44039021dd4750f3322 |
|
14-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Clear the Processed set when it is no longer used, and clear the IVUses list in releaseMemory(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
30844c3950ee869eb430ce718b5a994fabed7aa7 |
|
14-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix a thinko; isNotAlreadyContainedIn had a built-in negative, so the condition was inverted when the code was converted to contains(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
440b40d86521305d631e6461314540f54659d4a2 |
|
14-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Drop Loop::isNotAlreadyContainedIn in favor of Loop::contains. The former was just exposing a LoopInfoBase implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
dbc3577ea17eb76722cacd1a723a2085e407599b |
|
24-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
enable iv-users simplification by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
97200e4dd4576d2a07547e07f8118cd01b63f2e9 |
|
19-Nov-2009 |
Jim Grosbach <grosbach@apple.com> |
Teach IVUsers to keep things simpler and track loop-invariant strides only for uses inside the loop. This works better with LSR. Disabled behind -simplify-iv-users while benchmarking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
a6a4aaefeea8622e022723f27b7e845997b81f64 |
|
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix IVUsers to avoid assuming that the loop has a unique backedge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
00cb67359fc2515eb972cd41fa35f8a0d2b22b87 |
|
27-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Instead of testing whether an instruction dominates the loop preheader, test whether it properly dominates the loop header. This is equivalent when the loop has a preheader, and has the advantage of working when the loop doesn't have a preheader. Since IVUsers doesn't Require LoopSimplify, the loop isn't guaranteed to have a preheader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
59faf04a5d9df84bcd6ab5256b252c6b696af72a |
|
27-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Remove a redundant #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
bbbfa99d3d18fe9f20265305e833666645ada528 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
bdff548e4dd577a72094d57b282de4e765643b96 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the "Value" printing methods that print to a std::ostream. This required converting a bunch of stuff off DOUT and other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
094ae454e8efb271294179d70d98004391ac537e |
|
17-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix more missing newlines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
|
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
d9ef1a860e01321cacbd57b6f7c154f399c813d4 |
|
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Add a newline, now that Value's operator<< doesn't print one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
c8d76d5afb023a1c6b439941be3b62789fcc0ed3 |
|
13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs, using the Curiously Recurring Template Pattern with LoopBase. This will help further refactoring, and future functionality for Loop. Also, Headers can now foward-declare Loop, instead of pulling in LoopInfo.h or doing tricks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
958e292c7a71e9105df2d46ac15dcd1f3cfa0ee2 |
|
19-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't (unconditionally) use getSCEVAtScope to simplify the step expression in IVUsers, because in the case of a use of a non-linear addrec outside of a loop, this causes the addrec to be evaluated as a linear addrec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|
743e41eae1f3ded4a1d162c6bd8712f5a9750e72 |
|
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Code cleanups. getSCEVAtScope no longer uses SCEVCouldNotCompute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
18395d2c3d03115a6b6f1496274304fc95f6178e |
|
13-May-2009 |
Duncan Sands <baldrick@free.fr> |
Avoid getting a compiler warning IVUsers.cpp: In member function ‘bool llvm::IVUsers::AddUsersIfInteresting(llvm::Instruction*)’: IVUsers.cpp:221: warning: ‘isSigned’ may be used uninitialized in this function with gcc-4.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/IVUsers.cpp
|
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/lib/Analysis/IVUsers.cpp
|