dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4d4bbaf997c16f9e79503bd640306d784efd090e |
|
25-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Fix SCEVExpander: don't try to expand quadratic recurrences outside a loop. Partial fix for PR17459: wrong code at -O3 on x86_64-linux-gnu (affecting trunk and 3.3) When SCEV expands a recurrence outside of a loop it attempts to scale by the stride of the recurrence. Chained recurrences don't work that way. We could compute binomial coefficients, but would hve to guarantee that the chained AddRec's are in a perfectly reduced form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d084153a8fd8ee058fd4c39d4f15d3f988566d95 |
|
24-Oct-2013 |
Juergen Ributzka <juergen@apple.com> |
Fix a bug in LinearFunctionTestReplace that created invalid loop exit checks. Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
577ac566c45670cd8ef03e202cb92258c643574d |
|
24-Oct-2013 |
Andrew Trick <atrick@apple.com> |
Clarify comments in genLoopLimit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
14807bd8c801f976c999e5a6699f31ee9642021a |
|
10-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Teach ScalarEvolution about pointer address spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
16404cc817e8b8d3fbfbc9051394eb59d7c5ffb4 |
|
13-Jul-2013 |
Andrew Trick <atrick@apple.com> |
LFTR improvement to avoid truncation. This is a reimplemntation of the patch originally in r186107. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
807e6c71a8d13531ec359006e3b6526ae70064a8 |
|
13-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Cleanup LFTR logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7137909128e6447c556b2713a60cd8e62f823612 |
|
13-Jul-2013 |
Andrew Trick <atrick@apple.com> |
Cleanup: rename a variable to make the logic easier to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6f0ec20e8fa23e9588205ea0eaba8f3021abe1ac |
|
12-Jul-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Revert "indvars: Improve LFTR by eliminating truncation when comparing against a constant." This reverts commit r186107. It didn't handle wrapping arithmetic in the loop correctly and thus caused the following C program to count from 0 to UINT64_MAX instead of from 0 to 255 as intended: #include <stdio.h> int main() { unsigned char first = 0, last = 255; do { printf("%d\n", first); } while (first++ != last); } Full test case and instructions to reproduce with just the -indvars pass sent to the original review thread rather than to r186107's commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
53b28f86236fc548143656929f39f38d9dc83e06 |
|
11-Jul-2013 |
Andrew Trick <atrick@apple.com> |
indvars: Improve LFTR by eliminating truncation when comparing against a constant. Patch by Michele Scandale! Adds a special handling of the case where, during the loop exit condition rewriting, the exit value is a constant of bitwidth lower than the type of the induction variable: instead of introducing a trunc operation in order to match correctly the operand types, it allows to convert the constant value to an equivalent constant, depending on the initial value of the induction variable and the trip count, in order have an equivalent comparison between the induction variable and the new constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5a57dbef33ec2d336de2a2e9da4e477a4969fe57 |
|
04-Jun-2013 |
David Majnemer <david.majnemer@gmail.com> |
IndVarSimplify: check if loop invariant expansion can trap IndVarSimplify is willing to move divide instructions outside of their loop bodies if they are invariant of the loop. However, it may not be safe to expand them if we do not know if they can trap. Instead, check to see if it is not safe to expand the instruction and skip the expansion. This fixes PR16041. Testcase by Rafael Ávila de Espíndola. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
eb9a42e8ab5ffb5a8f02c2f78876ed03dd883416 |
|
19-Mar-2013 |
Arnaud A. de Grandmaison <arnaud.adegm@gmail.com> |
IndVarSimplify: do not recompute an IV value outside of the loop if : - it is trivially known to be used inside the loop in a way that can not be optimized away - there is no use outside of the loop which can take advantage of the computation hoisting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
ece6c6bb6329748b92403c06ac87f45c43485911 |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the series of commits starting with r166578 which introduced the getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e669c930a61dd56891df2f9822966ecb173c8072 |
|
29-Oct-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
In various places throughout the code generator, there were special checks to avoid performing compile-time arithmetic on PPCDoubleDouble. Now that APFloat supports arithmetic on PPCDoubleDouble, those checks are no longer needed, and we can treat the type like any other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
aa76e9e2cf50af190de90bc778b7f7e42ef9ceff |
|
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for getIntPtrType to get the pointer type based on the address space. This checkin also adds in some tests that utilize these paths and updates some of the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7182126b0f3100cfddfbe6939be1a7eaeaf9fd57 |
|
19-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Indvars: Don't recursively delete instruction during BB iteration. This can invalidate the iterators leading to use after frees and crashes. Fixes PR12536. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
eb51e95e61bd93cb764e14cdd5f0271e237e4673 |
|
04-Oct-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Add a comment to the commit r165187. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
395c1502a7e6380ec2210ee4be1fdb3128c10528 |
|
04-Oct-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Fix PR13967. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
8e0d1c03ca7fd86e6879b4e37d0d7f0e982feef6 |
|
29-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make MemoryBuiltins aware of TargetLibraryInfo. This disables malloc-specific optimization when -fno-builtin (or -ffreestanding) is specified. This has been a problem for a long time but became more severe with the recent memory builtin improvements. Since the memory builtin functions are used everywhere, this required passing TLI in many places. This means that functions that now have an optional TLI argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead mallocs anymore if the TLI argument is missing. I've updated most passes to do the right thing. Fixes PR13694 and probably others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7f496a628eb93d60eed39340fcc5e89479eda488 |
|
18-Jul-2012 |
Andrew Trick <atrick@apple.com> |
indvars: drive by heuristics fix. Minor oversight noticed by inspection. Sorry no unit test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4781d8ee1cd586bf7a569f80e1e49694c93eddd8 |
|
18-Jul-2012 |
Andrew Trick <atrick@apple.com> |
indvars: Linear function test replace should avoid reusing undef. Fixes PR13371: indvars pass incorrectly substitutes 'undef' values. I do not like this fix. It's needed until/unless the meaning of undef changes. It attempts to be complete according to the IR spec, but I don't have much confidence in the implementation given the difficulty testing undefined behavior. Worse, this invalidates some of my hard-fought work on indvars and LSR to optimize pointer induction variables. It results benchmark regressions, which I'll track internally. On x86_64 no LTO I see: -3% huffbench -3% 400.perlbench -8% fhourstones My only suggestion for recovering is to change the meaning of undef. If we could trust an arbitrary instruction to produce a some real value that can be manipulated (e.g. incremented) according to non-undef rules, then this case could be easily handled with SCEV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c5480c634c9de552f9f65c899bd55cc8f1f89e68 |
|
24-Mar-2012 |
Andrew Trick <atrick@apple.com> |
More IndVarSimplify cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
db0d666578388026278c17f848095b396b7ea27d |
|
22-Mar-2012 |
Andrew Trick <atrick@apple.com> |
Remove -enable-iv-rewrite, which has been unsupported since 3.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
b0934ab7d811e23bf530371976b8b35f3242169c |
|
19-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Remove dead code. Improve llvm_unreachable text. Simplify some control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5fef01db01592903d3a22701b598fb6a69265c53 |
|
29-Jan-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b5c26ef9da16052597d59a412eaae32098aa1be0 |
|
20-Jan-2012 |
Andrew Trick <atrick@apple.com> |
SCEVExpander fixes. Affects LSR and indvars. LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes: - Always used properlyDominates to check safe code hoisting. - The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point. - LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions. - Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point. Fixes PR11783: SCEVExpander assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
86d34100cf164f6ba5c0c2344b7dff86cc0a0980 |
|
12-Dec-2011 |
Andrew Trick <atrick@apple.com> |
Indvars: guard against exponential behavior in isHighCostExpansion. This should always be done as a matter of principal. I don't have a case that exposes the problem. I just noticed this recently while scanning the code and realized I meant to fix it long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1608769abeb1430dc34f31ffac0d9850f99ae36a |
|
05-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for vectors of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ecb35ece5c42d89057da3c2c7bc2e95f08b1dbef |
|
29-Nov-2011 |
Andrew Trick <atrick@apple.com> |
SCEV fix. In general, Add/Mul expressions should not inherit NSW/NUW. This reverts r139450, fixes r139453, and adds much needed comments and a unit test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
0861f5793a1834f02b522fb86fb037cd592c134f |
|
27-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move code into anonymous namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d3714b60b5adf15376a8803e6622c74694884b28 |
|
02-Nov-2011 |
Andrew Trick <atrick@apple.com> |
Rewrite LinearFunctionTestReplace to handle pointer-type IVs. We've been hitting asserts in this code due to the many supported combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This second rewrite of the code attempts to deal with these cases systematically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
94dffd2bb013ef7d2052ef56eac75cdf5d89d43b |
|
02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add parentheses to disambiguate the precedence of these operations and silence -Wparentheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3129da8d1a15a263a9af10b618478344db9eeddf |
|
02-Nov-2011 |
Andrew Trick <atrick@apple.com> |
Broaden an assert to handle enable-iv-rewrite=true following r143183. Narrowest possible fix for PR11279. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6f2dd7ebcf5225bb98594c3504ded9a46c7ed11a |
|
28-Oct-2011 |
Andrew Trick <atrick@apple.com> |
LFTR should avoid a type mismatch with null pointer IVs. Fixes rdar://10359193 Indvar LinearFunctionTestReplace assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
8ecde6cbf87cfa3184cec5a4eedb70b06dbb4a85 |
|
27-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
It is not safe to sink an alloca into a stacksave/stackrestore pair, so don't do that. <rdar://problem/10352360> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
513b1f47c1ddef0638bd63399bf64965e592c2bf |
|
15-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Fix indvars randomness by removing iteration over a map. I rewrote the algorithm a while back so it doesn't require map lookup, but neglected to change the data structure. This was caught by llvm-gcc self host, not because there's anything special about llvm-gcc, but because it is the only test for nondeterminism we currently have. Unit tests don't work well for everything; we should always try to have a nondeterminism stress test running. Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
204494149b6f846e8f173f525b129f5508076049 |
|
11-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Move replaceCongruentIVs into SCEVExapander and bias toward "expanded" IVs. Indvars previously chose randomly between congruent IVs. Now it will bias the decision toward IVs that SCEVExpander likes to create. This was not done to fix any problem, it's just a welcome side effect of factoring code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
909ef7db3dad5247648e1e89a34f1382815442b8 |
|
28-Sep-2011 |
Andrew Trick <atrick@apple.com> |
indvars should hoist [sz]ext because licm is not rerun. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b0598b14aa011a18e6a760e448741f62018fb4a3 |
|
15-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Reapply r139759. Disable IV rewriting by default. See PR10916. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
effb64715490e7680964a723d56a0e793a13f04b |
|
13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[indvars] Revert r139579 until 401.bzip -arch i386 miscompilation is fixed. PR10920. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
dd9d758a315e69798c8e36ed5c8b4a23e4585274 |
|
13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Disable IV rewriting by default. See PR10916. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
94f2c23d24b3ca682ea192f1d9a4e2c2e0f4eeb3 |
|
13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[indvars] Fix bugs in floating point IV range checks noticed by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f21bdf4f429223bcd76bf0198295a7ddbe7a1fdf |
|
12-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
20151da8c38287b9fa181e9fef93f70bc2cd9fd2 |
|
10-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations better. Don't immediately give up when an add operation can't be trivially sign/zero-extended within a loop. If it has NSW/NUW flags, generate a new expression with sign extended (non-recurrent) operand. As before, if SCEV says that all sign extends are loop invariant, then we can widen the operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
39d7802224532c075f4c781c3e51ffed83d17420 |
|
09-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Comment formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
75ebc0ec2019f391648d3bc3bac6f6da11cfbabd |
|
06-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Add -verify-indvars for imperfect SCEV trip count verification after indvars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
2b18881185b123e5f163eb7b32b3452fc3f339d8 |
|
26-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't sink landingpad instructions during ind-var simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b05fdd6babada25da2ec3ba54bb462c2ecfc42a8 |
|
24-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Use getFirstInsertionPt instead of getFirstNonPHI so that it skips to the proper insertion place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bddb7f82103deb226baa6793f41c5961661167e7 |
|
10-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Cleanup. Make ScalarEvolution an explicit argument of the SimplifyIndVar utility since it is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
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/lib/Transforms/Scalar/IndVarSimplify.cpp
|
06988bcf6a5c74e81cf7e76f06a686aa822ec00a |
|
06-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Made SCEV's UDiv expressions more canonical. When dividing a recurrence, the initial values low bits can sometimes be ignored. To take advantage of this, added FoldIVUser to IndVarSimplify to fold an IV operand into a udiv/lshr if the operator doesn't affect the result. -indvars -disable-iv-rewrite now transforms i = phi i4 i1 = i0 + 1 idx = i1 >> (2 or more) i4 = i + 4 into i = phi i4 idx = i0 >> ... i4 = i + 4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a305fe75450348677a228f7d0f1cc53b2504b562 |
|
21-Jul-2011 |
Andrew Trick <atrick@apple.com> |
Cleanup: make std::pair usage slightly less indecipherable without actually naming variables! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c30a38f34bdfecb99ce49e3ffa479039c9bf0209 |
|
21-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
move tier out of an anonymous namespace, it doesn't make sense to for it to be an an anon namespace and be in a header. Eliminate some extraenous uses of tie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
626f52d43df67c29b156f524551327d741ef80bf |
|
20-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Fix a GCC warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
86c98145b268a0d10e062792f98bc8eea6b639b4 |
|
20-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added getInsertPointForUses to find a valid place to truncate the IV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
13bcf2e68a88cb87378c9773effa5b79b3091d75 |
|
20-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: Add NarrowIVDefUse to cache def-use info. Holding Use* pointers is bad form even though it happened to work in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f22d95749a876975329f6de3a233031171af26a6 |
|
20-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite fix: derived GEP IVs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
41e0d4e788eb473ea2ac9f086f51fd7e11882430 |
|
18-Jul-2011 |
Andrew Trick <atrick@apple.com> |
Compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fc933c073e9357a791c0f6b307355ed735e3557f |
|
18-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: LinearFunctionTestReplace for non-canonical IVs. For -disable-iv-rewrite, perform LFTR without generating a new "canonical" induction variable. Instead find the "best" existing induction variable for use in the loop exit test and compute the final value of that IV for use in the new loop exit test. In short, convert to a simple eq/ne exit test as long as it's cheap to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f6a0dbaaf4f68f8e948a818135b9272776b8a52f |
|
18-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added verification that LFTR and other indvars goodness does not interfere with BackedgeTakenCount computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5241b79ebc3ec10469dab49a24e4ed3a8b4c3fa5 |
|
18-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added isHighCostExpansion. Avoid generating extra ops in the preheader for the sole purpose of LFTR, since LFTR itself is usually not a clear optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5614769d557600fda3cf73b481581fe32fbff258 |
|
16-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: fix a pass-sensitivity issue that would hit the SCEVExpander assertion I added in r135333. Check for the existence of a preheader before expanding a recurrence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6f684b0becc4c1b2ece3ec6dcecf30b19343128d |
|
16-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: remove ExprToIVMap because it won't be needed by LFTR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1a54bb28c79d5fc5b1c4e7fb0273ccb6a92c74e0 |
|
12-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Code reorganization in preparation for LinearFunctionTestReplace rewrite. No functionality. I've been wanting to group the indvar subphases into sections and order them by their logical sequence. My next checkin adds functions related to LFTR, and doing the reorg now should help reviewers. Since, most of the code in IndVarSimplify.cpp has recently been replaced or will be replaced soon, obscuring blame should not be an issue. This seems like an ideal time to shuffle the code around. I'm happy to take more suggestions for cleaning up the code. Or if you've been wanting to cleanup anything in this file yourself, now is a good time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
17f91d21a764603b9c482338e929390565f3bb72 |
|
06-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: ExprToMap lives in Pass data, so be more careful about referencing values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
037d1c0c7e01cefeff7e538682c9a1e536e14030 |
|
06-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: Added SimplifyCongruentIVs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c5ecbdc1896f1cc089372feef3191ace2f840898 |
|
05-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Preserve debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e0dc2faaa0105c9d1cc56f0b70e93d532a6f8c4c |
|
05-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: avoid multiple IVs in weird cases. Putting back the helper that I removed on 7/1 to do this right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4b02915386046fa882a95553a7457ae7d05e9f27 |
|
02-Jul-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: bug fix involving weird geps and related cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6e0ce24e0ca8b0dc05872b9b4cec3a18972bee40 |
|
30-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: handle cloning binary operators that cannot overflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
60ac719c85366da04852c204aea5aa86d66dbb07 |
|
30-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: handle an edge case involving identity phis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cc359d9fa28a871b18d93da76fd9cf516499e39f |
|
30-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: insert new trunc instructions carefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
11745d4c0276ccb5c64f83d6954b54c8ff2aec98 |
|
29-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: just because SCEV ignores casts doesn't mean they can be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
99a92f67c7ee0d428e18f35c91311a2baba6c03e |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
cleanup: misleading comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5e7645be4c9dd2193add44d30b5fef8036d7a3ce |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
SCEVExpander: give new insts a name that identifies the reponsible pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
15832f61775040995bb8aa6056176425bc2c9088 |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars --disable-iv-rewrite: Defer evaluating s/zext until SCEV evaluates all other IV exprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
156d460c758463eb407590cba2371857daf27d8a |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: run RLEV after SimplifyIVUsers for a bit more control over the order SCEVs are evaluated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a098bf1239ca1769c93de52324d2b73adedad7b8 |
|
22-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Set debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
2fabd464ae9fd33f068066e3fc3d0caa7ea2279d |
|
21-Jun-2011 |
Andrew Trick <atrick@apple.com> |
indvars -disable-iv-rewrite: Adds support for eliminating identity ops. This is a rewrite of the IV simplification algorithm used by -disable-iv-rewrite. To avoid perturbing the default mode, I temporarily split the driver and created SimplifyIVUsersNoRewrite. The idea is to avoid doing opcode/pattern matching inside IndVarSimplify. SCEV already does it. We want to optimize with the full generality of SCEV, but optimize def-use chains top down on-demand rather than rewriting the entire expression bottom-up. This was easy to do for operations that SCEV can prove are identity function. So we're now eliminating bitmasks and zero extends this way. A result of this rewrite is that indvars -disable-iv-rewrite no longer requires IVUsers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fcdc9a44e59ff2846c6f929e91c90ee34e6ba5d5 |
|
26-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: incremental fixes for -disable-iv-rewrite and testcases. Use a proper worklist for use-def traversal without holding onto an iterator. Now that we process all IV uses, we need complete logic for resusing existing derived IV defs. See HoistStep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
03d3d3b361800f28c75d3386978d22e6d57744b7 |
|
25-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: fixed IV cloning in -disable-iv-rewrite mode with associated cleanup and overdue test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
074397d75e0bf919995f9cf0005fa6fda1c0400c |
|
20-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: minor cleanup in preparation for sign/zero extend elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
14ba1ff133bc891869eef9ebb28095062ed71e77 |
|
13-May-2011 |
Andrew Trick <atrick@apple.com> |
Convert SimplifyIVUsers into a worklist instead of a single pass over the users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
aeee4616dd12d58fd8d040ab00277747f0312321 |
|
12-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added SimplifyIVUsers. Interleave IV simplifications. Currently involves EliminateComparison and EliminateRemainder. Next I'll add EliminateExtend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
4dfdf242c1917e98f407818eb5b68ae0b4678f26 |
|
04-May-2011 |
Andrew Trick <atrick@apple.com> |
indvars: Added canExpandBackEdgeTakenCount. Only create a canonical IV for backedge taken count if it will actually be used by LinearFunctionTestReplace. And some related cleanup, preparing to reduce dependence on canonical IVs. No significant effect on x86 or arm in the test-suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
88e92cf16b92ec609e2700bcf4d184d0c3cac202 |
|
28-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Reapply r130340: Fix for PR9730. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a7707ae19ab5f47d9dffb1d8e07a090e948a1a39 |
|
28-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Reverting r130340 in the unlikely event that it's responsible for a llvm-gcc stage2 compiler error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
685f07fac2754f98f5273f3a9a32da27027c2172 |
|
28-Apr-2011 |
Andrew Trick <atrick@apple.com> |
Fixes PR9730: indvars: An asserting value handle still pointed to this value Modified LinearFunctionTestReplace to push the condition on the dead list instead of eagerly deleting it. This can cause unnecessary IV rewrites, which should have no effect on codegen and will not be an issue once we stop generating canonical IVs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3ecfc861b4365f341c5c969b40e1afccde676e6f |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d8b4fb4aab4d6fedb2b14bed1b846451b17bde7c |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
(Almost) always call reserveOperandSpace() on newly created PHINodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f3e6774880762674dc845b25dbf01ad212f21d03 |
|
18-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Remove TargetData and ValueTracking includes. I didn't mean for them to sneak in my last checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b12a754cce0c1d5542af605203a47820edba454d |
|
18-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Added isValidRewrite() to check the result of ScalarEvolutionExpander. SCEV may generate expressions composed of multiple pointers, which can lead to invalid GEP expansion. Until we can teach SCEV to follow strict pointer rules, make sure no bad GEPs creep into IR. Fixes rdar://problem/9038671. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ead71d59a7685fbbbb92162556680abd9001d37b |
|
18-Mar-2011 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f1859891b7bef1ac8d5cea100f152aeb5783c3b3 |
|
09-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
reduce indentation. Print <nuw> and <nsw> when dumping SCEV AddRec's that have the bit set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
17ead4ff4baceb2c5503f233d0288d363ae44165 |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Move SCEV::isLoopInvariant and hasComputableLoopEvolution to be member functions of ScalarEvolution, in preparation for memoization and other optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
ea4894a7fcfb8946d1f7b1301aef98f7f6c9f251 |
|
18-Sep-2010 |
Gabor Greif <ggreif@gmail.com> |
do not rely on the implicit-dereference semantics of dyn_cast_or_null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
96f1d8ebdd33b3f9bdb3b1163f36072c68599f42 |
|
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
mass elimination of reliance on automatic iterator dereferencing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
43ef3fbae12c7924a25df4563d86084973db9c67 |
|
20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Remember that the induction variable is always a PHINode and use getIncomingValueForBlock instead of LoopInfo::getCanonicalInductionVariableIncrement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7656018c2268285907cfdc106071462a01a73878 |
|
09-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a52838285b6dce66821f0b272cb3479af8c3edb2 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Disable indvars on loops when LoopSimplify form is not available. This fixes PR7333. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
deff621abdd48bd70434bd4d7ef30f08ddba1cd8 |
|
04-May-2010 |
Dan Gohman <gohman@apple.com> |
Use getConstant instead of getIntegerSCEV. The two are basically the same, now that getConstant has overloads consistent with ConstantInt::get. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a590b79ee227b93c59f60ce1f54cae7a9ebec7c1 |
|
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Teach IndVarSimplify how to eliminate remainder operators where the numerator is an induction variable. For example, with code like this: for (i=0;i<n;++i) x[i%n] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ca9b7037e28759c200fe5ca98190cabd121a1bba |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Suppress LinearFunctionTestReplace when the computed backedge-taken expression is a UDiv and it doesn't appear that the UDiv came from the user's source. ScalarEvolution has recently figured out how to compute a tripcount expression for the inner loop in SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a udiv instruction dramatically slows down the enclosing loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d890f29ca6b467203db9fa63aa558eff86046c84 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Move the EliminateIVUsers call back out to its original location. Now that a ScalarEvolution bug with overflow handling is fixed, the normal analysis code will automatically decline to operate on the icmp instructions which are responsible for the loop exit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
dd842e34c8e133e3d36418c0d351034db52a05a7 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons, instead of deleting just the user. This makes it more consistent with other code in IndVarSimplify, and theoretically can eliminate more users earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
931e345e76e75391d2a7c96530e305f802b5429d |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Re-apply r101000, with a fix: Don't eliminate an icmp which is part of the loop exit test. This usually doesn't come up for a variety of reasons, but it isn't impossible, so make IndVarSimplify handle it conservatively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ac3b9cdf151264091bc92a87adeafc665bf183a4 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Revert 101000, which is breaking self-host builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3fddbb337dd5d8de5317df62e8027a6dcd778e73 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Teach IndVarSimplify how to eliminate comparisons involving induction variables. For example, with code like this: for (i=0;i<n;++i) if (i<n) x[i] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the if. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3948d0b8b0a71fabf25fceba1858b2b6a60d3d00 |
|
11-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Rename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasise that it's only testing for the entry condition, not full loop-invariant conditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
d52c072777b9c9a9df9041b8b6cd199df7e43394 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
require that the branch being controlled by the IV exits the loop. With this information we can guarantee the iteration count of the loop is bounded by the compare. I think this xforms is finally safe now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
96fd76638b6be492c5e470c3b9d5ca12628be5a9 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add integer overflow check for the fp induction variable checker. Amusingly, we already had tests that we should have rejects because they would be miscompiled in the testsuite. The remaining issue with this is that we don't check that the branch causes us to exit the loop if it fails, so we don't actually know if we remain in bounds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bbb91498da1a4dc77332bf93d7c13060f0c63a70 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add a comment and fix some consistency issues, converting to a signed vs unsigned value depending on the sign of the constant fp means that we can't distinguish between a truly negative number and a positive number so large the 32nd bit is set. So, do don't this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
43b85273ee11536c81b14dca0114cd8b9407db8e |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6761, a miscompilation due to the fp->int IV conversion stuff. More bugs remain though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a40e4a0c8abbfe55d25a77e4e98508e43ed1c3ae |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
just eliminate the uitofp checks. This code isn't doing the required validity checks in the first place, and supporting a condition large enough to require the 32'nd bit isn't worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c91961e31b2a1cae655928e20b83cb6a457fdcd4 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename PH -> PN to be consistent with WeakPN and the rest of llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
70c0d4f7eb9c14bccc8a585be4086712e46bfbdb |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
improve comment and drop a dead check. If PH had no uses, it would have been deleted by RecursivelyDeleteTriviallyDeadInstructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9698c1985f8b4f461a01a908be60f9fd14a342ec |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
strength reduce a ridiculous use of APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ca703bd56ba1f717b3735c6889334c319ca005b1 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename stuff improve comment grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fa405af58a69301026917a47053c9eb28596c55f |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
simplify some code and resolve a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c4f7e8061de19172d4c3f70a80447505b792e450 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
There is no guarantee that the increment and the branch are in the same block. Insert the new increment in the correct location. Also, more cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
07aa76ad939e053c1992a03cbcb16aff74f26651 |
|
03-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
first half of a pass through IndVarSimplify::HandleFloatingPointIV, this cleans up a bunch of code and also fixes several crashes and miscompiles. More to come unfortunately, this optimization is quite broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d7bfd0028b273f2e3935e8c7ff95db6fa2b21789 |
|
02-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Manually notify ScalarEvolution before making an operand replacement, since it can't currently observe such changes automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
87a10f5b2fc26e418a7bde45136843aac4c7a7e6 |
|
23-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Skip debugging intrinsics when sinking unused invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
472fdf7090bb00af3a3f9dcbe22263120a527533 |
|
20-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Clear the SCEVExpander's insertion point after making deletions, so that the SCEVExpander doesn't retain a dangling pointer as its insert position. The dangling pointer in this case wasn't ever used to insert new instructions, but it was causing trouble with SCEVExpander's code for automatically advancing its insert position past debug intrinsics. This fixes use-after-free errors that valgrind noticed in test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and test/Transforms/IndVarSimplify/exit_value_tests.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7b9f6b1b21bc0b06f3c72beae51e9db631319503 |
|
15-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Skip debug info intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
85669637139089eaed8def1583ac04266c9654e2 |
|
25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make LoopSimplify change conditional branches in loop exiting blocks which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip counts for loops. Teach ScalarEvolution to recognize single-value PHIs, when safe, and ForgetSymbolicName to forget such single-value PHI nodes as apprpriate in ForgetSymbolicName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
2444080ca4f1f63d647272650aae874360c604cd |
|
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
This cast<Instruction> is unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
45a2d7d44ae697e28df383d31455145fb754ac58 |
|
19-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
recommit 96626, evidence that it broke things appears to be spurious git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
efd9e9505167a398ba3c4924b09a47bd4d688e51 |
|
19-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 96626, which causes build failure on ppc Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
aa11defd1c66dbde0c757c99791c4ae4d740fc3e |
|
19-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Indvars needs to explicitly notify ScalarEvolution when it is replacing a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that loop. This fixes PR6339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
814f2b2d1927a5397c0e923588527277b9f67d6b |
|
18-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Hoist this loop-invariant logic out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
|
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
f451cb870efcf9e0302d25ed05f4cac6bb494e42 |
|
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
9fff2187a21f765ed87a25c48552a6942450f3e2 |
|
05-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Set Changed properly after calling DeleteDeadPHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f67ef318aa29e7cc0c7de76349881959936d9eee |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Scalar/IndVarSimplify.cpp
|
03e896bd6073efc4523d8bcd0239d6ed62126db7 |
|
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Update various Loop optimization passes to cope with the possibility that LoopSimplify form may not be available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4c7279ac726e338400626fca5a09b5533426eb6a |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename forgetLoopBackedgeTakenCount to forgetLoop, because it clears out more information than just the stored backedge taken count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
50b6e33584f4e4cf75c7795b1f1a90731861c825 |
|
27-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Factor out redundancy from clone() implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6776064d190701c5bae4d5403939eed2e480d1cd |
|
27-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Instruction::clone does not need to take an LLVMContext&. Remove that and update all the callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3e8b6631e67e01e4960a7ba4668a50c596607473 |
|
02-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
76f497a351c562f366b5e93c27d3f1652fb48ff4 |
|
25-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Special-case static allocas in IndVarSimplify's loop invariant sinking code, since they are special. If the loop preheader happens to be the entry block of a function, don't sink static allocas out of it. This fixes PR4775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
873257723084bad749c1cc13a2d35b35c229942e |
|
17-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix debug output to include a newline after printing a Value, now that Value's operator<< doesn't include one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
460f656475738d1a95a6be95346908ce1597df25 |
|
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getName{Start,End}, the last of the old Name APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
0c77db32dd8ae10b5a26d60718dbe03dc2745888 |
|
16-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Switch invars away from using isTrapping when it really shouldn't be using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5668cf77a77493ec9f2a9b33f08125e885c8e4cf |
|
15-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1b65253da688a0ff0c41b5af185708707fa931c9 |
|
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Require IVUsers after LCSSA, since LCSSA does not preserve IVUsers. This results in the pass manager running IVUsers only once for indvars, instead of twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
65d1e2b6e74fcd370093cbe518ebc15cbc445ad4 |
|
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix indvars to not assume that a loop with a single unique exit block has a single unique exiting block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
333c40096561218bc3597cf153c0a3895274414c |
|
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
d672ecb0178c6247a5eaa5b0fb0c3b23cd25bd7c |
|
03-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Convert the first batch of passes to use LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
62476cceee2dabb65d8370ce33aeb89ae706ebb1 |
|
02-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Request LCSSA after LoopSimplify. This fixes a problem in which the PassManager was scheduling LCSSA before LoopSimplify, which does not preserve LCSSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
de53dc03f5c1549f3176e979bbeeac965dfa5cbc |
|
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
When a value is used multiple times within a single PHI, instructions inserted to replace that value must dominate all of of the basic blocks associated with the uses of the value in the PHI, not just one of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
667d787c0a21cf3f5dfcde03ca471162ba35b614 |
|
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Incorporate the insertion point into the key of SCEVExpander's CSE map. This helps it avoid reusing an instruction that doesn't dominate all of the users, in cases where the original instruction was inserted before all of the users were known. This may result in redundant expansions of sub-expressions that depend on loop-unpredictable values in some cases, however this isn't very common, and it primarily impacts IndVarSimplify, so GVN can be expected to clean these up. This eliminates the need for IndVarSimplify's FixUsesBeforeDefs, which fixes several bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
32a81a3f6d75c5343e7df65ce5d228f2128ca943 |
|
24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
When inserting code into a loop preheader, insert it before the terminator, instead of after the last phi. This fixes a bug exposed by ScalarEvolution analyzing more kinds of loops. This fixes PR4436. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
40a5a1b39ee1cd40ff9d04740386b667fb27b340 |
|
24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Extend ScalarEvolution's multiple-exit support to compute exact trip counts in more cases. Generalize ScalarEvolution's isLoopGuardedByCond code to recognize And and Or conditions, splitting the code out into an isNecessaryCond helper function so that it can evaluate Ands and Ors recursively, and make SCEVExpander be much more aggressive about hoisting instructions out of loops. test/CodeGen/X86/pr3495.ll has an additional instruction now, but it appears to be due to an arbitrary register allocation difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
469f3cdc13851914f3a766cbd8f701cf8431caca |
|
23-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few minor issues that were exposed by the removal of SCEVHandle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
03ad6982c458fd6f982079e11c07419bf17efedc |
|
22-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix this code to correctly handle loops with multiple exits. Until now, this hasn't mattered, because ScalarEvolution hasn't been able to compute trip counts for loops with multiple exits. But it will soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ea73f3c2e14d84bb4cb07bd6a1a3d7915f3aff83 |
|
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Add another item to the list of things that indvars does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4d8414f42033a5e744e8e60d2ca188b424c76168 |
|
13-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical induction variable when the addrec to be expanded does not require a wider type. This eliminates the need for IndVarSimplify to micro-manage SCEV expansions, because SCEVExpander now automatically expands them in the form that IndVarSimplify considers to be canonical. (LSR still micro-manages its SCEV expansions, because it's optimizing for the target, rather than for other optimizations.) Also, this uses the new getAnyExtendExpr, which has more clever expression simplification logic than the IndVarSimplify code it replaces, and this cleans up some ugly expansions in code such as the included masked-iv.ll testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ae3a0be92e33bc716722aa600983fc1535acb122 |
|
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Split the Add, Sub, and Mul instruction opcodes into separate integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
68c9344056e714336a522148e0e468f35035c650 |
|
03-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't attempt to simplify an non-affine IV expression if it can't be simplified to a loop-invariant value. This fixes PR4315. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d594e6f0345b3e1e4b640a7099596ca613da16d6 |
|
25-May-2009 |
Dan Gohman <gohman@apple.com> |
Change ScalarEvolution::getSCEVAtScope to always return the original value in the case where a loop exit value cannot be computed, instead of only in some cases while using SCEVCouldNotCompute in others. This simplifies getSCEVAtScope's callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3d431384f05c9defc84f36eafe220415cc12ee93 |
|
24-May-2009 |
Torok Edwin <edwintorok@gmail.com> |
Move Rewriter.clear() earlier, to avoid triggerring the AssertingVH by one of the RecursivelyDeleteTriviallyDeadInstructions. Add a comment explaining why the cache needs to be cleared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3790fb0c036acaa4db50aff83dd8b3bf51f8af6a |
|
24-May-2009 |
Torok Edwin <edwintorok@gmail.com> |
Instead of clearing the rewriter, don't attempt to rewrite dead phi nodes. Also fix 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
95bdbfa0668cc2b475429fbc6046f364bc01edf7 |
|
24-May-2009 |
Dan Gohman <gohman@apple.com> |
When rewriting the loop exit test with the canonical induction variable, leave the original comparison in place if it has other uses, since the other uses won't be dominated by the new comparison instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
14fba294e1f2d619fe50b72d5fd88da2b17461dd |
|
24-May-2009 |
Dan Gohman <gohman@apple.com> |
When replacing a floating-point comparison with an integer comparison, use takeName to give the integer comparison a name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b679de2a21f5ecbae81b444290d72af93aa5b0b3 |
|
24-May-2009 |
Torok Edwin <edwintorok@gmail.com> |
The rewriter may hold references to instructions that are deleted because they are trivially dead. Fix by clearing the rewriter cache before deleting the trivially dead instructions. Also make InsertedExpressions use an AssertingVH to catch these bugs easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d6d0294e35c120bd2e78198f54caaa3c0f70f9fe |
|
22-May-2009 |
Dan Gohman <gohman@apple.com> |
Teach IndVarSimplify's FixUsesBeforeDefs to handle InvokeInsts by assuming that the use of the value is in a block dominated by the "normal" destination. LangRef.html and other documentation sources don't explicitly guarantee this, but it seems to be assumed in other places in LLVM at least. This fixes an assertion failure on the included testcase, which is derived from the Ada testsuite. FixUsesBeforeDefs is a temporary measure which I'm looking to replace with a more capable solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c2c4cbf7b3a0229cf1804ca9d7c18113f75bab46 |
|
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Remove an irrelevant comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6bfa57b3b3affa6a91645d9b60d84f4ca85f250f |
|
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Trim unneeded #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5be18e84766fb495b0bde3c8244c1df459a18683 |
|
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Teach SCEVExpander to expand arithmetic involving pointers into GEP instructions. It attempts to create high-level multi-operand GEPs, though in cases where this isn't possible it falls back to casting the pointer to i8* and emitting a GEP with that. Using GEP instructions instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that don't use ScalarEvolution, such as BasicAliasAnalysis. Also, make the AddrModeMatcher more aggressive in handling GEPs. Previously it assumed that operand 0 of a GEP would require a register in almost all cases. It now does extra checking and can do more matching if operand 0 of the GEP is foldable. This fixes a problem that was exposed by SCEVExpander using GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bae7d6dbeb842b5ed051c50a87bc282f2dec6e1f |
|
14-May-2009 |
Dale Johannesen <dalej@apple.com> |
Use abs64 in one more place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.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/Transforms/Scalar/IndVarSimplify.cpp
|
35738ac150afafe2359268d4b2169498c6c98c5f |
|
05-May-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply 70645, converting ScalarEvolution to use CallbackVH, with fixes. allUsesReplacedWith need to walk the def-use chains and invalidate all users of a value that is replaced. SCEVs of users need to be recalcualted even if the new value is equivalent. Also, make forgetLoopPHIs walk def-use chains, since any SCEV that depends on a PHI should be recalculated when more information about that PHI becomes available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f9a77b77c2324b2ca5c644909ebda387daf82fe3 |
|
03-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert r70645 for now; it's causing a variety of regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
db6fa2964176c34f0e878e101427c28782c93419 |
|
02-May-2009 |
Dan Gohman <gohman@apple.com> |
Convert ScalarEvolution to use CallbackVH for its internal map. This makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessary. It also makes ValueDeletionListener unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d908adf2ec0dc774ac95441e755ce3fea94ce329 |
|
28-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Remove an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
617d108a639b29015da2dbf0e54f61bd39c3c33c |
|
27-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4086, a bug in FP IV elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
752ec7da506f5d41c08bd37e195750b57550ce68 |
|
23-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Change SCEVExpander's expandCodeFor to provide more flexibility with the persistent insertion point, and change IndVars to make use of it. This fixes a bug where IndVars was holding on to a stale insertion point and forcing the SCEVExpander to continue to use it. This fixes PR4038. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9c159499675228990ffa5a169914ce30a455442f |
|
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make sure both operands have binary instructions have the same type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a8d4d7fe47460313e6aaf5cbb73d4bc892202988 |
|
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
A few more places where the check of use_empty is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1abe64663e0865cf9bdc23de734df49acea2b0d4 |
|
23-Apr-2009 |
Evan Cheng <evan.cheng@apple.com> |
Avoid deferencing use_begin() if value does not have a use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
af79fb5f47b0088c6a8973a7fdbaea96973a429d |
|
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Introduce encapsulation for ScalarEvolution's TargetData object, and refactor the code to minimize dependencies on TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
890f92b744fb074465bc2b7006ee753a181f62a4 |
|
18-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Use more const qualifiers with SCEV interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
2d1be87ee40a4a0241d94448173879d9df2bc5b3 |
|
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Expand GEPs in ScalarEvolution expressions. SCEV expressions can now have pointer types, though in contrast to C pointer types, SCEV addition is never implicitly scaled. This not only eliminates the need for special code like IndVars' EliminatePointerRecurrence and LSR's own GEP expansion code, it also does a better job because it lets the normal optimizations handle pointer expressions just like integer expressions. Also, since LLVM IR GEPs can't directly index into multi-dimensional VLAs, moving the GEP analysis out of client code and into the SCEV framework makes it easier for clients to handle multi-dimensional VLAs the same way as other arrays. Some existing regression tests show improved optimization. test/CodeGen/ARM/2007-03-13-InstrSched.ll in particular improved to the point where if-conversion started kicking in; I turned it off for this test to preserve the intent of the test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c671d892ab1d3d8fed18a61f66f3f3a86e73ebd9 |
|
16-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Eliminate zext over (iv | const) or (signed iv), and sext over (iv | const), if a longer iv is available. Allow expressions to have more than one zext/sext parent. All from OpenSSL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d3325d289736dec93c37f24bffd63cb91b643b87 |
|
15-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Eliminate zext over (iv & const) or ((iv+const)&const) if a longer iv is available. These subscript forms are not common; they're a bottleneck in OpenSSL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
dd1f9e4bf6e7d427fd581728f3d2e431e12e6e71 |
|
15-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Enhance induction variable code to remove the sext around sext(shorter IV + constant), using a longer IV instead, when it can figure out the add can't overflow. This comes up a lot in subscripting; mainly affects 64 bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
46bdfb0e6bb9de86b19562fc52fddefd7014cf73 |
|
24-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount, to more accurately describe what it does. Expand its doxygen comment to describe what the backedge-taken count is and how it differs from the actual iteration count of the loop. Adjust names and comments in associated code accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
15cab2817b8f63fec0148609278bc2c1e05abb50 |
|
24-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Back out the change in 64918 that used sign-extensions when promoting trip counts that use signed comparisons. It's not obviously the best approach for preserving trip count information, and at any rate there isn't anything in the tree right now that makes use of that, so for now always using zero-extensions is preferable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
474cecf0e9bca95ab7091a341784550c7eb1e887 |
|
23-Feb-2009 |
Dan Gohman <gohman@apple.com> |
IndVarSimplify preserves ScalarEvolution. In the -std-compile-opts sequence, this avoids the need for ScalarEvolution to be rerun before LoopDeletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f5a309e989b8d2199cb542793e9edf48395d9fed |
|
18-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use a sign-extend instead of a zero-extend when promoting a trip count value when the original loop iteration condition is signed and the canonical induction variable won't undergo signed overflow. This isn't required for correctness; it just preserves more information about original loop iteration values. Add a getTruncateOrSignExtend method to ScalarEvolution, following getTruncateOrZeroExtend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cad24c9abc834db5cf8f92019f99370507d8d07a |
|
18-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Simplify by using dyn_cast instead of isa and cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d2067fd730b2b266f5c244d5871a244b534e10ea |
|
18-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a corner case in the new indvars promotion logic: if there are multiple IV's in a loop, some of them may under go signed or unsigned wrapping even if the IV that's used in the loop exit condition doesn't. Restrict sign-extension-elimination and zero-extension-elimination to only those that operate on the original loop-controlling IV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
60f8a63e2502d57e879bf52a4a48505b74fa9716 |
|
17-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Add a method to ScalarEvolution for telling it when a loop has been modified in a way that may effect the trip count calculation. Change IndVars to use this method when it rewrites pointer or floating-point induction variables instead of using a doInitialization method to sneak these changes in before ScalarEvolution has a chance to see the loop. This eliminates the need for LoopPass to depend on ScalarEvolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cafb81337bdf2574049533f5b8a6bc1ed92f1f3e |
|
17-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a575871884b247b0946290876ac7d4657b384cf9 |
|
17-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1a5e936c53acda949afd8fa21b5a837b1d9fede9 |
|
17-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Simplify; fix some 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ebcd4af3878449009e18fbcf77d449985e018877 |
|
16-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Delete this long-commented-out code. The situation it seems to have been written for is no longer relevant with the elimination of signed and unsigned types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
aa03649af255fbbb049f393a2cf7d533da86d951 |
|
14-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Extend the IndVarSimplify support for promoting induction variables: - Test for signed and unsigned wrapping conditions, instead of just testing for non-negative induction ranges. - Handle loops with GT comparisons, in addition to LT comparisons. - Support more cases of induction variables that don't start at 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f108e2eaaa788272a3ced1eef1bbb84f0d03b60c |
|
14-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Clarify debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cd3eb9b09882087761c811d349c2b3be4e5c8a34 |
|
14-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Simplify some code. hasComputableLoopEvolution is overkill in this case. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c2390b14c91764cba6e4394d05e58e387a7dfb19 |
|
12-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Teach IndVarSimplify to optimize code using the C "int" type for loop induction on LP64 targets. When the induction variable is used in addressing, IndVars now is usually able to inserst a 64-bit induction variable and eliminates the sign-extending cast. This is also useful for code using C "short" types for induction variables on targets with 32-bit addressing. Inserting a wider induction variable is easy; the tricky part is determining when trunc(sext(i)) expressions are no-ops. This requires range analysis of the loop trip count. A common case is when the original loop iteration starts at 0 and exits when the induction variable is signed-less-than a fixed value; this case is now handled. This replaces IndVarSimplify's OptimizeCanonicalIVType. It was doing the same optimization, but it was limited to loops with constant trip counts, because it was running after the loop rewrite, and the information about the original induction variable is lost by that point. Rename ScalarEvolution's executesAtLeastOnce to isLoopGuardedByCond, generalize it to be able to test for ICMP_NE conditions, and move it to be a public function so that IndVars can use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
794a7dbce030f93315b1305f83a374232f09bba5 |
|
26-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9bef70609cdee0bf7e641a02a56890610a5a7125 |
|
18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Cast to remove warning about comparing signed and unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
13877bf6c20621541ff71583c626bda68ef09219 |
|
18-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Give SIToFPInst preference over UIToFPInst because it is faster on platforms that are widely used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cd40233429fce385ae4b22301ce705273a6951a1 |
|
18-Nov-2008 |
Devang Patel <dpatel@apple.com> |
While handling floating point IVs lift restrictions on initial value and increment value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
84e3515974407a606289c6e762a0419723b7918f |
|
17-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Handle floating point ivs during doInitialization(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1a6111f32dcc1f4b0bc5993a09af4adb65a23b3f |
|
16-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
eliminate some std::set's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
58d43d4a41b21085c063bdd21a2abb68056e2a6f |
|
03-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Turn floating point IVs into integer IVs where possible. This allows SCEV users to effectively calculate trip count. LSR later on transforms back integer IVs to floating point IVs later on to avoid int-to-float casts inside the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
394f0441e06dafca29f0752cf400990a5b8fe4b1 |
|
23-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change create*Pass factory functions to return Pass* instead of LoopPass*. - Although less precise, this means they can be used in clients without RTTI (who would otherwise need to include LoopPass.h, which eventually includes things using dynamic_cast). This was the simplest solution that presented itself, but I am happy to use a better one if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
36a5bf8fd8b32fe749c207f8809ae7d4f66eeb03 |
|
10-Sep-2008 |
Devang Patel <dpatel@apple.com> |
fix white spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d22a849282c45bbf7eb1734c274294d81e49e3a8 |
|
09-Sep-2008 |
Devang Patel <dpatel@apple.com> |
if loop induction variable is always sign or zero extended then extend the type of induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bcc11d2a712b2eb432447ef585be0a33ca58ee2a |
|
05-Sep-2008 |
Devang Patel <dpatel@apple.com> |
Remove unused map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ae73dc1448d25b02cabc7c64c86c64371453dda8 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5a6c448a7ec2292649f73a813136ae709a23c8e0 |
|
06-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Pass the computed iteration count value to RewriteLoopExitValues instead of having it call getIterationCount again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9b78763fce4cb418e7a2e672efb84bac25559b79 |
|
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use Loop::block_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
900872186d57468038726a01290f5cd49a45537c |
|
13-Jun-2008 |
Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> |
Use recently added getTruncateOrZeroExtend method to make the code shorter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
02dea8b39f3acad5de1df36273444d149145e7fc |
|
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to use it instead of duplicating its functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7cbd8a3e92221437048b484d5ef9c0a22d0f8c58 |
|
16-May-2008 |
Gabor Greif <ggreif@gmail.com> |
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
051a950000e21935165db56695e35bade668193b |
|
06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
API changes for class Use size reduction, wave 1. Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
246b2564d3bbbafe06ebf6a67745cd24141b5cb4 |
|
22-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Move the SCEV object factors from being static members of the individual SCEV subclasses to being non-static member functions of the ScalarEvolution class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bc533cd1286ebb393c37a2a8b03079bfc9655585 |
|
10-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Require SCEV before LCSSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b8f74793b9d161bc666fe27fc92fe112b6ec169b |
|
04-Sep-2007 |
David Greene <greened@obbligato.org> |
Update GEP constructors to use an iterator interface to fix GLIBCXX_DEBUG issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b7211a2ce13a0365e0e1dd2f27adda2ee3d1288b |
|
21-Aug-2007 |
Devang Patel <dpatel@apple.com> |
Use SmallVector instead of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
0d7d3656f3d10c510353d69472de4c0c0691b2e6 |
|
27-Jun-2007 |
Zhou Sheng <zhousheng00@gmail.com> |
Fix a bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5cec4db6ae13a41d04d86f37e347fc5b5997c948 |
|
19-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename ScalarEvolution::deleteInstructionFromRecords to deleteValueFromRecords and loosen the types to all it to accept Value* instead of just Instruction*, since this is what ScalarEvolution uses internally anyway. This allows more flexibility for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e19dd875987f8327cd93a502d4a05fc1f37064ee |
|
15-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Use SCEVConstant::get instead of SCEVUnknown::get to create an integer constant SCEV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d19534add90a2a894af61523b830887097bb780b |
|
15-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Add a SCEV class and supporting code for sign-extend expressions. This created an ambiguity for expandInTy to decide when to use sign-extension or zero-extension, but it turns out that most of its callers don't actually need a type conversion, now that LLVM types don't have explicit signedness. Drop expandInTy in favor of plain expand, and change the few places that actually need a type conversion to do it themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5adcefb04d70c3cb493c28bdc48da554f6960cb4 |
|
06-Jun-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Inform ScalarEvolutions that we're deleting Values. This is the obviously correct part of the fix for PR1487. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ecd94c804a563f2a86572dcf1d2e81f397e19daa |
|
06-May-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
|
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
|
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
|
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5ee99979065d75605d150d7e567e4351024aae8f |
|
07-Mar-2007 |
Devang Patel <dpatel@apple.com> |
Now IndVarSimplify is a LoopPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9f3d73886612fd06812fb63cf8e6fa10db9b17e7 |
|
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
make better use of LCSSA information in RewriteLoopExitValues. Before, we would scan the entire loop body, then scan all users of instructions in the loop, looking for users outside the loop. Now, since we know that the loop is in LCSSA form, we know that any users outside the loop will be LCSSA phi nodes. Just scan them. This speeds up indvars significantly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9caed5440d59dac4b388152fe8b993dc0491e5e9 |
|
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Implement PR1179/PR1232 and test/Transforms/IndVarsSimplify/loop_evaluate_[234].ll This makes -indvars require and use LCSSA, updating it as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c9838f25d53d3dd7d38949ef6c28f2505a110f45 |
|
03-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
Make RewriteLoopExitValues far less nested by using continue in the loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cae5754619433aed7be74abbf1c0551a82d369cb |
|
02-Mar-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Prefer non-virtual calls to ConstantInt::isZero over virtual calls to Constant::isNullValue() in situations where it is possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6934a04a8c15e9971cd1ea4d5c8df2d7afdd5be5 |
|
11-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify code by using value::takename git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9133fe28954d498fc4de13064c7d65bd811de02c |
|
06-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fbbe92f5fdcdde9a8eb331c90fff0a3bfb539e2b |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
remove temporary vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
55eb1c47de30a6b4e8707b6392e878e32a6583e9 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate temporary vectors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
42a75517250017a52afb03a0ade03cbd49559fe5 |
|
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger. rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4d5f508318b2f666ed50a2ed5e49e4aa343a92d6 |
|
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate calls to isInteger, generalizing code and tightening checks as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ef60b2c4ed67017a46442903c898bc24ed9a6c91 |
|
12-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a54b7cbd452b3adb2f51346140d996b29c2cdb30 |
|
12-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1064: Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
abaa8ca433a52dc522f6137c01a9552ebec44bb5 |
|
08-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Comparison of primitive type sizes should now be done in bits, not bytes. This patch converts getPrimitiveSize to getPrimitiveSizeInBits where it is appropriate to do so (comparison of integer primitive types). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ee4f13a9046c380725cdeab62d57722db375c473 |
|
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
add -debug output for -indvars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c5b206b6be61d0d933b98b6af5e22f42edd48ad1 |
|
31-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch replaces signed integer types with signless ones: 1. [US]Byte -> Int8 2. [U]Short -> Int16 3. [U]Int -> Int32 4. [U]Long -> Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e4d87aa2de6e52952dca73716386db09aad5a8fd |
|
23-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
0e5f499638c8d277b9dc4a4385712177c53b5681 |
|
19-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Switch over Transforms/Scalar to use the STATISTIC macro. For each statistic converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da |
|
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3da59db637a887474c1b1346c1f3ccf53b6c4663 |
|
27-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9ba46c13bf3d49a5b697227c88ef987951e6b50d |
|
21-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7f8897f22e88271cfa114998a4d6088e7c8e8e11 |
|
28-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate RegisterOpt. It does the same thing as RegisterPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
eb705914924865201f8b8018977d94594b258142 |
|
26-Aug-2006 |
Owen Anderson <resistor@mac.com> |
Add an assertion to check that we're really preserving LCSSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ac123227109303be313c3c4625b152246969e781 |
|
25-Aug-2006 |
Owen Anderson <resistor@mac.com> |
Reapply the indvars patch, since nothing blew up last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b397d81f0339614ff73908ee9ee49bdead1643ad |
|
25-Aug-2006 |
Owen Anderson <resistor@mac.com> |
Revert my previous patch. Since there are some major changes that went in today, I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly tester. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
8a24749cb83acc25742a96d3e60413df283f50dd |
|
25-Aug-2006 |
Owen Anderson <resistor@mac.com> |
Specify that indvars actually preserve LCSSA. This has been done for a while, but I forgot to put in the analysis usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
47a53ac726ceb1ac11bc1326be3fbe095f726b0d |
|
18-Aug-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Fix a grammaro in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c1be492f94da7e53eef408c346b25c551c6bdf07 |
|
14-Jul-2006 |
Owen Anderson <resistor@mac.com> |
Hopefully the final attempt at making IndVars preserve LCSSA. This should fix PR 831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
262041892d7f821a86ea96c0282ff1e53aac1888 |
|
13-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Revert this patch temporarily until PR831 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bcfb913df0def0cb9f866e7811229768334144f3 |
|
12-Jul-2006 |
Owen Anderson <resistor@mac.com> |
IndVars now (correctly) preserves LCSSA form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4a8aadd1f5f9b67248ddb6780d9275b2fb0744e0 |
|
11-Jul-2006 |
Owen Anderson <resistor@mac.com> |
Revert my indvars changes because they were breaking things. Unfortunately this didn't start showing up until after the recent instcombine fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f9b238e93de0137510d4369015801e372ab0f879 |
|
27-Jun-2006 |
Owen Anderson <resistor@mac.com> |
De-pessimize the handling of LCSSA Phi nodes in IndVarSimplify. Hopefully this will make Shootout-C/nestedloop faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
eb83f4e6cd00c50989f14ba41857f6b9e42b9e5e |
|
17-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix IndVarsSimplify/2006-06-16-Indvar-LCSSA-Crash.ll, a case where a "LCSSA" phi node causes indvars to break dominance properties. This fixes causes indvars to avoid inserting aggressive code in this case, instead indvars should be fixed to be more aggressive in the face of lcssa phi's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1730078d5f553d7516a06e098e6c2089dc8bef9c |
|
18-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a crash building 176.gcc due to my recent patch, which only fixed half the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ceda605fd7d0e3532a22743538c6d118fe5e40c1 |
|
17-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
This was checking the wrong GEP expression. Fixing this fixes a gccas crash compiling mysql reported by Ted Kremenek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cda9ca5a4fed09ea3788b572dbddabf2a5a7a5d9 |
|
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow indvar simplify to canonicalize ANY affine IV, not just affine IVs with constant stride. This implements Transforms/IndVarsSimplify/variable-stride-ivs.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
36f891bdf6cf38fcc655a0930ca18664e18518d4 |
|
30-Jul-2005 |
Nate Begeman <natebegeman@mac.com> |
Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that other passes may use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4bd09d70cceb3851f7eb1c2f98338b3071d405f3 |
|
15-Jun-2005 |
Chris Lattner <sabre@nondot.org> |
Fix PR582. The rewriter can move casts around, which invalidated the BB iterator. This fixes Transforms/IndVarsSimplify/2005-06-15-InstMoveCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
8a7980b5eae56a741cced6993a98d94d2c617318 |
|
14-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the second bug attached to PR504. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f6249261a9467cb93c4ccf5ae24798e2977db5a0 |
|
12-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix for testcase Transforms/IndVarsSimplify/2005-02-11-InvokeCrash.ll and PR504. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721 |
|
27-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Convert 'struct' to 'class' in various places to adhere to the coding standards and work better with VC++. Patch contributed by Morten Ofstad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
989cbd58fb769e920fbf15b6a0fe0888aed553c9 |
|
12-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a REALLY obscure bug in my previous checkin, which was splicing the END marker from one ilist into the middle of another basic block! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a4b9c7841f94b6a3a2ba6c562b5dc4f4de02c637 |
|
12-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Handle a common case more carefully. In particular, instead of transforming pointer recurrences into expressions from this: %P_addr.0.i.0 = phi sbyte* [ getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), %entry ], [ %inc.0.i, %no_exit.i ] %inc.0.i = getelementptr sbyte* %P_addr.0.i.0, int 1 ; <sbyte*> [#uses=2] into this: %inc.0.i = getelementptr sbyte* getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), int %inc.0.i.rec Actually create something nice, like this: %inc.0.i = getelementptr [8 x sbyte]* %.str_1, int 0, int %inc.0.i.rec git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4b5015604908e9296800991a7c538a255356428f |
|
20-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Prototype these functions more accurately git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
2da5c3dda6f5b9c4ec6d55008d33327764364bd4 |
|
15-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Convert code to compile with vc7.1. Patch contributed by Paolo Invernizzi. Thanks Paolo! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
595ee7ec26432e4804f1e71817d9cf9b1f86318d |
|
26-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Throttle back indvar substitution from creating multiplies in loops. This is bad bad bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a25502acd7c0d56cbd20da37f25830d81be834c5 |
|
24-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Two fixes. First, stop using the ugly shouldSubstituteIndVar method. Second, disable substitution of quadratic addrec expressions to avoid putting multiplies in loops! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c5c5e6afe584ffbd2bf2ce755e65bc89f170053a |
|
20-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Make use of BinaryOperator::create* methods to shrinkify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
2b994c7206b3872d908468fc926ba8db483cf0a3 |
|
19-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty bug, noticed by Reid git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4a7553e2da506a718f59869c03c5ce113eb40f7a |
|
23-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Move the scev expansion code into this pass, where it belongs. There is still room for cleanup, but at least the code modification is out of the analysis now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b4782d13d1444d9d18c0a681292cf0d0a32cf3ef |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Disable a previous patch that was causing indvars to loop infinitely :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fcb81f5f4cbac61851b7dec403961cf88e614aa1 |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Fix an extremely serious thinko I made in revision 1.60 of this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1363e85df74627530ceede53280613c62a4cdbe3 |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Implement a todo, rewriting all possible scev expressions inside of the loop. This eliminates the extra add from the previous case, but it's not clear that this will be a performance win overall. Tommorows test results will tell. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5d461d20aea308471f2a31b718a274bfee28b60c |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Implement a fixme. The helps loops that have induction variables of different types in them. Instead of creating an induction variable for all types, it creates a single induction variable and casts to the other sizes. This generates this code: no_exit: ; preds = %entry, %no_exit %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=4] *** %j.0.0 = cast uint %indvar to short ; <short> [#uses=1] %indvar = cast uint %indvar to int ; <int> [#uses=1] %tmp.7 = getelementptr short* %P, uint %indvar ; <short*> [#uses=1] store short %j.0.0, short* %tmp.7 %inc.0 = add int %indvar, 1 ; <int> [#uses=2] %tmp.2 = setlt int %inc.0, %N ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1] br bool %tmp.2, label %no_exit, label %loopexit instead of: no_exit: ; preds = %entry, %no_exit %indvar = phi ushort [ %indvar.next, %no_exit ], [ 0, %entry ] ; <ushort> [#uses=2] *** %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ] ; <uint> [#uses=3] %indvar = cast uint %indvar to int ; <int> [#uses=1] %indvar = cast ushort %indvar to short ; <short> [#uses=1] %tmp.7 = getelementptr short* %P, uint %indvar ; <short*> [#uses=1] store short %indvar, short* %tmp.7 %inc.0 = add int %indvar, 1 ; <int> [#uses=2] %tmp.2 = setlt int %inc.0, %N ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 *** %indvar.next = add ushort %indvar, 1 br bool %tmp.2, label %no_exit, label %loopexit This is an improvement in register pressure, but probably doesn't happen that often. The more important fix will be to get rid of the redundant add. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f1ab4b4eac5603d19c20f4a508f93a118a52bdd5 |
|
19-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Change the ExitBlocks list from being explicitly contained in the Loop structure to being dynamically computed on demand. This makes updating loop information MUCH easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
20aa098ba694aa7e3f5fb5a52d22dba7c1e857ae |
|
17-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
If the loop executes a constant number of times, try a bit harder to replace exit values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f50af088f19f525f3d1026eb61db77e0037a9f43 |
|
17-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Even if there are not any induction variables in the loop, if we can compute the trip count for the loop, insert one so that we can canonicalize the exit condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
006118fe8c73d8009d7952b84cabd50882ed0033 |
|
16-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Fix some of the strange CBE-only failures that happened last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d244057a48660c3cd30d219118ece3f947947790 |
|
15-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the previous checkin: if the exit block is not the same as the back-edge block, we must check the preincremented value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
59fdaeeae8f183e18bb6ad5c382ca23e28e6aaf6 |
|
15-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Change the canonical induction variable that we insert. Instead of producing code like this: Loop: X = phi 0, X2 ... X2 = X + 1 if (X != N-1) goto Loop We now generate code that looks like this: Loop: X = phi 0, X2 ... X2 = X + 1 if (X2 != N) goto Loop This has two big advantages: 1. The trip count of the loop is now explicit in the code, allowing the direct implementation of Loop::getTripCount() 2. This reduces register pressure in the loop, and allows X and X2 to be put into the same register. As a consequence of the second point, the code we generate for loops went from: .LBB2: # no_exit.1 ... mov %EDI, %ESI inc %EDI cmp %ESI, 2 mov %ESI, %EDI jne .LBB2 # PC rel: no_exit.1 To: .LBB2: # no_exit.1 ... inc %ESI cmp %ESI, 3 jne .LBB2 # PC rel: no_exit.1 ... which has two fewer moves, and uses one less register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
40bf8b48cdb9961898dba1bc67320be1e49e3da1 |
|
02-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Rewrite the indvars pass to use the ScalarEvolution analysis. This also implements some new features for the indvars pass, including linear function test replacement, exit value substitution, and it works with a much more general class of induction variables and loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
329c1c6c949d07e3fe9722ec633b4258217fd99d |
|
08-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Improve encapsulation in the Loop and LoopInfo classes by eliminating the getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
15cad759fe2048ac5eb137c6bb0ab7287538677e |
|
23-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
More minor non-functional changes. This now computes the exit condition, though it doesn't do anything with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
500597a1c39e91a3020587318ed61e737b6c613a |
|
22-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Don't mind me, I'm just refactoring away. This patch makes room for LFTR, but contains no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
18b3c97bc773b24a66eb779e85da1820b0f16b31 |
|
22-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement IndVarsSimplify/pointer-indvars.ll, transforming pointer arithmetic into "array subscripts" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3324e718bc9ac2ede08a14c325848b576849542b |
|
22-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fix PR194 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
47df12d80db90e125e9f2ff764286ee11665476d |
|
18-Dec-2003 |
John Criswell <criswell@uiuc.edu> |
Reverted back to previous revision - this was previously merged according to the CVS log messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d000e1dc2f08892aaa8c1bfd96f85f24b9d66cbb |
|
18-Dec-2003 |
John Criswell <criswell@uiuc.edu> |
Merged in RELEASE_11. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
9e45d2e0e8d750ccca58fac3782ab9f821176cf8 |
|
15-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fix for PR185 & IndVarsSimplify/2003-12-15-Crash.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
88369d214f320e888cb0bcb98db10ff8f47602a2 |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
ba4f3f6a419326df190599421fa149c90235cb72 |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification Reorder #includes Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
98bf436e2e2ab463d79c54a42a46b12028905330 |
|
12-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Rename loop preheaders pass to loop simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cf00c4ab3ba308d45d98c5ccab87362cf802facb |
|
10-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
332ae7f501e36d88b1dfdff4f18485ef07663085 |
|
23-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: IndVarsSimplify/2003-09-23-NotAtTop.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a497748fb1a982d85ddef50894abb299c5df5ff2 |
|
12-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Make sure to cannonicalize loops before running indvar simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3adf51d022348b06a1adeef7649fa35928ad9358 |
|
10-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Spelling fixes. I think that "cannonical" is ok, but "canonical" appears to be the canonical form for the word git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c01ccfd503057b60053c5e8bf4175062de7c3740 |
|
10-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Fix up file header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6806f5614d2ec260fda954c951d33f58e77ed610 |
|
02-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
DEBUG got moved to Support/Debug.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
e408e25132b8de8c757db1e3ddcd70432dfeb24d |
|
23-Apr-2003 |
Chris Lattner <sabre@nondot.org> |
Remove unnecesary &*'s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
cb2610ea037a17115ef3a01a6bdaab4e3cfdca27 |
|
21-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to setPreservesCFG to be less confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a92f696b74a99325026ebbdbffd2a44317e0c10b |
|
02-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Updates to work with recent Statistic's changes: * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
2a7c23ef9156a97f426a3fe8d1f5935b75d076d1 |
|
10-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Simplify code (somtimes dramatically), by using the new "auto-insert" feature of instruction constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5e76140536ba66fadeced1cd892f79616f407e3c |
|
10-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
* Clean up code a little bit * Fix bug: test/Regression/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5f0eb8da62308126d5b61e3eee5bee75b9dc5194 |
|
08-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
- Cleaned up the interface to AnalysisUsage to take analysis class names instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a59cbb2043c08f3cfb8fb379f0d336e21e070be8 |
|
27-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
* Standardize how analysis results/passes as printed with the print() virtual methods * Eliminate AnalysisID: Now it is just a typedef for const PassInfo* * Simplify how AnalysisID's are initialized * Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into the analyses themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
a6275ccdf5e1aa208afde56c498e2b13e16442f0 |
|
26-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
* Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f629309f74cf1a64aa7fd1cd5784fd7db9a8f59e |
|
23-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3e009942ed6d5b075377ea8eb34c2daa8d8c5f77 |
|
30-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
5ba99bd124dc18302f527d6e2b0efd0fa866bc9e |
|
25-Jun-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
changes to make it compatible with 64bit gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
7e70829632f82de15db187845666aaca6e04b792 |
|
25-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
MEGAPATCH checkin. For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f016ea4ff80c56c467247a90567dd07bddb590f3 |
|
22-May-2002 |
Chris Lattner <sabre@nondot.org> |
Use the new DEBUG(x) macro to allow debugging code to be enabled on the commandline git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3dec1f272219ee1f8e1499929cdf53f5bc3c2272 |
|
10-May-2002 |
Chris Lattner <sabre@nondot.org> |
Add support for printing out statistics information when -stats is added to the command line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
022103b3f33febb7e54b8fdf2c9bc461eea78cba |
|
07-May-2002 |
Chris Lattner <sabre@nondot.org> |
Merge all individual .h files into a single Scalar.h file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
c6f3ae5c66c8e0dab6a2bd9601d0e253ef9ba794 |
|
29-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate duplicate or unneccesary #include's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
96c466b06ab0c830b07329c1b16037f585ccbe40 |
|
29-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Add new optional getPassName() virtual function that a Pass can override to make debugging output a lot nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
97e52e43361e77963145b95a576db11b4d14d309 |
|
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
31bcdb822fe9133b1973de51519d34e5813a6184 |
|
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Split ConstantVals.h into Constant.h and Constants.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1b7f7dc4b45a900fae2e9b062d588a995935727a |
|
28-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes to the global namespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
f57b845547302d24ecb6a9e79d7bc386f761a6c9 |
|
27-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
* Rename MethodPass class to FunctionPass - Rename runOnMethod to runOnFunction * Transform getAnalysisUsageInfo into getAnalysisUsage - Method is now const - It now takes one AnalysisUsage object to fill in instead of 3 vectors to fill in - Pass's now specify which other passes they _preserve_ not which ones they modify (be conservative!) - A pass can specify that it preserves all analyses (because it never modifies the underlying program) * s/Method/Function/g in other random places as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
1a18b7cf805fc6bfc6dc44fb66799ad577d57213 |
|
27-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
Change Constant::getNullConstant to Constant::getNullValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
237e6d10f24863cf48821b601b4164794e89d847 |
|
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
s/Method/Function Remove extraneous #includes of llvm/Assembly/Writer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
bd0ef77cde9c9e82f2b4ad33e4982c46274d6540 |
|
26-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Change over to use new style pass mechanism, now passes only expose small creation functions in their public header file, unless they can help it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
455889aa79e3463a4b0f2161e3d9d72a683268b6 |
|
12-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into llvm/Support/CFG.h * Make pred & succ iterators for intervals global functions * Add #includes that are now neccesary because BasicBlock.h doesn't include InstrTypes.h anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
221d688a5ef21a22c2368c9fff0e92d7966c95e5 |
|
12-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
Method.h no longer includes BasicBlock.h Method::inst_* is now in llvm/Support/InstIterator.h GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
fcc93d2c0aece88c79648be3b76f98ee9e29e826 |
|
31-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
MethodPass's are now guaranteed to not be run on external methods! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
793c6b80d3e322c3fefb3c7314b054c7880d1691 |
|
31-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Convert xforms over to new pass structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
697954c15da58bd8b186dbafdedd8b06db770201 |
|
20-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Changes to build successfully with GCC 3.02 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
4753bf21a4310a20ee1454e9dce48c87a06e8d27 |
|
05-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Actually return true when a change has been made git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
3bf915f2a296472a6bead0502c88bf74e90ec19b |
|
04-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Fix bugs, don't do external methods which causes segv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
394437ff7eaccfe1de92fe14d0022ca0addf3e41 |
|
04-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Implement induction variable simplification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|
6148c02591bd83da7b957589c4bbf6f9720d503f |
|
03-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of indvar stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
|