[llvm] r263112 - [SROA] Clean up some really weird code, no functionality changed.

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 10 06:16:18 PST 2016


Author: chandlerc
Date: Thu Mar 10 08:16:18 2016
New Revision: 263112

URL: http://llvm.org/viewvc/llvm-project?rev=263112&view=rev
Log:
[SROA] Clean up some really weird code, no functionality changed.

We already have the instruction extracted into 'I', just cast that to
a store the way we do for loads. Also, we don't enter the if unless SI
is non-null, so don't test it again for null.

I'm pretty sure the entire test there can be nuked, but this is just the
trivial cleanup.

Modified:
    llvm/trunk/lib/Transforms/Scalar/SROA.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/SROA.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SROA.cpp?rev=263112&r1=263111&r2=263112&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/SROA.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/SROA.cpp Thu Mar 10 08:16:18 2016
@@ -3403,9 +3403,9 @@ bool SROA::presplitLoadsAndStores(Alloca
         }
 
         Loads.push_back(LI);
-      } else if (auto *SI = dyn_cast<StoreInst>(S.getUse()->getUser())) {
-        if (!SI ||
-            S.getUse() != &SI->getOperandUse(SI->getPointerOperandIndex()))
+      } else if (auto *SI = dyn_cast<StoreInst>(I)) {
+        if (S.getUse() != &SI->getOperandUse(SI->getPointerOperandIndex()))
+          // Skip stores *of* pointers. FIXME: This shouldn't even be possible!
           continue;
         auto *StoredLoad = dyn_cast<LoadInst>(SI->getValueOperand());
         if (!StoredLoad || !StoredLoad->isSimple())




More information about the llvm-commits mailing list