77 case SystemZ::CallBRASL:
83 case SystemZ::CallBASR:
104 case SystemZ::IIHF64:
110 case SystemZ::RISBHH:
111 case SystemZ::RISBHL:
115 case SystemZ::RISBLH:
116 case SystemZ::RISBLL:
120 #define LOWER_LOW(NAME) \
121 case SystemZ::NAME##64: LoweredMI = lowerRILow(MI, SystemZ::NAME); break
137 #define LOWER_HIGH(NAME) \
138 case SystemZ::NAME##64: LoweredMI = lowerRIHigh(MI, SystemZ::NAME); break
155 Lower.lower(MI, LoweredMI);
188 const char *ExtraCode,
190 if (ExtraCode && *ExtraCode ==
'n') {
205 const char *ExtraCode,
222 if (!Stubs.empty()) {
226 for (
unsigned i = 0, e = Stubs.size(); i != e; ++i) {
static void printAddress(unsigned Base, int64_t Disp, unsigned Index, raw_ostream &O)
MCSymbol * getSymbol(const GlobalValue *GV) const
The main container class for the LLVM Intermediate Representation.
unsigned getPointerSize(unsigned AS=0) const
void LLVMInitializeSystemZAsmPrinter()
const MachineFunction * MF
The current machine function.
virtual void EmitInstruction(const MCInst &Inst)=0
std::vector< std::pair< MCSymbol *, StubValueTy > > SymbolListTy
unsigned getRegAsGRH32(unsigned Reg)
bool isImm() const
isImm - Tests if this is a MO_Immediate operand.
unsigned getRegAsGR32(unsigned Reg)
#define llvm_unreachable(msg)
virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV) LLVM_OVERRIDE
void SwitchSection(const MCSection *Section, const MCExpr *Subsection=0)
MCContext & getContext() const
void EmitValue(const MCExpr *Value, unsigned Size)
MachineModuleInfo * MMI
MMI - This is a pointer to the current MachineModuleInfo.
MCInstBuilder & addExpr(const MCExpr *Val)
Add a new MCExpr operand.
SymbolListTy GetGVStubList() const
Accessor methods to return the set of stubs in sorted order.
static const MCSymbolRefExpr * Create(const MCSymbol *Symbol, MCContext &Ctx)
MCInstBuilder & addReg(unsigned Reg)
Add a new register operand.
Control flow instructions. These all have token chains.
static MCInst lowerRIEfLow(const MachineInstr *MI, unsigned Opcode)
const MachineOperand & getOperand(unsigned i) const
static MCInst lowerRIHigh(const MachineInstr *MI, unsigned Opcode)
virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS) LLVM_OVERRIDE
MCInstBuilder & addImm(int64_t Val)
Add a new integer immediate operand.
static void printOperand(const MCOperand &MO, raw_ostream &O)
virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS) LLVM_OVERRIDE
const GlobalValue * getGlobalValue() const
virtual void EmitLabel(MCSymbol *Symbol)
uint64_t getTypeAllocSize(Type *Ty) const
Instr is a return instruction.
static MCSymbolRefExpr::VariantKind getModifierVariantKind(SystemZCP::SystemZCPModifier Modifier)
unsigned getRegAsGR64(unsigned Reg)
bool isCompare(QueryType Type=IgnoreBundle) const
isCompare - Return true if this instruction is a comparison.
static MCInst lowerRILow(const MachineInstr *MI, unsigned Opcode)
SystemZCP::SystemZCPModifier getModifier() const
virtual const DataLayout * getDataLayout() const
unsigned getReg() const
getReg - Returns the register number.
const TargetLoweringObjectFile & getObjFileLowering() const
getObjFileLowering - Return information about object file lowering.
virtual void EmitInstruction(const MachineInstr *MI) LLVM_OVERRIDE
EmitInstruction - Targets should implement this to emit instructions.
virtual void EmitEndOfAsmFile(Module &M) LLVM_OVERRIDE
void EmitSymbolValue(const MCSymbol *Sym, unsigned Size)
const MCSection * getDataRelSection() const
static RegisterPass< NVPTXAllocaHoisting > X("alloca-hoisting","Hoisting alloca instructions in non-entry ""blocks to the entry block")
INITIALIZE_PASS(GlobalMerge,"global-merge","Global Merge", false, false) bool GlobalMerge const DataLayout * TD