eliminate gotos
authorChris Lattner <sabre@nondot.org>
Sun, 8 May 2005 19:48:43 +0000 (19:48 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 8 May 2005 19:48:43 +0000 (19:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21780 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/Reassociate.cpp

index 8bf918a0186b2e4e62d34e2693ba9debc189ecaa..840b8f2e81310508d470552452277d050fcb5cd2 100644 (file)
@@ -365,7 +365,6 @@ void Reassociate::OptimizeExpression(unsigned Opcode,
                                      std::vector<ValueEntry> &Ops) {
   // Now that we have the linearized expression tree, try to optimize it.
   // Start by folding any constants that we found.
-Iterate:
   bool IterateOptimization = false;
   if (Ops.size() == 1) return;
 
@@ -373,7 +372,8 @@ Iterate:
     if (Constant *V2 = dyn_cast<Constant>(Ops.back().Op)) {
       Ops.pop_back();
       Ops.back().Op = ConstantExpr::get(Opcode, V1, V2);
-      goto Iterate;
+      OptimizeExpression(Opcode, Ops);
+      return;
     }
 
   // Check for destructive annihilation due to a constant being used.
@@ -494,7 +494,8 @@ Iterate:
   //case Instruction::Mul:
   }
 
-  if (IterateOptimization) goto Iterate;
+  if (IterateOptimization) 
+    OptimizeExpression(Opcode, Ops);
 }