summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMFrameLowering.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-12-23 00:36:18 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-12-23 00:36:18 +0000
commitf06f6f50e9844b88cfbb9fb896fff9c3a752966b (patch)
tree346f10d968d528bc683511a5e7a2ae271e23f9a6 /lib/Target/ARM/ARMFrameLowering.h
parentf4aea8f34946d4d2b101b8e3c6db95c18be80173 (diff)
downloadllvm-f06f6f50e9844b88cfbb9fb896fff9c3a752966b.tar.gz
llvm-f06f6f50e9844b88cfbb9fb896fff9c3a752966b.tar.bz2
llvm-f06f6f50e9844b88cfbb9fb896fff9c3a752966b.tar.xz
Experimental support for aligned NEON spills.
ARM targets with NEON units have access to aligned vector loads and stores that are potentially faster than unaligned operations. Add support for spilling the callee-saved NEON registers to an aligned stack area using 16-byte aligned NEON loads and store. This feature is off by default, controlled by an -align-neon-spills command line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147211 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMFrameLowering.h')
-rw-r--r--lib/Target/ARM/ARMFrameLowering.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMFrameLowering.h b/lib/Target/ARM/ARMFrameLowering.h
index 61bb8afa40..a1c2b93562 100644
--- a/lib/Target/ARM/ARMFrameLowering.h
+++ b/lib/Target/ARM/ARMFrameLowering.h
@@ -63,12 +63,13 @@ public:
void emitPushInst(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI,
const std::vector<CalleeSavedInfo> &CSI, unsigned StmOpc,
unsigned StrOpc, bool NoGap,
- bool(*Func)(unsigned, bool),
+ bool(*Func)(unsigned, bool), unsigned NumAlignedDPRCS2Regs,
unsigned MIFlags = 0) const;
void emitPopInst(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI,
const std::vector<CalleeSavedInfo> &CSI, unsigned LdmOpc,
unsigned LdrOpc, bool isVarArg, bool NoGap,
- bool(*Func)(unsigned, bool)) const;
+ bool(*Func)(unsigned, bool),
+ unsigned NumAlignedDPRCS2Regs) const;
};
} // End llvm namespace