diff options
author | Dan Gohman <gohman@apple.com> | 2010-08-28 00:51:03 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-08-28 00:51:03 +0000 |
commit | badcda4afa35bf86ce2e6e77ca20f1ce2365b549 (patch) | |
tree | 6753af186a4072f780f2b303d429070ca07b379d /lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
parent | 7258df71fa21483f03d3804164c57f32cfc22e01 (diff) |
Completely disable tail calls when fast-isel is enabled, as fast-isel
doesn't currently support dealing with this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112341 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 3f8c593a91..17cc6bf31b 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -4649,6 +4649,11 @@ void SelectionDAGBuilder::LowerCallTo(ImmutableCallSite CS, SDValue Callee, !isInTailCallPosition(CS, CS.getAttributes().getRetAttributes(), TLI)) isTailCall = false; + // If there's a possibility that fast-isel has already selected some amount + // of the current basic block, don't emit a tail call. + if (isTailCall && EnableFastISel) + isTailCall = false; + std::pair<SDValue,SDValue> Result = TLI.LowerCallTo(getRoot(), RetTy, CS.paramHasAttr(0, Attribute::SExt), |