[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