Fix Alpha/2005-07-12-TwoMallocCalls.ll and PR593.
authorChris Lattner <sabre@nondot.org>
Wed, 13 Jul 2005 02:00:04 +0000 (02:00 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 13 Jul 2005 02:00:04 +0000 (02:00 +0000)
It is not safe to call LegalizeOp on something that has already been legalized.
Instead, just force another iteration of legalization.

This could affect all platforms but X86, as this codepath is dynamically
dead on X86 (ISD::MEMSET and friends are legal).

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

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index a05e5937a66774cb4b77556e10bd46bb78377dd8..16d4eeb9414377e74ff2fe554665647b7599e21e 100644 (file)
@@ -972,7 +972,8 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
       std::pair<SDOperand,SDOperand> CallResult =
         TLI.LowerCallTo(Tmp1, Type::VoidTy, false, CallingConv::C, false,
                         DAG.getExternalSymbol(FnName, IntPtr), Args, DAG);
-      Result = LegalizeOp(CallResult.second);
+      Result = CallResult.second;
+      NeedsAnotherIteration = true;
       break;
     }
     case TargetLowering::Custom: