[LV] Add additional partial reduction test coverage for #167851.
Add test cases for which earlier versions of
https://github.com/llvm/llvm-project/pull/167851 was not NFC.
Test chained_sext_adds is moved to a new file.
Fix read of unsupported SMB share ACL access mask
The SMB share ACL database technically supports more varieties of
share ACL settings than we explicitly expose (or Windows does
for that matter). This means there is a small chance that a user
could set an unsupported mask through shell commands. We have no
interest in increasing backend API complexity here and so we'll
present the special string "CUSTOM" to end-user and make them
fix it on share ACL update. Remaining share ACL infrastructure
does not rely on this special decoding / encoding.
[CIR][NFC] Add OGCG tests for coroutines (#178821)
This PR adds OGCG tests for `coro-task.cpp`. These tests are intended to
be used once the lowering is implemented, allowing us to compare the
generated output.
[ThinLTO] Stop attempting variable import once we see a non-variable (#178944)
This is a compile time improvement. Instead of looking through every
single copy of a value (of which there can be many for large targets
with linkonce_odr copies of the same values) for an importable variable,
stop immediately after we see a non-variable summary.
In most cases this is NFC because we expect all copies of a value to be
of the same type (e.g. all variables, or all functions). This only makes
a noticeable, slightly conservative, change in the case of same-named
local values in different modules compiled without distinguishing path.
The new test shows the effect of this (and is safe due to PR178761).
This makes a large reduction in thin link time for large targets that
have many copies of linkonce_odr vtables, all referencing functions.
[OpenMP] Remove LLVM_ENABLE_PROJECTS=openmp build mode (#176950)
Reapply #152189 and #174963 which were reverted because it broke
publish-sphinx-docs and publish-doxygen-docs.
The build mode has been deprecated in #136314 and was supposed to be
removed in the LLVM 21 release (#136314).
OpenMP currently supports 4 build modes:
* `cmake <llvm-project>/llvm -DLLVM_ENABLE_PROJECTS=openmp`
* `cmake <llvm-project>/llvm -DLLVM_ENABLE_RUNTIMES=openmp` (bootstrapping build)
* `cmake <llvm-project>/openmp` (standalone build)
* `cmake <llvm-project>/runtimes -DLLVM_ENABLE_RUNTIMES=openmp` (runtimes default/standalone build)
Each build mode increased the maintanance overhead since all build modes
must continue working and user confusion when there do not (see #151117,
#174126, #154117, ...). Let's finally remove it.
[WebAssembly] Prevent FastISel from trying to select funcref calls (#178742)
Before, Wasm FastISel treated all indirect calls the same, causing
miscompilations at O0 when trying to call a funcref (`call ptr
addrspace(20)`), as it would treat the funcref as a normal `ptr`
This adds a check so it falls back to ISelDAG when encountering calls
outside addrspace 0 (which covers direct calls and indirect calls
through normal function pointers).
Related: #140933
[RISCV] Remove redundant FeatureStdExtZcd from X100. (#178928)
Zcd is compressed double precision which should be covered by the C and
D extensions in RVA23U64Features.
[NFC][TableGen] Minor cleanup in SequenceToOffsetTable (#178564)
Use `auto` for iterators, range for loop in `layout` and rename
`Entries` to a more canonical `Size`.
[SelectionDAG] Handle undef at any position in isConstantSequence (#176671)
This patch extends `BuildVectorSDNode::isConstantSequence` to recognize
constant sequences that contain undef elements at any position.
The new implementation finds the first two non-undef constant elements,
computes the stride from their difference, then verifies all other
defined elements match the sequence. This enables SVE's INDEX
instruction to be used in more cases.
This change particularly benefits ZIP1/ZIP2 patterns where one operand
is a constant sequence. When a smaller constant vector like `<0, 1, 2,
3>` is used in a ZIP1 shuffle producing a wider result, it gets expanded
with trailing undefs. Similarly, for ZIP2 patterns, the DAG combiner
transforms the constant to have leading undefs since ZIP2 only uses the
upper half of its operands.
In particular, these patterns arise naturally from `VectorCombine`'s
`compactShuffleOperands` optimization (see #176074) that I am suggesting
as a fix for #137447.
Reapply "[VPlan] Add hidden `-vplan-print-after-all` option" (#178547)
Re-commit of https://github.com/llvm/llvm-project/pull/175839 after
fixing build without `LLVM_ENABLE_DUMP`.
This consists of the following changes:
* Merge several overloads of `VPlanTransforms::runPass` into a single
function to avoid code duplication.
* Add helper macro `RUN_VPLAN_PASS` to capture the transformation name
and pass it to the helper above for printing.
* Add new `-vplan-print-after-all` option (somewhat similar to existing
`-vplan-verify-each`).
* Add two empty passes `printAfterInitialConstruction`/`printFinalVPlan`
so that initial/final VPlans would be supported in `-vplan-print-after-all`
This follows the original future plans in
https://github.com/llvm/llvm-project/pull/123640.
[BOLT] Refactor rewriteFunctionsInPlace from rewriteFile (#178787)
Extract the code that rewrites functions in place from rewriteFile()
into a separate rewriteFunctionsInPlace() function.
[SampleProf][OMP] Handle OMP helper function name canonicalization (#178339)
Fix an issue where `FunctionSamples::getCanonicalFnName` incorrectly
canonicalizes omp helper functions to collide with the original function
itself. This causes the sample loader to annotate the wrong functions.
Canonicalization strips everything comes after the first dot (.), unless
the function attribute "sample-profile-suffix-elision-policy" is set to
"selected", in which case it only strips after the known suffixes. The
helper function names have the suffixes like `.omp_outlined`. After
canonicalization, the name becomes the same as the original function.
Add the attribute to helper functions so that the suffixes are not
stripped.
This is the same fix applied previously to coroutine await suspend
wrapper functions (#174881).
[OpenACC] Added support for bounds generation for boxes and OPTIONAL. (#178567)
This change allows `OpenACCMappableModel<Ty>::generateAccBounds()`
to generate the bounds operations for FIR boxes (including OPTIONAL).
NAS-139542 / 25.10.3 / In become_active ensure all user-related config (#18127)
This commit ensures that when a controller becomes active, we regenerate
the user and API key configuration so that there's no chance of stale
information being preset.
Original PR: https://github.com/truenas/middleware/pull/18125
Co-authored-by: bugclerk <40872210+bugclerk at users.noreply.github.com>
NAS-139542 / 25.10.2 / In become_active ensure all user-related config (by anodos325) (#18126)
This commit ensures that when a controller becomes active, we regenerate
the user and API key configuration so that there's no chance of stale
information being preset.
Original PR: https://github.com/truenas/middleware/pull/18125
---------
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
NAS-139542 / 25.10.2 / In become_active ensure all user-related config (by anodos325) (#18126)
This commit ensures that when a controller becomes active, we regenerate
the user and API key configuration so that there's no chance of stale
information being preset.
Original PR: https://github.com/truenas/middleware/pull/18125
---------
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
NAS-139542 / 26.0.0-BETA.1 / In become_active ensure all user-related config (#18125)
This commit ensures that when a controller becomes active, we regenerate
the user and API key configuration so that there's no chance of stale
information being preset.
[VectorCombine] Fix crash with poison mask elements in shrinkLoadForShuffles (#178920)
## Summary
Fixes assertion failure when `shrinkLoadForShuffles` processes shuffle
masks containing poison elements.
The bug was introduced in #149093 , when adjusting mask indices for load
trimming, poison indices (-1) were modified to invalid values (e.g.,
-2), causing `isSingleSourceMaskImpl` to assert.
The fix preserves poison indices without modification.
Fixes #178917
## Test plan
- Added regression test `@shuffle_with_poison_mask`
[lldb] Add FP conversion instructions to IR interpreter (#175292)
This allows expressions that use these conversions to be executed when
JIT is not available.