Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.120 -> 1.121
---
Log message:
Rename ScalarEvolution::deleteInstructionFromRecords to
deleteValueFromRecords and loosen the types to all it to accept
Value* instead of just Instruction*, since this is what
ScalarEvolution us
On Jun 18, 2007, at 1:35 PM, Dan Gohman wrote:
>>> + // Now we know the first non-constant operand. Skip past any
>>> cast SCEVs.
>>> + while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < scAddExpr)
>>> +++Idx;
>>
>> Can you please introduce a predicate for this? Comparing against
>> scA
> > + // Now we know the first non-constant operand. Skip past any
> > cast SCEVs.
> > + while (Idx < Ops.size() && Ops[Idx]->getSCEVType() < scAddExpr)
> > +++Idx;
>
> Can you please introduce a predicate for this? Comparing against
> scAddExpr is not obvious :)
I think if you read t
> In SCEVAddExpr::get, skip over any cast operands before looking for
> nested
> add operands after constant operands. The recent change to recognize
> sign-extend expressions caused this to be exposed more often.
Ok
> + // Now we know the first non-constant operand. Skip past any
> cast SC
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.119 -> 1.120
---
Log message:
In SCEVAddExpr::get, skip over any cast operands before looking for nested
add operands after constant operands. The recent change to recognize
sign-extend expressions caused this to be exposed
> Nifty. Have you done any performance analysis of this? What cases
> is it beneficial for? If this helps LSR, for example, can you please
> add a testcase to verify this doesn't break in the future?
It doesn't actually help LSR much. At this point, a signextend isn't
much less opaque than an u
On Jun 15, 2007, at 7:38 AM, Dan Gohman wrote:
> +case Instruction::SExt:
> + return SCEVSignExtendExpr::get(getSCEV(I->getOperand(0)), I-
> >getType());
> +
Nifty. Have you done any performance analysis of this? What cases
is it beneficial for? If this helps LSR, for example, can
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.118 -> 1.119
ScalarEvolutionExpander.cpp updated: 1.17 -> 1.18
---
Log message:
Add a SCEV class and supporting code for sign-extend expressions.
This created an ambiguity for expandInTy to decide when to use
sign-extension
On Jun 6, 2007, at 5:19 AM, Nick Lewycky wrote:
> Chris Lattner wrote:
>> The only thing that can use Instructions are other intstructions. As
>> such, you can change the dyn_cast into cast
>> and there is no need to check for null in the next line.
>
> Fixed. Thanks Chris!
Even better fix, tha
Chris Lattner wrote:
> The only thing that can use Instructions are other intstructions. As
> such, you can change the dyn_cast into cast
> and there is no need to check for null in the next line.
Fixed. Thanks Chris!
Nick
___
llvm-commits mailing
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.117 -> 1.118
---
Log message:
Optimize this test. Firstly, only Instructions may use other Instructions.
Secondly, checking whether removal succeeded tells you whether it was in
the map to begin with.
---
Diffs of the chan
> Fix PR1487: http://llvm.org/PR1487 and Transforms/IndVar/
> 2007-06-06-DeleteDanglesPtr.ll
Thanks Nicholas,
> /// client before it removes an instruction from the program, to
> make sure
> /// that no dangling references are left around.
> void ScalarEvolutionsImpl::deleteInstructionFrom
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.116 -> 1.117
---
Log message:
Fix PR1487: http://llvm.org/PR1487 and
Transforms/IndVar/2007-06-06-DeleteDanglesPtr.ll
---
Diffs of the changes: (+22 -3)
ScalarEvolution.cpp | 25 ++---
1 files c
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.111 -> 1.112
---
Log message:
Revert last patch. It was already fixed.
---
Diffs of the changes: (+1 -6)
ScalarEvolution.cpp |7 +--
1 files changed, 1 insertion(+), 6 deletions(-)
Index: llvm/lib/Analysis/Sca
> ScalarEvolution.cpp updated: 1.110 -> 1.111
> ---
> Log message:
>
> For PR1336: http://llvm.org/PR1336 :
> Fix a div-by-zero bug noticed by APInt. This fixes:
> test/Transforms/IndVarsSimplify/exit_value_tests.llx
Please revert this immediately. The bug was already fixed and this
is not at a
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.110 -> 1.111
---
Log message:
For PR1336: http://llvm.org/PR1336 :
Fix a div-by-zero bug noticed by APInt. This fixes:
test/Transforms/IndVarsSimplify/exit_value_tests.llx
---
Diffs of the changes: (+6 -1)
ScalarEvoluti
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.109 -> 1.110
---
Log message:
Fix a nasty bug introduced when apint'ified. This fixes
Transforms/IndVarsSimplify/exit_value_tests.llx
---
Diffs of the changes: (+4 -4)
ScalarEvolution.cpp |8
1 files chang
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.108 -> 1.109
---
Log message:
Eliminate unnecessary APInt construction.
---
Diffs of the changes: (+7 -8)
ScalarEvolution.cpp | 15 +++
1 files changed, 7 insertions(+), 8 deletions(-)
Index: llvm/lib/An
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.107 -> 1.108
---
Log message:
Make APInt variables do the computation stuffs instead of
ConstantExpr::getXX if possible.
---
Diffs of the changes: (+11 -14)
ScalarEvolution.cpp | 25 +++--
1 files
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.106 -> 1.107
---
Log message:
Eliminate unnecessary zext/trunc stuffs.
---
Diffs of the changes: (+10 -14)
ScalarEvolution.cpp | 24 ++--
1 files changed, 10 insertions(+), 14 deletions(-)
Index:
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.105 -> 1.106
---
Log message:
Treat xor of signbit like an add.
---
Diffs of the changes: (+10 -1)
ScalarEvolution.cpp | 11 ++-
1 files changed, 10 insertions(+), 1 deletion(-)
Index: llvm/lib/Analysis/Scal
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.104 -> 1.105
---
Log message:
Guard further against APInt operations with operands of unequal bit width.
---
Diffs of the changes: (+11 -4)
ScalarEvolution.cpp | 15 +++
1 files changed, 11 insertions(+),
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.103 -> 1.104
---
Log message:
Fix an unequal bitwidth issue.
---
Diffs of the changes: (+6 -3)
ScalarEvolution.cpp |9 ++---
1 files changed, 6 insertions(+), 3 deletions(-)
Index: llvm/lib/Analysis/ScalarEvol
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.102 -> 1.103
ScalarEvolutionExpander.cpp updated: 1.14 -> 1.15
---
Log message:
Prefer non-virtual calls to ConstantInt::isZero over virtual calls to
Constant::isNullValue() in situations where it is possible.
---
Diffs o
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.101 -> 1.102
---
Log message:
Make it possible to create an SCEVUnknown from an APInt as well as an int.
---
Diffs of the changes: (+4 -0)
ScalarEvolution.cpp |4
1 files changed, 4 insertions(+)
Index: llvm/
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.100 -> 1.101
---
Log message:
Construct ConstantInt with simpler constructor.
---
Diffs of the changes: (+4 -4)
ScalarEvolution.cpp |8
1 files changed, 4 insertions(+), 4 deletions(-)
Index: llvm/lib/Ana
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.99 -> 1.100
---
Log message:
Fix last night's 445.gobmk breakage which was caused by comparison of
APInt's of unequal bitwidth.
---
Diffs of the changes: (+1 -0)
ScalarEvolution.cpp |1 +
1 files changed, 1 insertio
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.98 -> 1.99
---
Log message:
Remove the "isSigned" parameters from ConstantRange. It turns out they
are not needed as the results are the same with or without it.
Patch by Nicholas Lewycky.
---
Diffs of the changes: (+7
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.97 -> 1.98
---
Log message:
APIntify various computations in ScalarEvolution
---
Diffs of the changes: (+52 -55)
ScalarEvolution.cpp | 107 +---
1 files changed, 52 inser
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.96 -> 1.97
---
Log message:
For PR1205: http://llvm.org/PR1205 :
Make GetConstantFactor compute its result using an APInt.
---
Diffs of the changes: (+20 -16)
ScalarEvolution.cpp | 36 -
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.95 -> 1.96
---
Log message:
For PR1205: http://llvm.org/PR1205 :
Adjust to changes in ConstantRange interface.
---
Diffs of the changes: (+5 -4)
ScalarEvolution.cpp |9 +
1 files changed, 5 insertions(+), 4
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.91 -> 1.92
---
Log message:
The local "ConstantFold" method is now just a watered down version of
ConstantFoldInstOperands. Switch to ConstantFoldInstOperands and remove
ConstantFold.
---
Diffs of the changes: (+3 -37)
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.88 -> 1.89
---
Log message:
Unbreak VC++ build.
---
Diffs of the changes: (+1 -1)
ScalarEvolution.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u llvm/
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.85 -> 1.86
---
Log message:
Fix PR1101: http://llvm.org/PR1101 and Analysis/ScalarEvolution/trip-count.ll
---
Diffs of the changes: (+5 -3)
ScalarEvolution.cpp |8 +---
1 files changed, 5 insertions(+), 3 delet
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.84 -> 1.85
---
Log message:
don't discriminate against bool
---
Diffs of the changes: (+1 -1)
ScalarEvolution.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/Analysis/ScalarEvolution.cpp
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.79 -> 1.80
---
Log message:
Fix PR1015: http://llvm.org/PR1015 and
Transforms/IndVarsSimplify/2007-01-06-TripCount.ll, a
miscompilation of Qt.
---
Diffs of the changes: (+15 -1)
ScalarEvolution.cpp | 16
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.78 -> 1.79
---
Log message:
cast of int to bool no longer does a compare, rendering this fixme
obsolete
---
Diffs of the changes: (+0 -1)
ScalarEvolution.cpp |1 -
1 files changed, 1 deletion(-)
Index: llvm/lib/An
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.75 -> 1.76
---
Log message:
Add a FIXME about signedness.
---
Diffs of the changes: (+2 -0)
ScalarEvolution.cpp |2 ++
1 files changed, 2 insertions(+)
Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u llvm/lib
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.74 -> 1.75
---
Log message:
Add some comments about things that can go away once signless types are in.
---
Diffs of the changes: (+8 -1)
ScalarEvolution.cpp |9 -
1 files changed, 8 insertions(+), 1 deletio
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.72 -> 1.73
---
Log message:
Fix a bug in GetConstantFactor for affine expressions, in which the existing
code was wrong for things like 3+4*i.
---
Diffs of the changes: (+9 -5)
ScalarEvolution.cpp | 14 +-
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.70 -> 1.71
---
Log message:
Get even more accurate on the casting.
---
Diffs of the changes: (+5 -8)
ScalarEvolution.cpp | 13 +
1 files changed, 5 insertions(+), 8 deletions(-)
Index: llvm/lib/Analysis/
> Index: llvm/lib/Analysis/ScalarEvolution.cpp
> diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.69 llvm/lib/
> Analysis/ScalarEvolution.cpp:1.70
> --- llvm/lib/Analysis/ScalarEvolution.cpp:1.69Mon Dec 11 20:26:09
> 2006
> +++ llvm/lib/Analysis/ScalarEvolution.cpp Mon Dec 11 23:04:59
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.69 -> 1.70
---
Log message:
Change inferred getCast into specific getCast. Passes all tests.
---
Diffs of the changes: (+9 -3)
ScalarEvolution.cpp | 12 +---
1 files changed, 9 insertions(+), 3 deletions(-)
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.68 -> 1.69
---
Log message:
teach scev to analyze X*4|1 like X*4+c. This allows us to produce:
LBB1_1: #bb
movdqa (%esi), %xmm2
movaps %xmm2, %xmm3
punpcklbw %xmm0, %xmm3
movaps %xmm3, %xmm4
nice, thanks Reid!
-Chris
On Dec 5, 2006, at 2:40 PM, Reid Spencer wrote:
>
>
> Changes in directory llvm/lib/Analysis:
>
> ScalarEvolution.cpp updated: 1.64 -> 1.65
> ---
> Log message:
>
> Finally get the casting right in this file. Also, remove some
> unnecessary
> casting because sdiv does
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.64 -> 1.65
---
Log message:
Finally get the casting right in this file. Also, remove some unnecessary
casting because sdiv doesn't require operand signs to match any more.
---
Diffs of the changes: (+6 -7)
ScalarEvoluti
> Long and short of it, I put the checks for integer back in and changed
> the casts to use getTrunc or getZExt. Seems to work.
Ok
>> Fair enough, please make sure it happens at some point though.
>
> Okay, these are done now. Once stuff passes tests, I'll commit it.
Thanks Reid!
-Chris
On Tue, 2006-12-05 at 12:07 -0800, Chris Lattner wrote:
> On Dec 5, 2006, at 11:58 AM, Reid Spencer wrote:
> > On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote:
> >>> SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type
> >>> *Ty) {
> >>>if (SCEVConstant *SC = dyn_cast(Op))
On Dec 5, 2006, at 11:58 AM, Reid Spencer wrote:
> On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote:
>>> SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type
>>> *Ty) {
>>>if (SCEVConstant *SC = dyn_cast(Op))
>>> -return SCEVUnknown::get(ConstantExpr::getCast(SC->getValu
On Tue, 2006-12-05 at 11:52 -0800, Chris Lattner wrote:
> > SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type
> > *Ty) {
> >if (SCEVConstant *SC = dyn_cast(Op))
> > -return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(),
> > Ty));
> > +return SCEVUnknown::get
> SCEVHandle SCEVTruncateExpr::get(const SCEVHandle &Op, const Type
> *Ty) {
>if (SCEVConstant *SC = dyn_cast(Op))
> -return SCEVUnknown::get(ConstantExpr::getCast(SC->getValue(),
> Ty));
> +return SCEVUnknown::get(
> +ConstantExpr::getTruncOrBitCast(SC->getValue(), Ty));
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.63 -> 1.64
---
Log message:
Bail on the getInferredCast idea. Remove the function and convert
remaining uses to more specific casts.
---
Diffs of the changes: (+10 -9)
ScalarEvolution.cpp | 19 ++-
1
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.62 -> 1.63
---
Log message:
Fix comment grammaro
---
Diffs of the changes: (+2 -2)
ScalarEvolution.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u
Reid, I don't like this series of patches. You're replacing one evil
with another. Please endeavor to figure out what type of cast is
actually needed and put it in, rather than changing one sort of
inferred cast into another.
> Index: llvm/lib/Analysis/ScalarEvolution.cpp
> diff -u llvm/l
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.61 -> 1.62
---
Log message:
Fix inferred casts.
---
Diffs of the changes: (+9 -6)
ScalarEvolution.cpp | 15 +--
1 files changed, 9 insertions(+), 6 deletions(-)
Index: llvm/lib/Analysis/ScalarEvolution.c
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.56 -> 1.57
---
Log message:
For PR950: http://llvm.org/PR950 :
Replace the REM instruction with UREM, SREM and FREM.
---
Diffs of the changes: (+1 -1)
ScalarEvolution.cpp |2 +-
1 files changed, 1 insertion(+), 1 de
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.55 -> 1.56
---
Log message:
Make ScalarEvolution actually use a ZeroExtend expression instead of
having SCZeroExtendExpr be equivalent to SCTruncate
---
Diffs of the changes: (+2 -2)
ScalarEvolution.cpp |4 ++--
1
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.54 -> 1.55
---
Log message:
For PR950: http://llvm.org/PR950 :
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and asse
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.52 -> 1.53
---
Log message:
Fix some more static dtor issues.
---
Diffs of the changes: (+36 -33)
ScalarEvolution.cpp | 69 +++-
1 files changed, 36 insertions(+), 33 de
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.51 -> 1.52
---
Log message:
Eliminate ConstantBool::True and ConstantBool::False. Instead, provide
ConstantBool::getTrue() and ConstantBool::getFalse().
---
Diffs of the changes: (+4 -4)
ScalarEvolution.cpp |8
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.47 -> 1.48
---
Log message:
Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't
recognize some simple affine IV's.
---
Diffs of the changes: (+25 -0)
ScalarEvolution.cpp | 25 +
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.46 -> 1.47
---
Log message:
Signed shr by a constant is not the same as sdiv by 2^k
---
Diffs of the changes: (+0 -9)
ScalarEvolution.cpp |9 -
1 files changed, 9 deletions(-)
Index: llvm/lib/Analysis/Scal
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.45 -> 1.46
---
Log message:
Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and
PR726: http://llvm.cs.uiuc.edu/PR726 by performing consistent signed division,
not consistent unsigned
division when evaluating sc
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.43 -> 1.44
---
Log message:
Move some constant folding code shared by Analysis and Transform passes
into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a
64 matches
Mail list logo