diff options
author | Florian Hahn <flo@fhahn.com> | 2022-09-29 09:24:38 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2022-09-29 09:24:39 +0100 |
commit | 9247b012d6dda9add8a46329acd9641eb5af24e3 (patch) | |
tree | 94781d7f2d7b219cc4f4f5bd5a9037665a09273c /llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | |
parent | dba8fced969e2eca9e8650a874293927db17d131 (diff) | |
download | llvm-9247b012d6dda9add8a46329acd9641eb5af24e3.zip llvm-9247b012d6dda9add8a46329acd9641eb5af24e3.tar.gz llvm-9247b012d6dda9add8a46329acd9641eb5af24e3.tar.bz2 |
[SCEVExpander] Use CreateBitOrPointerCast instead of builder (NFC).
Simplify the code by using CastInst::CreateBitOrPointerCast directly. By
not going through the builder, the temporary instruction also won't get
registered in InsertedValues & co, which means less work overall and
simplifies the clean-up.
Diffstat (limited to 'llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp index faceb02..bc2779a 100644 --- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp +++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp @@ -1751,20 +1751,16 @@ Value *SCEVExpander::expandCodeForImpl(const SCEV *SH, Type *Ty) { // would accept a insertion point and return an LCSSA phi for that // insertion point, so there is no need to insert & remove the temporary // instruction. - Instruction *Tmp; + Type *ToTy; if (Inst->getType()->isIntegerTy()) - Tmp = cast<Instruction>(Builder.CreateIntToPtr( - Inst, Inst->getType()->getPointerTo(), "tmp.lcssa.user")); - else { - assert(Inst->getType()->isPointerTy()); - Tmp = cast<Instruction>(Builder.CreatePtrToInt( - Inst, Type::getInt32Ty(Inst->getContext()), "tmp.lcssa.user")); - } + ToTy = Inst->getType()->getPointerTo(); + else + ToTy = Type::getInt32Ty(Inst->getContext()); + Instruction *Tmp = CastInst::CreateBitOrPointerCast( + Inst, ToTy, "tmp.lcssa.user", &*Builder.GetInsertPoint()); V = fixupLCSSAFormFor(Tmp, 0); // Clean up temporary instruction. - InsertedValues.erase(Tmp); - InsertedPostIncValues.erase(Tmp); Tmp->eraseFromParent(); } } |