llvm-project/llvm
Sergei Larin 94be2dee7e Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object.
Summary:
Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object.

A good example of improper behavior in the current implementation is section information associated with the GlobalObject. If a section was set for it, and GlobalOpt is creating/modifying a new object based on this one (often copying the original name), without this change new object will be placed in a default section, resulting in inappropriate properties of the new variable.
The argument here is that if customer specified a section for a variable, any changes to it that compiler does should not cause it to change that section allocation.
Moreover, any other properties worth representation in copyAttributesFrom() should also be propagated.

Reviewers: jmolloy, joker-eph, joker.eph

Subscribers: slarin, joker.eph, rafael, tobiasvk, llvm-commits

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

llvm-svn: 258556
2016-01-22 21:18:20 +00:00
..
autoconf Update version to 3.9. 2016-01-13 17:32:32 +00:00
bindings Deprecate a few C APIs. 2015-12-18 23:46:42 +00:00
cmake tools/llvm-config: improve shared library support 2016-01-20 04:03:09 +00:00
docs Add a "gc-transition" operand bundle 2016-01-20 19:50:25 +00:00
examples Fix examples corresponding to r257302. 2016-01-11 05:04:20 +00:00
include Make InstProfWriter compile again after 258544 with MSVC. 2016-01-22 21:13:04 +00:00
lib Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object. 2016-01-22 21:18:20 +00:00
projects
resources
test Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object. 2016-01-22 21:18:20 +00:00
tools Fix MachOObjectFile::getSymbolName() to not call report_fatal_error() 2016-01-22 18:47:14 +00:00
unittests Revert 258486 -- for a better fix coming soon 2016-01-22 19:53:31 +00:00
utils [TableGen] Make a class member local to the function that populates it and consumes it later. NFC 2016-01-22 05:59:43 +00:00
.arcconfig
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore
CMakeLists.txt [GlobalISel] Add the proper cmake plumbing. 2016-01-20 20:58:56 +00:00
CODE_OWNERS.TXT The PS4 baton passes. 2015-12-19 20:04:03 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Update version to 3.9. 2016-01-13 17:32:32 +00:00
llvm.spec.in

README.txt

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

This directory and its subdirectories contain source code for LLVM,
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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.