[offload][OpenMP] Read the kernel environment from the device image (#229131)
This should be an optimization for #222606. The kernel environment
doesn't actually need to be loaded back from the device since it
shouldn't be different compared to the time where it was transferred to
the device as part of the image.
Claude assisted with this patch.
[AArch64] Fix incorrect frame indexes for ZPR callee-saved pair spills (#228368)
The ZPR pairs callee-saved spills were being assigned frame indexes in
the reverse order. Resulting in CFI reporting swapped memory locations
for the registers in the pairs
Reverse the conditions to find pairs and tweak the reordering algorithm
to maximize this.
Resulting in pairs with correct frame indexes.
Some refactors have also been included in this PR
[LICM] Drop per-iteration AA tags (#223530)
AA tags are scoped inside the loop via
`llvm.experimental.noalias.scope.decl` were being preserved in #222686
to determine promotion, which is incorrect as the alias metadata only
holds per individual loop iteration, and thus cannot be used to infer
alias information of memory locations used between iterations.
This patch checks for loop-local alias declarations and excludes them
from being preserved.
[libsycl] Disable werror for deprecated declaration in test (#229145)
Test verifies deprecated SYCL API intentionally.
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova at intel.com>
[NFC][HIP][SPIRV] Rework `-spirv-preserve-auxdata` handling. (#227875)
The way we were using to (unconditionally) enable this has been silently
inert since switching to the new driver / all things going through
`clang-linker-wrapper`. It was also a bit suspect / sneaky in general.
Pivot it to be controlled based on encountering the AMD vendor type.
[SLP]Keep dbg_value of the lanes replaced by extractelement
Redirect the debug values of an erased scalar to the extract emitted for
its external user. A record placed before the extract is cloned right
after it, unless that passes a record of the same variable. Lanes
without external users still lose their debug values.
Part of #45507.
Assisted-by: Cursor
Reviewers: RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/228937
[SLP]Keep dbg_value of the lanes replaced by extractelement
Redirect the debug values of an erased scalar to the extract emitted for
its external user. A record placed before the extract is cloned right
after it, unless that passes a record of the same variable. Lanes
without external users still lose their debug values.
Part of #45507.
Assisted-by: Cursor
Reviewers: RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/228937
ZTS: restore metaslab_force_ganging after removal_with_ganging
The cleanup of removal_with_ganging sets metaslab_force_ganging to
131073 instead of the value it replaced. Every later test on the same
runner then gangs about 3% of its blocks larger than 128K, since
metaslab_force_ganging_pct defaults to 3. A test that needs a plain
1M block fails intermittently; replacement/indirect_reconstruct did on
FreeBSD CI.
Save the tunable before changing it and restore it on exit, as the
other tests that force ganging do. Register cleanup after the save,
before pool setup and the tunable write, so setup failures restore it
too.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Kamil Monicz <kamil at monicz.dev>
Closes #19207
[CIR] Minimize dependencies of check-clang-cir (#227957)
This adds special handling for the CIR test directories so that they
depend only on the components needed to run those tests. The goal of
this is to minimize what needs to be built to verify that MLIR changes
haven't broken CIR. There is no need to run the full set of Clang tests
to verify an MLIR change, since only CIR depends on MLIR.
Assisted-by: Cursor / various models
ZTS: preserve failures when saving and restoring tunables
save_tunable hides a failed get_tunable behind echo, and
restore_tunable hides a failed set_tunable64 behind rm. A test can
therefore report successful cleanup while leaving its changed tunable
in place and discarding the saved value.
Check the tunable and saved-value reads, and return a failed setter's
status before deleting the saved value. A failed restore then retains
the value for a retry, and log_must reports the cleanup failure.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Kamil Monicz <kamil at monicz.dev>
Closes #19207
[InstCombine] Fold canonicalized form of vecreduce_or(get_active_lane_mask) (#220085)
get_active_lane_mask is called with lower and upper bounds. We can just
compare the bounds themselves.
This change is intended to improve vecreduce_or codegen for fixed-length
vectors. vscales deal with vecreduce_or directly.
https://godbolt.org/z/84sjGGdWe
alive2 doesn't seem to support get_active_lane_mask at the moment.