[llvm-branch-commits] [llvm] [Lanai] Port SelectionDAGISel to NewPM (PR #205997)

Aiden Grossman via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jun 26 16:54:17 PDT 2026


https://github.com/boomanaiden154 updated https://github.com/llvm/llvm-project/pull/205997

>From 53783eb31c15791e02a92c96abf22bc1a1b9f86c Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 26 Jun 2026 07:15:53 +0000
Subject: [PATCH 1/3] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20in?=
 =?UTF-8?q?itial=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.7
---
 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp |  4 ++++
 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h   | 25 +++++++++++++++++++++
 2 files changed, 29 insertions(+)
 create mode 100644 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h

diff --git a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
index 73a162ffca75a..aff7aaf298993 100644
--- a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
+++ b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
@@ -10,6 +10,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "LanaiISelDAGToDAG.h"
 #include "LanaiAluCode.h"
 #include "LanaiTargetMachine.h"
 #include "llvm/CodeGen/MachineConstantPool.h"
@@ -355,6 +356,9 @@ void LanaiDAGToDAGISel::selectFrameIndex(SDNode *Node) {
   ReplaceNode(Node, CurDAG->getMachineNode(Opc, DL, VT, TFI, Imm));
 }
 
+LanaiISelDAGToDAGPass::LanaiISelDAGToDAGPass(LanaiTargetMachine &TM)
+    : SelectionDAGISelPass(std::make_unique<LanaiDAGToDAGISel>(TM)) {}
+
 // createLanaiISelDag - This pass converts a legalized DAG into a
 // Lanai-specific DAG, ready for instruction scheduling.
 FunctionPass *llvm::createLanaiISelDag(LanaiTargetMachine &TM) {
diff --git a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h
new file mode 100644
index 0000000000000..c0a245488485d
--- /dev/null
+++ b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h
@@ -0,0 +1,25 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H
+#define LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H
+
+#include "llvm/CodeGen/SelectionDAGISel.h"
+
+namespace llvm {
+
+class LanaiTargetMachine;
+
+class LanaiISelDAGToDAGPass : public SelectionDAGISelPass {
+public:
+  LanaiISelDAGToDAGPass(LanaiTargetMachine &TM);
+};
+
+} // namespace llvm
+
+#endif // LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H

>From 6d2e3acbf74297d043270d77d9d32146e2cb2af5 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 26 Jun 2026 18:53:21 +0000
Subject: [PATCH 2/3] consistent

Created using spr 1.3.7
---
 llvm/lib/Target/Lanai/Lanai.h               |  6 +++++
 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp |  1 -
 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h   | 25 ---------------------
 3 files changed, 6 insertions(+), 26 deletions(-)
 delete mode 100644 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h

diff --git a/llvm/lib/Target/Lanai/Lanai.h b/llvm/lib/Target/Lanai/Lanai.h
index 032e5fe186f3a..4cfcc490cadd3 100644
--- a/llvm/lib/Target/Lanai/Lanai.h
+++ b/llvm/lib/Target/Lanai/Lanai.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_LIB_TARGET_LANAI_LANAI_H
 #define LLVM_LIB_TARGET_LANAI_LANAI_H
 
+#include "llvm/CodeGen/SelectionDAGISel.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
@@ -23,6 +24,11 @@ class PassRegistry;
 
 // createLanaiISelDag - This pass converts a legalized DAG into a
 // Lanai-specific DAG, ready for instruction scheduling.
+class LanaiISelDAGToDAGPass : public SelectionDAGISelPass {
+public:
+  LanaiISelDAGToDAGPass(LanaiTargetMachine &TM);
+};
+
 FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM);
 
 // createLanaiDelaySlotFillerPass - This pass fills delay slots
diff --git a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
index aff7aaf298993..5c723e61a2f19 100644
--- a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
+++ b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
@@ -10,7 +10,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "LanaiISelDAGToDAG.h"
 #include "LanaiAluCode.h"
 #include "LanaiTargetMachine.h"
 #include "llvm/CodeGen/MachineConstantPool.h"
diff --git a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h
deleted file mode 100644
index c0a245488485d..0000000000000
--- a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.h
+++ /dev/null
@@ -1,25 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H
-#define LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H
-
-#include "llvm/CodeGen/SelectionDAGISel.h"
-
-namespace llvm {
-
-class LanaiTargetMachine;
-
-class LanaiISelDAGToDAGPass : public SelectionDAGISelPass {
-public:
-  LanaiISelDAGToDAGPass(LanaiTargetMachine &TM);
-};
-
-} // namespace llvm
-
-#endif // LLVM_LIB_TARGET_LANAI_LANAIISELDAGTODAG_H

>From 9a81d734ced5c616bf21397572d044a660b65949 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Fri, 26 Jun 2026 19:10:47 +0000
Subject: [PATCH 3/3] rebase

Created using spr 1.3.7
---
 llvm/lib/Target/Lanai/Lanai.h                | 4 ++--
 llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp  | 2 +-
 llvm/lib/Target/Lanai/LanaiTargetMachine.cpp | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/Target/Lanai/Lanai.h b/llvm/lib/Target/Lanai/Lanai.h
index 4cfcc490cadd3..e230189d6ad4c 100644
--- a/llvm/lib/Target/Lanai/Lanai.h
+++ b/llvm/lib/Target/Lanai/Lanai.h
@@ -22,14 +22,14 @@ class FunctionPass;
 class LanaiTargetMachine;
 class PassRegistry;
 
-// createLanaiISelDag - This pass converts a legalized DAG into a
+// createLanaiISelDagPass - This pass converts a legalized DAG into a
 // Lanai-specific DAG, ready for instruction scheduling.
 class LanaiISelDAGToDAGPass : public SelectionDAGISelPass {
 public:
   LanaiISelDAGToDAGPass(LanaiTargetMachine &TM);
 };
 
-FunctionPass *createLanaiISelDag(LanaiTargetMachine &TM);
+FunctionPass *createLanaiISelDagLegacyPass(LanaiTargetMachine &TM);
 
 // createLanaiDelaySlotFillerPass - This pass fills delay slots
 // with useful instructions or nop's
diff --git a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
index 5c723e61a2f19..798bfdf959ac4 100644
--- a/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
+++ b/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
@@ -360,6 +360,6 @@ LanaiISelDAGToDAGPass::LanaiISelDAGToDAGPass(LanaiTargetMachine &TM)
 
 // createLanaiISelDag - This pass converts a legalized DAG into a
 // Lanai-specific DAG, ready for instruction scheduling.
-FunctionPass *llvm::createLanaiISelDag(LanaiTargetMachine &TM) {
+FunctionPass *llvm::createLanaiISelDagLegacyPass(LanaiTargetMachine &TM) {
   return new LanaiDAGToDAGISelLegacy(TM);
 }
diff --git a/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp b/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
index df56f9ae39fe2..807fe25e1248a 100644
--- a/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
+++ b/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
@@ -99,7 +99,7 @@ void LanaiPassConfig::addIRPasses() {
 
 // Install an instruction selector pass.
 bool LanaiPassConfig::addInstSelector() {
-  addPass(createLanaiISelDag(getLanaiTargetMachine()));
+  addPass(createLanaiISelDagLegacyPass(getLanaiTargetMachine()));
   return false;
 }
 



More information about the llvm-branch-commits mailing list