summaryrefslogtreecommitdiff
path: root/tools/llc
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2012-01-19 00:34:10 +0000
committerNick Lewycky <nicholas@mxc.ca>2012-01-19 00:34:10 +0000
commit22de16dc7582dac43429ce0dcb374604020c01f5 (patch)
treecdf90f822164c39bf7a6c99518381a49b0cbf7b7 /tools/llc
parent9b159710ebe8a37cba38ca0c5b465e362bd68af7 (diff)
downloadllvm-22de16dc7582dac43429ce0dcb374604020c01f5.tar.gz
llvm-22de16dc7582dac43429ce0dcb374604020c01f5.tar.bz2
llvm-22de16dc7582dac43429ce0dcb374604020c01f5.tar.xz
Add a TargetOption for disabling tail calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148442 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llc')
-rw-r--r--tools/llc/llc.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index 790f9e6027..5fabdaf069 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -237,6 +237,11 @@ EnableGuaranteedTailCallOpt("tailcallopt",
cl::desc("Turn fastcc calls into tail calls by (potentially) changing ABI."),
cl::init(false));
+static cl::opt<bool>
+DisableTailCalls("disable-tail-calls",
+ cl::desc("Never emit tail calls"),
+ cl::init(false));
+
static cl::opt<unsigned>
OverrideStackAlignment("stack-alignment",
cl::desc("Override default stack alignment"),
@@ -462,6 +467,7 @@ int main(int argc, char **argv) {
Options.JITEmitDebugInfo = EmitJitDebugInfo;
Options.JITEmitDebugInfoToDisk = EmitJitDebugInfoToDisk;
Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
+ Options.DisableTailCalls = DisableTailCalls;
Options.StackAlignmentOverride = OverrideStackAlignment;
Options.RealignStack = EnableRealignStack;
Options.DisableJumpTables = DisableSwitchTables;