diff options
author | Chris Lattner <sabre@nondot.org> | 2005-07-13 02:00:04 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-07-13 02:00:04 +0000 |
commit | f9ddfef87246d4423f27eae5bc70a4669ecf9ee1 (patch) | |
tree | 97806515263a6e3faa9cfec78134c5b14b1487f9 /llvm/lib | |
parent | 330d3acee8ffa8ad572d21a488b864811f9dadfd (diff) | |
download | bcm5719-llvm-f9ddfef87246d4423f27eae5bc70a4669ecf9ee1.tar.gz bcm5719-llvm-f9ddfef87246d4423f27eae5bc70a4669ecf9ee1.zip |
Fix Alpha/2005-07-12-TwoMallocCalls.ll and PR593.
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).
llvm-svn: 22419
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index a05e5937a66..16d4eeb9414 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -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: |