mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	This commit implements the initial serialization of machine constant pools and the constant pool index machine operands. The constant pool is serialized using a YAML sequence of YAML mappings that represent the constant values. The target-specific constant pool items aren't serialized by this commit. Reviewers: Duncan P. N. Exon Smith git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242707 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===- MIParser.h - Machine Instructions Parser ---------------------------===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// This file declares the function that parses the machine instructions.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_LIB_CODEGEN_MIRPARSER_MIPARSER_H
 | 
						|
#define LLVM_LIB_CODEGEN_MIRPARSER_MIPARSER_H
 | 
						|
 | 
						|
#include "llvm/ADT/DenseMap.h"
 | 
						|
#include "llvm/ADT/StringRef.h"
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
 | 
						|
class MachineBasicBlock;
 | 
						|
class MachineInstr;
 | 
						|
class MachineFunction;
 | 
						|
struct SlotMapping;
 | 
						|
class SMDiagnostic;
 | 
						|
class SourceMgr;
 | 
						|
 | 
						|
struct PerFunctionMIParsingState {
 | 
						|
  DenseMap<unsigned, MachineBasicBlock *> MBBSlots;
 | 
						|
  DenseMap<unsigned, unsigned> VirtualRegisterSlots;
 | 
						|
  DenseMap<unsigned, int> FixedStackObjectSlots;
 | 
						|
  DenseMap<unsigned, int> StackObjectSlots;
 | 
						|
  DenseMap<unsigned, unsigned> ConstantPoolSlots;
 | 
						|
  DenseMap<unsigned, unsigned> JumpTableSlots;
 | 
						|
};
 | 
						|
 | 
						|
bool parseMachineInstr(MachineInstr *&MI, SourceMgr &SM, 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,
 | 
						|
                                 SMDiagnostic &Error);
 | 
						|
 | 
						|
} // end namespace llvm
 | 
						|
 | 
						|
#endif
 |