cache result of operator*
authorGabor Greif <ggreif@gmail.com>
Fri, 9 Jul 2010 15:01:36 +0000 (15:01 +0000)
committerGabor Greif <ggreif@gmail.com>
Fri, 9 Jul 2010 15:01:36 +0000 (15:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107972 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/InstCombine/InstructionCombining.cpp

index eb22b84005ae4e3c48538cfeae7f6d0d83bcdc6d..af2958fe3d91011f6dce6bcdb100fb4d6bd06194 100644 (file)
@@ -715,9 +715,10 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
 static bool IsOnlyNullComparedAndFreed(const Value &V) {
   for (Value::const_use_iterator UI = V.use_begin(), UE = V.use_end();
        UI != UE; ++UI) {
-    if (isFreeCall(*UI))
+    const User *U = *UI;
+    if (isFreeCall(U))
       continue;
-    if (const ICmpInst *ICI = dyn_cast<ICmpInst>(*UI))
+    if (const ICmpInst *ICI = dyn_cast<ICmpInst>(U))
       if (ICI->isEquality() && isa<ConstantPointerNull>(ICI->getOperand(1)))
         continue;
     return false;