aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMFrameInfo.h
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2010-11-15 00:06:54 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2010-11-15 00:06:54 +0000
commit33464912237efaa0ed7060829e66b59055bdd48b (patch)
tree3b5a58918b40d4368be141a6350de4e4c8607032 /lib/Target/ARM/ARMFrameInfo.h
parent78b4fee8fd040d802e027da7bef3f707b12d8df5 (diff)
downloadexternal_llvm-33464912237efaa0ed7060829e66b59055bdd48b.zip
external_llvm-33464912237efaa0ed7060829e66b59055bdd48b.tar.gz
external_llvm-33464912237efaa0ed7060829e66b59055bdd48b.tar.bz2
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMFrameInfo.h')
-rw-r--r--lib/Target/ARM/ARMFrameInfo.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMFrameInfo.h b/lib/Target/ARM/ARMFrameInfo.h
index d5dae24..9ea97e8 100644
--- a/lib/Target/ARM/ARMFrameInfo.h
+++ b/lib/Target/ARM/ARMFrameInfo.h
@@ -19,12 +19,21 @@
#include "llvm/Target/TargetFrameInfo.h"
namespace llvm {
+ class ARMSubtarget;
class ARMFrameInfo : public TargetFrameInfo {
+protected:
+ const ARMSubtarget &STI;
+
public:
- explicit ARMFrameInfo(const ARMSubtarget &ST)
- : TargetFrameInfo(StackGrowsDown, ST.getStackAlignment(), 0, 4) {
+ explicit ARMFrameInfo(const ARMSubtarget &sti)
+ : TargetFrameInfo(StackGrowsDown, sti.getStackAlignment(), 0, 4), STI(sti) {
}
+
+ /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
+ /// the function.
+ void emitPrologue(MachineFunction &MF) const;
+ void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
};
} // End llvm namespace