summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2013-07-06 12:58:45 +0000
committerTim Northover <tnorthover@apple.com>2013-07-06 12:58:45 +0000
commitdab4db53727cbdd7a693a4a0c646307f2c7b497a (patch)
treeacb38f43a4e2edfd20518cd5212575d51e0c62ab /llvm/lib
parenta37acf702d2b075c48d5072891c4aa2c9e39f149 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp4
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);
}
OpenPOWER on IntegriCloud