1 //===-- SPUMachineFunctionInfo.h - Private data used for CellSPU --*- 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 // This file declares the IBM Cell SPU specific subclass of MachineFunctionInfo. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef SPU_MACHINE_FUNCTION_INFO_H 15 #define SPU_MACHINE_FUNCTION_INFO_H 16 17 #include "llvm/CodeGen/MachineFunction.h" 18 19 namespace llvm { 20 21 /// SPUFunctionInfo - Cell SPU target-specific information for each 22 /// MachineFunction 23 class SPUFunctionInfo : public MachineFunctionInfo { 24 private: 25 /// UsesLR - Indicates whether LR is used in the current function. 26 /// 27 bool UsesLR; 28 29 // VarArgsFrameIndex - FrameIndex for start of varargs area. 30 int VarArgsFrameIndex; 31 32 public: SPUFunctionInfo(MachineFunction & MF)33 SPUFunctionInfo(MachineFunction& MF) 34 : UsesLR(false), 35 VarArgsFrameIndex(0) 36 {} 37 setUsesLR(bool U)38 void setUsesLR(bool U) { UsesLR = U; } usesLR()39 bool usesLR() { return UsesLR; } 40 getVarArgsFrameIndex()41 int getVarArgsFrameIndex() const { return VarArgsFrameIndex; } setVarArgsFrameIndex(int Index)42 void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } 43 }; 44 45 } // end of namespace llvm 46 47 48 #endif 49 50