2c3e0051c31c3f5b2328b447eadf1cf9c4427442 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7 (cherry picked from commit 0c7f116bb6950ef819323d855415b2f2b0aad987)
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
d4278821665aa97f5fc0d19a32ff1fb39a22d395 |
|
30-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Convert manual insert point restores to the new RAII object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
1ba5769676bb14078ddbdb9760523619726800c0 |
|
14-Jan-2013 |
Andrew Trick <atrick@apple.com> |
SCEVExpander fix. RAUW needs to update the InsertedExpressions cache. Note that this bug is only exposed because LTO fails to use TTI. Fixes self-LTO of clang. rdar://13007381. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
674be02d525d4e24bc6943ed9274958c580bcfbc |
|
10-Jan-2013 |
Jakub Staszak <kubastaszak@gmail.com> |
Fix include guards so they exactly match file names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
e4ba75f43e2ab1480d119d2d4eb878256274e0fb |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the SCEV expander and LoopStrengthReduce to use TargetTransformInfo rather than TargetLowering, removing one of the primary instances of the layering violation of Transforms depending directly on Target. This is a really big deal because LSR used to be a "special" pass that could only be tested fully using llc and by looking at the full output of it. It also couldn't run with any other loop passes because it had to be created by the backend. No longer is this true. LSR is now just a normal pass and we should probably lift the creation of LSR out of lib/CodeGen/Passes.cpp and into the PassManagerBuilder. =] I've not done this, or updated all of the tests to use opt and a triple, because I suspect someone more familiar with LSR would do a better job. This change should be essentially without functional impact for normal compilations, and only change behvaior of targetless compilations. The conversion required changing all of the LSR code to refer to the TTI interfaces, which fortunately are very similar to TargetLowering's interfaces. However, it also allowed us to *always* expect to have some implementation around. I've pushed that simplification through the pass, and leveraged it to simplify code somewhat. It required some test updates for one of two things: either we used to skip some checks altogether but now we get the default "no" answer for them, or we used to have no information about the target and now we do have some. I've also started the process of removing AddrMode, as the TTI interface doesn't use it any longer. In some cases this simplifies code, and in others it adds some complexity, but I think it's not a bad tradeoff even there. Subsequent patches will try to clean this up even further and use other (more appropriate) abstractions. Yet again, almost all of the formatting changes brought to you by clang-format. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
a04a4a79ea365d1ba96ed4b5861e879b267162e2 |
|
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
revert r166264 because the LTO build is still failing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
725f1d12801109a3b1d081a6e1c9e44426b2cf34 |
|
19-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
recommit the patch that makes LSR and LowerInvoke use the TargetTransform interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
3b9a911efcf280950f878a050728450423875639 |
|
18-Oct-2012 |
Bob Wilson <bob.wilson@apple.com> |
Temporarily revert the TargetTransform changes. The TargetTransform changes are breaking LTO bootstraps of clang. I am working with Nadav to figure out the problem, but I am reverting it for now to get our buildbots working. This reverts svn commits: 165665 165669 165670 165786 165787 165997 and I have also reverted clang svn 165741 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
e3d0e86919730784faaddcb5d9b0257c39b0804b |
|
11-Oct-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new interface to allow IR-level passes to access codegen-specific information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
e08c32249fca32cd7b122024a4ca252fcb235694 |
|
14-Jul-2012 |
Andrew Trick <atrick@apple.com> |
LSR Fix: check SCEV expression safety before expansion. All SCEV expressions used by LSR formulae must be safe to expand. i.e. they may not contain UDiv unless we can prove nonzero denominator. Fixes PR11356: LSR hoists UDiv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
06cb8ed00696eb14d1b831921452e50ec0568ea2 |
|
29-Jun-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h This was always part of the VMCore library out of necessity -- it deals entirely in the IR. The .cpp file in fact was already part of the VMCore library. This is just a mechanical move. I've tried to go through and re-apply the coding standard's preferred header sort, but at 40-ish files, I may have gotten some wrong. Please let me know if so. I'll be committing the corresponding updates to Clang and Polly, and Duncan has DragonEgg. Thanks to Bill and Eric for giving the green light for this bit of cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
64925c55c65f9345a69fb67db07aa62cfb723577 |
|
10-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Enable LSR IV Chains with sufficient heuristics. These heuristics are sufficient for enabling IV chains by default. Performance analysis has been done for i386, x86_64, and thumbv7. The optimization is rarely important, but can significantly speed up certain cases by eliminating spill code within the loop. Unrolled loops are prime candidates for IV chains. In many cases, the final code could still be improved with more target specific optimization following LSR. The goal of this feature is for LSR to make the best choice of induction variables. Instruction selection may not completely take advantage of this feature yet. As a result, there could be cases of slight code size increase. Code size can be worse on x86 because it doesn't support postincrement addressing. In fact, when chains are formed, you may see redundant address plus stride addition in the addressing mode. GenerateIVChains tries to compensate for the common cases. On ARM, code size increase can be mitigated by using postincrement addressing, but downstream codegen currently misses some opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
ee98aa87434d9d49a8e4dab41d873888ac9c4805 |
|
07-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Extended replaceCongruentPhis to handle mixed phi types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
553fe05f236f46fe27b7fcfa822b06367d50183e |
|
30-Nov-2011 |
Andrew Trick <atrick@apple.com> |
LSR: handle the expansion of phi operands that use postinc forms of the IV. Fixes PR11431: SCEVExpander::expandAddRecExprLiterally(const llvm::SCEVAddRecExpr*): Assertion `(!isa<Instruction>(Result) || SE.DT->dominates(cast<Instruction>(Result), Builder.GetInsertPoint())) && "postinc expansion does not dominate use"' failed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
365c9f1ff55bef134c6b9707f7df44d680ddabea |
|
15-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Fix SCEVExpander assert during LSR: "argument of incompatible type". Just because we're dealing with a GEP doesn't mean we can assert the SCEV has a pointer type. The fix is simply to ignore the SCEV pointer type, which we really didn't need. Fixes PR11138 webkit crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
c5701910604cdf65811fabd31d41e38f1d1d4eb1 |
|
08-Oct-2011 |
Andrew Trick <atrick@apple.com> |
LSR should only reuse phis that match its formula. Fixes rdar://problem/5064068 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
d152d03a476b8d0d4b26577db26e2ba76034b0f3 |
|
16-Jul-2011 |
Andrew Trick <atrick@apple.com> |
Fix SCEVEXpander to handle arbitrary phi expansion. Includes two related bug fixes and corresponding assertions for uninitialized data and missing NULL check. Test cases will be included with the new LFTR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
6d64a04a4d1c2f4f6f8877cc0811a4d4386e518f |
|
28-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Cleanup. Fix a stupid variable name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
ab28928fe276d20cf9533ae6b858497f835c7a53 |
|
27-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify that the values they refer to aren't being deleted underneath them. Make sure these containters get cleared by clear(), which IndVarSimplify and LSR both use before deleting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
7c58dbd88c36c5d6c411ea6c046ddcff4c5841e9 |
|
20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make getOrInsertCanonicalInductionVariable guarantee that its result is a PHINode*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
485c43fc478d5e16c55e14cb2586b56cc1c4c91f |
|
19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Factor out duplicated code for reusing and inserting casts into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
25fcaff409f5c4c6da08f148ffb9404a71e8e4a7 |
|
05-Jun-2010 |
Dan Gohman <gohman@apple.com> |
LSR needs to remember inserted instructions even in postinc mode, because there could be multiple subexpressions within a single expansion which require insert point adjustment. This fixes PR7306. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
448db1cdef5872713ef77beffacf502ae3450cd7 |
|
08-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Generalize IVUsers to track arbitrary expressions rather than expressions explicitly split into stride-and-offset pairs. Also, add the ability to track multiple post-increment loops on the same expression. This refines the concept of "normalizing" SCEV expressions used for to post-increment uses, and introduces a dedicated utility routine for normalizing and denormalizing expressions. This fixes the expansion of expressions which are post-increment users of more than one loop at a time. More broadly, this takes LSR another step closer to being able to reason about more than one loop at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
6c7ed6b54949949806797bafdf545fbfecb2cef5 |
|
19-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix more places to more thoroughly ignore debug intrinsics. This fixes use-before-def errors in SCEVExpander-produced code in sqlite3 when debug info with optimization is enabled, though the testcases for this are dependent on use-list order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
455985501381777db03534c925a35e261e356395 |
|
15-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When restoring a saved insert location, check to see if the saved insert location has become an "inserted" instruction since the time it was saved. If so, advance to the first non-"inserted" instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
1d826a76f591afea445489b9a5485c345e66bf87 |
|
14-Feb-2010 |
Dan Gohman <gohman@apple.com> |
In rememberInstruction, if the value being remembered is the current insertion point, advance the current insertion point. This avoids a use-before-def situation in a testcase extracted from clang which is difficult to reduce to a reasonable-sized regression test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
9269926bfb713e92e328e9578c6d8826c68dcb9d |
|
14-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Remove a 'protected' keyword, now that SCEVExpander is no longer intended to be subclassed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
572645cf84060c0fc25cb91d38cb9079918b3a88 |
|
12-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
0f5efe56258f8cd6ceff4d7955a5d80144cd9cb0 |
|
28-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place use plain SCEVUnknowns with ConstantExpr::getSizeOf and ConstantExpr::getOffsetOf constants. This eliminates a bunch of special-case code. Also add code for pattern-matching these expressions, for clients that want to recognize them. Move ScalarEvolution's logic for expanding array and vector sizeof expressions into an element count times the element size, to expose the multiplication to subsequent folding, into the regular constant folder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
7979b72febb73f7bb1d1ed095a68f210822b2e7c |
|
22-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert LoopStrengthReduce.cpp to pre-r94061 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
f55eeb918e9b4fac49853accabac5924a7716939 |
|
06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove some more Context arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
4c0d5d5db876b0628bdf6a2174263a1c0a9130e2 |
|
20-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various comment and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
45524c58fd5f77b6a3f6e77d43fba85b36ec0b08 |
|
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Finish pushing LLVMContext through the IRBuilder/ConstantFolder interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
d1fbd142945f5ef0c273c3d756431f8cb9d25ded |
|
08-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContext _back_ through IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
76f600b205606a055ec35e7d3fd1a99602329d67 |
|
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Finish LLVMContext-ing lib/Analysis. This required pushing LLVMContext's through the ValueTracking API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
267a385342f2e7388f178b327dd87c5f29afd51b |
|
27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Change SCEVExpander to use an IRBuilder to emit instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
1d09de3eca23267855e28297fcb40de3632ea47b |
|
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Move SCEVExpander::getOrInsertCanonicalInductionVariable out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
453aa4fbf1083cc7f646a0ac21e2bcc384a91ae9 |
|
24-May-2009 |
Dan Gohman <gohman@apple.com> |
Generalize SCEVExpander::visitAddRecExpr's GEP persuit, and avoid sending SCEVUnknowns to expandAddToGEP. This avoids the need for expandAddToGEP to bend the rules and peek into SCEVUnknown expressions. Factor out the code for testing whether a SCEV can be factored by a constant for use in a GEP index. This allows it to handle SCEVAddRecExprs, by recursing. As a result, SCEVExpander can now put more things in GEP indices, so it emits fewer explicit mul instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
cf5ab820227dedd77fb91d0904b6dc3694a7c196 |
|
01-May-2009 |
Dan Gohman <gohman@apple.com> |
Actually insert inserted instructions into the InsertedValues map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
b52e1c587f166c6fb8b9abeaaeaee3bda944091b |
|
01-May-2009 |
Dan Gohman <gohman@apple.com> |
Add an accessor method to allow clients to test if a given expression is associated with a SCEV expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
99a1302ae4c438ab532826685280c0b69687e163 |
|
01-May-2009 |
Dan Gohman <gohman@apple.com> |
Make SCEVExpander::addInsertedValue able to accept Values, not just Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
6cdc727f2d7f68734526ef078f4632798ad40791 |
|
22-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Use BasicBlock::iterator instead of Instruction* for insert points, to better handle inserting instructions at the end of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
b928c57397f61e4c54274818dd63e61e21016d9d |
|
22-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Make SCEVExpanders private methods private, instead of protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
f04fa483b83227c570bc58e1684ea096430a6697 |
|
16-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Teach SCEVExpander::InsertCastOfTo to avoid creating inttoptr-of-ptrtoint and ptrtoint-of-inttoptr expressions. This fixes a regression in 300.twolf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
d68a07650cdb2e18f18f362ba533459aa10e01b6 |
|
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Tidy up #includes, deleting a bunch of unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
6177fd4fcee4d82692c47e33754ffe285c38cc69 |
|
08-Jul-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Expand SCEVUDiv of power of 2 to a lshr instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
11f6d3b478c4fa09d126833c57fbac1d795ead31 |
|
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Move a few more SCEVExpander methods out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
e24fa64d52330626553298f56ba5aa702624c282 |
|
18-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Move SCEVExpander::visitAddExpr out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
8a08769bad43a22fae2845bb0ba0fd1266cd55c8 |
|
15-Jun-2008 |
Wojciech Matyjewicz <wmatyjewicz@fastmail.fm> |
Fix PR2434. When scanning for exising binary operator to reuse don't take into account the instrucion pointed by InsertPt. Thanks to it, returning the new value of InsertPt to the InsertBinop() caller can be avoided. The bug was, actually, in visitAddRecExpr() method which wasn't correctly handling changes of InsertPt. There shouldn't be any performance regression, as -gvn pass (run after -indvars) removes any redundant binops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.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/ScalarEvolutionExpander.h
|
96fea337d27357e9b62abbf3d2d5ce29f1c8e870 |
|
20-Aug-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
- Use correct header for SCEV inside LoopPass.cpp - Move SCEVExpander::expand() out-of-line workarounding possible toolchain bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
76ea084489baa1e5a5dff2e0186a1284d4df3c91 |
|
06-Jun-2007 |
Chris Lattner <sabre@nondot.org> |
add accessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
2f15254d77547716c38d84432a15d946cefa2cae |
|
18-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
what's an & between friends? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
7fec90ebf4ebe7aa73a6dd7d275c255587c041ad |
|
13-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
CSE simple binary expressions when they are inserted. This makes LSR produce less huge code that needs to be cleaned up by sdisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
24d6da5fedcf39891f7d8c5b031c01324b3db545 |
|
21-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR970: Clean up handling of isFloatingPoint() and dealing with PackedType. Patch by Gordon Henriksen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
b2f3e703bcde5833ff5910922f7a5313cc6b1c64 |
|
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Update code to eliminate calls to isInteger, calling isIntegral instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
3ba68b9eef2851dae8a9d1b18928c6fa2e3c5f87 |
|
13-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Change the interface to SCEVExpander::InsertCastOfTo to take a cast opcode so the decision of which opcode to use is pushed upward to the caller. Adjust the callers to pass the expected opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
8955e3b755b2337423911d8c3e0fd6ab36036912 |
|
04-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Unclutter this by using new cast creation functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
575d95ce373f1e405e6c27ce8d9f244bba3bdd0d |
|
04-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Change inferred casts to explicit casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|
1628cec4d7fce310d9cde0bcc73997e5a71692c4 |
|
26-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: Make necessary changes to support DIV -> [SUF]Div. This changes llvm to have three division instructions: signed, unsigned, floating point. The bytecode and assembler are bacwards compatible, however. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
60a05cc118763c680834a61280f48530482a1f86 |
|
01-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and PR726 by performing consistent signed division, not consistent unsigned division when evaluating scev's. Do not touch udivs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
ed412ac2cbd21e877742fb460efde99887f69482 |
|
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor a bunch of code into a non-inlined method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25972 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
8f9f0d3a34ebbcd6d075fbb1250dc74f36579d50 |
|
04-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
d29b6aa608d69f19b57ebd2ae630b040b1c4951d |
|
30-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Keep tabs and trailing spaces out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
|
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/include/llvm/Analysis/ScalarEvolutionExpander.h
|