llvm-project/llvm/lib/MC
Akira Hatanaka 8ad7399f8e [MachO] Stop generating *coal* sections.
Recommit r250342: move coal-sections-powerpc.s to subdirectory for powerpc.

Some background on why we don't have to use *coal* sections anymore:
Long ago when C++ was new and "weak" had not been standardized, an attempt was
made in cctools to support C++ inlines that can be coalesced by putting them
into their own section (TEXT/textcoal_nt instead of TEXT/text).

The current macho linker supports the weak-def bit on any symbol to allow it to
be coalesced, but the compiler still puts weak-def functions/data into alternate
section names, which the linker must map back to the base section name.

This patch makes changes that are necessary to prevent the compiler from using
the "coal" sections and have it use the non-coal sections instead when the
target architecture is not powerpc:

TEXT/textcoal_nt instead use TEXT/text
TEXT/const_coal instead use TEXT/const
DATA/datacoal_nt instead use DATA/data

If the target is powerpc, we continue to use the *coal* sections since anyone
targeting powerpc is probably using an old linker that doesn't have support for
the weak-def bits.

Also, have the assembler issue a warning if it encounters a *coal* section in
the assembly file and inform the users to use the non-coal sections instead.

rdar://problem/14265330

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

llvm-svn: 250370
2015-10-15 05:28:38 +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 [MachO] Stop generating *coal* sections. 2015-10-15 05:28:38 +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 Fix pr24486. 2015-10-05 12:07:05 +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 [X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls 2015-10-07 07:01:31 +00:00
MCAssembler.cpp MC: Remove implicit ilist iterator conversions, NFC 2015-10-10 00:13:11 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCContext.cpp Clear SectionSymbols in MCContext::Reset 2015-10-09 17:24:54 +00:00
MCDwarf.cpp [X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls 2015-10-07 07:01:31 +00:00
MCELFObjectTargetWriter.cpp Pass a MCSymbol to needsRelocateWithSymbol. 2015-05-29 18:26:09 +00:00
MCELFStreamer.cpp Fix pr24486. 2015-10-05 12:07:05 +00:00
MCExpr.cpp Fix pr24486. 2015-10-05 12:07:05 +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 Use range-based for loops. NFC 2015-10-14 04:36:00 +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 [MachO] Stop generating *coal* sections. 2015-10-15 05:28:38 +00:00
MCObjectStreamer.cpp MC: Remove implicit ilist iterator conversions, NFC 2015-10-10 00:13:11 +00:00
MCObjectWriter.cpp Fix pr24486. 2015-10-05 12:07:05 +00:00
MCRegisterInfo.cpp
MCSchedule.cpp Add <type_traits> for is_pod, fixing r241947 2015-07-10 22:17:49 +00:00
MCSection.cpp MC: Remove implicit ilist iterator conversions, NFC 2015-10-10 00:13:11 +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 [X86] Emit .cfi_escape GNU_ARGS_SIZE when adjusting the stack before calls 2015-10-07 07:01:31 +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 Fix pr24486. 2015-10-05 12:07:05 +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 Fix pr24486. 2015-10-05 12:07:05 +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 Fix pr24486. 2015-10-05 12:07:05 +00:00
YAML.cpp