LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSP430FrameLowering.h
Go to the documentation of this file.
1 //==- MSP430FrameLowering.h - Define frame lowering for MSP430 --*- C++ -*--==//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 //
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef MSP430_FRAMEINFO_H
15 #define MSP430_FRAMEINFO_H
16 
17 #include "MSP430.h"
18 #include "MSP430Subtarget.h"
20 
21 namespace llvm {
22  class MSP430Subtarget;
23 
25 protected:
27 
28 public:
29  explicit MSP430FrameLowering(const MSP430Subtarget &sti)
31  STI(sti) {}
32 
33  /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
34  /// the function.
35  void emitPrologue(MachineFunction &MF) const;
36  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
37 
39  MachineBasicBlock &MBB,
41 
44  const std::vector<CalleeSavedInfo> &CSI,
45  const TargetRegisterInfo *TRI) const;
48  const std::vector<CalleeSavedInfo> &CSI,
49  const TargetRegisterInfo *TRI) const;
50 
51  bool hasFP(const MachineFunction &MF) const;
52  bool hasReservedCallFrame(const MachineFunction &MF) const;
54  RegScavenger *RS = NULL) const;
55 };
56 
57 } // End llvm namespace
58 
59 #endif
bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
void processFunctionBeforeFrameFinalized(MachineFunction &MF, RegScavenger *RS=NULL) const
void emitPrologue(MachineFunction &MF) const
bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
bool hasFP(const MachineFunction &MF) const
MSP430FrameLowering(const MSP430Subtarget &sti)
void eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
const MSP430Subtarget & STI
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
bool hasReservedCallFrame(const MachineFunction &MF) const
#define I(x, y, z)
Definition: MD5.cpp:54