14 #ifndef LLVM_LIB_TARGET_MIPS_MIPSSEISELLOWERING_H 15 #define LLVM_LIB_TARGET_MIPS_MIPSSEISELLOWERING_H 23 class MachineBasicBlock;
26 class MipsTargetMachine;
28 class TargetRegisterClass;
46 bool *
Fast =
nullptr)
const override;
63 bool isEligibleForTailCallOptimization(
64 const CCState &CCInfo,
unsigned NextStackOffset,
69 std::deque<std::pair<unsigned, SDValue>> &RegsToPass,
70 bool IsPICCall,
bool GlobalOrExternal,
bool InternalLinkage,
77 SDValue lowerMulDiv(
SDValue Op,
unsigned NewOpc,
bool HasLo,
bool HasHi,
94 unsigned BranchOp)
const;
110 unsigned EltSizeInBytes,
142 #endif // LLVM_LIB_TARGET_MIPS_MIPSSEISELLOWERING_H
constexpr char Align[]
Key for Kernel::Arg::Metadata::mAlign.
This class represents lattice values for constants.
bool allowsMisalignedMemoryAccesses(EVT VT, unsigned AS=0, unsigned Align=1, bool *Fast=nullptr) const override
Determine if the target supports unaligned memory accesses.
MachineBasicBlock * EmitInstrWithCustomInserter(MachineInstr &MI, MachineBasicBlock *MBB) const override
This method should be implemented by targets that mark instructions with the 'usesCustomInserter' fla...
SDValue PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const override
This method will be invoked for all target nodes and for any target-independent nodes that the target...
SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override
LowerOperation - Provide custom lowering hooks for some operations.
bool isShuffleMaskLegal(ArrayRef< int > Mask, EVT VT) const override
Targets can use this to indicate that they only support some VECTOR_SHUFFLE operations, those with specific masks.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Fast - This calling convention attempts to make calls as fast as possible (e.g.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
amdgpu Simplify well known AMD library false Value * Callee
This structure contains all information that is necessary for lowering calls.
CCState - This class holds information needed while lowering arguments and return values...
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
Represents one node in the SelectionDAG.
Representation of each machine instruction.
const TargetRegisterClass * getRepRegClassFor(MVT VT) const override
Return the 'representative' register class for the specified value type.
MipsFunctionInfo - This class is derived from MachineFunction private Mips target-specific informatio...
std::underlying_type< E >::type Mask()
Get a bitmask with 1s in all places up to the high-order bit of E's largest value.
MipsSETargetLowering(const MipsTargetMachine &TM, const MipsSubtarget &STI)
void addMSAIntType(MVT::SimpleValueType Ty, const TargetRegisterClass *RC)
Enable MSA support for the given integer type and Register class.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...
void addMSAFloatType(MVT::SimpleValueType Ty, const TargetRegisterClass *RC)
Enable MSA support for the given floating-point type and Register class.