aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2022-01-11 09:40:21 +0000
committerFlorian Hahn <flo@fhahn.com>2022-01-11 09:40:21 +0000
commit2d67a86b7c14a4f3686e50608a80adb5e7b5cb92 (patch)
tree1449d451b096549d7b8c1f22d67b77402d17b517 /llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
parent51497dc0b20179eb145820cb8f651f026960de08 (diff)
downloadllvm-2d67a86b7c14a4f3686e50608a80adb5e7b5cb92.zip
llvm-2d67a86b7c14a4f3686e50608a80adb5e7b5cb92.tar.gz
llvm-2d67a86b7c14a4f3686e50608a80adb5e7b5cb92.tar.bz2
[SCEVExpander] Use IntToPtr for temporary instruction.
Use PtrToInt instead Add when creating temporary instructions. The add might get folded away with more sophisticated folding.
Diffstat (limited to 'llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
index b41b634..fe8215d 100644
--- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
@@ -1843,8 +1843,8 @@ Value *SCEVExpander::expandCodeForImpl(const SCEV *SH, Type *Ty, bool Root) {
// instruction.
Instruction *Tmp;
if (Inst->getType()->isIntegerTy())
- Tmp =
- cast<Instruction>(Builder.CreateAdd(Inst, Inst, "tmp.lcssa.user"));
+ Tmp = cast<Instruction>(Builder.CreateIntToPtr(
+ Inst, Inst->getType()->getPointerTo(), "tmp.lcssa.user"));
else {
assert(Inst->getType()->isPointerTy());
Tmp = cast<Instruction>(Builder.CreatePtrToInt(