[llvm] [llvm-mc] Remove unused MCRegisterInfo/MCAsmInfo in Disassembler (NFC) (PR #208483)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 9 08:27:07 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-mc
Author: Alex Kuleshov (0xAX)
<details>
<summary>Changes</summary>
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.
---
Full diff: https://github.com/llvm/llvm-project/pull/208483.diff
3 Files Affected:
- (modified) llvm/tools/llvm-mc/Disassembler.cpp (+1-17)
- (modified) llvm/tools/llvm-mc/Disassembler.h (+1-3)
- (modified) llvm/tools/llvm-mc/llvm-mc.cpp (+1-1)
``````````diff
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) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/208483
More information about the llvm-commits
mailing list