14 #ifndef LLVM_LIB_TARGET_MIPS_MIPSSEISELDAGTODAG_H 15 #define LLVM_LIB_TARGET_MIPS_MIPSSEISELDAGTODAG_H 36 unsigned getMSACtrlReg(
const SDValue RegIdx)
const;
40 std::pair<SDNode *, SDNode *> selectMULT(
SDNode *
N,
unsigned Opc,
44 void selectAddE(
SDNode *Node,
const SDLoc &DL)
const;
49 unsigned ShiftAmount)
const;
52 SDValue &Offset)
const override;
55 SDValue &Offset)
const override;
58 SDValue &Offset)
const override;
73 SDValue &Offset)
const override;
76 SDValue &Offset)
const override;
79 SDValue &Offset)
const override;
82 SDValue &Offset)
const override;
85 SDValue &Offset)
const override;
88 SDValue &Offset)
const override;
91 SDValue &Offset)
const override;
94 SDValue &Offset)
const override;
98 unsigned MinSizeInBits)
const override;
101 unsigned ImmBitSize)
const;
119 bool selectVSplatUimmPow2(
SDValue N,
SDValue &Imm)
const override;
122 bool selectVSplatUimmInvPow2(
SDValue N,
SDValue &Imm)
const override;
130 bool trySelect(
SDNode *Node)
override;
138 bool SelectInlineAsmMemoryOperand(
const SDValue &
Op,
139 unsigned ConstraintID,
140 std::vector<SDValue> &OutOps)
override;
This class represents lattice values for constants.
FunctionPass * createMipsSEISelDag(MipsTargetMachine &TM, CodeGenOpt::Level OptLevel)
CodeGenOpt::Level OptLevel
unsigned const MachineRegisterInfo * MRI
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
Represents one node in the SelectionDAG.
Class for arbitrary precision integers.
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
Representation of each machine instruction.
MipsSEDAGToDAGISel(MipsTargetMachine &TM, CodeGenOpt::Level OL)
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...