PPCMachineFunctionInfo.h revision 2a27a7598b90359696e31cb665914206f369d1f0
1//===-- PPCMachineFunctionInfo.h - Private data used for PowerPC --*- C++ -*-=//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file was developed by James M. Laskey and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file declares the PowerPC specific subclass of MachineFunctionInfo.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef PPC_MACHINE_FUNCTION_INFO_H
15#define PPC_MACHINE_FUNCTION_INFO_H
16
17#include "llvm/CodeGen/MachineFunction.h"
18
19namespace llvm {
20
21/// PPCFunctionInfo - This class is derived from MachineFunction private
22/// PowerPC target-specific information for each MachineFunction.
23class PPCFunctionInfo : public MachineFunctionInfo {
24private:
25  /// FramePointerSaveIndex - Frame index of where the old frame pointer is
26  /// stored.  Also used as an anchor for instructions that need to be altered
27  /// when using frame pointers (dyna_add, dyna_sub.)
28  int FramePointerSaveIndex;
29
30  /// UsesLR - Indicates whether LR is used in the current function.
31  ///
32  bool UsesLR;
33
34public:
35  PPCFunctionInfo(MachineFunction& MF)
36  : FramePointerSaveIndex(0)
37  {}
38
39  int getFramePointerSaveIndex() const { return FramePointerSaveIndex; }
40  void setFramePointerSaveIndex(int Idx) { FramePointerSaveIndex = Idx; }
41
42  void setUsesLR(bool U) { UsesLR = U; }
43  bool usesLR()          { return UsesLR; }
44
45};
46
47} // end of namespace llvm
48
49
50#endif
51