summaryrefslogtreecommitdiff
path: root/include/llvm/Target/TargetOptions.h
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 /include/llvm/Target/TargetOptions.h
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 'include/llvm/Target/TargetOptions.h')
-rw-r--r--include/llvm/Target/TargetOptions.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetOptions.h b/include/llvm/Target/TargetOptions.h
index 3f42bbe16a..852e67f582 100644
--- a/include/llvm/Target/TargetOptions.h
+++ b/include/llvm/Target/TargetOptions.h
@@ -43,8 +43,9 @@ namespace llvm {
NoNaNsFPMath(false), HonorSignDependentRoundingFPMathOption(false),
UseSoftFloat(false), NoZerosInBSS(false), JITExceptionHandling(false),
JITEmitDebugInfo(false), JITEmitDebugInfoToDisk(false),
- GuaranteedTailCallOpt(false), StackAlignmentOverride(0),
- RealignStack(true), DisableJumpTables(false), EnableFastISel(false),
+ GuaranteedTailCallOpt(false), DisableTailCalls(false),
+ StackAlignmentOverride(0), RealignStack(true),
+ DisableJumpTables(false), EnableFastISel(false),
EnableSegmentedStacks(false), TrapFuncName(""),
FloatABIType(FloatABI::Default)
{}
@@ -147,6 +148,10 @@ namespace llvm {
/// as their parent function, etc.), using an alternate ABI if necessary.
unsigned GuaranteedTailCallOpt : 1;
+ /// DisableTailCalls - This flag controls whether we will use tail calls.
+ /// Disabling them may be useful to maintain a correct call stack.
+ unsigned DisableTailCalls : 1;
+
/// StackAlignmentOverride - Override default stack alignment for target.
unsigned StackAlignmentOverride;