[libc][cmake] Respect the configured optimization level for the Linux thread and TLS objects
The -O3 override on the Linux thread object dates from the old approach of
reading the thread arguments off the new thread's stack, which #225384
removed; the TLS objects copied the same pattern in #225418. Neither needs
it anymore, so drop the overrides and use the optimization level configured
by CMake.
Assisted-by: Claude
[libc][cmake] Respect the configured optimization level for tests
Follow up to #126322 and #233964 for the test side: the math and stdfix
tests, hash_test and the MPFR wrappers still force -O3. Drop the overrides
so they use the optimization level configured by CMake like the rest of the
library.
Assisted-by: Claude
CodeGen: Stop using LiveVariables in tests (#234293)
Change most of these tests to use live-intervals instead, assuming
there's some value in testing whatever edge case once broke live
variables. Some cases seem to use it just to drive other passes where
it makes sense to just slot it in. The one case that seems
unrecoverably useless is a test for the extra implicit def operands
LiveVariables would add involving subregister defs.
[CGHLSL] Account for matrices in semantics (#233495)
Updates the emission of semantics with matrix values now that we have
updated its representation in the AST.
Resolves https://github.com/llvm/llvm-project/issues/143523
Assisted by: ChatGPT Sol 6.1
[LV] Add initial conservative memory safety check for outer loops. (#229223)
This patch adds initial simple memory safety checks for the outer loop
vectorization path, enabled with a new `-vplan-outer-loop-legality-checks` flag.
The initial checks only allow cases where the inner loop is read-only.
The outer loop is allowed to contain stores with stride != 0 to rule out
write-after-write dependencies. The stores must not alias any other
loads or stores in the loop nest.
Those restrictions will be relaxed in follow-ups, together with support
for runtime check generation. The goal is to provide a new mode where
only provably safe loops get vectorized, and gradually extend the
capabilities.
Merge tag 'kbuild-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux
Pull Kbuild / Kconfig updates from Nathan Chancellor:
"Kbuild:
- Suppress compiler flags in debug info for external module builds
- Use '-fmacro-prefix-map' in more places in the build
- Merge initial set of changes from Lorenzo's speed up series, along
with some fixes found through testing:
- Avoid allocating .modinfo in vmlinux
- Speed up kallsyms by indexing symbols by token and outputting
binary data to disk directly then including in assembly via
.incbin
- Don't sort $(NM) output when unnecessary
[70 lines not shown]
[ConstraintElimination] Exact right shifts extension (#223207)
Decompose exact right shifts when terms are divisible by shift factor
Extend ConstraintElimination::decompose() to look through exact right
shifts (ashr exact / lshr exact) when the decomposed operand's constant
offset and variable coefficients are all evenly divisible by the shift
factor (1 << Shift). For example, (4 * a + 8) >> 2 decomposes into a +
2, allowing comparisons like ((4 * a + 8) >> 2) > a to be proven and
folded to true.
Added lit tests in
llvm/test/Transforms/ConstraintElimination/exact-shr.ll covering
positive folds and negative cases (non-divisible coefficients,
non-divisible offsets, and non-exact shifts).
Gemini assisted change.
mkimg: Ignore redundant %align values
Partitions are trivially aligned to sector boundaries, so asking e.g.
for a partition to be aligned to a 64-byte boundary is pointless but
harmless. Treat it as such, with a warning (in case the request was
a mistake, e.g. requesting 1-byte instead of 1M-byte alignment) rather
than as an error.
Reviewed by: markj
Suggested by: markj
MFC after: 1 week
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D60819
vmimage.subr: Support partition alignment
If VM_PARTALIGN is set, pass %${VM_PARTALIGN} to mkimg in the
specification of swap, config, root, and ESP partitions. (Boot
partitions are not aligned, both because they're small and in
case firmware makes assumptions about their locations.)
Reviewed by: lwhsu, imp
MFC after: 1 week
Sponsored by: Amazon
Differential Revision: https://reviews.freebsd.org/D60454