Skip to content

Commit ba1223a

Browse files
committed
Remove Executable from the ED element
The value would serve as default if not specified on LD or PR. However, we can make sure that it is always specified on LD and PR, s not need to have it on ED.
1 parent 5810c44 commit ba1223a

File tree

9 files changed

+28
-30
lines changed

9 files changed

+28
-30
lines changed

llvm/include/llvm/MC/MCGOFFAttributes.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ struct SDAttr {
5151
// Attributes for ED symbols.
5252
struct EDAttr {
5353
bool IsReadOnly = false;
54-
GOFF::ESDExecutable Executable = GOFF::ESD_EXE_Unspecified;
5554
GOFF::ESDRmode Rmode;
5655
GOFF::ESDNameSpaceId NameSpace = GOFF::ESD_NS_NormalName;
5756
GOFF::ESDTextStyle TextStyle = GOFF::ESD_TS_ByteOriented;

llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2797,14 +2797,14 @@ MCSection *TargetLoweringObjectFileGOFF::getSectionForLSDA(
27972797

27982798
MCSectionGOFF *WSA = getContext().getGOFFSection(
27992799
SectionKind::getMetadata(), GOFF::CLASS_WSA,
2800-
GOFF::EDAttr{false, GOFF::ESD_EXE_DATA, GOFF::RMODE, GOFF::ESD_NS_Parts,
2800+
GOFF::EDAttr{false, GOFF::RMODE, GOFF::ESD_NS_Parts,
28012801
GOFF::ESD_TS_ByteOriented, GOFF::ESD_BA_Merge,
28022802
GOFF::LOADBEHAVIOR, GOFF::ESD_RQ_0,
28032803
GOFF::ESD_ALIGN_Doubleword},
28042804
static_cast<MCSectionGOFF *>(TextSection)->getParent());
28052805
return getContext().getGOFFSection(
28062806
SectionKind::getData(), Name,
2807-
GOFF::PRAttr{true, false, GOFF::ESD_EXE_Unspecified, GOFF::LINKAGE,
2807+
GOFF::PRAttr{true, false, GOFF::ESD_EXE_DATA, GOFF::LINKAGE,
28082808
GOFF::ESD_BSC_Section, GOFF::ESD_ALIGN_Fullword, 0},
28092809
WSA);
28102810
}
@@ -2830,7 +2830,7 @@ MCSection *TargetLoweringObjectFileGOFF::SelectSectionForGlobal(
28302830
GOFF::SDAttr{GOFF::ESD_TA_Unspecified, SDBindingScope});
28312831
MCSectionGOFF *ED = getContext().getGOFFSection(
28322832
SectionKind::getMetadata(), GOFF::CLASS_WSA,
2833-
GOFF::EDAttr{false, GOFF::ESD_EXE_DATA, GOFF::RMODE, GOFF::ESD_NS_Parts,
2833+
GOFF::EDAttr{false, GOFF::RMODE, GOFF::ESD_NS_Parts,
28342834
GOFF::ESD_TS_ByteOriented, GOFF::ESD_BA_Merge,
28352835
GOFF::ESD_LB_Deferred, GOFF::ESD_RQ_0, Align},
28362836
SD);

llvm/lib/MC/GOFFObjectWriter.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,6 @@ class GOFFSymbol {
238238
SymbolFlags.setReservedQwords(Attr.ReservedQwords);
239239
// TODO Do we need/should set the "mangled" flag?
240240
BehavAttrs.setReadOnly(Attr.IsReadOnly);
241-
BehavAttrs.setExecutable(Attr.Executable);
242241
BehavAttrs.setRmode(Attr.Rmode);
243242
BehavAttrs.setTextStyle(Attr.TextStyle);
244243
BehavAttrs.setBindingAlgorithm(Attr.BindAlgorithm);

llvm/lib/MC/MCObjectFileInfo.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ void MCObjectFileInfo::initGOFFMCObjectFileInfo(const Triple &T) {
553553

554554
MCSectionGOFF *ADAEDSection = Ctx->getGOFFSection(
555555
SectionKind::getMetadata(), GOFF::CLASS_WSA,
556-
GOFF::EDAttr{false, GOFF::ESD_EXE_DATA, GOFF::RMODE, GOFF::ESD_NS_Parts,
556+
GOFF::EDAttr{false, GOFF::RMODE, GOFF::ESD_NS_Parts,
557557
GOFF::ESD_TS_ByteOriented, GOFF::ESD_BA_Merge,
558558
GOFF::ESD_LB_Deferred, GOFF::ESD_RQ_1,
559559
GOFF::ESD_ALIGN_Quadword},
@@ -566,31 +566,31 @@ void MCObjectFileInfo::initGOFFMCObjectFileInfo(const Triple &T) {
566566

567567
TextSection = Ctx->getGOFFSection(
568568
SectionKind::getText(), GOFF::CLASS_CODE,
569-
GOFF::EDAttr{true, GOFF::ESD_EXE_CODE, GOFF::RMODE,
570-
GOFF::ESD_NS_NormalName, GOFF::ESD_TS_ByteOriented,
571-
GOFF::ESD_BA_Concatenate, GOFF::ESD_LB_Initial,
572-
GOFF::ESD_RQ_0, GOFF::ESD_ALIGN_Doubleword},
569+
GOFF::EDAttr{true, GOFF::RMODE, GOFF::ESD_NS_NormalName,
570+
GOFF::ESD_TS_ByteOriented, GOFF::ESD_BA_Concatenate,
571+
GOFF::ESD_LB_Initial, GOFF::ESD_RQ_0,
572+
GOFF::ESD_ALIGN_Doubleword},
573573
RootSDSection);
574574

575575
MCSectionGOFF *PPA2ListEDSection = Ctx->getGOFFSection(
576576
SectionKind::getMetadata(), GOFF::CLASS_PPA2,
577-
GOFF::EDAttr{true, GOFF::ESD_EXE_DATA, GOFF::RMODE, GOFF::ESD_NS_Parts,
577+
GOFF::EDAttr{true, GOFF::RMODE, GOFF::ESD_NS_Parts,
578578
GOFF::ESD_TS_ByteOriented, GOFF::ESD_BA_Merge,
579579
GOFF::ESD_LB_Initial, GOFF::ESD_RQ_0,
580580
GOFF::ESD_ALIGN_Doubleword},
581581
RootSDSection);
582582
PPA2ListSection = Ctx->getGOFFSection(
583583
SectionKind::getData(), ".&ppa2",
584-
GOFF::PRAttr{true, false, GOFF::ESD_EXE_Unspecified, GOFF::ESD_LT_OS,
584+
GOFF::PRAttr{true, false, GOFF::ESD_EXE_DATA, GOFF::ESD_LT_OS,
585585
GOFF::ESD_BSC_Section, GOFF::ESD_ALIGN_Doubleword, 0},
586586
PPA2ListEDSection);
587587

588588
IDRLSection = Ctx->getGOFFSection(
589589
SectionKind::getData(), "B_IDRL",
590-
GOFF::EDAttr{true, GOFF::ESD_EXE_Unspecified, GOFF::RMODE,
591-
GOFF::ESD_NS_NormalName, GOFF::ESD_TS_Structured,
592-
GOFF::ESD_BA_Concatenate, GOFF::ESD_LB_NoLoad,
593-
GOFF::ESD_RQ_0, GOFF::ESD_ALIGN_Doubleword},
590+
GOFF::EDAttr{true, GOFF::RMODE, GOFF::ESD_NS_NormalName,
591+
GOFF::ESD_TS_Structured, GOFF::ESD_BA_Concatenate,
592+
GOFF::ESD_LB_NoLoad, GOFF::ESD_RQ_0,
593+
GOFF::ESD_ALIGN_Doubleword},
594594
RootSDSection);
595595
}
596596

llvm/lib/MC/MCSectionGOFF.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ void MCSectionGOFF::printSwitchToSection(const MCAsmInfo &MAI, const Triple &T,
111111
getParent()->printSwitchToSection(MAI, T, OS, Subsection);
112112
if (!Emitted) {
113113
emitCATTR(OS, Name, EDAttributes.Rmode, EDAttributes.Alignment,
114-
EDAttributes.LoadBehavior, EDAttributes.Executable,
114+
EDAttributes.LoadBehavior, GOFF::ESD_EXE_Unspecified,
115115
EDAttributes.IsReadOnly, 0, StringRef());
116116
Emitted = true;
117117
} else

llvm/test/CodeGen/SystemZ/zos-landingpad.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ lpad:
3838
; CHECK: LSDA location
3939
; Check that the exception table is emitted into .lsda section.
4040
; CHECK: stdin#C CSECT
41-
; CHECK: C_WSA64 CATTR ALIGN(2),RMODE(64),PART(.gcc_exception_table.test1)
42-
; CHECK: .gcc_exception_table.test1 XATTR LINKAGE(XPLINK),SCOPE(SECTION)
41+
; CHECK: C_WSA64 CATTR ALIGN(2),NOTEXECUTABLE,RMODE(64),PART(.gcc_exception_table.test1)
42+
; CHECK: .gcc_exception_table.test1 XATTR LINKAGE(XPLINK),REFERENCE(DATA),SCOPE(SECTION)
4343
; CHECK: GCC_except_table0:

llvm/test/CodeGen/SystemZ/zos-section-1.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ entry:
4545
; CHECK-NEXT: 00000a0 03 00 00 01 [[C_CODE64:00 00 00 02]] [[ROOTSD]] 00 00 00 00
4646
; CHECK-NEXT: 00000b0 00 00 00 00 00 00 00 00 00 00 00 {{..}} 00 00 00 00
4747
; CHECK-NEXT: 00000c0 00 00 00 00 00 00 00 00 01 80 00 00 00 00 00 00
48-
; CHECK-NEXT: 00000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0a
48+
; CHECK-NEXT: 00000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 08
4949
; CHECK-NEXT: 00000e0 00 00 03 00 00 00 00 08 c3 6d c3 d6 c4 c5 f6 f4
5050

5151
; ESD record, type ED.
@@ -54,7 +54,7 @@ entry:
5454
; CHECK-NEXT: 00000f0 03 01 00 01 [[C_QPPA2:00 00 00 03]] [[ROOTSD]] 00 00 00 00
5555
; CHECK-NEXT: 0000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5656
; CHECK-NEXT: 0000110 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00
57-
; CHECK-NEXT: 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 09
57+
; CHECK-NEXT: 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 08
5858
; CHECK-NEXT: 0000130 00 00 03 00 00 00 00 09 c3 6d 7c 7c d8 d7 d7 c1
5959
;
6060
; Continuation:
@@ -69,15 +69,15 @@ entry:
6969
; CHECK-NEXT: 0000190 03 00 00 03 [[PPA2:00 00 00 04]] [[C_QPPA2]] 00 00 00 00
7070
; CHECK-NEXT: 00001a0 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00
7171
; CHECK-NEXT: 00001b0 00 00 00 00 00 00 00 00 03 20 00 00 00 00 00 00
72-
; CHECK-NEXT: 00001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
72+
; CHECK-NEXT: 00001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
7373
; CHECK-NEXT: 00001d0 00 01 03 00 00 00 00 06 4b 50 97 97 81 f2 00 00
7474

7575
; ESD record, type ED.
7676
; The name is C_WSA64.
7777
; CHECK-NEXT: 00001e0 03 00 00 01 [[C_WSA64:00 00 00 05]] [[ROOTSD]] 00 00 00 00
7878
; CHECK-NEXT: 00001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
7979
; CHECK-NEXT: 0000200 00 00 00 00 00 00 00 00 03 81 00 00 00 00 00 00
80-
; CHECK-NEXT: 0000210 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01
80+
; CHECK-NEXT: 0000210 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 00
8181
; CHECK-NEXT: 0000220 00 40 04 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00
8282

8383
; ESD record, type PR.

llvm/test/CodeGen/SystemZ/zos-section-2.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ source_filename = "test.ll"
4040
; CHECK-NEXT: 00000a0 03 00 00 01 [[C_CODE64:00 00 00 02]] [[ROOTSD]] 00 00 00 00
4141
; CHECK-NEXT: 00000b0 00 00 00 00 00 00 00 00 00 00 00 {{..}} 00 00 00 00
4242
; CHECK-NEXT: 00000c0 00 00 00 00 00 00 00 00 01 80 00 00 00 00 00 00
43-
; CHECK-NEXT: 00000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 0a
43+
; CHECK-NEXT: 00000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 08
4444
; CHECK-NEXT: 00000e0 00 00 03 00 00 00 00 08 c3 6d c3 d6 c4 c5 f6 f4
4545

4646
; ESD record, type ED.
@@ -49,7 +49,7 @@ source_filename = "test.ll"
4949
; CHECK-NEXT: 00000f0 03 01 00 01 [[C_QPPA2:00 00 00 03]] [[ROOTSD]] 00 00 00 00
5050
; CHECK-NEXT: 0000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5151
; CHECK-NEXT: 0000110 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00
52-
; CHECK-NEXT: 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 09
52+
; CHECK-NEXT: 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 08
5353
; CHECK-NEXT: 0000130 00 00 03 00 00 00 00 09 c3 6d 7c 7c d8 d7 d7 c1
5454
;
5555
; Continuation:
@@ -64,7 +64,7 @@ source_filename = "test.ll"
6464
; CHECK-NEXT: 0000190 03 00 00 03 [[PPA2:00 00 00 04]] [[C_QPPA2]] 00 00 00 00
6565
; CHECK-NEXT: 00001a0 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00
6666
; CHECK-NEXT: 00001b0 00 00 00 00 00 00 00 00 03 20 00 00 00 00 00 00
67-
; CHECK-NEXT: 00001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
67+
; CHECK-NEXT: 00001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
6868
; CHECK-NEXT: 00001d0 00 01 03 00 00 00 00 06 4b 50 97 97 81 f2 00 00
6969

7070
; ESD record, type SD.
@@ -80,7 +80,7 @@ source_filename = "test.ll"
8080
; CHECK-NEXT: 0000230 03 00 00 01 [[DATA_WSA:00 00 00 06]] [[DATA]] 00 00 00 00
8181
; CHECK-NEXT: 0000240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
8282
; CHECK-NEXT: 0000250 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00
83-
; CHECK-NEXT: 0000260 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01
83+
; CHECK-NEXT: 0000260 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 00
8484
; CHECK-NEXT: 0000270 00 40 02 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00
8585

8686
; ESD record, type PR.
@@ -104,7 +104,7 @@ source_filename = "test.ll"
104104
; CHECK-NEXT: 0000320 03 00 00 01 [[BSS_WSA:00 00 00 09]] [[BSS]] 00 00 00 00
105105
; CHECK-NEXT: 0000330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
106106
; CHECK-NEXT: 0000340 00 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00
107-
; CHECK-NEXT: 0000350 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01
107+
; CHECK-NEXT: 0000350 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 00
108108
; CHECK-NEXT: 0000360 00 40 03 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00
109109

110110
; ESD record, type PR.
@@ -120,7 +120,7 @@ source_filename = "test.ll"
120120
; CHECK-NEXT: 00003c0 03 00 00 01 [[C_WSA64:00 00 00 0b]] [[ROOTSD]] 00 00 00 00
121121
; CHECK-NEXT: 00003d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
122122
; CHECK-NEXT: 00003e0 00 00 00 00 00 00 00 00 03 81 00 00 00 00 00 00
123-
; CHECK-NEXT: 00003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 01
123+
; CHECK-NEXT: 00003f0 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 00
124124
; CHECK-NEXT: 0000400 00 40 04 00 00 00 00 07 c3 6d e6 e2 c1 f6 f4 00
125125

126126
; ESD record, type PR.

llvm/test/CodeGen/SystemZ/zos-simple-test.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
define signext i32 @main() {
88
; CHECK: stdin#C CSECT
9-
; CHECK: C_CODE64 CATTR ALIGN(3),EXECUTABLE,READONLY,RMODE(64)
9+
; CHECK: C_CODE64 CATTR ALIGN(3),READONLY,RMODE(64)
1010
; CHECK: main:
1111
; CHECK: stdin#C CSECT
1212
; CHECK: C_WSA64 CATTR ALIGN(2),DEFLOAD,NOTEXECUTABLE,RMODE(64),PART(a)

0 commit comments

Comments
 (0)