llvm-6502/include/llvm/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
..
MCParser [mips] Print warning when using register names not available in N32/64 2014-10-03 15:37:37 +00:00
ConstantPools.h [Modules] Add some missing includes to make files compile stand-alone. 2014-10-12 22:49:26 +00:00
MachineLocation.h Add inequality operator for MachineLocation. 2014-04-01 21:54:52 +00:00
MCAsmBackend.h ARMAsmBackend uses a factory method to generate binary file format specific 2014-09-16 09:18:23 +00:00
MCAsmInfo.h Drop support for an old version of ld64 (from darwin 9). 2014-10-21 18:31:09 +00:00
MCAsmInfoCOFF.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-08 07:02:02 +00:00
MCAsmInfoDarwin.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MCAsmInfoELF.h Move getNonexecutableStackSection up to the base ELF class. 2014-10-15 15:44:16 +00:00
MCAsmLayout.h Move getBaseSymbol somewhere the COFF writer can use. 2014-05-01 13:24:25 +00:00
MCAssembler.h [MC] Make bundle alignment mode setting idempotent and support nested bundles 2014-10-15 17:10:04 +00:00
MCCodeEmitter.h Explictly pass MCSubtargetInfo to MCCodeEmitter::EncodeInstruction() 2014-01-28 23:13:07 +00:00
MCCodeGenInfo.h Teach ISel not to optimize 'optnone' functions (revised). 2013-11-22 19:11:24 +00:00
MCContext.h Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
MCDirectives.h Darwin: Add assembler directives to create version-min load commands. 2014-03-18 22:09:05 +00:00
MCDisassembler.h [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
MCDwarf.h [asan-asm-instrumentation] CFI directives are generated for .S files. 2014-10-07 11:03:09 +00:00
MCELF.h [MC] Constify MCELF::GetVisibility and MCELF::getOther 2014-07-11 17:34:44 +00:00
MCELFObjectWriter.h [MC] Pass MCSymbolData to needsRelocateWithSymbol 2014-07-20 23:15:06 +00:00
MCELFStreamer.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
MCELFSymbolFlags.h ARM: take care not to set the ThumbFunc bit on TLS data symbols 2014-06-30 09:37:24 +00:00
MCExpr.h MC: Shrink MCSymbolRefExpr by only storing the bits we need. 2014-10-11 17:57:27 +00:00
MCExternalSymbolizer.h Remove redundant symbolization support from MCDisassembler interface. 2014-04-11 20:07:58 +00:00
MCFixedLenDisassembler.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
MCFixup.h Fix pr19645. 2014-05-03 19:57:04 +00:00
MCFixupKindInfo.h
MCInst.h [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
MCInstBuilder.h Decouple MCInstBuilder from the streamer per Eli's request. 2012-11-26 18:05:52 +00:00
MCInstPrinter.h Fixing missing C++ mode comment 2014-09-29 15:55:18 +00:00
MCInstrAnalysis.h MC: Add some missing include guards 2014-01-17 22:39:45 +00:00
MCInstrDesc.h Add isInsertSubreg property. 2014-08-20 23:49:36 +00:00
MCInstrInfo.h
MCInstrItineraries.h don't repeat function name in comments 2014-10-07 17:28:04 +00:00
MCLabel.h
MCLinkerOptimizationHint.h Make isValidMCLOHType take unsigned instead of enum to avoid loading invalid enum values 2014-08-29 22:34:28 +00:00
MCMachObjectWriter.h MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
MCMachOSymbolFlags.h Fix ODR violation. 2013-10-25 03:29:42 +00:00
MCObjectFileInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MCObjectStreamer.h [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
MCObjectWriter.h Completely rewrite ELFObjectWriter::RecordRelocation. 2014-03-29 06:26:49 +00:00
MCRegisterInfo.h [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
MCRelocationInfo.h Add MCSymbolizer for symbolic/annotated disassembly. 2013-05-24 00:39:57 +00:00
MCSchedule.h typos 2014-10-07 17:00:16 +00:00
MCSection.h Add support for subsections to the ELF assembler. Fixes PR8717. 2013-04-17 21:18:16 +00:00
MCSectionCOFF.h CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF 2014-07-14 22:57:27 +00:00
MCSectionELF.h raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary. 2014-04-29 23:26:49 +00:00
MCSectionMachO.h MC: Use MachO::SectionType for MCSectionMachO::getType's return type 2014-03-07 18:49:54 +00:00
MCStreamer.h [AArch64] Add support for the .inst directive. 2014-10-22 20:35:57 +00:00
MCSubtargetInfo.h Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
MCSymbol.h [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
MCSymbolizer.h Temporarily remove assert while I dig in to issues that it's causing for LLDB. 2014-03-27 22:45:42 +00:00
MCTargetAsmParser.h ms-inline-asm: Fix parsing label names inside bracket expressions 2014-09-22 20:40:36 +00:00
MCTargetOptions.h Convert MC command line option for fatal assembler warnings into a 2014-08-26 18:39:50 +00:00
MCTargetOptionsCommandFlags.h Add ability to emit internal instruction representation to CodeGen assembly output. 2014-07-09 10:07:36 +00:00
MCValue.h Fix pr19645. 2014-05-03 19:57:04 +00:00
MCWin64EH.h MC: split Win64EHUnwindEmitter into a shared streamer 2014-08-07 02:59:41 +00:00
MCWinCOFFObjectWriter.h MC: introduce ability to restrict recorded relocations 2014-05-21 23:17:50 +00:00
MCWinCOFFStreamer.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
MCWinEH.h MC Win64: Put unwind info for COMDAT code into the same COMDAT group 2014-09-04 17:42:03 +00:00
SectionKind.h
StringTableBuilder.h MachObjectWriter: optimize the string table for common suffices 2014-10-06 17:05:19 +00:00
SubtargetFeature.h 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
YAML.h Invert the MC -> Object dependency. 2014-07-03 02:01:39 +00:00