[PATCH] D48597: [LoopInstSimplify] Discard SCEV if simplification happened.
Sanjoy Das via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 26 10:19:42 PDT 2018
sanjoy added a comment.
In https://reviews.llvm.org/D48597#1143657, @lebedev.ri wrote:
> In https://reviews.llvm.org/D48597#1143645, @sanjoy wrote:
>
> > IMO this doesn't seem like an invalidation bug -- SCEV Expander needs to be smarter about dealing with these kinds of simplifications.
>
>
> Does this sound better?
Yes -- that seems better to me.
> diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp
> index f2ce0f4aa86..2058e591a77 100644
> --- a/lib/Analysis/ScalarEvolutionExpander.cpp
> +++ b/lib/Analysis/ScalarEvolutionExpander.cpp
> @@ -1169,8 +1169,10 @@ SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
> if (!IsMatchingSCEV && !TryNonMatchingSCEV)
> continue;
>
> - Instruction *TempIncV =
> - cast<Instruction>(PN.getIncomingValueForBlock(LatchBlock));
> + Value* IncomingValue = PN.getIncomingValueForBlock(LatchBlock);
> + if(!isa<Instruction>(IncomingValue))
> + continue;
> + Instruction *TempIncV = cast<Instruction>(IncomingValue);
>
> // Check whether we can reuse this PHI node.
> if (LSRMode) {
Repository:
rL LLVM
https://reviews.llvm.org/D48597
More information about the llvm-commits
mailing list