From 0fe51a1a34bdb29bba489d49156b189b1daa9a51 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 16 Dec 2022 07:34:42 +0000 Subject: [PATCH] [SelectionDAG] Port ARC/M68k/LoongArch after D140161 --- llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp | 6 +++++- llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp | 2 ++ llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h | 4 +++- llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp | 6 +++++- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp b/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp index 40d9ae4..a0bf17d 100644 --- a/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp +++ b/llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp @@ -38,8 +38,10 @@ namespace { 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; @@ -57,6 +59,8 @@ public: #include "ARCGenDAGISel.inc" }; +char ARCDAGToDAGISel::ID; + } // end anonymous namespace /// This pass converts a legalized DAG into a ARC-specific DAG, ready for diff --git a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp index 49684b9..8dfaf6f 100644 --- a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp @@ -20,6 +20,8 @@ using namespace llvm; #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()) { diff --git a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h index 49843ac..3474813 100644 --- a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h +++ b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.h @@ -24,8 +24,10 @@ class LoongArchDAGToDAGISel : public SelectionDAGISel { 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"; diff --git a/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp b/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp index f9459e28..dd3a1a0 100644 --- a/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp +++ b/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp @@ -173,8 +173,10 @@ namespace { 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"; @@ -310,6 +312,8 @@ private: /// if necessary. SDNode *getGlobalBaseReg(); }; + +char M68kDAGToDAGISel::ID; } // namespace bool M68kDAGToDAGISel::IsProfitableToFold(SDValue N, SDNode *U, -- 2.7.4