llvm-6502/lib/MC
Derek Schuff cdb105b62f [MC] Attach labels to existing fragments instead of using a separate fragment
Summary:
Currently when emitting a label, a new data fragment is created for it if the
current fragment isn't a data fragment.
This change instead enqueues the label and attaches it to the next fragment
(e.g. created for the next instruction) if possible.

When bundle alignment is not enabled, this has no functionality change (it
just results in fewer extra fragments being created). For bundle alignment,
previously labels would point to the beginning of the bundle padding instead
of the beginning of the emitted instruction. This was not only less efficient
(e.g. jumping to the nops instead of past them) but also led to miscalculation
of the address of the GOT (since MC uses a label difference rather than
emitting a "." symbol).

Fixes https://code.google.com/p/nativeclient/issues/detail?id=3982

Test Plan: regression test attached

Reviewers: jvoung, eliben

Subscribers: jfb, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220439 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-22 22:38:06 +00:00
..
MCDisassembler Extend C disassembler API to allow specifying target features 2014-09-30 16:31:40 +00:00
MCParser Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
CMakeLists.txt Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
ConstantPools.cpp Fix build failure on windows 2014-07-18 16:41:58 +00:00
ELFObjectWriter.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
LLVMBuild.txt Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MachObjectWriter.cpp MC: Bit pack MCSymbolData. 2014-10-11 15:07:21 +00:00
Makefile Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
MCAsmBackend.cpp
MCAsmInfo.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCAsmInfoCOFF.cpp Remove HasLEB128. 2014-08-15 14:01:07 +00:00
MCAsmInfoDarwin.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCAsmInfoELF.cpp Move getNonexecutableStackSection up to the base ELF class. 2014-10-15 15:44:16 +00:00
MCAsmStreamer.cpp MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
MCAssembler.cpp [MC] Make bundle alignment mode setting idempotent and support nested bundles 2014-10-15 17:10:04 +00:00
MCCodeEmitter.cpp
MCCodeGenInfo.cpp
MCContext.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
MCDwarf.cpp Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCELF.cpp [MC] Constify MCELF::GetVisibility and MCELF::getOther 2014-07-11 17:34:44 +00:00
MCELFObjectTargetWriter.cpp [MC] Pass MCSymbolData to needsRelocateWithSymbol 2014-07-20 23:15:06 +00:00
MCELFStreamer.cpp Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
MCExpr.cpp MC: Shrink MCSymbolRefExpr by only storing the bits we need. 2014-10-11 17:57:27 +00:00
MCInst.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCInstPrinter.cpp
MCInstrAnalysis.cpp
MCLabel.cpp
MCLinkerOptimizationHint.cpp [ARM64][CollectLOH] Add some comments to explain how the LOHs 2014-04-02 01:02:28 +00:00
MCMachObjectTargetWriter.cpp
MCMachOStreamer.cpp Add and update reset() and doInitialization() methods to MC* and passes. 2014-09-17 09:25:36 +00:00
MCNullStreamer.cpp Remove method that is identical to the base class one. 2014-10-14 17:38:38 +00:00
MCObjectFileInfo.cpp MC: Support aligned COMMON symbols for COFF 2014-09-21 09:18:07 +00:00
MCObjectStreamer.cpp [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
MCObjectWriter.cpp
MCRegisterInfo.cpp
MCSection.cpp
MCSectionCOFF.cpp MC: Fix MCSectionCOFF::PrintSwitchToSection 2014-09-20 20:40:50 +00:00
MCSectionELF.cpp delete function name from comment 2014-10-09 21:23:39 +00:00
MCSectionMachO.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-13 04:57:38 +00:00
MCStreamer.cpp Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
MCSubtargetInfo.cpp Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
MCSymbol.cpp
MCSymbolizer.cpp Move MCSymbolizer's constructor into header. It's trivial - there's no need for 2014-03-27 02:42:52 +00:00
MCTargetOptions.cpp Convert MC command line option for fatal assembler warnings into a 2014-08-26 18:39:50 +00:00
MCValue.cpp Fix pr19645. 2014-05-03 19:57:04 +00:00
MCWin64EH.cpp MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
MCWinEH.cpp MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
StringTableBuilder.cpp MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
SubtargetFeature.cpp Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:48:02 +00:00
WinCOFFObjectWriter.cpp MC: Bit pack MCSymbolData. 2014-10-11 15:07:21 +00:00
WinCOFFStreamer.cpp Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
YAML.cpp Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00