LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HexagonFrameLowering.h
Go to the documentation of this file.
1 //=- HexagonFrameLowering.h - Define frame lowering for Hexagon --*- 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 #ifndef HEXAGON_FRAMEINFO_H
11 #define HEXAGON_FRAMEINFO_H
12 
13 #include "Hexagon.h"
14 #include "HexagonSubtarget.h"
16 
17 namespace llvm {
18 
20 private:
21  const HexagonSubtarget &STI;
22  void determineFrameLayout(MachineFunction &MF) const;
23 
24 public:
26  : TargetFrameLowering(StackGrowsDown, 8, 0), STI(sti) {
27  }
28 
29  /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
30  /// the function.
31  void emitPrologue(MachineFunction &MF) const;
32  void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const;
33  virtual bool
36  const std::vector<CalleeSavedInfo> &CSI,
37  const TargetRegisterInfo *TRI) const;
38 
40  MachineBasicBlock &MBB,
42 
43  virtual bool
46  const std::vector<CalleeSavedInfo> &CSI,
47  const TargetRegisterInfo *TRI) const;
48  int getFrameIndexOffset(const MachineFunction &MF, int FI) const;
49  bool hasFP(const MachineFunction &MF) const;
50  bool hasTailCall(MachineBasicBlock &MBB) const;
51 };
52 
53 } // End llvm namespace
54 
55 #endif
bool hasTailCall(MachineBasicBlock &MBB) const
bool hasFP(const MachineFunction &MF) const
virtual bool spillCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
HexagonFrameLowering(const HexagonSubtarget &sti)
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
int getFrameIndexOffset(const MachineFunction &MF, int FI) const
void eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
virtual bool restoreCalleeSavedRegisters(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const std::vector< CalleeSavedInfo > &CSI, const TargetRegisterInfo *TRI) const
#define I(x, y, z)
Definition: MD5.cpp:54
void emitPrologue(MachineFunction &MF) const