diff options
author | Tim Northover <tnorthover@apple.com> | 2013-07-06 12:58:45 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2013-07-06 12:58:45 +0000 |
commit | dab4db53727cbdd7a693a4a0c646307f2c7b497a (patch) | |
tree | acb38f43a4e2edfd20518cd5212575d51e0c62ab /llvm/lib/CodeGen/SelectionDAG | |
parent | a37acf702d2b075c48d5072891c4aa2c9e39f149 (diff) | |
download | bcm5719-llvm-dab4db53727cbdd7a693a4a0c646307f2c7b497a.tar.gz bcm5719-llvm-dab4db53727cbdd7a693a4a0c646307f2c7b497a.zip |
Stop putting operations after a tail call.
This prevents the emission of DAG-generated vreg definitions after a
tail call be dropping them entirely (on the grounds that nothing could
use them anyway, and they interfere with O0 CodeGen).
llvm-svn: 185754
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index fe284f5c0fc..23d83e69cb8 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -5357,6 +5357,10 @@ void SelectionDAGBuilder::LowerCallTo(ImmutableCallSite CS, SDValue Callee, // As a special case, a null chain means that a tail call has been emitted and // the DAG root is already updated. HasTailCall = true; + + // Since there's no actual continuation from this block, nothing can be + // relying on us setting vregs for them. + PendingExports.clear(); } else { DAG.setRoot(Result.second); } |