[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