summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2016-11-07 22:00:48 +0000
committerDerek Schuff <dschuff@google.com>2016-11-07 22:00:48 +0000
commit0d41b7b3f3e41442992b605923ff4f0f3a26ce85 (patch)
treebd906182aa74c5b69eb86c155f5c37a83a026ce7 /llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
parentd74e1e161dc67c5369df776e2300be365ddd5e90 (diff)
downloadbcm5719-llvm-0d41b7b3f3e41442992b605923ff4f0f3a26ce85.tar.gz
bcm5719-llvm-0d41b7b3f3e41442992b605923ff4f0f3a26ce85.zip
[WebAssembly] Emit a BasePointer when we have overly-aligned stack objects
Because we shift the stack pointer by an unknown amount, we need an additional pointer. In the case where we have variable-size objects as well, we can't reuse the frame pointer, thus three pointers. Patch by Jacob Gravelle Differential Revision: https://reviews.llvm.org/D26263 llvm-svn: 286160
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
index e20fc5df744..bf326fce88f 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
@@ -46,6 +46,7 @@ class WebAssemblyFrameLowering final : public TargetFrameLowering {
bool hasReservedCallFrame(const MachineFunction &MF) const override;
private:
+ bool hasBP(const MachineFunction &MF) const;
bool needsSP(const MachineFunction &MF, const MachineFrameInfo &MFI) const;
bool needsSPWriteback(const MachineFunction &MF,
const MachineFrameInfo &MFI) const;
OpenPOWER on IntegriCloud