Skip to content

Conversation

@DavidSpickett
Copy link
Collaborator

@DavidSpickett DavidSpickett merged commit e10db15 into main Jul 14, 2025
6 of 10 checks passed
@DavidSpickett DavidSpickett deleted the revert-148614-llvm-systemz branch July 14, 2025 14:34
@llvmbot llvmbot added backend:SystemZ llvm:mc Machine (object) code labels Jul 14, 2025
@llvmbot
Copy link
Member

llvmbot commented Jul 14, 2025

@llvm/pr-subscribers-mc

@llvm/pr-subscribers-backend-systemz

Author: David Spickett (DavidSpickett)

Changes

Reverts llvm/llvm-project#148614

Has some missing library dependencies - https://lab.llvm.org/buildbot/#/builders/76/builds/11262/steps/11/logs/stdio.


Full diff: https://github.com/llvm/llvm-project/pull/148639.diff

3 Files Affected:

  • (modified) llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp (-2)
  • (modified) llvm/unittests/MC/SystemZ/CMakeLists.txt (+1-2)
  • (removed) llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp (-103)
diff --git a/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp b/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
index 31b4f1196392c..6ae529e974186 100644
--- a/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
+++ b/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
@@ -327,8 +327,6 @@ DecodeStatus SystemZDisassembler::getInstruction(MCInst &MI, uint64_t &Size,
                                                  ArrayRef<uint8_t> Bytes,
                                                  uint64_t Address,
                                                  raw_ostream &CS) const {
-  CommentStream = &CS;
-
   // Get the first two bytes of the instruction.
   Size = 0;
   if (Bytes.size() < 2)
diff --git a/llvm/unittests/MC/SystemZ/CMakeLists.txt b/llvm/unittests/MC/SystemZ/CMakeLists.txt
index 4af12efa7984d..3b7af4a3bbea3 100644
--- a/llvm/unittests/MC/SystemZ/CMakeLists.txt
+++ b/llvm/unittests/MC/SystemZ/CMakeLists.txt
@@ -10,7 +10,6 @@ set(LLVM_LINK_COMPONENTS
   TargetParser
   )
 
-add_llvm_unittest(SystemZMCTests
+add_llvm_unittest(SystemZAsmLexerTests
   SystemZAsmLexerTest.cpp
-  SystemZMCDisassemblerTest.cpp
   )
diff --git a/llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp b/llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp
deleted file mode 100644
index df59fcb402e21..0000000000000
--- a/llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//===- SystemZMCDisassemblerTest.cpp - Tests for SystemZ MCDisassembler ---===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/MC/MCContext.h"
-#include "llvm/MC/MCDisassembler/MCDisassembler.h"
-#include "llvm/MC/MCDisassembler/MCSymbolizer.h"
-#include "llvm/MC/MCInst.h"
-#include "llvm/MC/MCRegisterInfo.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include "llvm/MC/MCTargetOptions.h"
-#include "llvm/MC/TargetRegistry.h"
-#include "llvm/Support/TargetSelect.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-namespace {
-
-struct Context {
-  const char *TripleName = "systemz-unknown";
-  std::unique_ptr<MCRegisterInfo> MRI;
-  std::unique_ptr<MCAsmInfo> MAI;
-  std::unique_ptr<MCContext> Ctx;
-  std::unique_ptr<MCSubtargetInfo> STI;
-  std::unique_ptr<MCDisassembler> DisAsm;
-
-  Context() {
-    LLVMInitializeSystemZTargetInfo();
-    LLVMInitializeSystemZTargetMC();
-    LLVMInitializeSystemZDisassembler();
-
-    // If we didn't build SystemZ, do not run the test.
-    std::string Error;
-    const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, Error);
-    if (!TheTarget)
-      return;
-
-    MRI.reset(TheTarget->createMCRegInfo(TripleName));
-    MAI.reset(TheTarget->createMCAsmInfo(*MRI, TripleName, MCTargetOptions()));
-    STI.reset(TheTarget->createMCSubtargetInfo(TripleName, "", ""));
-    Ctx = std::make_unique<MCContext>(Triple(TripleName), MAI.get(), MRI.get(),
-                                      STI.get());
-
-    DisAsm.reset(TheTarget->createMCDisassembler(*STI, *Ctx));
-  }
-
-  operator MCContext &() { return *Ctx; };
-};
-
-Context &getContext() {
-  static Context Ctxt;
-  return Ctxt;
-}
-
-class SystemZMCSymbolizerTest : public MCSymbolizer {
-public:
-  SystemZMCSymbolizerTest(MCContext &MC) : MCSymbolizer(MC, nullptr) {}
-  ~SystemZMCSymbolizerTest() {}
-
-  bool tryAddingSymbolicOperand([[maybe_unused]] MCInst &Inst,
-                                [[maybe_unused]] raw_ostream &CStream,
-                                [[maybe_unused]] int64_t Value,
-                                [[maybe_unused]] uint64_t Address,
-                                [[maybe_unused]] bool IsBranch,
-                                [[maybe_unused]] uint64_t Offset,
-                                [[maybe_unused]] uint64_t OpSize,
-                                [[maybe_unused]] uint64_t InstSize) override {
-    return true;
-  }
-
-  void
-  tryAddingPcLoadReferenceComment([[maybe_unused]] raw_ostream &cStream,
-                                  [[maybe_unused]] int64_t Value,
-                                  [[maybe_unused]] uint64_t Address) override {}
-};
-
-} // namespace
-
-TEST(SystemZDisassembler, SystemZMCSymbolizerTest) {
-  SystemZMCSymbolizerTest *TestSymbolizer =
-      new SystemZMCSymbolizerTest(getContext());
-  getContext().DisAsm->setSymbolizer(
-      std::unique_ptr<MCSymbolizer>(TestSymbolizer));
-
-  MCInst Inst;
-  uint64_t InstSize;
-
-  // Check that the SystemZ disassembler sets the comment stream before calling
-  // MCDisassembler::tryAddingSymbolicOperand. This will fail an assert if it
-  // does not do that.
-  MCDisassembler::DecodeStatus Status = getContext().DisAsm->getInstruction(
-      Inst, InstSize,
-      // lgrl   %r1, 0x1234
-      {0xc4, 0x18, 0x00, 0x00, 0x9a, 0x1a}, 0, nulls());
-  ASSERT_TRUE(Status == MCDisassembler::Success);
-  EXPECT_EQ(InstSize, uint64_t{6});
-}

DavidSpickett added a commit that referenced this pull request Jul 14, 2025
…tInstruction" (#148639)"

This reverts commit e10db15.

This adds the MCDisassembler which was missing, breaking shared library builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:SystemZ llvm:mc Machine (object) code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants