[llvm-commits] [llvm] r49243 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
Evan Cheng
evan.cheng at apple.com
Sat Apr 5 01:57:56 PDT 2008
Is this fixing a regression from Dan's patch? Can you separate out the
flushing functionality from getroot? It seems a bit strange to use
getRoot for its side effects.
Evan
On Apr 4, 2008, at 4:48 PM, Dale Johannesen <dalej at apple.com> wrote:
> Author: johannes
> Date: Fri Apr 4 18:48:31 2008
> New Revision: 49243
>
> URL: http://llvm.org/viewvc/llvm-project?rev=49243&view=rev
> Log:
> Make sure both PendingLoads and PendingExports are flushed
> before an invoke. Failure to do this causes references in
> the landing pad to variables that were not set. Fixes
> g++.dg/eh/delayslot1.C
> g++.dg/eh/fp-regs.C
> g++.old-deja/g++.brendan/eh1.C
>
>
> Modified:
> llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=49243&r1=49242&r2=49243&view=diff
>
> ===
> ===
> ===
> =====================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Fri
> Apr 4 18:48:31 2008
> @@ -3171,7 +3171,10 @@
> // Insert a label before the invoke call to mark the try range.
> This can be
> // used to detect deletion of the invoke via the
> MachineModuleInfo.
> BeginLabel = MMI->NextLabelID();
> - DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getRoot(),
> + // Both PendingLoads and PendingExports must be flushed here;
> + // this call might not return.
> + (void)getRoot();
> + DAG.setRoot(DAG.getNode(ISD::LABEL, MVT::Other, getControlRoot(),
> DAG.getConstant(BeginLabel, MVT::i32),
> DAG.getConstant(1, MVT::i32)));
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list