add a FIXME so we remember to eventually remove this code.
authorChris Lattner <sabre@nondot.org>
Fri, 2 May 2008 17:18:31 +0000 (17:18 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 2 May 2008 17:18:31 +0000 (17:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50582 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopRotation.cpp

index 0e31ece4b341fbae3a13b50ea845487c5be325c5..91a96bcedacdc354f366325247316be9058f8fc2 100644 (file)
@@ -249,8 +249,8 @@ bool LoopRotate::rotateLoop(Loop *Lp, LPPassManager &LPM) {
     // create new PHINode for this instruction.
     Instruction *NewHeaderReplacement = NULL;
     if (usedOutsideOriginalHeader(In)) {
-      const StructType *STy = dyn_cast<StructType>(In->getType());
-      if (STy) {
+      // FIXME: remove this when we have first-class aggregates.
+      if (isa<StructType>(In->getType())) {
         // Can't create PHI nodes for this type.  If there are any getResults
         // not defined in this block, move them back to this block.  PHI
         // nodes will be created for all getResults later.
@@ -261,14 +261,15 @@ bool LoopRotate::rotateLoop(Loop *Lp, LPPassManager &LPM) {
             ++InsertPoint;
         } else {
           InsertPoint = I;  // call
-          InsertPoint++;
+          ++InsertPoint;
         }
         for (Value::use_iterator UI = In->use_begin(), UE = In->use_end();
              UI != UE; ++UI) {
           GetResultInst *InGR = cast<GetResultInst>(UI);
           if (InGR->getParent() != OrigHeader) {
-            // move InGR to immediately follow call.  It will be picked
-            // up, cloned and PHI'd on the next iteration.
+            // Move InGR to immediately after the call or in the normal dest of
+            // the invoke.  It will be picked up, cloned and PHI'd on the next
+            // iteration.
             InGR->moveBefore(InsertPoint);
           }
         }