MCAsmInfo: Allow targets to specify when the .section directive should be omitted
authorTom Stellard <thomas.stellard@amd.com>
Fri, 25 Sep 2015 21:41:14 +0000 (21:41 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 25 Sep 2015 21:41:14 +0000 (21:41 +0000)
commit68f9d1cff2909b3620c43afbdcefae4262a15c8b
tree3e98d57c3ade135bd22be2a0f8a3fbbdcaf261e6
parent63daa1436ffc33c586133243baaee01952c232dc
MCAsmInfo: Allow targets to specify when the .section directive should be omitted

Summary:
The default behavior is to omit the .section directive for .text, .data,
and sometimes .bss, but some targets may want to omit this directive for
other sections too.

The AMDGPU backend will uses this to emit a simplified syntax for section
switches.  For example if the section directive is not omitted (current
behavior), section switches to .hsatext will be printed like this:

.section .hsatext,#alloc,#execinstr,#write

This is actually wrong, because .hsatext has some custom STT_* flags,
which MC doesn't know how to print or parse.

If the section directive is omitted (made possible by this commit),
section switches will be printed like this:

.hsatext

The motivation for this patch is to make it possible to emit sections
with custom STT_* flags without having to teach MC about all the target
specific STT_* flags.

Reviewers: rafael, grosbach

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12423

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248618 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCAsmInfo.h
lib/MC/MCAsmInfo.cpp
lib/MC/MCSectionELF.cpp