[llvm] [llvm-mc] Remove unused MCRegisterInfo/MCAsmInfo in Disassembler (NFC) (PR #208483)

Alex Kuleshov via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 9 08:16:48 PDT 2026


https://github.com/0xAX created https://github.com/llvm/llvm-project/pull/208483

Disassembler::disassemble() creates MCRegisterInfo and MCAsmInfo instances that are no longer used.

Initially, they were introduced in a1bc0f5 to construct MCContext after MCDisassembler began requiring one, but became dead in 2cb2707.

llvm-mc's main() already creates both objects and passes them into the MCContext that disassemble() receives, so the error paths here are unreachable.

Removing these objects also makes the MCTargetOptions parameter unused, so drop it as well.

>From 1a2be1d678195c03ffb0ecdcbfd6582325a22333 Mon Sep 17 00:00:00 2001
From: Alexander Kuleshov <kuleshovmail at gmail.com>
Date: Thu, 9 Jul 2026 20:15:30 +0500
Subject: [PATCH] [llvm-mc] Remove unused MCRegisterInfo/MCAsmInfo in
 Disassembler (NFC)

Disassembler::disassemble() creates MCRegisterInfo and MCAsmInfo
instances that are no longer used.

Initially, they were introduced in a1bc0f5 to construct MCContext
after MCDisassembler began requiring one, but became dead in 2cb2707.

llvm-mc's main() already creates both objects and passes them into the
MCContext that disassemble() receives, so the error paths here are
unreachable.

Removing these objects also makes the MCTargetOptions parameter
unused, so drop it as well.
---
 llvm/tools/llvm-mc/Disassembler.cpp | 18 +-----------------
 llvm/tools/llvm-mc/Disassembler.h   |  4 +---
 llvm/tools/llvm-mc/llvm-mc.cpp      |  2 +-
 3 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/llvm/tools/llvm-mc/Disassembler.cpp b/llvm/tools/llvm-mc/Disassembler.cpp
index 9a61f68b12d31..ba6e79d0b7016 100644
--- a/llvm/tools/llvm-mc/Disassembler.cpp
+++ b/llvm/tools/llvm-mc/Disassembler.cpp
@@ -13,12 +13,9 @@
 
 #include "Disassembler.h"
 #include "llvm/ADT/StringExtras.h"
-#include "llvm/MC/MCAsmInfo.h"
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCDisassembler/MCDisassembler.h"
 #include "llvm/MC/MCInst.h"
-#include "llvm/MC/MCObjectFileInfo.h"
-#include "llvm/MC/MCRegisterInfo.h"
 #include "llvm/MC/MCStreamer.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/MC/TargetRegistry.h"
@@ -167,22 +164,9 @@ static bool byteArrayFromString(ByteArrayTy &ByteArray, StringRef &Str,
 
 int Disassembler::disassemble(const Target &T, MCSubtargetInfo &STI,
                               MCStreamer &Streamer, MemoryBuffer &Buffer,
-                              SourceMgr &SM, MCContext &Ctx,
-                              const MCTargetOptions &MCOptions, bool HexBytes,
+                              SourceMgr &SM, MCContext &Ctx, bool HexBytes,
                               unsigned NumBenchmarkRuns) {
   const Triple &TheTriple = STI.getTargetTriple();
-  std::unique_ptr<const MCRegisterInfo> MRI(T.createMCRegInfo(TheTriple));
-  if (!MRI) {
-    errs() << "error: no register info for target " << TheTriple.str() << '\n';
-    return -1;
-  }
-
-  std::unique_ptr<const MCAsmInfo> MAI(
-      T.createMCAsmInfo(*MRI, TheTriple, MCOptions));
-  if (!MAI) {
-    errs() << "error: no assembly info for target " << TheTriple.str() << '\n';
-    return -1;
-  }
 
   std::unique_ptr<const MCDisassembler> DisAsm(
     T.createMCDisassembler(STI, Ctx));
diff --git a/llvm/tools/llvm-mc/Disassembler.h b/llvm/tools/llvm-mc/Disassembler.h
index 76cee9e84c312..59564eb87784a 100644
--- a/llvm/tools/llvm-mc/Disassembler.h
+++ b/llvm/tools/llvm-mc/Disassembler.h
@@ -23,14 +23,12 @@ class SourceMgr;
 class MCContext;
 class MCSubtargetInfo;
 class MCStreamer;
-class MCTargetOptions;
 
 class Disassembler {
 public:
   static int disassemble(const Target &T, MCSubtargetInfo &STI,
                          MCStreamer &Streamer, MemoryBuffer &Buffer,
-                         SourceMgr &SM, MCContext &Ctx,
-                         const MCTargetOptions &MCOptions, bool HexBytes,
+                         SourceMgr &SM, MCContext &Ctx, bool HexBytes,
                          unsigned NumBenchmarkRuns);
 };
 
diff --git a/llvm/tools/llvm-mc/llvm-mc.cpp b/llvm/tools/llvm-mc/llvm-mc.cpp
index 903f82e6855ba..01d42f07e337d 100644
--- a/llvm/tools/llvm-mc/llvm-mc.cpp
+++ b/llvm/tools/llvm-mc/llvm-mc.cpp
@@ -672,7 +672,7 @@ int main(int argc, char **argv) {
   }
   if (disassemble)
     Res = Disassembler::disassemble(*TheTarget, *STI, *Str, *Buffer, SrcMgr,
-                                    Ctx, MCOptions, HexBytes, NumBenchmarkRuns);
+                                    Ctx, HexBytes, NumBenchmarkRuns);
 
   // Keep output if no errors.
   if (Res == 0) {



More information about the llvm-commits mailing list