aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorRoman Tereshin <rtereshin@apple.com>2019-01-18 21:38:44 +0000
committerRoman Tereshin <rtereshin@apple.com>2019-01-18 21:38:44 +0000
commit86ac5326879a9e1ab8b92e28c02c0ba5aed880e8 (patch)
treee3216f242fefc88b56aab65903ce634cf80f5835 /llvm/lib/CodeGen
parent149119dc5f71b19500456307b2f50cea3fce42f9 (diff)
downloadllvm-86ac5326879a9e1ab8b92e28c02c0ba5aed880e8.zip
llvm-86ac5326879a9e1ab8b92e28c02c0ba5aed880e8.tar.gz
llvm-86ac5326879a9e1ab8b92e28c02c0ba5aed880e8.tar.bz2
Revert "[CGP] Check for existing inttotpr before creating new one"
This reverts commit r351582. Bots are failing. Reverting this to fix and re-commit later. llvm-svn: 351598
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/CodeGenPrepare.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 0c7c9de..c35f866 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -4664,22 +4664,13 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr,
// will look through it and provide only the integer value. In that case,
// use it here.
if (!DL->isNonIntegralPointerType(Addr->getType())) {
- const auto getResultPtr = [MemoryInst, Addr,
- &Builder](Value *Reg) -> Value * {
- for (User *U : Reg->users())
- if (auto *I2P = dyn_cast<IntToPtrInst>(U))
- if (I2P->getType() == Addr->getType() &&
- I2P->getParent() == MemoryInst->getParent()) {
- I2P->moveBefore(MemoryInst->getParent()->getFirstNonPHI());
- return I2P;
- }
- return Builder.CreateIntToPtr(Reg, Addr->getType(), "sunkaddr");
- };
if (!ResultPtr && AddrMode.BaseReg) {
- ResultPtr = getResultPtr(AddrMode.BaseReg);
+ ResultPtr = Builder.CreateIntToPtr(AddrMode.BaseReg, Addr->getType(),
+ "sunkaddr");
AddrMode.BaseReg = nullptr;
} else if (!ResultPtr && AddrMode.Scale == 1) {
- ResultPtr = getResultPtr(AddrMode.ScaledReg);
+ ResultPtr = Builder.CreateIntToPtr(AddrMode.ScaledReg, Addr->getType(),
+ "sunkaddr");
AddrMode.Scale = 0;
}
}