Eliminate the need to do another iteration of the legalizer after inserting
authorChris Lattner <sabre@nondot.org>
Sat, 28 Jan 2006 04:23:12 +0000 (04:23 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 28 Jan 2006 04:23:12 +0000 (04:23 +0000)
a libcall.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25730 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 5bd17d53c342456e31df92c2d24a77f0010c6651..2ee5dd5400e6a2042bc1d6f5d6ae74f6e8b8d2bb 100644 (file)
@@ -2208,7 +2208,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
         // Floating point mod -> fmod libcall.
         const char *FnName = Node->getValueType(0) == MVT::f32 ? "fmodf":"fmod";
         SDOperand Dummy;
-        Result = ExpandLibCall(FnName, Node, Dummy);
+        Result = LegalizeOp(ExpandLibCall(FnName, Node, Dummy));
       }
       break;
     }
@@ -2624,7 +2624,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
         default: assert(0 && "Unreachable!");
         }
         SDOperand Dummy;
-        Result = ExpandLibCall(FnName, Node, Dummy);
+        Result = LegalizeOp(ExpandLibCall(FnName, Node, Dummy));
         break;
       }
       default:
@@ -3711,7 +3711,6 @@ SDOperand SelectionDAGLegalize::ExpandLibCall(const char *Name, SDNode *Node,
   }
   
   SpliceCallInto(CallInfo.second, OutChain);
-  NeedsAnotherIteration = true;
   return Result;
 }