[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