1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/lib
James Y Knight f287b0adfc 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
2016-01-15 16:33:06 +00:00
..
Analysis Change isSafeToLoadUnconditionally arguments order. Separated from http://reviews.llvm.org/D10920. 2016-01-15 15:27:46 +00:00
AsmParser
Bitcode Revert "Assert that we have all use/users in the getters." 2016-01-14 09:02:45 +00:00
CodeGen Stop increasing alignment of externally-visible globals on ELF 2016-01-15 16:33:06 +00:00
DebugInfo Fix instance of -Wcovered-switch-default 2016-01-13 20:39:22 +00:00
ExecutionEngine LLVMRunStaticConstructors can be called before object is finalized, #24028 2016-01-15 00:23:34 +00:00
Fuzzer [libFuzzer] do mutations based on memcmp/strcmp interceptors under a separate flag (-use_memcmp, default=1) 2016-01-15 06:24:05 +00:00
IR Stop increasing alignment of externally-visible globals on ELF 2016-01-15 16:33:06 +00:00
IRReader
LibDriver
LineEditor
Linker [IRMover] Don't copy personality, etc unless creating def 2016-01-12 00:24:24 +00:00
LTO [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
MC Delete MCRelocationInfo::createExprForRelocation. 2016-01-15 02:24:12 +00:00
Object COFF: Teach llvm-objdump how to dump DLL forwarder symbols. 2016-01-12 23:28:42 +00:00
Option
Passes [attrs] Extract the pure inference of function attributes into 2015-12-27 08:41:34 +00:00
ProfileData [PGO] Move profile summary interface/impl into InstrProf.[*] /NFC 2016-01-14 22:10:49 +00:00
Support [ARM] Add DSP build attribute and extension targeting 2016-01-15 10:28:25 +00:00
TableGen [TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC 2016-01-04 06:28:49 +00:00
Target [Hexagon] Generate CONST64 when optimizing for size in copy-to-combine 2016-01-15 14:08:31 +00:00
Transforms Stop increasing alignment of externally-visible globals on ELF 2016-01-15 16:33:06 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile