summaryrefslogtreecommitdiff
path: root/include/llvm/Target
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-08-30 19:39:58 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-08-30 19:39:58 +0000
commit76927d758657b3a511c73467ec5a7288795c1513 (patch)
treedb44df7735985e459f5d1cd47bd84dfba4d9f079 /include/llvm/Target
parent0f9827cd9417c7385c92fa4a0d8d8b4242b3729d (diff)
downloadllvm-76927d758657b3a511c73467ec5a7288795c1513.tar.gz
llvm-76927d758657b3a511c73467ec5a7288795c1513.tar.bz2
llvm-76927d758657b3a511c73467ec5a7288795c1513.tar.xz
Emit segmented-stack specific code into function prologues for
X86. Modify the pass added in the previous patch to call this new code. This new prologues generated will call a libgcc routine (__morestack) to allocate more stack space from the heap when required Patch by Sanjoy Das. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138812 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r--include/llvm/Target/TargetFrameLowering.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetFrameLowering.h b/include/llvm/Target/TargetFrameLowering.h
index bec84e5d16..4c759b2ccb 100644
--- a/include/llvm/Target/TargetFrameLowering.h
+++ b/include/llvm/Target/TargetFrameLowering.h
@@ -114,6 +114,10 @@ public:
virtual void emitEpilogue(MachineFunction &MF,
MachineBasicBlock &MBB) const = 0;
+ /// Adjust the prologue to have the function use segmented stacks. This works
+ /// by adding a check even before the "normal" function prologue.
+ virtual void adjustForSegmentedStacks(MachineFunction &MF) const { }
+
/// spillCalleeSavedRegisters - Issues instruction(s) to spill all callee
/// saved registers and returns true if it isn't possible / profitable to do
/// so by issuing a series of store instructions via