[llvm-commits] CVS: llvm/lib/Transforms/Scalar/GVNPRE.cpp

Owen Anderson resistor at mac.com
Sun Jun 17 21:31:07 PDT 2007



Changes in directory llvm/lib/Transforms/Scalar:

GVNPRE.cpp updated: 1.34 -> 1.35
---
Log message:

Don't perform an expensive check if it's not necessary.


---
Diffs of the changes:  (+12 -2)

 GVNPRE.cpp |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)


Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.34 llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.35
--- llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.34	Fri Jun 15 19:26:54 2007
+++ llvm/lib/Transforms/Scalar/GVNPRE.cpp	Sun Jun 17 23:30:44 2007
@@ -329,7 +329,12 @@
             lhsValid = true;
             break;
           }
-      lhsValid &= !dependsOnInvoke(BO->getOperand(0));
+          
+      // Check for dependency on invoke insts
+      // NOTE: This check is expensive, so don't do it if we
+      // don't have to
+      if (lhsValid)
+        lhsValid = !dependsOnInvoke(BO->getOperand(0));
     
       bool rhsValid = !isa<Instruction>(BO->getOperand(1));
       if (!rhsValid)
@@ -339,7 +344,12 @@
           rhsValid = true;
           break;
         }
-      rhsValid &= !dependsOnInvoke(BO->getOperand(1));
+      
+      // Check for dependency on invoke insts
+      // NOTE: This check is expensive, so don't do it if we
+      // don't have to
+      if (rhsValid)
+        rhsValid = !dependsOnInvoke(BO->getOperand(1));
       
       if (!lhsValid || !rhsValid)
         set.erase(BO);






More information about the llvm-commits mailing list