15 #ifndef LLVM_AVR_ISEL_LOWERING_H 16 #define LLVM_AVR_ISEL_LOWERING_H 85 const char *getTargetNodeName(
unsigned Opcode)
const override;
107 EVT VT)
const override;
117 const char *constraint)
const override;
119 std::pair<unsigned, const TargetRegisterClass *>
123 unsigned getInlineAsmMemConstraint(
StringRef ConstraintCode)
const override;
125 void LowerAsmOperandForConstraint(
SDValue Op, std::string &Constraint,
126 std::vector<SDValue> &Ops,
129 unsigned getRegisterByName(
const char* RegName,
EVT VT,
180 #endif // LLVM_AVR_ISEL_LOWERING_H static SDValue LowerCallResult(SDValue Chain, SDValue InFlag, const SmallVectorImpl< CCValAssign > &RVLocs, const SDLoc &dl, SelectionDAG &DAG, SmallVectorImpl< SDValue > &InVals)
LowerCallResult - Lower the result values of a call into the appropriate copies out of appropriate ph...
BUILTIN_OP_END - This must be the last enum value in this list.
A parsed version of the target data layout string in and methods for querying it. ...
This represents an addressing mode of: BaseGV + BaseOffs + BaseReg + Scale*ScaleReg If BaseGV is null...
MVT getScalarShiftAmountTy(const DataLayout &, EVT LHSTy) const override
EVT is not used in-tree, but is used by out-of-tree target.
This class represents lattice values for constants.
bool CCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
CCAssignFn - This function assigns a location for Val, updating State to reflect the change...
A wrapper node for TargetConstantPool, TargetExternalSymbol, and TargetGlobalAddress.
Function Alias Analysis Results
Test for zero or minus instruction.
unsigned const TargetRegisterInfo * TRI
Compare with carry instruction.
Represents an abstract call instruction, which includes a bunch of information.
A loop of single right bit rotate instructions.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
A generic AVR implementation.
const AVRSubtarget & Subtarget
This contains information for each constraint that we are lowering.
NodeType
AVR Specific DAG Nodes.
CondCode
ISD::CondCode enum - These are ordered carefully to make the bitfields below work out...
static SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG)
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important class for using LLVM in a threaded context.
AVR conditional branches.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
This structure contains all information that is necessary for lowering calls.
A loop of single logical shift right instructions.
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
Performs target lowering for the AVR.
A loop of single left bit rotate instructions.
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
Represents one node in the SelectionDAG.
A specific AVR target MCU.
static SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
A loop of single logical shift left instructions.
static SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG, const SparcTargetLowering &TLI, bool hasHardQuad)
Representation of each machine instruction.
Start the numbering where the builtin ops leave off.
A loop of single arithmetic shift right instructions.
Operand 0 and operand 1 are selection variable, operand 2 is condition code and operand 3 is flag ope...
StringRef - Represent a constant reference to a string, i.e.
MVT::SimpleValueType getCmpLibcallReturnType() const override
Return the ValueType for comparison libcalls.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...
This file describes how to lower LLVM code to machine code.
MemIndexedMode
MemIndexedMode enum - This enum defines the load / store indexed addressing modes.