class ARCDAGToDAGISel : public SelectionDAGISel {
public:
+ static char ID;
+
ARCDAGToDAGISel(ARCTargetMachine &TM, CodeGenOpt::Level OptLevel)
- : SelectionDAGISel(TM, OptLevel) {}
+ : SelectionDAGISel(ID, TM, OptLevel) {}
void Select(SDNode *N) override;
#include "ARCGenDAGISel.inc"
};
+char ARCDAGToDAGISel::ID;
+
} // end anonymous namespace
/// This pass converts a legalized DAG into a ARC-specific DAG, ready for
#define DEBUG_TYPE "loongarch-isel"
+char LoongArchDAGToDAGISel::ID;
+
void LoongArchDAGToDAGISel::Select(SDNode *Node) {
// If we have a custom node, we have already selected.
if (Node->isMachineOpcode()) {
const LoongArchSubtarget *Subtarget = nullptr;
public:
+ static char ID;
+
explicit LoongArchDAGToDAGISel(LoongArchTargetMachine &TM)
- : SelectionDAGISel(TM) {}
+ : SelectionDAGISel(ID, TM) {}
StringRef getPassName() const override {
return "LoongArch DAG->DAG Pattern Instruction Selection";
class M68kDAGToDAGISel : public SelectionDAGISel {
public:
+ static char ID;
+
explicit M68kDAGToDAGISel(M68kTargetMachine &TM)
- : SelectionDAGISel(TM), Subtarget(nullptr) {}
+ : SelectionDAGISel(ID, TM), Subtarget(nullptr) {}
StringRef getPassName() const override {
return "M68k DAG->DAG Pattern Instruction Selection";
/// if necessary.
SDNode *getGlobalBaseReg();
};
+
+char M68kDAGToDAGISel::ID;
} // namespace
bool M68kDAGToDAGISel::IsProfitableToFold(SDValue N, SDNode *U,