aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IR/Module.cpp
diff options
context:
space:
mode:
authorJames Y Knight <jyknight@google.com>2016-01-15 16:33:06 +0000
committerJames Y Knight <jyknight@google.com>2016-01-15 16:33:06 +0000
commitac03dca41245fe4cf308e7405d6e947b45341547 (patch)
tree618e6891cf0bf5d04e375a798b99cd46c101dcbd /llvm/lib/IR/Module.cpp
parent0771b18257a6bd33ec9f9890d8cb0eed01e729d3 (diff)
downloadllvm-ac03dca41245fe4cf308e7405d6e947b45341547.zip
llvm-ac03dca41245fe4cf308e7405d6e947b45341547.tar.gz
llvm-ac03dca41245fe4cf308e7405d6e947b45341547.tar.bz2
Stop increasing alignment of externally-visible globals on ELF
platforms. With ELF, the alignment of a global variable in a shared library will get copied into an executables linked against it, if the executable even accesss the variable. So, it's not possible to implicitly increase alignment based on access patterns, or you'll break existing binaries. This happened to affect libc++'s std::cout symbol, for example. See thread: http://thread.gmane.org/gmane.comp.compilers.clang.devel/45311 (This is a re-commit of r257719, without the bug reported in PR26144. I've tweaked the code to not assert-fail in enforceKnownAlignment when computeKnownBits doesn't recurse far enough to find the underlying Alloca/GlobalObject value.) Differential Revision: http://reviews.llvm.org/D16145 llvm-svn: 257902
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
0 files changed, 0 insertions, 0 deletions