diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-08-30 19:39:58 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-08-30 19:39:58 +0000 |
commit | 76927d758657b3a511c73467ec5a7288795c1513 (patch) | |
tree | db44df7735985e459f5d1cd47bd84dfba4d9f079 /include/llvm/Target | |
parent | 0f9827cd9417c7385c92fa4a0d8d8b4242b3729d (diff) | |
download | llvm-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.h | 4 |
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 |