Old fork of llvm-mirror, used on older RPCS3 builds
Go to file
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
autoconf Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
bindings Go: add binding for LLVMSetUnnamedAddr. 2014-10-22 20:20:27 +00:00
cmake Do not add -gsplit-dwarf to LLVM_DEFINITIONS. 2014-10-22 19:49:19 +00:00
docs Fix number of operands in documentation for minnum / maxnum 2014-10-22 18:25:02 +00:00
examples
include [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
lib [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
projects
test [MC] Attach labels to existing fragments instead of using a separate fragment 2014-10-22 22:38:06 +00:00
tools Make two helper functions static. 2014-10-22 15:05:51 +00:00
unittests [Hexagon] Adding encoding bits for add opcode. 2014-10-22 20:58:35 +00:00
utils [lit] Fix Python-3 compatibility, patch by Dan Liew. 2014-10-22 01:26:06 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
CMakeLists.txt
CODE_OWNERS.TXT
configure Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Initial version of Go bindings. 2014-10-16 22:48:02 +00:00
Makefile.rules
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.