15 #ifndef LLVM_TARGET_SystemZ_ISELLOWERING_H
16 #define LLVM_TARGET_SystemZ_ISELLOWERING_H
24 namespace SystemZISD {
180 namespace SystemZICMP {
190 class SystemZSubtarget;
191 class SystemZTargetMachine;
213 MVT VT) const LLVM_OVERRIDE;
218 const
char *constraint) const LLVM_OVERRIDE;
221 std::
string &Constraint,
233 CallingConv::
ID CallConv,
bool isVarArg,
243 CallingConv::
ID CallConv,
bool IsVarArg,
274 unsigned Opcode) const;
294 unsigned StoreOpcode,
unsigned STOCOpcode,
298 bool ClearEven,
unsigned SubReg) const;
301 unsigned BinOpcode,
unsigned BitSize,
302 bool Invert =
false) const;
305 unsigned CompareOpcode,
306 unsigned KeepOldMask,
307 unsigned BitSize) const;
312 unsigned Opcode) const;
315 unsigned Opcode) const;
319 #endif // LLVM_TARGET_SystemZ_ISELLOWERING_H
virtual SDValue LowerReturn(SDValue Chain, CallingConv::ID CallConv, bool IsVarArg, const SmallVectorImpl< ISD::OutputArg > &Outs, const SmallVectorImpl< SDValue > &OutVals, SDLoc DL, SelectionDAG &DAG) const LLVM_OVERRIDE
virtual TargetLowering::ConstraintWeight getSingleConstraintMatchWeight(AsmOperandInfo &info, const char *constraint) const LLVM_OVERRIDE
virtual bool allowsUnalignedMemoryAccesses(EVT VT, bool *Fast) const LLVM_OVERRIDE
Determine if the target supports unaligned memory accesses.
virtual SDValue LowerCall(CallLoweringInfo &CLI, SmallVectorImpl< SDValue > &InVals) const LLVM_OVERRIDE
virtual bool mayBeEmittedAsTailCall(CallInst *CI) const LLVM_OVERRIDE
virtual bool isTruncateFree(Type *, Type *) const LLVM_OVERRIDE
virtual SDValue LowerFormalArguments(SDValue Chain, CallingConv::ID CallConv, bool isVarArg, const SmallVectorImpl< ISD::InputArg > &Ins, SDLoc DL, SelectionDAG &DAG, SmallVectorImpl< SDValue > &InVals) const LLVM_OVERRIDE
ID
LLVM Calling Convention Representation.
virtual bool allowTruncateForTailCall(Type *, Type *) const LLVM_OVERRIDE
virtual TargetLowering::ConstraintType getConstraintType(const std::string &Constraint) const LLVM_OVERRIDE
Given a constraint, return the type of constraint it is for this target.
virtual bool isFPImmLegal(const APFloat &Imm, EVT VT) const LLVM_OVERRIDE
A self-contained host- and target-independent arbitrary-precision floating-point software implementat...
virtual const char * getTargetNodeName(unsigned Opcode) const LLVM_OVERRIDE
This method returns the name of a target specific DAG node.
bool isPCREL(unsigned Opcode)
virtual bool isFMAFasterThanFMulAndFAdd(EVT VT) const LLVM_OVERRIDE
virtual std::pair< unsigned, const TargetRegisterClass * > getRegForInlineAsmConstraint(const std::string &Constraint, MVT VT) const LLVM_OVERRIDE
static const int FIRST_TARGET_MEMORY_OPCODE
virtual MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *BB) const LLVM_OVERRIDE
AddrMode
ARM Addressing Modes.
virtual EVT getSetCCResultType(LLVMContext &, EVT) const LLVM_OVERRIDE
virtual void LowerAsmOperandForConstraint(SDValue Op, std::string &Constraint, std::vector< SDValue > &Ops, SelectionDAG &DAG) const LLVM_OVERRIDE
virtual MVT getScalarShiftAmountTy(EVT LHSTy) const LLVM_OVERRIDE
SystemZTargetLowering(SystemZTargetMachine &TM)
virtual SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const LLVM_OVERRIDE
virtual bool isLegalAddressingMode(const AddrMode &AM, Type *Ty) const LLVM_OVERRIDE