[PATCH] D38415: [SimplifyIndVar] Correctly extract constant LLVM value from SCEV during constant folding
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 29 12:57:51 PDT 2017
efriedma added inline comments.
================
Comment at: lib/Transforms/Utils/SimplifyIndVar.cpp:557
+ if (auto *U = dyn_cast<SCEVUnknown>(S))
+ return dyn_cast<Constant>(U->getValue());
+
----------------
etherzhhb wrote:
> efriedma wrote:
> > Does it actually matter whether the value here is a Constant?
> You means we gain something if we can "simplify" the IV user from a SCEVAddRec to a SCEVUnknown?*
>
> SE->getSCEV(I); may directly return an SCEUnknown, so we need to compare the new LLVM Value and the original one.
> We are not going to do the replace if they are the same
>
Rather than try to check for equality, you can just check whether the SCEVUnknown is loop-invariant.
Repository:
rL LLVM
https://reviews.llvm.org/D38415
More information about the llvm-commits
mailing list