Revert "Reapply "[CGP] Check for existing inttotpr before creating new one""

This change reverts r351626.

The changes in r351626 cause quadratic work in several cases. (See r351626 thread on llvm-commits for details.)

llvm-svn: 352722
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 24c926c..e382798 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -4661,27 +4661,13 @@
     // 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 * {
-        BasicBlock *BB = MemoryInst->getParent();
-        for (User *U : Reg->users())
-          if (auto *I2P = dyn_cast<IntToPtrInst>(U))
-            if (I2P->getType() == Addr->getType() && I2P->getParent() == BB) {
-              auto *RegInst = dyn_cast<Instruction>(Reg);
-              if (RegInst && RegInst->getParent() == BB &&
-                  !isa<PHINode>(RegInst) && !RegInst->isEHPad())
-                I2P->moveAfter(RegInst);
-              else
-                I2P->moveBefore(*BB, BB->getFirstInsertionPt());
-              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;
       }
     }