llvm-project/llvm/lib/MC
Tom Stellard 8e0257625d 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

llvm-svn: 248618
2015-09-25 21:41:14 +00:00
..
MCDisassembler Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MCParser Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
CMakeLists.txt MC: Remove the copy of MCSchedModel in MCSubtargetInfo 2015-07-10 22:13:43 +00:00
ConstantPools.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
ELFObjectWriter.cpp [MC] Allow MCObjectWriter's output stream to be swapped out 2015-09-01 16:19:03 +00:00
LLVMBuild.txt Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MCAsmBackend.cpp [MC] Allow backends to decide relaxation for unresolved fixups. 2015-05-30 18:42:22 +00:00
MCAsmInfo.cpp MCAsmInfo: Allow targets to specify when the .section directive should be omitted 2015-09-25 21:41:14 +00:00
MCAsmInfoCOFF.cpp [MC] Use LShr for constant evaluation of ">>" on ELF/arm64--darwin. 2015-04-28 01:37:11 +00:00
MCAsmInfoDarwin.cpp [MC] Use LShr for constant evaluation of ">>" on ELF/arm64--darwin. 2015-04-28 01:37:11 +00:00
MCAsmInfoELF.cpp Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAsmStreamer.cpp Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MCAssembler.cpp [MC] Remove MCAssembler's copy of OS 2015-09-01 23:19:38 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCContext.cpp Sink COFF.h MC include into .cpp files 2015-09-03 16:41:50 +00:00
MCDwarf.cpp Use makeArrayRef or None to avoid unnecessarily mentioning the ArrayRef type extra times. NFC 2015-09-21 05:32:41 +00:00
MCELFObjectTargetWriter.cpp Pass a MCSymbol to needsRelocateWithSymbol. 2015-05-29 18:26:09 +00:00
MCELFStreamer.cpp Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MCExpr.cpp [MC] Fix style bugs introduced in r247471. Reported by Rafael Espindola. 2015-09-11 22:04:21 +00:00
MCInst.cpp Fixup. 2015-02-05 01:13:47 +00:00
MCInstPrinter.cpp [llvm] Parameterizing the output stream for dumpbytes and outputting directly to stream. 2015-05-28 18:39:50 +00:00
MCInstrAnalysis.cpp
MCInstrDesc.cpp MC: Constify MCSubtargetInfo in getDeprecationInfo(), NFC 2015-07-08 17:30:55 +00:00
MCLabel.cpp
MCLinkerOptimizationHint.cpp MC: Tidy up LOH naming a bit. NFC. 2015-06-01 23:55:06 +00:00
MCMachOStreamer.cpp Remove and forbid raw_svector_ostream::flush() calls. 2015-08-13 18:12:56 +00:00
MCMachObjectTargetWriter.cpp MC: Remove obsolete MachO UseAggressiveSymbolFolding. 2015-06-04 20:27:42 +00:00
MCNullStreamer.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCObjectFileInfo.cpp Untabify. 2015-09-22 11:15:07 +00:00
MCObjectStreamer.cpp Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MCObjectWriter.cpp MC: Clean up naming in MCObjectWriter. NFC. 2015-06-04 22:24:41 +00:00
MCRegisterInfo.cpp
MCSchedule.cpp Add <type_traits> for is_pod, fixing r241947 2015-07-10 22:17:49 +00:00
MCSection.cpp Store a bit in MCSection saying if it was registered with MCAssembler. 2015-06-01 01:30:01 +00:00
MCSectionCOFF.cpp Sink COFF.h MC include into .cpp files 2015-09-03 16:41:50 +00:00
MCSectionELF.cpp MCAsmInfo: Allow targets to specify when the .section directive should be omitted 2015-09-25 21:41:14 +00:00
MCSectionMachO.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
MCStreamer.cpp Cleanup places that passed SMLoc by const reference to pass it by value instead. NFC 2015-09-20 23:35:59 +00:00
MCSubtargetInfo.cpp Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
MCSymbol.cpp [MC] Switch static const to an enum to silence MSVC linker warnings 2015-07-10 21:50:04 +00:00
MCSymbolELF.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCSymbolizer.cpp
MCTargetOptions.cpp [llvm-mc] Add --no-warn flag with -W alias to disable outputting warnings while assembling. 2015-07-27 22:39:14 +00:00
MCValue.cpp Use operator<< instead of print in a few more places. 2015-05-27 13:05:42 +00:00
MCWin64EH.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MCWinEH.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
MachObjectWriter.cpp Untabify. 2015-09-22 11:15:07 +00:00
Makefile Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
StringTableBuilder.cpp MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
SubtargetFeature.cpp [ADT] Switch a bunch of places in LLVM that were doing single-character 2015-09-10 06:12:31 +00:00
WinCOFFObjectWriter.cpp Add assembler fatal error for undefined assembler labels in COFF writer 2015-09-16 16:26:29 +00:00
WinCOFFStreamer.cpp Remove and forbid raw_svector_ostream::flush() calls. 2015-08-13 18:12:56 +00:00
YAML.cpp Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00