llvm-6502/lib
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
..
Analysis [InstSimplify] Support constant folding to vector of pointers 2014-10-22 12:18:48 +00:00
AsmParser
Bitcode
CodeGen Strength reduce constant-sized vectors into arrays. No functionality change. 2014-10-22 19:55:26 +00:00
DebugInfo Constify input argument of RelocVisitor and DWARFContext constructors. NFC. 2014-10-20 20:28:51 +00:00
ExecutionEngine [MCJIT] Defer application of AArch64 MachO GOT relocations until resolve time. 2014-10-21 23:41:15 +00:00
IR
IRReader
LineEditor
Linker
LTO
MC [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
Object
Option
ProfileData Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
Support Strength reduce constant-sized vectors into arrays. No functionality change. 2014-10-22 19:55:26 +00:00
TableGen
Target [Hexagon] Adding encoding bits for add opcode. 2014-10-22 20:58:35 +00:00
Transforms LoopVectorize: Simplify code. No functionality change. 2014-10-22 19:13:54 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile