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 19namespace llvm { 20 21/// SPUFunctionInfo - Cell SPU target-specific information for each 22/// MachineFunction 23class SPUFunctionInfo : public MachineFunctionInfo { 24private: 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 32public: 33 SPUFunctionInfo(MachineFunction& MF) 34 : UsesLR(false), 35 VarArgsFrameIndex(0) 36 {} 37 38 void setUsesLR(bool U) { UsesLR = U; } 39 bool usesLR() { return UsesLR; } 40 41 int getVarArgsFrameIndex() const { return VarArgsFrameIndex; } 42 void setVarArgsFrameIndex(int Index) { VarArgsFrameIndex = Index; } 43}; 44 45} // end of namespace llvm 46 47 48#endif 49 50