diff options
Diffstat (limited to 'lib/CodeGen/MIRParser/MIParser.h')
-rw-r--r-- | lib/CodeGen/MIRParser/MIParser.h | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/lib/CodeGen/MIRParser/MIParser.h b/lib/CodeGen/MIRParser/MIParser.h index 8aef704ab36ca..18895b9e54eb4 100644 --- a/lib/CodeGen/MIRParser/MIParser.h +++ b/lib/CodeGen/MIRParser/MIParser.h @@ -15,26 +15,37 @@ #define LLVM_LIB_CODEGEN_MIRPARSER_MIPARSER_H #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/StringRef.h" +#include "llvm/ADT/SmallSet.h" namespace llvm { +class StringRef; class BasicBlock; class MachineBasicBlock; -class MachineInstr; class MachineFunction; +class MachineInstr; +class MachineRegisterInfo; class MDNode; struct SlotMapping; class SMDiagnostic; class SourceMgr; struct PerFunctionMIParsingState { + MachineFunction &MF; + SourceMgr *SM; + const SlotMapping &IRSlots; + DenseMap<unsigned, MachineBasicBlock *> MBBSlots; DenseMap<unsigned, unsigned> VirtualRegisterSlots; DenseMap<unsigned, int> FixedStackObjectSlots; DenseMap<unsigned, int> StackObjectSlots; DenseMap<unsigned, unsigned> ConstantPoolSlots; DenseMap<unsigned, unsigned> JumpTableSlots; + /// Hold the generic virtual registers. + SmallSet<unsigned, 8> GenericVRegs; + + PerFunctionMIParsingState(MachineFunction &MF, SourceMgr &SM, + const SlotMapping &IRSlots); }; /// Parse the machine basic block definitions, and skip the machine @@ -49,10 +60,8 @@ struct PerFunctionMIParsingState { /// resolve the machine basic block references. /// /// Return true if an error occurred. -bool parseMachineBasicBlockDefinitions(MachineFunction &MF, StringRef Src, - PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, - SMDiagnostic &Error); +bool parseMachineBasicBlockDefinitions(PerFunctionMIParsingState &PFS, + StringRef Src, SMDiagnostic &Error); /// Parse the machine instructions. /// @@ -64,35 +73,26 @@ bool parseMachineBasicBlockDefinitions(MachineFunction &MF, StringRef Src, /// on the given source string. /// /// Return true if an error occurred. -bool parseMachineInstructions(MachineFunction &MF, StringRef Src, - const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, SMDiagnostic &Error); - -bool parseMBBReference(MachineBasicBlock *&MBB, SourceMgr &SM, - MachineFunction &MF, StringRef Src, - const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, SMDiagnostic &Error); - -bool parseNamedRegisterReference(unsigned &Reg, SourceMgr &SM, - MachineFunction &MF, StringRef Src, - const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, +bool parseMachineInstructions(const PerFunctionMIParsingState &PFS, + StringRef Src, SMDiagnostic &Error); + +bool parseMBBReference(const PerFunctionMIParsingState &PFS, + MachineBasicBlock *&MBB, StringRef Src, + SMDiagnostic &Error); + +bool parseNamedRegisterReference(const PerFunctionMIParsingState &PFS, + unsigned &Reg, StringRef Src, SMDiagnostic &Error); -bool parseVirtualRegisterReference(unsigned &Reg, SourceMgr &SM, - MachineFunction &MF, StringRef Src, - const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, +bool parseVirtualRegisterReference(const PerFunctionMIParsingState &PFS, + unsigned &Reg, StringRef Src, SMDiagnostic &Error); -bool parseStackObjectReference(int &FI, SourceMgr &SM, MachineFunction &MF, - StringRef Src, - const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, SMDiagnostic &Error); +bool parseStackObjectReference(const PerFunctionMIParsingState &PFS, + int &FI, StringRef Src, SMDiagnostic &Error); -bool parseMDNode(MDNode *&Node, SourceMgr &SM, MachineFunction &MF, - StringRef Src, const PerFunctionMIParsingState &PFS, - const SlotMapping &IRSlots, SMDiagnostic &Error); +bool parseMDNode(const PerFunctionMIParsingState &PFS, MDNode *&Node, + StringRef Src, SMDiagnostic &Error); } // end namespace llvm |