[MC,CodeGen] Update .prefalign for symbol-based preferred alignment (#184032)
https://discourse.llvm.org/t/rfc-enhancing-function-alignment-attributes/88019/17
The recently-introduced .prefalign only worked when each function was in
its own section (-ffunction-sections), because the section size gave the
function body size needed for the alignment rule.
This led to -ffunction-sections and -fno-function-sections AsmPrinter
differences (#155529), which is rather unusual.
This patch fixes this AsmPrinter difference by extending .prefalign to
accept an end symbol and a required fill operand:
.prefalign <log2_align>, <end_sym>, nop
.prefalign <log2_align>, <end_sym>, <fill_byte>
The first operand is a log2 alignment value (e.g. 4 means 16-byte
alignment). The body size (end_sym_offset - start_offset) determines the
alignment:
[19 lines not shown]
devel/serie: update to 0.7.2
What's Changed
- Remove preload option by @lusingander in #148
- Fix protocol detection by @lusingander in #149
- Remove rayon feature from image dependency by @lusingander in #150
[MC] Remove MCTargetOptions parameter from MCContext constructor (#191596)
Now that MCAsmInfo stores the MCTargetOptions pointer (set by
TargetRegistry::createMCAsmInfo #180464), MCContext can retrieve it via
MCAsmInfo. Remove the redundant MCTargetOptions parameter from the
MCContext constructor and update all callers.
[clang-tidy] Fix FP in bugprone-exception-escape with unevaluated exception specs (#190593)
Functions whose exception spec has not yet been evaluated have no body
in the AST. Because the compiler does not generate call sites for these
functions before evaluating their spec, they cannot propagate
exceptions.
Closes https://github.com/llvm/llvm-project/issues/188730
etc/Makefile: Skip directories in 'check-deprecated-files'
Skip directories so we don't list the directories containing the
deprecated files in the end.
For example, the line `/usr/lib/gcc47 is deprecated` will not appear
after this change:
```
===> Checking for deprecated files
(harmless ELF linker warnings may appear here)
/lib/libprivate_crypto.so.45 is deprecated
/lib/libprivate_crypto.so.46 is deprecated
/lib/libprivate_ssl.so.47 is deprecated
/lib/libprivate_ssl.so.48 is deprecated
/usr/lib/gcc47/libgomp.so.1 is deprecated
/usr/lib/gcc47/libssp.so.0 is deprecated
/usr/lib/gcc47/libstdc++.so.9 is deprecated
/usr/lib/gcc47 is deprecated
==================================================================
[2 lines not shown]
Revert "[lld][AMDGPU] Support R_AMDGPU_ABS32_(LO|HI) relocations" (#191591)
Reverts llvm/llvm-project#191550
Merged without understanding getImplicitAddend and test convention, and
less than 4 hours after a colleague rubber stamping with "I am not ELF
or linker expert but to me looks good."
gcc47: Unhook build and remove makefiles
We had been keeping GCC 4.7.4 for a long time because it's the last GCC
that was written in pure C and thus can be bootstrapped with a C
compiler. However, GCC 4.7.4 only has experimental C++11 support, so
it's unable to compile the newly imported GCC 12.5.
There are too many missing pieces in GCC 4.7.4 for it to be able to
compile GCC 12.5. A more feasible method would be to patch GCC 12.5
sources to avoid the unsupported C++11 features. Even we could tweak
the GCC 12.5 source to make it compilable by GCC 4.7.4, it's a big
burden to maintain it and to import a newer GCC like 14.x/15.x.
In conclusion, there is really no much point in keeping GCC 4.7.4
anymore given that it cannot build the world now.
Discussed-with: swildner