Skip to content

Commit

Permalink
AMDGPU: Remove deprecated and unused elf definitions
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D33689

llvm-svn: 304737
  • Loading branch information
kzhuravl committed Jun 5, 2017
1 parent 4c47434 commit 5b0bf2f
Show file tree
Hide file tree
Showing 14 changed files with 23 additions and 263 deletions.
17 changes: 2 additions & 15 deletions llvm/include/llvm/Support/ELF.h
Original file line number Diff line number Diff line change
Expand Up @@ -808,12 +808,7 @@ enum : unsigned {
SHF_MIPS_STRING = 0x80000000,

// Make code section unreadable when in execute-only mode
SHF_ARM_PURECODE = 0x20000000,

SHF_AMDGPU_HSA_GLOBAL = 0x00100000,
SHF_AMDGPU_HSA_READONLY = 0x00200000,
SHF_AMDGPU_HSA_CODE = 0x00400000,
SHF_AMDGPU_HSA_AGENT = 0x00800000
SHF_ARM_PURECODE = 0x20000000
};

// Section Group Flags
Expand Down Expand Up @@ -897,9 +892,7 @@ enum {
STT_HIPROC = 15, // Highest processor-specific symbol type

// AMDGPU symbol types
STT_AMDGPU_HSA_KERNEL = 10,
STT_AMDGPU_HSA_INDIRECT_FUNCTION = 11,
STT_AMDGPU_HSA_METADATA = 12
STT_AMDGPU_HSA_KERNEL = 10
};

enum {
Expand Down Expand Up @@ -1050,12 +1043,6 @@ enum {
PT_MIPS_OPTIONS = 0x70000002, // Options segment.
PT_MIPS_ABIFLAGS = 0x70000003, // Abiflags segment.

// AMDGPU program header types.
PT_AMDGPU_HSA_LOAD_GLOBAL_PROGRAM = 0x60000000,
PT_AMDGPU_HSA_LOAD_GLOBAL_AGENT = 0x60000001,
PT_AMDGPU_HSA_LOAD_READONLY_AGENT = 0x60000002,
PT_AMDGPU_HSA_LOAD_CODE_AGENT = 0x60000003,

// WebAssembly program header types.
PT_WEBASSEMBLY_FUNCTIONS = PT_LOPROC + 0, // Function definitions.
};
Expand Down
6 changes: 0 additions & 6 deletions llvm/lib/ObjectYAML/ELFYAML.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -424,12 +424,6 @@ void ScalarBitSetTraits<ELFYAML::ELF_SHF>::bitset(IO &IO,
case ELF::EM_ARM:
BCase(SHF_ARM_PURECODE);
break;
case ELF::EM_AMDGPU:
BCase(SHF_AMDGPU_HSA_GLOBAL);
BCase(SHF_AMDGPU_HSA_READONLY);
BCase(SHF_AMDGPU_HSA_CODE);
BCase(SHF_AMDGPU_HSA_AGENT);
break;
case ELF::EM_HEXAGON:
BCase(SHF_HEX_GPREL);
break;
Expand Down
70 changes: 0 additions & 70 deletions llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -814,14 +814,8 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
bool ParseDirectiveCodeObjectMetadata();
bool ParseAMDKernelCodeTValue(StringRef ID, amd_kernel_code_t &Header);
bool ParseDirectiveAMDKernelCodeT();
bool ParseSectionDirectiveHSAText();
bool subtargetHasRegister(const MCRegisterInfo &MRI, unsigned RegNo) const;
bool ParseDirectiveAMDGPUHsaKernel();
bool ParseDirectiveAMDGPUHsaModuleGlobal();
bool ParseDirectiveAMDGPUHsaProgramGlobal();
bool ParseSectionDirectiveHSADataGlobalAgent();
bool ParseSectionDirectiveHSADataGlobalProgram();
bool ParseSectionDirectiveHSARodataReadonlyAgent();
bool AddNextRegisterToList(unsigned& Reg, unsigned& RegWidth,
RegisterKind RegKind, unsigned Reg1,
unsigned RegNum);
Expand Down Expand Up @@ -2365,12 +2359,6 @@ bool AMDGPUAsmParser::ParseDirectiveAMDKernelCodeT() {
return false;
}

bool AMDGPUAsmParser::ParseSectionDirectiveHSAText() {
getParser().getStreamer().SwitchSection(
AMDGPU::getHSATextSection(getContext()));
return false;
}

bool AMDGPUAsmParser::ParseDirectiveAMDGPUHsaKernel() {
if (getLexer().isNot(AsmToken::Identifier))
return TokError("expected symbol name");
Expand All @@ -2384,46 +2372,6 @@ bool AMDGPUAsmParser::ParseDirectiveAMDGPUHsaKernel() {
return false;
}

bool AMDGPUAsmParser::ParseDirectiveAMDGPUHsaModuleGlobal() {
if (getLexer().isNot(AsmToken::Identifier))
return TokError("expected symbol name");

StringRef GlobalName = Parser.getTok().getIdentifier();

getTargetStreamer().EmitAMDGPUHsaModuleScopeGlobal(GlobalName);
Lex();
return false;
}

bool AMDGPUAsmParser::ParseDirectiveAMDGPUHsaProgramGlobal() {
if (getLexer().isNot(AsmToken::Identifier))
return TokError("expected symbol name");

StringRef GlobalName = Parser.getTok().getIdentifier();

getTargetStreamer().EmitAMDGPUHsaProgramScopeGlobal(GlobalName);
Lex();
return false;
}

bool AMDGPUAsmParser::ParseSectionDirectiveHSADataGlobalAgent() {
getParser().getStreamer().SwitchSection(
AMDGPU::getHSADataGlobalAgentSection(getContext()));
return false;
}

bool AMDGPUAsmParser::ParseSectionDirectiveHSADataGlobalProgram() {
getParser().getStreamer().SwitchSection(
AMDGPU::getHSADataGlobalProgramSection(getContext()));
return false;
}

bool AMDGPUAsmParser::ParseSectionDirectiveHSARodataReadonlyAgent() {
getParser().getStreamer().SwitchSection(
AMDGPU::getHSARodataReadonlyAgentSection(getContext()));
return false;
}

bool AMDGPUAsmParser::ParseDirective(AsmToken DirectiveID) {
StringRef IDVal = DirectiveID.getString();

Expand All @@ -2439,27 +2387,9 @@ bool AMDGPUAsmParser::ParseDirective(AsmToken DirectiveID) {
if (IDVal == ".amd_kernel_code_t")
return ParseDirectiveAMDKernelCodeT();

if (IDVal == ".hsatext")
return ParseSectionDirectiveHSAText();

if (IDVal == ".amdgpu_hsa_kernel")
return ParseDirectiveAMDGPUHsaKernel();

if (IDVal == ".amdgpu_hsa_module_global")
return ParseDirectiveAMDGPUHsaModuleGlobal();

if (IDVal == ".amdgpu_hsa_program_global")
return ParseDirectiveAMDGPUHsaProgramGlobal();

if (IDVal == ".hsadata_global_agent")
return ParseSectionDirectiveHSADataGlobalAgent();

if (IDVal == ".hsadata_global_program")
return ParseSectionDirectiveHSADataGlobalProgram();

if (IDVal == ".hsarodata_readonly_agent")
return ParseSectionDirectiveHSARodataReadonlyAgent();

return true;
}

Expand Down
28 changes: 0 additions & 28 deletions llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,16 +100,6 @@ void AMDGPUTargetAsmStreamer::EmitAMDGPUSymbolType(StringRef SymbolName,
}
}

void AMDGPUTargetAsmStreamer::EmitAMDGPUHsaModuleScopeGlobal(
StringRef GlobalName) {
OS << "\t.amdgpu_hsa_module_global " << GlobalName << '\n';
}

void AMDGPUTargetAsmStreamer::EmitAMDGPUHsaProgramScopeGlobal(
StringRef GlobalName) {
OS << "\t.amdgpu_hsa_program_global " << GlobalName << '\n';
}

bool AMDGPUTargetAsmStreamer::EmitCodeObjectMetadata(StringRef YamlString) {
auto VerifiedYamlString = CodeObjectMetadataStreamer.toYamlString(YamlString);
if (!VerifiedYamlString)
Expand Down Expand Up @@ -214,24 +204,6 @@ void AMDGPUTargetELFStreamer::EmitAMDGPUSymbolType(StringRef SymbolName,
Symbol->setType(ELF::STT_AMDGPU_HSA_KERNEL);
}

void AMDGPUTargetELFStreamer::EmitAMDGPUHsaModuleScopeGlobal(
StringRef GlobalName) {

MCSymbolELF *Symbol = cast<MCSymbolELF>(
getStreamer().getContext().getOrCreateSymbol(GlobalName));
Symbol->setType(ELF::STT_OBJECT);
Symbol->setBinding(ELF::STB_LOCAL);
}

void AMDGPUTargetELFStreamer::EmitAMDGPUHsaProgramScopeGlobal(
StringRef GlobalName) {

MCSymbolELF *Symbol = cast<MCSymbolELF>(
getStreamer().getContext().getOrCreateSymbol(GlobalName));
Symbol->setType(ELF::STT_OBJECT);
Symbol->setBinding(ELF::STB_GLOBAL);
}

bool AMDGPUTargetELFStreamer::EmitCodeObjectMetadata(StringRef YamlString) {
auto VerifiedYamlString = CodeObjectMetadataStreamer.toYamlString(YamlString);
if (!VerifiedYamlString)
Expand Down
12 changes: 0 additions & 12 deletions llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,6 @@ class AMDGPUTargetStreamer : public MCTargetStreamer {

virtual void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) = 0;

virtual void EmitAMDGPUHsaModuleScopeGlobal(StringRef GlobalName) = 0;

virtual void EmitAMDGPUHsaProgramScopeGlobal(StringRef GlobalName) = 0;

virtual void EmitStartOfCodeObjectMetadata(const Module &Mod);

virtual void EmitKernelCodeObjectMetadata(
Expand All @@ -74,10 +70,6 @@ class AMDGPUTargetAsmStreamer final : public AMDGPUTargetStreamer {

void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override;

void EmitAMDGPUHsaModuleScopeGlobal(StringRef GlobalName) override;

void EmitAMDGPUHsaProgramScopeGlobal(StringRef GlobalName) override;

/// \returns True on success, false on failure.
bool EmitCodeObjectMetadata(StringRef YamlString) override;
};
Expand Down Expand Up @@ -105,10 +97,6 @@ class AMDGPUTargetELFStreamer final : public AMDGPUTargetStreamer {

void EmitAMDGPUSymbolType(StringRef SymbolName, unsigned Type) override;

void EmitAMDGPUHsaModuleScopeGlobal(StringRef GlobalName) override;

void EmitAMDGPUHsaProgramScopeGlobal(StringRef GlobalName) override;

/// \returns True on success, false on failure.
bool EmitCodeObjectMetadata(StringRef YamlString) override;
};
Expand Down
27 changes: 0 additions & 27 deletions llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -327,33 +327,6 @@ void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
Header.private_segment_alignment = 4;
}

MCSection *getHSATextSection(MCContext &Ctx) {
return Ctx.getELFSection(".hsatext", ELF::SHT_PROGBITS,
ELF::SHF_ALLOC | ELF::SHF_WRITE |
ELF::SHF_EXECINSTR |
ELF::SHF_AMDGPU_HSA_AGENT |
ELF::SHF_AMDGPU_HSA_CODE);
}

MCSection *getHSADataGlobalAgentSection(MCContext &Ctx) {
return Ctx.getELFSection(".hsadata_global_agent", ELF::SHT_PROGBITS,
ELF::SHF_ALLOC | ELF::SHF_WRITE |
ELF::SHF_AMDGPU_HSA_GLOBAL |
ELF::SHF_AMDGPU_HSA_AGENT);
}

MCSection *getHSADataGlobalProgramSection(MCContext &Ctx) {
return Ctx.getELFSection(".hsadata_global_program", ELF::SHT_PROGBITS,
ELF::SHF_ALLOC | ELF::SHF_WRITE |
ELF::SHF_AMDGPU_HSA_GLOBAL);
}

MCSection *getHSARodataReadonlyAgentSection(MCContext &Ctx) {
return Ctx.getELFSection(".hsarodata_readonly_agent", ELF::SHT_PROGBITS,
ELF::SHF_ALLOC | ELF::SHF_AMDGPU_HSA_READONLY |
ELF::SHF_AMDGPU_HSA_AGENT);
}

bool isGroupSegment(const GlobalValue *GV, AMDGPUAS AS) {
return GV->getType()->getAddressSpace() == AS.LOCAL_ADDRESS;
}
Expand Down
7 changes: 0 additions & 7 deletions llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,13 +149,6 @@ int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIdx);

void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
const FeatureBitset &Features);
MCSection *getHSATextSection(MCContext &Ctx);

MCSection *getHSADataGlobalAgentSection(MCContext &Ctx);

MCSection *getHSADataGlobalProgramSection(MCContext &Ctx);

MCSection *getHSARodataReadonlyAgentSection(MCContext &Ctx);

bool isGroupSegment(const GlobalValue *GV, AMDGPUAS AS);
bool isGlobalSegment(const GlobalValue *GV, AMDGPUAS AS);
Expand Down
21 changes: 6 additions & 15 deletions llvm/test/Object/AMDGPU/elf-definitions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@

# CHECK: Format: ELF64-amdgpu-hsacobj
# CHECK: Arch: amdgcn
# CHECK: Machine: EM_AMDGPU (0xE0)
# CHECK: Sections [
# CHECK: Section {
# CHECK: Name: .shf_amdgpu
# CHECK: Flags [ (0xF00000)
# CHECK: SHF_AMDGPU_HSA_AGENT (0x800000)
# CHECK: SHF_AMDGPU_HSA_CODE (0x400000)
# CHECK: SHF_AMDGPU_HSA_GLOBAL (0x100000)
# CHECK: SHF_AMDGPU_HSA_READONLY (0x200000)
# CHECK: ElfHeader {
# CHECK: Ident {
# CHECK: OS/ABI: AMDGPU_HSA (0x40)
# CHECK: ABIVersion: 0
# CHECK: }
# CHECK: Machine: EM_AMDGPU (0xE0)
# CHECK: }

--- !ELF
Expand All @@ -21,10 +18,4 @@ FileHeader:
Type: ET_REL
Machine: EM_AMDGPU
OSABI: ELFOSABI_AMDGPU_HSA

Sections:
- Name: .shf_amdgpu
Type: SHT_PROGBITS
Flags: [ SHF_AMDGPU_HSA_GLOBAL, SHF_AMDGPU_HSA_READONLY,
SHF_AMDGPU_HSA_CODE, SHF_AMDGPU_HSA_AGENT]
...
Binary file not shown.
Binary file not shown.
11 changes: 11 additions & 0 deletions llvm/test/tools/llvm-readobj/amdgpu-elf-definitions.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
RUN: llvm-readobj -file-headers -program-headers -sections -symbols %p/Inputs/trivial.obj.elf-amdhsa-gfx803 | FileCheck %s

CHECK: Format: ELF64-amdgpu-hsacobj
CHECK: Arch: amdgcn
CHECK: ElfHeader {
CHECK: Ident {
CHECK: OS/ABI: AMDGPU_HSA (0x40)
CHECK: ABIVersion: 0
CHECK: }
CHECK: Machine: EM_AMDGPU (0xE0)
CHECK: }
28 changes: 0 additions & 28 deletions llvm/test/tools/llvm-readobj/amdgpu-elf-defs.test

This file was deleted.

29 changes: 3 additions & 26 deletions llvm/test/tools/llvm-readobj/elf-sec-flags.test
Original file line number Diff line number Diff line change
@@ -1,29 +1,6 @@
# Check that llvm-readobj shows arch specific ELF section flags.

# RUN: yaml2obj -docnum 1 %s > %t-amdgpu.o
# RUN: llvm-readobj -s %t-amdgpu.o | FileCheck -check-prefix=AMD %s

# AMD: Flags [ (0x300000)
# AMD-NEXT: SHF_AMDGPU_HSA_GLOBAL (0x100000)
# AMD-NEXT: SHF_AMDGPU_HSA_READONLY (0x200000)
# AMD-NEXT: ]

# amdgpu.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
OSABI: ELFOSABI_GNU
Type: ET_REL
Machine: EM_AMDGPU
Flags: []
Sections:
- Name: .amdgpu
Type: SHT_PROGBITS
Flags: [SHF_AMDGPU_HSA_GLOBAL, SHF_AMDGPU_HSA_READONLY]
Size: 4

# RUN: yaml2obj -docnum 2 %s > %t-hex.o
# RUN: yaml2obj -docnum 1 %s > %t-hex.o
# RUN: llvm-readobj -s %t-hex.o | FileCheck -check-prefix=HEX %s

# HEX: Flags [ (0x10000000)
Expand All @@ -44,7 +21,7 @@ Sections:
Flags: [SHF_HEX_GPREL]
Size: 4

# RUN: yaml2obj -docnum 3 %s > %t-mips.o
# RUN: yaml2obj -docnum 2 %s > %t-mips.o
# RUN: llvm-readobj -s %t-mips.o | FileCheck -check-prefix=MIPS %s

# MIPS: Flags [ (0x38000000)
Expand All @@ -67,7 +44,7 @@ Sections:
Flags: [SHF_MIPS_GPREL, SHF_MIPS_MERGE, SHF_MIPS_NOSTRIP]
Size: 4

# RUN: yaml2obj -docnum 4 %s > %t-x86_64.o
# RUN: yaml2obj -docnum 3 %s > %t-x86_64.o
# RUN: llvm-readobj -s %t-x86_64.o | FileCheck -check-prefix=X86_64 %s

# X86_64: Flags [ (0x10000000)
Expand Down

0 comments on commit 5b0bf2f

Please sign in to comment.