[AArch64] Factor out handling of AUTRELLOADPAC addend in AsmPrinter (NFC) (#192076)
In `AArch64AsmPrinter`, move the emission of code that handles the
Addend operand of AUTRELLOADPAC from `emitPtrauthAuthResign` to a
separate function.
Make use of recently added helper functions and update the comments.
Refer to named `Pointer` and `Scratch` registers instead of
hardcoding X16 and X17.
[FunctionAttrs] Don't infer noundef when return has nofpclass (#191822)
- Fixes: #191338
nofpclass violations on a return produce poison.
Poison returns marked noundef are UB.
This turns off noundef inference when nofpclass attributes are present.
---------
Co-authored-by: Shonie Caplan <shonie at genki.com>
Co-authored-by: Yingwei Zheng <dtcxzyw at qq.com>
[mlir][vector] Fold vector extract from insert when trailing unit dims (#192109)
Upstreamed from https://github.com/iree-org/iree/pull/23789
Folds vector.extract from vector.insert when the extract position is a
prefix of the insert position and the remaining (un-indexed) dimensions
of the extracted sub-vector are all size 1. In that case the extracted
value is fully determined by the inserted value.
Example:
%ins = vector.insert %s, %v [3, 0] : f32 into vector<16x1xf32>
%ext = vector.extract %ins [3] : vector<1xf32> from vector<16x1xf32>
folds to:
%ext = vector.broadcast %s : f32 to vector<1xf32>
Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
[Clang][Hexagon] Use --cstdlib flag to choose Picolibc (#183257)
Update the Hexagon toolchain to use --cstdlib flag to allow users to
choose Picolibc as the C library.
This allows proper selection of C library when targeting
Hexagon environments.
depends on https://github.com/llvm/llvm-project/pull/183254
Signed-off-by: Kushal Pal <kushpal at qti.qualcomm.com>
[GlobalISel] Fix getShuffleDemandedElts input lanes in computeKnownFPClass (#192288)
The number of lanes needs to be for the input type, not the return, as
they can be different in GISel. This prevents an assert about invalid
shuffle mask constant from getShuffleDemandedElts.
[CIR] Implement LValue InitListExpr and FunctionalCastExpr lowering (#192298)
First, this fixes the InitListExpr lowering. This copies the same
implementation from classic-codegen, and adds some tests (this is
otherwise untested in classic codegen?).
Second, while I was writing tests for the above, I accidented into the
FunctionalCastExpr, which just calls emitCastLValue, so this fixes that
as well.
[LifetimeSafety] Add lifetimebound inference for std::make_unique (#191632)
Enhanced lifetime safety analysis to support `std::make_unique` by
propagating `lifetimebound` attributes from constructor parameters to
`make_unique` parameters.
- Added special handling for `std::make_unique` in
`inferLifetimeBoundAttribute()` to automatically propagate
`lifetimebound` attributes from the constructed type's constructor
parameters to the corresponding `make_unique` parameters
- Extended GSL owner type handling in assignment operations within
`FactsGenerator::VisitCXXOperatorCallExpr()`
`std::make_unique` is a common factory function that forwards arguments
to constructors. Without this enhancement, lifetime safety analysis
couldn't detect when `make_unique` was being used to create objects with
lifetimebound dependencies, leading to missed warnings about potential
dangling references. This change ensures that lifetime safety analysis
works seamlessly with modern C++ idioms using smart pointer factory
[14 lines not shown]
Address comments
* Limit support to 'mul/fmul' binops.
* assert that a VPExpression can be used to represent a partial reduction.
* Remove dead code from tryToMatchAndCreateExtendedReduction and tryToMatchAndCreateMulAccumulateReduction.
[LV][NFC] Rename ScalarEpilogueLowering to EpilogueLowering (#191871)
Rename ScalarEpilogueLowering enum to EpilogueLowering.
The term 'scalar' is misleading given that the epilogue could be
vectorized.
Also rename the enum values to use the tail-folding term instead of
predication, as it's more clear.
[libc][cmake] Remove dependencies for bare-metal hermetic testing (#192242)
Unit tests can be disabled on bare-metal as they will fail to build. To
prevent the check-libc and check-libc-lit targets from always attempting
to build them, the dependencies are now set conditionally according to
the relevant CMake options.
[LV] NFCI: Create VPExpressions in transformToPartialReductions.
With this change, all logic to generate partial reductions and
recognising them as VPExpressions is contained in
`transformToPartialReductions`, without the need for a second
transform pass.
The PR intends to be a non-functional change.
[clang][bytecode] Don't implicitly begin union member lifetime... (#192212)
... on assignment operator calls if the LHS type does not have a
non-deleted trivial default constructor.
[flang][OpenMP] Identify DO loops affected by loop-associated construct (#191719)
This is to identify iteration variables of DO loops affected by an
OpenMP loop construct. These variables are privatized as per
data-sharing rules.
Issue: https://github.com/llvm/llvm-project/issues/191249