I will try to look at the patches today. I'm going to delay the release a week
or so, because of all the merge requests I've received, so there is no rush.
I would like to propose the following additional patches for 3.5.1. These will already be part of the upcoming clang 3.5.0 import into the FreeBSD 11.0 base system. Apologies in advance for the long list.
Enabling TLS support for PowerPC32:
[PowerPC] Support TLS on PPC32/ELF
Patch by Justin Hibbits!
Two changes needed for being able to link lldb 3.5.x against llvm 3.5.x:
AArch64: add support for dynamic-loader relocations
LLD needs them, and it's good to be able to print them properly when
our object dumpers encounter them.
Patch by Daniel Stewart.
Fix some semantic usability issues with DynamicLibrary.
This patch allows invalid DynamicLibrary instances to be
constructed, and fixes the const-correctness of the isValid()
Fixing a possible SIGILL problem on ARMv6 and lower, plus test:
Only emit movw on ARMv6T2+
Patch by Dimitry Andric.
Missing test from r216989
Fix assigning garbage to floats in some cases:
Set trunc store action to Expand for all X86 targets.
When compiling without SSE2, isTruncStoreLegal(F64, F32) would return Legal, whereas with SSE2 it would return Expand. And since the Target doesn't seem to actually handle a truncstore for double -> float, it would just output a store of a full double in the space for a float hence overwriting other bits on the stack.
Patch by Luqman Aden!
Enabling armv6k for FreeBSD/ARM:
Use armv6k default for FreeBSD/ARM
Patch by Andrew Turner.
Downgrading a DWARF2 section error when .note sections are added to a .S file while debug info is on:
Downgrade DWARF2 section limit error to a warning
We currently emit an error when trying to assemble a file with more
than one section using DWARF2 debug info. This should be a warning
instead, as the resulting file will still be usable, but with a
degraded debug illusion.
Fixing a very bad OOM condition when compiling certain programs with debug info on, plus test:
Totally forget deallocated SDNodes in SDDbgInfo.
What would happen before that commit is that the SDDbgValues associated with
a deallocated SDNode would be marked Invalidated, but SDDbgInfo would keep
a map entry keyed by the SDNode pointer pointing to this list of invalidated
SDDbgNodes. As the memory gets reused, the list might get wrongly associated
with another new SDNode. As the SDDbgValues are cloned when they are transfered,
this can lead to an exponential number of SDDbgValues being produced during
DAGCombine like in http://llvm.org/bugs/show_bug.cgi?id=20893
Note that the previous behavior wasn't really buggy as the invalidation made
sure that the SDDbgValues won't be used. This commit can be considered a
memory optimization and as such is really hard to validate in a unit-test.
Add an assert and a test that verify r221709's fix.
Enable AArch64 support for FreeBSD:
Hook up FreeBSD AArch64 support
Patch from Andrew Turner.
Partially fix FreeBSD boot2 size optimization regressions:
Disable header duplication at -Oz in loop-rotate pass.