dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
2905440bdd9627f202398137aab5ded38f681fc9 |
|
16-Nov-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ScalarEvolution: Warn if the result of setFlags/clearFlags is unused. This was a source of bugs in the past. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3cda2d38851d73eec38d38a46462aaa65de4ef8e |
|
12-Nov-2013 |
Wan Xiaofei <xiaofei.wan@intel.com> |
Change data structure to memorize computed result in ScalarEvolution Replace std::map with SmallVector to memorize the cached result since SCEV usually belongs to little Loop/BB Linear scan on SmallVector is faster than std::map. Code reviewer : Andrew Trick. Test result : Pass Unit Test & LLVM Test Suite 401.bzip2 0.425721 0.419981 101.37% 403.gcc 24.53855 24.2667 101.12% 429.mcf 0.060847 0.059944 101.51% 433.milc 0.646009 0.636119 101.55% 444.namd 1.383928 1.370614 100.97% 445.gobmk 5.836575 5.800225 100.63% 450.soplex 1.911257 1.895963 100.81% 456.hmmer 1.039565 1.032534 100.68% 458.sjeng 0.897401 0.885567 101.34% 464.h264ref 3.645908 3.577991 101.90% 470.lbm 0.049456 0.048398 102.19% 471.omnetpp 5.638575 5.60435 100.61% bitmnp01 0.045738 0.045291 100.99% cjpegv2data 0.304359 0.302833 100.50% idctrn01 0.046433 0.045763 101.46% quake2 4.534416 4.4952 100.87% quake 2.688566 2.659208 101.10% xcsoar 12.42545 12.30385 100.99% linpack 0.038739 0.03803 101.86% matrix01 0.053564 0.0528 101.45% nbench 0.402867 0.395803 101.78% tblook01 0.021265 0.021015 101.19% ttsprk01 0.066384 0.065566 101.25% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
10bb82e54fc0608e6220581bda0405af8f12d32f |
|
06-Nov-2013 |
Andrew Trick <atrick@apple.com> |
Rewrite SCEV's backedge taken count computation. Patch by Michele Scandale! Rewrite of the functions used to compute the backedge taken count of a loop on LT and GT comparisons. I decided to split the handling of LT and GT cases becasue the trick "a > b == -a < -b" in some cases prevents the trip count computation due to the multiplication by -1 on the two operands of the comparison. This issue comes from the conservative computation of value range of SCEVs: taking the negative SCEV of an expression that have a small positive range (e.g. [0,31]), we would have a SCEV with a fullset as value range. Indeed, in the new rewritten function I tried to better handle the maximum backedge taken count computation when MAX/MIN expression are used to handle the cases where no entry guard is found. Some test have been modified in order to check the new value correctly (I manually check them and reasoning on possible overflow the new values seem correct). I finally added a new test case related to the multiplication by -1 issue on GT comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
325ee6e115e97a2e0c2a37d69d25269dabbe77df |
|
21-Oct-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Remove unused SCEV functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
a10369920fa86d8961495b71dbc00f5596d122d9 |
|
12-Jul-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Stylistic change. Thank Nick for figuring out these problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
5e915e6e364532ed00b4c5508e59b42f608b5244 |
|
08-Jul-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Fix a SCEV update problem. The symptom is seg-fault, and the root cause is that a SCEV contains a SCEVUnknown which has null-pointer to a llvm::Value. This is how the problem take place: =================================== 1). In the pristine input IR, there are two relevant instrutions Op1 and Op2, Op1's corresponding SCEV (denoted as SCEV(op1)) is a SCEVUnknown, and SCEV(Op2) contains SCEV(Op1). None of these instructions are dead. Op1 : V1 = ... ... Op2 : V2 = ... // directly or indirectly (data-flow) depends on Op1 2) Optimizer (LSR in my case) generates an instruction holding the equivalent value of Op1, making Op1 dead. Op1': V1' = ... Op1: V1 = ... ; now dead) Op2 : V2 = ... //Now deps on Op1', but the SCEV(Op2) still contains SCEV(Op1) 3) Op1 is deleted, and call-back function is called to reset SCEV(Op1) to indicate it is invalid. However, SCEV(Op2) is not invalidated as well. 4) Following pass get the cached, invalid SCEV(Op2), and try to manipulate it, and cause segfault. The fix: ======== It seems there is no clean yet inexpensive fix. I write to dev-list soliciting good solution, unforunately no ack. So, I decide to fix this problem in a brute-force way: When ScalarEvolution::getSCEV is called, check if the cached SCEV contains a invalid SCEVUnknow, if yes, remove the cached SCEV, and re-evaluate the SCEV from scratch. I compile buch of big *.c and *.cpp, fortunately, I don't see any increase in compile time. Misc: ===== The reduced test-case has 2357 lines of code+other-stuff, too big to commit. rdar://14283433 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
616011418e7460f765469f6347417fa25b5b740b |
|
31-May-2013 |
Andrew Trick <atrick@apple.com> |
Fix ScalarEvolution::ComputeExitLimitFromCond for 'or' conditions. Fixes PR16130 - clang produces incorrect code with loop/expression at -O2. This is a 2+ year old bug that's now holding up the release. It's a case where we knowingly made aggressive assumptions about undefined behavior. These assumptions are wrong when SCEV is computing a subexpression that does not directly control the branch. With this fix, we avoid making assumptions in those cases but still optimize the common case. SCEV's trip count computation for exits controlled by 'or' expressions is now analagous to the trip count computation for loops with multiple exits. I had already fixed the multiple exit case to be conservative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e74c2e86cb405963ba9c4043a1d0ca00b8f85fbe |
|
26-Mar-2013 |
Andrew Trick <atrick@apple.com> |
Fix SCEV forgetMemoizedResults should search and destroy backedge exprs. Fixes PR15570: SEGV: SCEV back-edge info invalid after dead code removal. Indvars creates a SCEV expression for the loop's back edge taken count, then determines that the comparison is always true and removes it. When loop-unroll asks for the expression, it contains a NULL SCEVUnknkown (as a CallbackVH). forgetMemoizedResults should invalidate the loop back edges expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f84606732c76899af54c295ec987c96c88452747 |
|
05-Mar-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Fix a few typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
255f89faee13dc491cb64fbeae3c763e7e2ea4e6 |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the #include lines for the include/... tree with the script. AKA: Recompile *ALL* the source code! This one went much better. No manual edits here. I spot-checked for silliness and grep-checked for really broken edits and everything seemed good. It all still compiles. Yell if you see something that looks goofy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
ff18310274e872429cd06d679b1c8c8a14166328 |
|
26-Oct-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a basic verifier for SCEV's backedge taken counts. Enabled with -verify-scev. This could be extended significantly but hopefully catches the common cases now. Note that it's not enabled by default in any configuration because the way it tries to distinguish SCEVs is still fragile and may produce false positives. Also the test-suite isn't clean yet, one example is that it fails if a pass drops an NSW bit but it's still present in SCEV's cached. Cleaning up all those cases will take some time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
ed84062812c7b8a82d0e8128a22aa1aa07a14d79 |
|
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove unnecessary classof()'s isa<> et al. automatically infer when the cast is an upcast (including a self-cast), so these are no longer necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
94c22716d60ff5edf6a98a3c67e0faa001be1142 |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
7e2c793a2b5c746344652b6579e958ee42fafdcc |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo 'iff' => 'if' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
de8091708f2d5ade958507aa6d37907a6277e9f2 |
|
17-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6cf07a80ff5ee8ef7dc336f954aae17c7e8d83d4 |
|
30-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Teach SCEV's icmp simplification logic that a-b == 0 is equivalent to a == b. This also required making recursive simplifications until nothing changes or a hard limit (currently 3) is hit. With the simplification in place indvars can canonicalize loops of the form for (unsigned i = 0; i < a-b; ++i) into for (unsigned i = 0; i != a-b; ++i) which used to fail because SCEV created a weird umax expr for the backedge taken count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
8aa22019ca5ef29a15058be905d782e7225aa206 |
|
19-May-2012 |
Andrew Trick <atrick@apple.com> |
SCEV: Add MarkPendingLoopPredicates to avoid recursive isImpliedCond. getUDivExpr attempts to simplify by checking for overflow. isLoopEntryGuardedByCond then evaluates the loop predicate which may lead to the same getUDivExpr causing endless recursion. Fixes PR12868: clang 3.2 segmentation fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f7c3e5f05199e1202c86198e0827cac19c0f48b5 |
|
11-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
FoldingSet: Push the hash through FoldingSetTraits::Equals, so clients can use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3eada319fc21bca31a2bc7819e4c05f46e6f82e1 |
|
11-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Clarified the SCEV getSmallConstantTripCount interface with in-your-face comments. This interface is misleading and dangerous, but it is actually what we need for unrolling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f8fd841a4bb7a59f81cf4642169e8251e039acfe |
|
07-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Expose isNonConstantNegative to users of ScalarEvolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
618c1dbd293d15ee19f61b1156ab8086ad28311a |
|
01-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Propagate TargetLibraryInfo throughout ConstantFolding.cpp and InstructionSimplify.cpp. Other fixups as needed. Part of rdar://10500969 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e97728ecf8a0ee69562cc0e7880cfaa65200c624 |
|
04-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
The product of two chrec's can always be represented as a chrec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
252ef7a61a9455c1e5d7b8a5a5f7ec8b3a75e200 |
|
02-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Comment and clarifying assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
b1831c66403315a1d84593b7c198ddbd43a574cf |
|
12-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Allow loop unrolling to get known trip counts from ScalarEvolution. SCEV unrolling can unroll loops with arbitrary induction variables. It is a prerequisite for -disable-iv-rewrite performance. It is also easily handles loops of arbitrary structure including multiple exits and is generally more robust. This is under a temporary option to avoid affecting default behavior for the next couple of weeks. It is needed so that I can checkin unit tests for updateUnloop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1009c3299be8c147ecd3fbd2d75ba1bafb2c84b1 |
|
03-Aug-2011 |
Andrew Trick <atrick@apple.com> |
SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget to notify SCEV of a change. Add forgetLoop in a couple of those places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
fcb4356dee96563def584fe38eeafb3eb63c5cd8 |
|
02-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Use consistent terminology for loop exit/exiting blocks. Name change only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
5116ff671f45d48594d11360e22991a7edb13862 |
|
26-Jul-2011 |
Andrew Trick <atrick@apple.com> |
SCEV: Added a data structure for storing not-taken info per loop exit. Added an interfaces for querying either the loop's exact/max backedge taken count or a specific loop exit's not-taken count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
77a2c4c1e54b7e3c4815b276eb6a2d99a7621460 |
|
09-May-2011 |
Dan Gohman <gohman@apple.com> |
Change a few std::maps to DenseMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
562b84b3aea359d1f918184e355da82bf05eb290 |
|
11-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Don't include Operator.h from InstrTypes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
3228cc259b5ca00e46af36da369a451f5736cbf4 |
|
14-Mar-2011 |
Andrew Trick <atrick@apple.com> |
Added SCEV::NoWrapFlags to manage unsigned, signed, and self wrap properties. Added the self-wrap flag for SCEV::AddRecExpr. A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag without changing behavior in this revision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6038a6351e7a9601a1eb3ffe4623c424ae2c80a4 |
|
11-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
some comment improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
992efb03785f2a368fbb63b09373be1d6a96ce5a |
|
09-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
Step #2 to improve trip count analysis for loops like this: void f(int* begin, int* end) { std::fill(begin, end, 0); } which turns into a != exit expression where one pointer is strided and (thanks to step #1) known to not overflow, and the other is loop invariant. The observation here is that, though the IV is strided by 4 in this case, that the IV *has* to become equal to the end value. It cannot "miss" the end value by stepping over it, because if it did, the strided IV expression would eventually wrap around. Handle this by turning A != B into "A-B != 0" where the A-B part is known to be NUW. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
a92ff91a967c63a2395a34c9e8331a7d50d6ab10 |
|
27-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
implement enough of the memset inference algorithm to recognize and insert memsets. This is still missing one important validity check, but this is enough to compile stuff like this: void test0(std::vector<char> &X) { for (std::vector<char>::iterator I = X.begin(), E = X.end(); I != E; ++I) *I = 0; } void test1(std::vector<int> &X) { for (long i = 0, e = X.size(); i != e; ++i) X[i] = 0x01010101; } With: $ clang t.cpp -S -o - -O2 -emit-llvm | opt -loop-idiom | opt -O3 | llc to: __Z5test0RSt6vectorIcSaIcEE: ## @_Z5test0RSt6vectorIcSaIcEE ## BB#0: ## %entry subq $8, %rsp movq (%rdi), %rax movq 8(%rdi), %rsi cmpq %rsi, %rax je LBB0_2 ## BB#1: ## %bb.nph subq %rax, %rsi movq %rax, %rdi callq ___bzero LBB0_2: ## %for.end addq $8, %rsp ret ... __Z5test1RSt6vectorIiSaIiEE: ## @_Z5test1RSt6vectorIiSaIiEE ## BB#0: ## %entry subq $8, %rsp movq (%rdi), %rax movq 8(%rdi), %rdx subq %rax, %rdx cmpq $4, %rdx jb LBB1_2 ## BB#1: ## %for.body.preheader andq $-4, %rdx movl $1, %esi movq %rax, %rdi callq _memset LBB1_2: ## %for.end addq $8, %rsp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1f6efa3996dd1929fbc129203ce5009b620e6969 |
|
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
9c9fcfc719158a46cb2e41b66d7dc1a63cd48d74 |
|
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Introduce memoization for ScalarEvolution dominates and properlyDominates queries, and SCEVExpander getRelevantLoop queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
56a756821842678a96f2baa8c6a53bd28fc2b69e |
|
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Factor out the code for purging a SCEV from all the various memoization maps. Some of these maps may merge in the future, but for now it's convenient to have a utility function for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
714b5290b04e08570dae4304c1c92d30c06d3c99 |
|
18-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Merge the implementations of isLoopInvariant and hasComputableLoopEvolution, and memoize the results. This improves compile time in code which highly complex expressions which get queried many times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4ce32db913beb6ae27df2fa0a9db5d68fd4889d2 |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Make SCEV::getType() and SCEV::print non-virtual. Move SCEV::hasOperand to ScalarEvolution. Delete SCEV::~SCEV. SCEV is no longer virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
dc0e8fb9f9512622f55f73e1a434caa5c0915694 |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Move SCEV::dominates and properlyDominates to ScalarEvolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
7c0fd8eb724a7228a6cf7e3e5487614c25202a91 |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Fix ScalarEvolution's range memoization to avoid using a default ctor with ConstantRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6678e7b6eb534b43b92105076e6d0553e5cf7def |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange. This fixes some extreme compile times on unrolled sha512 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e8ac3f3be4b4df619368bf46aa4ed91557b5f76e |
|
27-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Switch ScalarEvolution's main Value*->SCEV* map from std::map to DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
081ad68e687b24dd102ed890bae1e10d8d284cef |
|
16-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Placate overzealous compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
aadb5f5adbdb650c5cdc5ece939aaa30af91b3bc |
|
16-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Specialize FoldingSetTrait<SCEV>, providing implementations of node comparison and hash computation which don't require constructing temporary ID values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
af08a36bd6b9d32a5ea993849d43094fecbd5bed |
|
11-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Rename and reorder the arguments to isImpliedCond, for consistency and clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
ab37f50838350e1104579fbd1f7c8820473485a5 |
|
03-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Make SCEVUnknown a CallbackVH, so that it can be notified directly of Value deletions and RAUWs, instead of relying on ScalarEvolution's Scalars map being notified, as that's complicated at best, and insufficient in general. This means SCEVUnknown needs a non-trivial destructor, so introduce a mechanism to allow ScalarEvolution to locate all the SCEVUnknowns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e6cbfa6b09e3e9ddf18449d1b64793e24af27c6b |
|
29-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert r109705 since it seems to be causing some build bot angst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c6743207e20904008d2de016adfa6b0a9355c0e7 |
|
29-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Factor out some of the code for updating old SCEVUnknown values, and extend it to handle the case where multiple RAUWs affect a single SCEVUnknown. Add a ScalarEvolution unittest to test for this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
dc7a235363166a61e81986c534fe11ceb44109fc |
|
28-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add some extra friend declarations to fix a gcc-4.0 compile error. This is a temporary fix, until more elaborate changes are ready. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
605c14fb115e89a2bad97761ae57b55e8c28ffff |
|
23-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Replace ScalarEvolution's private copy of getLoopPredecessor with LoopInfo's public copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3bf63768e574a2065de1aebba12f6c2e80f4fb16 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Revert r106304 (105548 and friends), which are the SCEVComplexityCompare optimizations. There is still some nondeterminism remaining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
78db186d2dbaf4745f7e4beab4029db40856b54b |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Reapply 105540, 105542, and 105548, and revert r105732. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
07587a450044e32b791baa012032f1cb11bfed88 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Remove getIntegerSCEV; it's redundant with getConstant, and getConstant is more consistent with the ConstantInt API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1d451dff63e9c4241794a3645dfe4ee67efe5b22 |
|
09-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
fd447eff22637c3d47ce709468ab50b6243d0e4c |
|
07-Jun-2010 |
Dan Gohman <gohman@apple.com> |
The FoldingSet hash data includes pointer values, so it isn't determinstic. Instead, give SCEV objects an arbitrary sequence number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4d52c6d622811d00d40b914a4ebd1996b1eed95d |
|
07-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't go scrounging through SCEVUnknown contents and SCEVNAryExpr operands; instead just do a simple deterministic comparison of the precomputed hash data. Also, since this is more precise, it eliminates the need for the slow N^2 duplicate detection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
5cc6f9ba4777a460d7036edbbb3e8f01fb0a3d32 |
|
30-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e979650fa5faf4b1253f623662a8d9c81a4a4fc3 |
|
24-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a new utility function SimplifyICmpOperands. Much of this code is refactored out of ScalarEvolution::isImpliedCond, which will be updated to use this new utility routine soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
005752bbe72868b548bba93dbc1ea46ffe8e5b2c |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Make getPredecessorWithUniqueSuccessorForBB return the unique successor in addition to the predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
53c66eacc417c0113fba7159487b90005dc8f91e |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Enhance ScalarEvolution::isKnownPredicate with support for loop conditions which are invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e48172710bf78ae210b2257d6ac3e0e8fb3ba792 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
c93b4cff89d85a13d4eaf1551af9fab276b88450 |
|
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Add the ability to "intern" FoldingSetNodeID data into a BumpPtrAllocator-allocated region to allow it to be stored in a more compact form and to avoid the need for a non-trivial destructor call. Use this new mechanism in ScalarEvolution instead of FastFoldingSetNode to avoid leaking memory in the case where a FoldingSetNodeID uses heap storage, and to reduce overall memory usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3f46a3abeedba8d517b4182de34c821d752db058 |
|
01-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f6d009fb6fc19d9f7ee7cdc528bf8e83a758facc |
|
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Convert a few more backedge-taken count functions to use BackedgeTakenInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
32efba698df6aa35335eeb44d89288352d04746d |
|
04-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Change the argument to getIntegerSCEV to be an int64_t, rather than int. This will make it more convenient for LSR, which does a lot of things with int64_t offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
ebdcbc26c77b97483afbcb906f988cc66d43606d |
|
02-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix function names in comments. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4f8eea82d8967cffa85b9df6c9255717b059009e |
|
01-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Generalize target-independent folding rules for sizeof to handle more cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding. Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines. Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding. And add a bunch of testcases for this new functionality, and a bunch of related existing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
629bff692ae96dea517dc854e27b57ee6c8729ef |
|
21-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
struct/class mismatch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1cd9275c8d612bd1c92fc7ba436b60aaead1efbf |
|
19-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Give ScalarEvolution access to the DominatorTree. It'll need this to make more intellegent AddRec folding decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
d281ed2d03654b9cdb290a2d7c73dfe7b826e554 |
|
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Preserve NSW information in more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
8b67f774e9c38b7718b2b300b628388f966df4e0 |
|
26-Oct-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Move DataTypes.h to include/llvm/System, update all users. This breaks the last direct inclusion edge from System to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3645b01002e7ac244c1f3d163e5e350df21d869d |
|
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Add the ability to track HasNSW and HasNUW on more kinds of SCEV expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6e70e31810464289a9e9b37e0345847e3ca5d5cf |
|
27-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a properlyDominates member function to ScalarEvolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1f96e67f78110d0ac5b30a32375097a28f869c63 |
|
17-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Teach ScalarEvolution how to reason about no-wrap flags on loops where the induction variable has a non-unit stride, such as {0,+,2}, and there are expressions such as {1,+,2} inside the loop formed with or or add nsw operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e7125f4babb536df3a2573b6166954da7753c6b8 |
|
03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Remove references to expression "handles", which are no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
42214899082bfb5b6f8c6a09d355fec9ef4a0e82 |
|
31-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Extend the ValuesAtScope cache to cover all expressions, not just SCEVUnknowns, as the non-SCEVUnknown cases in the getSCEVAtScope code can also end up repeatedly climing through the same expression trees, which can be unusably slow when the trees are very tall. Also, add a quick check for SCEV pointer equality to the main SCEV comparison routine, as the full comparison code can be expensive in the case of large expression trees. These fix compile-time problems in some pathlogical cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
9661c13c37d017df6f91a399c0160b82e8a6c39f |
|
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few dead insertion methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
45cfe545ec8177262dabc70580ce05feaa1c3880 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change Pass::print to take a raw ostream instead of std::ostream, update all code that this affects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c40f17b08774c2dcc5787fd83241e3c64ba82974 |
|
18-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Generalize ScalarEvolution to be able to analyze GEPs when TargetData is not present. It still uses TargetData when available. This generalization also fixed some limitations in the TargetData case; the attached testcase covers this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
12ddd409535b52a7fa5157ded9a4cedd161fedb6 |
|
11-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make LLVMContext and LLVMContextImpl classes instead of structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
ffef8acc3e3398bdd04e947c7949befdd52faf86 |
|
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
48b2f3e4850cd27d54224cd42da8a160d6b95984 |
|
05-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h not hideous. Also, fix some MSVC compile errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
07ad19b509530b43e6a9acc5c1285cb560dd7198 |
|
27-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix wording in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
7e77f7959162a601291fd5400a88908d021033d3 |
|
25-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix a few comments to say "backedge-taken count" instead of "trip count". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
fef8bb24de86ff41d09a7787c6c52b058a853e39 |
|
25-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Instead of eagerly creating new SCEVs to replace all SCEVs that are affected after a PHI node has been analyzed, just remove affected SCEVs from the Scalars map, so that they'll be (lazily) recreated as needed. This avoids creating SCEV objects that aren't actually needed. Also, rewrite the associated def-use walking code to be non-recursive and to continue traversing past Instructions that don't have an entry in the Scalars map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
2f1b15386f84a607304fca7e26fa6b67b490df4d |
|
24-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Give the SCEV class a SubclassData field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
a271d36d7ce96bce52fcb73ca1ef028d9a9d8d0f |
|
24-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
0f4b285a5b86b1e9c6e27bb46028dfbb77bb5db4 |
|
22-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Replace the original ad-hoc code for determining whether (v pred w) implies (x pred y) with more thorough code that does more complete canonicalization before resorting to range checks. This helps it find more cases where the canonicalized expressions match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
fc8deb971d2b4dff370ba93948975e33a038605d |
|
17-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Commit this change, to accompany r76232. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
03ee68a145ab5394c070298049d93f305be93ec3 |
|
14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Forward-declare Loop and LoopInfo instead of #including LoopInfo.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
85b05a2e60e0e696739167b52cc7cc3e7cf390c0 |
|
13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply 75252, with a fix to avoid the infinite recursion case. The check for avoiding re-analyzing a widening cast needed to happen earlier, as getSCEV itself may result in a isLoopGuardedByCond query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c050fd94c29e31414591e3a18aa20049e6b3a84f |
|
13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Convert SCEV from FoldingSetNode to FastFoldingSetNode. This eliminates a bunch of redundent code in Profile methods, and prepares for upcoming changes to do improved memoization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
deb052a3dd0227579f86d74b3c1d70384ea5c16b |
|
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
d0cca2415099e80bd11e6b2090896719b07afd93 |
|
11-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r75252 which was causing some crashes at compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1afdc5f3565f09d33de888fede895540059dca4c |
|
10-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Remove ScalarEvolution::hasSCEV, which isn't being used, and which breaks encapsulation. Also remove a dead prototype for setSCEV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1b342583f6fc42f548912632f6aa24fc6e11986a |
|
10-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Generalize ScalarEvolution's cast-folding code to support more kinds of loops. Add several new functions to for working with ScalarEvolution's add-hoc value-range analysis functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
7b9547089f0363b803e55dcbde1d6b99710dfe69 |
|
10-Jul-2009 |
Andreas Bolka <a@bolka.at> |
Fix typo, trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
59ae6b99872953761dfda5984801d23a66692673 |
|
08-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make the code that updates ScalarEvolution's internal state in response to a loop deletion more thorough. Don't prune the def-use tree search at instructions that don't have SCEVs computed, because an instruction with a user that has a computed SCEV may itself lack a computed SCEV. Also, remove loop-related values from the ValuesAtScopes and ConstantEvolutionLoopExitValues maps as well. This fixes a regression in 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
0bba49cebc50c7bd4662a4807bcb3ee7f42cb470 |
|
07-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Change all SCEV* to SCEV *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
07cf79ef537caff6d39145f190a28a336e629b6f |
|
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
"LLVMContext* " --> "LLVMContext *" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
508955156a25a9abc470a29e1760aa176d341cf9 |
|
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through the constant folding APIs, which touches a lot of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1c34375f79b7786351c27ae45f0412cfdfa004ed |
|
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Convert ScalarEvolution to use BumpPtrAllocator and FoldingSet, instead of a team of individual allocations and a team of std::maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
650919e8b0aa28d20b8ff11f42ba81fea8b336cc |
|
24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove an obsolete comment and fix some 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
6bbcba18db6d1f4bc0f0157df41cc02627bc4aa9 |
|
24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Move the special cases for constants out of getUnknown and into createSCEV. Also, recognize UndefValue in createSCEV. Change getIntegerSCEV's comment to avoid mentioning FP types, and re-implement it in terms of getConstant instead of getUnknown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4d289bf4af88759be173a1a809bf8c092d729764 |
|
24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Add an isAllOnesValue utility function, similar to isZero and isOne. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
753ad615f96c3d56d6f17983bdba88012e88677c |
|
22-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Remove the parent pointer from SCEV, since it did not end up being needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
372b46cad9f745859f542f9d2216991585ae83f4 |
|
22-Jun-2009 |
Owen Anderson <resistor@mac.com> |
SCEVHandle is no more! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
08367b61638b4d446ebab69e2aad6431daa77ba7 |
|
22-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Banish global state from ScalarEvolution! SCEV uniquing is now done by tables attached to the ScalarEvolution pass. This also throws out the SCEV reference counting scheme, as the the SCEVs now have a lifetime controlled by the ScalarEvolution pass. Note that SCEVHandle is now a no-op, and will be remove in a future commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c9759e80f45e5690c3ed3b69c2e9ffd5a1bffd9c |
|
22-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Add a getUMinFromMismatchedTypes helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f9a9a9928cc977970d9852292b1c139074ecf055 |
|
22-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Factor out code for computing umin and smin for SCEV expressions into helper functions. Based on a patch by Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
a334aa7a106d5ebb971862f25daaadad48d96235 |
|
22-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Teach ScalarEvolution how to analyze loops with multiple exit blocks, and also exit blocks with multiple conditions (combined with (bitwise) ands and ors). It's often infeasible to compute an exact trip count in such cases, but a useful upper bound can often be found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
51f53b7f5a0e859ceef995c61667905166b96f1b |
|
22-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix ScalarEvolution's backedge-taken count computations to check for overflow when computing a integer division to round up. Thanks to Nick Lewycky for noticing this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
2c364ad4a65737f3bda876f86eba0061ecbd5470 |
|
20-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Make GetMinTrailingZeros a member function of ScalarEvolution, so that it can access the TargetData member (when available) and use ValueTracking.h information to compute information for SCEVUnknown Values. Also add GetMinLeadingZeros and GetMinSignBits functions, with minimal implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4a7893b4527819aae229f539ab9c3eeecc6a10e2 |
|
19-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Add a parent pointer to SCEV, in preparation for getting rid of the global uniquing tables. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6de29f8d960505421d61c80cdb738e16720b6c0e |
|
16-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Support vector casts in more places, fixing a variety of assertion failures. To support this, add some utility functions to Type to help support vector/scalar-independent code. Change ConstantInt::get and ConstantFP::get to support vector types, and add an overload to ConstantInt::get that uses a static IntegerType type, for convenience. Introduce a new getConstant method for ScalarEvolution, to simplify common use cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
444f49150df8a4280ccea20fc2839cd899fc7558 |
|
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Specialize DenseMapInfo for SCEVHandle, so that SCEVHandles can be used as keys in DenseMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
a82752c9eb5fbdd1b7276fde7349ac9453eb5a75 |
|
15-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Convert several parts of the ScalarEvolution framework to use SmallVector instead of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
2ce84c8d4784dfd24458a63db8d531917d2f8ba5 |
|
13-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Add a ScalarEvolution::getAnyExtendExpr utility function for performing extension with unspecified bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
86fbf2fe4cae21febffa4bb2f64cd0c2ee834694 |
|
06-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Rename UnknownValue to CouldNotCompute, since it holds an instance of SCEVCouldNotCompute, and not SCEVUnknown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6c0866ca8373da318741cc90ad7afd1bda22bb1b |
|
25-May-2009 |
Dan Gohman <gohman@apple.com> |
Various comment fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
1959b7562e57f8394496e761486f23b187ac3f1b |
|
19-May-2009 |
Dan Gohman <gohman@apple.com> |
Make SCEVCallbackVH a private nested class inside ScalarEvolution, as it's an implementation detail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
859b4824eeb2d88c441e855afe3dd7827dfd62a4 |
|
18-May-2009 |
Dan Gohman <gohman@apple.com> |
Make ScalarEvolution::isLoopGuardedByCond work even when the edge entering a loop is a non-split critical edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
70a1fe704831f9b842be0b2a2af5f7082b0e540c |
|
18-May-2009 |
Dan Gohman <gohman@apple.com> |
Add an isOne() utility function to ScalarEvolution, similar to isZero() and similar to ConstantInt's isOne(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
467c430316b7a5b6fa8069531ca8d603b1e1197f |
|
13-May-2009 |
Dan Gohman <gohman@apple.com> |
Add three new helper routines, getNoopOrZeroExtend, getNoopOrSignExtend, and getTruncateOrNoop. These are similar to getTruncateOrZeroExtend etc., except that they assert that the conversion is either not widening or narrowing, as appropriate. These will be used in some upcoming fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
fb791608115b5193419549b02825ed4337fd3a37 |
|
08-May-2009 |
Dan Gohman <gohman@apple.com> |
Fix another bug in r71252. This code supports GetElementPtr constant exprs as well as instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6bce643c36e7263aada5058f08cd242b4ce6b87d |
|
08-May-2009 |
Dan Gohman <gohman@apple.com> |
Add memoization for getSCEVAtScope results for instructions which are not analyzed with SCEV techniques, which can require brute-forcing through a large number of instructions. This fixes a massive compile-time issue on 400.perlbench (in particular, the loop in MD5Transform). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
66a7e857aa5843da3a7d0f52aa09a5935cf565dc |
|
08-May-2009 |
Dan Gohman <gohman@apple.com> |
Make the SCEV* form of getSCEVAtScope public, to allow ScalarEvolution clients to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
26466c0eb3451c5c953b3cca8940359152c4f8e3 |
|
08-May-2009 |
Dan Gohman <gohman@apple.com> |
Factor out the code for creating SCEVs for GEPs into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
fb7d35f22a958747dd3ae8861ae3ce018146131c |
|
02-May-2009 |
Dan Gohman <gohman@apple.com> |
When ScalarEvolution is told to forget the trip count for a loop, have it also forget any SCEVs associated with loop-header PHIs in the loop, as they may be dependent on trip count information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3d739fe3756bf67be23c2ca54ec7b04bef89bfe0 |
|
30-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add some comments, and tidy up some whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
a1af757e0af9c2fb5ade4b06408e1adfa0425c6c |
|
30-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Extend ScalarEvolution's getBackedgeTakenCount to be able to compute an upper-bound value for the trip count, in addition to the actual trip count. Use this to allow getZeroExtendExpr and getSignExtendExpr to fold casts in more cases. This may eventually morph into a more general value-range analysis capability; there are certainly plenty of places where more complete value-range information would allow more folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f8a8be86e3972608741c1e1ecb89ec3c6f570552 |
|
22-Apr-2009 |
Dan Gohman <gohman@apple.com> |
De-pImpl-ify ScalarEvolution. The pImpl pattern doesn't provide much practical benefit in the case of ScalarEvolution, and it's otherwise a nuisance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
b7ef72963b2215ca23c27fa8ea777bada06994d0 |
|
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Convert ScalarEvolution to use raw_ostream instead of OStream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
f4ccfcb70402b34ee55e0b5820cf287b95a8762f |
|
18-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Add a ScalarEvolution::getCouldNotCompute() function, and use it instead of allocating and leaking new SCEVCouldNotCompute objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
5a6c1a840ad343c0ed2fa54a0edb50b61f828f0f |
|
17-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Strengthen the "non-constant stride must dominate loop preheader" check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
789558db70d9513a017c11c5be30945839fdff1c |
|
13-Jan-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Wind SCEV back in time, to Nov 18th. This 'fixes' PR3275, PR3294, PR3295, PR3296 and PR3302. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
48dd644109d97a76288f0b5045f6aa6a3c075732 |
|
02-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Add a new SCEV representing signed division. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
b0b046848faad8e87d02c82d03b5b7b1ba74e041 |
|
09-Jul-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Remove getValueRange from SCEV. It wasn't doing anything there anyways, and a more complete version is now available from the LoopVR pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
cfeb6a450632f2a6cd05302633c8c2b8c90cfdfd |
|
18-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Move LSR's private isZero function to a public SCEV member function, and make use of it in several places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
6f8abf929ac173872cc50aff767bc25f2a07a523 |
|
13-Jun-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Crash less. The i64 restriction in BinomialCoefficient caused some problems with code that was expecting different bit widths for different values. Make getTruncateOrZeroExtend a method on ScalarEvolution, and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1baa88e3de8947b02d9ef4caa73e5860f048ec6e |
|
29-May-2008 |
Dan Gohman <gohman@apple.com> |
Prune and tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c758209153ca0f6da6737f25ada269c573fba456 |
|
19-Mar-2008 |
Devang Patel <dpatel@apple.com> |
PassInfo keep tracks whether a pass is an analysis pass or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c7fe32e840758baa9ce4f93c321b508a69b98262 |
|
19-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Do not use virtual function to identify an analysis pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
1cee94f04111cfd7114979d6dfddce2669c9380d |
|
18-Mar-2008 |
Devang Patel <dpatel@apple.com> |
Identify Analysis pass. Do not run analysis pass again if analysis info is still available. This fixes PR1441. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
3e6307698084e7adfc10b739442ae29742beefd0 |
|
20-Feb-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Add 'umax' similar to 'smax' SCEV. Closes PR2003. Parse reversed smax and umax as smin and umin and express them with negative or binary-not SCEVs (which are really just subtract under the hood). Parse 'xor %x, -1' as (-1 - %x). Remove dead code (ConstantInt::get always returns a ConstantInt). Don't use getIntegerSCEV(-1, Ty). The first value is an int, then it gets passed into a uint64_t. Instead, create the -1 directly from ConstantInt::getAllOnesValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e3320a1bcce3f6653e109cc86ee1011b0a61d808 |
|
11-Feb-2008 |
Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> |
Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an arbitrary iteration. The patch: 1) changes SCEVSDivExpr into SCEVUDivExpr, 2) replaces PartialFact() function with BinomialCoefficient(); the computations (essentially, the division) in BinomialCoefficient() are performed with the apprioprate bitwidth necessary to avoid overflow; unsigned division is used instead of the signed one. Computations in BinomialCoefficient() require support from the code generator for APInts. Currently, we use a hack rounding up the neccessary bitwidth to the nearest power of 2. The hack is easy to turn off in future. One remaining issue: we assume the divisor of the binomial coefficient formula can be computed accurately using 16 bits. It means we can handle AddRecs of length up to 9. In future, we should use APInts to evaluate the divisor. Thanks to Nicholas for cooperation! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
7ed47a13356daed2a34cd2209a31f92552e3bdd8 |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Don't attribute in file headers anymore. See llvmdev for the discussion of this change. Boy are my fingers tired. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
c54c561c9f7270c055dd7ba75a3a003b771a42d9 |
|
25-Nov-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
4e1a0e386c6861a697b0cd2e13a33ac4dd60e17d |
|
15-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Reverted r44163 per request git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
65e2da3b4d6925bf30693595a524a3a43acc1f17 |
|
15-Nov-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Fix handling of overflow in loop calculation by adding new UDiv SCEV. This SCEV is disabled in the sense that it will refuse to create one from a UDiv instruction, until the code is better tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
019b92a70c11319f5ab96c9f5e66e4e111a972f8 |
|
14-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Start the process of making MachineLoopInfo possible by templating Loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
4998264403539a8201899756193261eb4f9d7f0b |
|
03-May-2007 |
Dan Gohman <gohman@apple.com> |
Use the explicit keyword for the SCEV class' constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
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/include/llvm/Analysis/ScalarEvolution.h
|
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 |
|
05-Mar-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
581b0d453a63f7f657248f80317976995262be11 |
|
28-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1205: Remove ConstantInt from ConstantRange interface and adjust its users to compensate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
5c7e326585f3a543388ba871c3425f7664cd9143 |
|
17-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Added an automatic cast to "std::ostream*" etc. from OStream. We then can rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e81561909d128c6e2d8033cb5465a49b2596b26a |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
b5ebf15b2b2ce8989caf1a1114b05d80b0f9bd48 |
|
28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Added a temporary hack to get the llvm-streams to work for future checkins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
27631a30eb1c5cb1c5190531b10a147f058d6ff1 |
|
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add two helper methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
9769ab22265b313171d201b5928688524a01bd87 |
|
21-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
df28a31435f90b322e2a28c8925c564a19fc3b72 |
|
09-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
export two methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
afc0dc7184cf73ff7ac64e516284fbe0c7023ba4 |
|
13-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new replaceSymbolicValuesWithConcrete method to the SCEV class, adjust const'ness a bit to be more correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
ce9653ce449f1409815547e1bf60abcd1332d2c9 |
|
07-Dec-2004 |
Reid Spencer <rspencer@reidspencer.com> |
For PR387:\ Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
5aa20212cc8dd1008d05915bf23dd02143fc5de9 |
|
24-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Remove distasteful method which is really part of the indvars pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
2cdf0a7a32f08674562b0cf6b071b96b36421f87 |
|
23-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Remove the SCEV::expandCodeFor method, add a new SCEVVisitor class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
7d221c53e521edd36cc1d9f42fdb4d3201d5e014 |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Add an ugly cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
e1beb8f59d076536b0022496d663344a792a8cab |
|
22-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
254bacd79a07632548de2f1c91d2768572764f66 |
|
02-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
cleanup some long-dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|
53e677abadadf71ef33f2f69533a32c1fa3d168f |
|
02-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Add a new analysis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolution.h
|