[llvm] [GOFF] Set reference to ADA (PR #179734)
Kai Nacke via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 4 12:45:59 PST 2026
https://github.com/redstar updated https://github.com/llvm/llvm-project/pull/179734
>From 4f8670362ce4d86e3ee3865b6a7dc191fcf8c9c3 Mon Sep 17 00:00:00 2001
From: Kai Nacke <kai.peter.nacke at ibm.com>
Date: Mon, 2 Feb 2026 12:01:57 -0500
Subject: [PATCH 1/4] [GOFF] Set reference to ADA
Function symbols must have a reference to the ADA, because this becomes
the value of the r5 register when the function is called. Simply get the
value from the begin symbol of the section.
---
llvm/include/llvm/MC/MCSymbolGOFF.h | 3 ++-
llvm/lib/MC/MCGOFFStreamer.cpp | 6 +++++-
llvm/test/CodeGen/SystemZ/zos-section-1.ll | 2 +-
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/llvm/include/llvm/MC/MCSymbolGOFF.h b/llvm/include/llvm/MC/MCSymbolGOFF.h
index 8bbd53f824f1e..45530330f4f40 100644
--- a/llvm/include/llvm/MC/MCSymbolGOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolGOFF.h
@@ -44,7 +44,8 @@ class MCSymbolGOFF : public MCSymbol {
void setADA(MCSectionGOFF *AssociatedDataArea) {
ADA = AssociatedDataArea;
- AssociatedDataArea->RequiresNonZeroLength = true;
+ if (ADA)
+ AssociatedDataArea->RequiresNonZeroLength = true;
}
MCSectionGOFF *getADA() const { return ADA; }
diff --git a/llvm/lib/MC/MCGOFFStreamer.cpp b/llvm/lib/MC/MCGOFFStreamer.cpp
index 7c99fcbc5451c..24600a27b7d4d 100644
--- a/llvm/lib/MC/MCGOFFStreamer.cpp
+++ b/llvm/lib/MC/MCGOFFStreamer.cpp
@@ -55,9 +55,10 @@ void MCGOFFStreamer::changeSection(MCSection *Section, uint32_t Subsection) {
}
}
-void MCGOFFStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
+void MCGOFFStreamer::emitLabel(MCSymbol *Sym, SMLoc Loc) {
MCSectionGOFF *Section =
static_cast<MCSectionGOFF *>(getCurrentSectionOnly());
+ MCSymbolGOFF *Symbol = static_cast<MCSymbolGOFF *>(Sym);
if (Section->isPR()) {
if (Section->getBeginSymbol() == nullptr)
Section->setBeginSymbol(Symbol);
@@ -65,6 +66,9 @@ void MCGOFFStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
getContext().reportError(
Loc, "only one symbol can be defined in a PR section.");
}
+ if (Section->getBeginSymbol() && Symbol->getCodeData() == GOFF::ESD_EXE_CODE)
+ Symbol->setADA(
+ static_cast<MCSymbolGOFF *>(Section->getBeginSymbol())->getADA());
MCObjectStreamer::emitLabel(Symbol, Loc);
}
diff --git a/llvm/test/CodeGen/SystemZ/zos-section-1.ll b/llvm/test/CodeGen/SystemZ/zos-section-1.ll
index 0fe781c94b6f2..ac9b6fc362c36 100644
--- a/llvm/test/CodeGen/SystemZ/zos-section-1.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-section-1.ll
@@ -116,7 +116,7 @@ entry:
; The name is me.
; CHECK-NEXT: 000370 03 00 00 02 [[ME:00 00 00 0a]] [[C_CODE64]] 00 00 00 00
; CHECK-NEXT: 000380 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00
-; CHECK-NEXT: 000390 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
+; CHECK-NEXT: 000390 00 00 00 00 00 00 00 00 01 00 00 00 [[TESTS]]
; CHECK-NEXT: 0003a0 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 02
; CHECK-NEXT: 0003b0 00 04 20 00 00 00 00 02 94 85 00 00 00 00 00 00
>From 583e1d50e8c2950acad0bbe47e14454aff3eb667 Mon Sep 17 00:00:00 2001
From: Kai Nacke <kai.peter.nacke at ibm.com>
Date: Wed, 4 Feb 2026 14:21:30 -0500
Subject: [PATCH 2/4] Fix formatting.
---
llvm/include/llvm/MC/MCSymbolGOFF.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/include/llvm/MC/MCSymbolGOFF.h b/llvm/include/llvm/MC/MCSymbolGOFF.h
index 45530330f4f40..323b8f8ed042b 100644
--- a/llvm/include/llvm/MC/MCSymbolGOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolGOFF.h
@@ -45,7 +45,7 @@ class MCSymbolGOFF : public MCSymbol {
void setADA(MCSectionGOFF *AssociatedDataArea) {
ADA = AssociatedDataArea;
if (ADA)
- AssociatedDataArea->RequiresNonZeroLength = true;
+ AssociatedDataArea->RequiresNonZeroLength = true;
}
MCSectionGOFF *getADA() const { return ADA; }
>From c347da7be69f559ffc0ec290cecb10798a7f462e Mon Sep 17 00:00:00 2001
From: Kai Nacke <kai.peter.nacke at ibm.com>
Date: Tue, 10 Feb 2026 13:52:50 -0500
Subject: [PATCH 3/4] Make sure ADA is emitted for each function.
---
llvm/include/llvm/MC/MCSymbolGOFF.h | 4 +--
llvm/lib/MC/MCAsmInfoGOFF.cpp | 26 ++++++++++++++-----
llvm/lib/MC/MCGOFFStreamer.cpp | 6 +----
.../MCTargetDesc/SystemZHLASMAsmStreamer.cpp | 12 +++++----
.../MCTargetDesc/SystemZTargetStreamer.cpp | 2 +-
.../MCTargetDesc/SystemZTargetStreamer.h | 10 +++++++
llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp | 5 +++-
llvm/test/CodeGen/SystemZ/zos-func-alias.ll | 2 +-
llvm/test/CodeGen/SystemZ/zos-symbol-1.ll | 10 ++++---
llvm/test/CodeGen/SystemZ/zos-symbol-2.ll | 2 +-
10 files changed, 54 insertions(+), 25 deletions(-)
diff --git a/llvm/include/llvm/MC/MCSymbolGOFF.h b/llvm/include/llvm/MC/MCSymbolGOFF.h
index 323b8f8ed042b..5ac37f28c43f0 100644
--- a/llvm/include/llvm/MC/MCSymbolGOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolGOFF.h
@@ -43,9 +43,9 @@ class MCSymbolGOFF : public MCSymbol {
: MCSymbol(Name, IsTemporary) {}
void setADA(MCSectionGOFF *AssociatedDataArea) {
+ assert(AssociatedDataArea && "ADA must be non-null");
ADA = AssociatedDataArea;
- if (ADA)
- AssociatedDataArea->RequiresNonZeroLength = true;
+ AssociatedDataArea->RequiresNonZeroLength = true;
}
MCSectionGOFF *getADA() const { return ADA; }
diff --git a/llvm/lib/MC/MCAsmInfoGOFF.cpp b/llvm/lib/MC/MCAsmInfoGOFF.cpp
index 325854a0e740f..962706ece429b 100644
--- a/llvm/lib/MC/MCAsmInfoGOFF.cpp
+++ b/llvm/lib/MC/MCAsmInfoGOFF.cpp
@@ -15,6 +15,7 @@
#include "llvm/MC/MCAsmInfoGOFF.h"
#include "llvm/BinaryFormat/GOFF.h"
#include "llvm/MC/MCSectionGOFF.h"
+#include "llvm/MC/MCSymbolGOFF.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
@@ -83,17 +84,21 @@ static void emitCATTR(raw_ostream &OS, StringRef Name, GOFF::ESDRmode Rmode,
OS << '\n';
}
-static void emitXATTR(raw_ostream &OS, StringRef Name,
+static void emitXATTR(raw_ostream &OS, StringRef Name, MCSectionGOFF *ADA,
GOFF::ESDLinkageType Linkage,
GOFF::ESDExecutable Executable,
GOFF::ESDBindingScope BindingScope) {
+ llvm::ListSeparator Sep(",");
OS << Name << " XATTR ";
- OS << "LINKAGE(" << (Linkage == GOFF::ESD_LT_OS ? "OS" : "XPLINK") << "),";
+ OS << Sep << "LINKAGE(" << (Linkage == GOFF::ESD_LT_OS ? "OS" : "XPLINK")
+ << ")";
if (Executable != GOFF::ESD_EXE_Unspecified)
- OS << "REFERENCE(" << (Executable == GOFF::ESD_EXE_CODE ? "CODE" : "DATA")
- << "),";
+ OS << Sep << "REFERENCE("
+ << (Executable == GOFF::ESD_EXE_CODE ? "CODE" : "DATA") << ")";
+ if (ADA)
+ OS << Sep << "PSECT(" << ADA->getName() << ")";
if (BindingScope != GOFF::ESD_BSC_Unspecified) {
- OS << "SCOPE(";
+ OS << Sep << "SCOPE(";
switch (BindingScope) {
case GOFF::ESD_BSC_Section:
OS << "SECTION";
@@ -138,6 +143,11 @@ void MCAsmInfoGOFF::printSwitchToSection(const MCSection &Section,
Sec.EDAttributes.Alignment, Sec.EDAttributes.LoadBehavior,
GOFF::ESD_EXE_Unspecified, Sec.EDAttributes.IsReadOnly, 0,
Sec.EDAttributes.FillByteValue, StringRef());
+ if (auto *BeginSym = static_cast<MCSymbolGOFF *>(Sec.getBeginSymbol())) {
+ if (BeginSym->getADA())
+ emitXATTR(OS, BeginSym->getName(), BeginSym->getADA(), GOFF::ESD_LT_XPLink,
+ GOFF::ESD_EXE_Unspecified, GOFF::ESD_BSC_Section);
+ }
Sec.Emitted = true;
EmitExternalName();
} else
@@ -153,7 +163,11 @@ void MCAsmInfoGOFF::printSwitchToSection(const MCSection &Section,
Sec.PRAttributes.Executable, ED->EDAttributes.IsReadOnly,
Sec.PRAttributes.SortKey, ED->EDAttributes.FillByteValue,
Sec.getName());
- emitXATTR(OS, Sec.getName(), Sec.PRAttributes.Linkage,
+ MCSectionGOFF *ADA =
+ Sec.getBeginSymbol() != nullptr
+ ? static_cast<MCSymbolGOFF *>(Sec.getBeginSymbol())->getADA()
+ : nullptr;
+ emitXATTR(OS, Sec.getName(), ADA, Sec.PRAttributes.Linkage,
Sec.PRAttributes.Executable, Sec.PRAttributes.BindingScope);
ED->Emitted = true;
Sec.Emitted = true;
diff --git a/llvm/lib/MC/MCGOFFStreamer.cpp b/llvm/lib/MC/MCGOFFStreamer.cpp
index 24600a27b7d4d..7c99fcbc5451c 100644
--- a/llvm/lib/MC/MCGOFFStreamer.cpp
+++ b/llvm/lib/MC/MCGOFFStreamer.cpp
@@ -55,10 +55,9 @@ void MCGOFFStreamer::changeSection(MCSection *Section, uint32_t Subsection) {
}
}
-void MCGOFFStreamer::emitLabel(MCSymbol *Sym, SMLoc Loc) {
+void MCGOFFStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
MCSectionGOFF *Section =
static_cast<MCSectionGOFF *>(getCurrentSectionOnly());
- MCSymbolGOFF *Symbol = static_cast<MCSymbolGOFF *>(Sym);
if (Section->isPR()) {
if (Section->getBeginSymbol() == nullptr)
Section->setBeginSymbol(Symbol);
@@ -66,9 +65,6 @@ void MCGOFFStreamer::emitLabel(MCSymbol *Sym, SMLoc Loc) {
getContext().reportError(
Loc, "only one symbol can be defined in a PR section.");
}
- if (Section->getBeginSymbol() && Symbol->getCodeData() == GOFF::ESD_EXE_CODE)
- Symbol->setADA(
- static_cast<MCSymbolGOFF *>(Section->getBeginSymbol())->getADA());
MCObjectStreamer::emitLabel(Symbol, Loc);
}
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
index d1c3253330f46..91264e3a55760 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
@@ -193,8 +193,8 @@ void SystemZHLASMAsmStreamer::emitInstruction(const MCInst &Inst,
EmitEOL();
}
-static void emitXATTR(raw_ostream &OS, StringRef Name, bool IsIndirectReference,
- GOFF::ESDLinkageType Linkage,
+static void emitXATTR(raw_ostream &OS, StringRef Name, MCSectionGOFF *ADA,
+ bool IsIndirectReference, GOFF::ESDLinkageType Linkage,
GOFF::ESDExecutable Executable,
GOFF::ESDBindingScope BindingScope) {
llvm::ListSeparator Sep(",");
@@ -215,6 +215,8 @@ static void emitXATTR(raw_ostream &OS, StringRef Name, bool IsIndirectReference,
OS << ")";
}
+ if (ADA)
+ OS << Sep << "PSECT(" << ADA->getName() << ")";
if (BindingScope != GOFF::ESD_BSC_Unspecified) {
OS << Sep << "SCOPE(";
switch (BindingScope) {
@@ -255,8 +257,8 @@ void SystemZHLASMAsmStreamer::emitLabel(MCSymbol *Symbol, SMLoc Loc) {
EmitEOL();
}
- emitXATTR(OS, Sym->getName(), Sym->isIndirect(), Sym->getLinkage(),
- Sym->getCodeData(), Sym->getBindingScope());
+ emitXATTR(OS, Sym->getName(), Sym->getADA(), Sym->isIndirect(),
+ Sym->getLinkage(), Sym->getCodeData(), Sym->getBindingScope());
EmitEOL();
if (Sym->hasExternalName())
OS << Sym->getName() << " ALIAS C'" << Sym->getExternalName() << "'\n";
@@ -367,7 +369,7 @@ void SystemZHLASMAsmStreamer::finishImpl() {
auto &Sym = static_cast<MCSymbolGOFF &>(const_cast<MCSymbol &>(Symbol));
OS << " " << (Sym.isWeak() ? "WXTRN" : "EXTRN") << " " << Sym.getName();
EmitEOL();
- emitXATTR(OS, Sym.getName(), Sym.isIndirect(), Sym.getLinkage(),
+ emitXATTR(OS, Sym.getName(), Sym.getADA(), Sym.isIndirect(), Sym.getLinkage(),
Sym.getCodeData(), Sym.getBindingScope());
EmitEOL();
if (Sym.hasExternalName())
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
index eeaa7382ad761..f3d75de38d253 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
@@ -15,8 +15,8 @@
#include "SystemZTargetStreamer.h"
#include "SystemZHLASMAsmStreamer.h"
#include "llvm/MC/MCAsmInfo.h"
-#include "llvm/MC/MCGOFFStreamer.h"
#include "llvm/MC/MCObjectFileInfo.h"
+#include "llvm/MC/MCSectionGOFF.h"
using namespace llvm;
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h
index 878600a67edbc..0c98557703517 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.h
@@ -67,6 +67,8 @@ class SystemZTargetStreamer : public MCTargetStreamer {
const MCSymbol *Lo) {
return nullptr;
}
+
+ virtual void emitADA(MCSymbol *Sym, MCSection *Section) {}
};
class SystemZTargetGOFFStreamer : public SystemZTargetStreamer {
@@ -80,6 +82,10 @@ class SystemZTargetGOFFStreamer : public SystemZTargetStreamer {
virtual void emitExternalName(MCSection *Sec, StringRef Name) override {
static_cast<MCSectionGOFF *>(Sec)->setExternalName(Name);
}
+ void emitADA(MCSymbol *Sym, MCSection *Section) override {
+ static_cast<MCSymbolGOFF *>(Sym)->setADA(
+ static_cast<MCSectionGOFF *>(Section));
+ }
};
class SystemZTargetHLASMStreamer : public SystemZTargetStreamer {
@@ -97,6 +103,10 @@ class SystemZTargetHLASMStreamer : public SystemZTargetStreamer {
virtual void emitExternalName(MCSection *Sec, StringRef Name) override {
static_cast<MCSectionGOFF *>(Sec)->setExternalName(Name);
}
+ void emitADA(MCSymbol *Sym, MCSection *Section) override {
+ static_cast<MCSymbolGOFF *>(Sym)->setADA(
+ static_cast<MCSectionGOFF *>(Section));
+ }
};
class SystemZTargetELFStreamer : public SystemZTargetStreamer {
diff --git a/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp b/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
index cb451a1ca4f55..606d2d724320a 100644
--- a/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+++ b/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
@@ -843,7 +843,7 @@ void SystemZAsmPrinter::LowerSTACKMAP(const MachineInstr &MI) {
auto &Ctx = OutStreamer->getContext();
MCSymbol *MILabel = Ctx.createTempSymbol();
OutStreamer->emitLabel(MILabel);
-
+
SM.recordStackMap(*MILabel, MI);
assert(NumNOPBytes % 2 == 0 && "Invalid number of NOP bytes requested!");
@@ -1925,6 +1925,9 @@ void SystemZAsmPrinter::emitFunctionEntryLabel() {
OutStreamer->AddComment(" Bit 2: 0 = Does not use alloca");
}
OutStreamer->emitInt32(DSAAndFlags);
+
+ getTargetStreamer()->emitADA(CurrentFnSym,
+ getObjFileLowering().getADASection());
}
AsmPrinter::emitFunctionEntryLabel();
diff --git a/llvm/test/CodeGen/SystemZ/zos-func-alias.ll b/llvm/test/CodeGen/SystemZ/zos-func-alias.ll
index ee862cafc6776..a0c4d3fdece2a 100644
--- a/llvm/test/CodeGen/SystemZ/zos-func-alias.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-func-alias.ll
@@ -3,7 +3,7 @@
; RUN: llc < %s -mtriple=s390x-ibm-zos | FileCheck %s
; CHECK: ENTRY foo
-; CHECK-NEXT: foo XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(LIBRARY)
+; CHECK-NEXT: foo XATTR LINKAGE(XPLINK),REFERENCE(CODE),PSECT(stdin#S),SCOPE(LIBRARY)
; CHECK-NEXT: foo DS 0H
; CHECK-NEXT: ENTRY foo
; CHECK-NEXT: foo1 XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(LIBRARY)
diff --git a/llvm/test/CodeGen/SystemZ/zos-symbol-1.ll b/llvm/test/CodeGen/SystemZ/zos-symbol-1.ll
index 3e737dd66c514..85e0858e796d2 100644
--- a/llvm/test/CodeGen/SystemZ/zos-symbol-1.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-symbol-1.ll
@@ -20,14 +20,18 @@ entry:
ret void
}
+; CHECK: stdin#C CSECT
+; CHECK-NEXT: C_CODE64 CATTR ALIGN(3),FILL(0),READONLY,RMODE(64)
+; CHECK-NEXT: stdin#C XATTR LINKAGE(XPLINK),PSECT(stdin#S),SCOPE(SECTION)
+
; CHECK: ENTRY me1
-; CHECK-NEXT: me1 XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(SECTION)
+; CHECK-NEXT: me1 XATTR LINKAGE(XPLINK),REFERENCE(CODE),PSECT(stdin#S),SCOPE(SECTION)
; CHECK: ENTRY me2
-; CHECK-NEXT: me2 XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(LIBRARY)
+; CHECK-NEXT: me2 XATTR LINKAGE(XPLINK),REFERENCE(CODE),PSECT(stdin#S),SCOPE(LIBRARY)
; CHECK: ENTRY me3
-; CHECK-NEXT: me3 XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(EXPORT)
+; CHECK-NEXT: me3 XATTR LINKAGE(XPLINK),REFERENCE(CODE),PSECT(stdin#S),SCOPE(EXPORT)
; CHECK: EXTRN CELQSTRT
; CHECK-NEXT: CELQSTRT XATTR LINKAGE(OS),SCOPE(EXPORT)
diff --git a/llvm/test/CodeGen/SystemZ/zos-symbol-2.ll b/llvm/test/CodeGen/SystemZ/zos-symbol-2.ll
index 663c01ccd80dc..bccbe7c672be7 100644
--- a/llvm/test/CodeGen/SystemZ/zos-symbol-2.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-symbol-2.ll
@@ -19,7 +19,7 @@ entry:
; Check the attributes on the function
; CHECK: ENTRY calc
-; CHECK-NEXT: calc XATTR LINKAGE(XPLINK),REFERENCE(CODE),SCOPE(EXPORT)
+; CHECK-NEXT: calc XATTR LINKAGE(XPLINK),REFERENCE(CODE),PSECT(stdin#S),SCOPE(EXPORT)
; CHECK-NEXT: calc DS 0H
; Check the definition of the variable
>From b8113d09ab742c4987ac160b59008f793546dd0f Mon Sep 17 00:00:00 2001
From: Kai Nacke <kai.peter.nacke at ibm.com>
Date: Wed, 4 Mar 2026 15:37:30 -0500
Subject: [PATCH 4/4] Remove unrelated changes
---
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
index f3d75de38d253..eeaa7382ad761 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
@@ -15,8 +15,8 @@
#include "SystemZTargetStreamer.h"
#include "SystemZHLASMAsmStreamer.h"
#include "llvm/MC/MCAsmInfo.h"
+#include "llvm/MC/MCGOFFStreamer.h"
#include "llvm/MC/MCObjectFileInfo.h"
-#include "llvm/MC/MCSectionGOFF.h"
using namespace llvm;
More information about the llvm-commits
mailing list