[llvm] [BPF] Wire-up GISel pipeline in NewPM (PR #218103)
Aiden Grossman via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 21 22:59:14 PDT 2026
https://github.com/boomanaiden154 created https://github.com/llvm/llvm-project/pull/218103
We can do this now that the base GISel passes are ported. Intended to exactly match the existing TPC.
>From 63f1bea1be1a98e14607aeca6549e9a16065da3b Mon Sep 17 00:00:00 2001
From: Aiden Grossman <aidengrossman at google.com>
Date: Sat, 22 Aug 2026 05:55:32 +0000
Subject: [PATCH] [BPF] Wire-up GISel pipeline in NewPM
We can do this now that the base GISel passes are ported. Intended to
exactly match the existing TPC.
---
llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp b/llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp
index f70eda86dc580..6c7c7c7df46de 100644
--- a/llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp
+++ b/llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp
@@ -11,6 +11,10 @@
#include "BPFSubtarget.h"
#include "BPFTargetMachine.h"
#include "llvm/CodeGen/AtomicExpand.h"
+#include "llvm/CodeGen/GlobalISel/IRTranslator.h"
+#include "llvm/CodeGen/GlobalISel/InstructionSelect.h"
+#include "llvm/CodeGen/GlobalISel/Legalizer.h"
+#include "llvm/CodeGen/GlobalISel/RegBankSelect.h"
#include "llvm/IR/PassInstrumentation.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/Passes/CodeGenPassBuilder.h"
@@ -40,7 +44,14 @@ class BPFCodeGenPassBuilder : public CodeGenPassBuilder {
: CodeGenPassBuilder(TM, Opts, PIC) {}
void addIRPasses(PassManagerWrapper &PMW) override;
+
Error addInstSelector(PassManagerWrapper &PMW) override;
+
+ Error addIRTranslator(PassManagerWrapper &PMW) override;
+ Error addLegalizeMachineIR(PassManagerWrapper &PMW) override;
+ Error addRegBankSelect(PassManagerWrapper &PMW) override;
+ Error addGlobalInstructionSelect(PassManagerWrapper &PMW) override;
+
void addMachineSSAOptimization(PassManagerWrapper &PMW) override;
void addPreEmitPass(PassManagerWrapper &PMW) override;
void addAsmPrinterBegin(PassManagerWrapper &PMW) override;
@@ -61,6 +72,27 @@ Error BPFCodeGenPassBuilder::addInstSelector(PassManagerWrapper &PMW) {
return Error::success();
}
+Error BPFCodeGenPassBuilder::addIRTranslator(PassManagerWrapper &PMW) {
+ addMachineFunctionPass(IRTranslatorPass(getOptLevel()), PMW);
+ return Error::success();
+}
+
+Error BPFCodeGenPassBuilder::addLegalizeMachineIR(PassManagerWrapper &PMW) {
+ addMachineFunctionPass(LegalizerPass(), PMW);
+ return Error::success();
+}
+
+Error BPFCodeGenPassBuilder::addRegBankSelect(PassManagerWrapper &PMW) {
+ addMachineFunctionPass(RegBankSelectPass(), PMW);
+ return Error::success();
+}
+
+Error BPFCodeGenPassBuilder::addGlobalInstructionSelect(
+ PassManagerWrapper &PMW) {
+ addMachineFunctionPass(InstructionSelectPass(), PMW);
+ return Error::success();
+}
+
void BPFCodeGenPassBuilder::addMachineSSAOptimization(PassManagerWrapper &PMW) {
addMachineFunctionPass(BPFMISimplifyPatchablePass(), PMW);
More information about the llvm-commits
mailing list