[AMDGPU] Use value's DebugLoc for bitcast in performStoreCombine (#186766)
## Description
When `AMDGPUTargetLowering::performStoreCombine` inserts a synthetic
bitcast to convert vector types (e.g. `<1 x float>` → `i32`) for stores,
the bitcast inherits the **store's** SDLoc. When
`DAGCombiner::visitBITCAST` later folds `bitcast(load)` → `load`, the
resulting load loses its original debug location.
## Analysis
The bitcast is **not** present in the initial SelectionDAG — it is
inserted during DAGCombine by
`AMDGPUTargetLowering::performStoreCombine`. This can be observed with
`-debug-only=isel,dagcombine`:
```
Initial selection DAG: no bitcast, load is v1f32 directly used by store
[59 lines not shown]
lib/msun: Added fmaximum_mag and fmaximum_num families
Added support for the f{maximum,minimum}_{mag,num} families, the new
C23 standard functions for maximum magnitude and number-preferring
maximum. This includes modifying fmax.3, on top of D56230, to
recommend the use of fmaximum_num and fminimum_num.
Reviewed by: fuz, kargl
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D56236
[AsmPrinter] Use AsmPrinterAnalysis to hold AsmPrinter
AsmPrinter needs to hold state between doInitialization,
runOnMachineFunction, and doFinalization, which are all separate passes
in the NewPM. Storing this state externally somewhere like
MachineModuleInfo or a new analysis is possible, but a bit messy given
some state, particularly EHHandler objects, has backreferences into the
AsmPrinter and assumes there is a single AsmPrinter throughout the
entire compilation. So instead, store AsmPrinter in an analysis that
stays constant throughout compilation which solves all these problems.
This also means we can also just let AsmPrinter continue to own the
MCStreamer, which means object file emission should work after this as
well.
This does require passing the ModuleAnalysisManager into
buildCodeGenPipeline to register the AsmPrinterAnalysis, but that seems
pretty reasonable to do.
Reviewers: paperchalice, RKSimon, arsenm
Pull Request: https://github.com/llvm/llvm-project/pull/191535
[AMDGPU] Add object linking support for LDS and named barrier lowering in the middle end
This is the first patch in a series introducing object linking support for
AMDGPU.
This PR adds the -amdgpu-enable-object-linking flag to enable object linking in
the backend. It also updates the AMDGPULowerModuleLDSPass and
AMDGPULowerExecSync passes to support lowering LDS and named barrier globals
when object linking is enabled.
libraw: update to 0.22.1.
Remove jasper option, since jasper support is gone.
Not sure when, it's not mentioned in the changelog.
LibRaw 0.22.1 Release
This is bugfix-only release with these commits included:
* Limit strcat space in hassy model manipulation
* Version increment; shlib increment: internal ABI has changed
* check panasonic enc8 tile width against image width
* CR3 parser: zero all buffers before fread
* skip memory allocation checks for OWN_ALLOC decoders
* DNG SDK glue: check for memory limits
* raw2image()/dcraw_process() - check for int16 source data present
* Check for correct bayer pattern, pass incorect ones to vng_interpolate
* parse_rollei: zero input string before fgets
* Nikon padded/12bit: no need to calculate padded row size before final raw_width adjustment
[300 lines not shown]
[Clang] Track constraint's SubstIndex only if it contains outer parameter packs (#191484)
I believe that is the intent of SubstIndex in AssociatedConstraint.
So this enforces the checking explicitly, in case nested SubstIndexes
confuses our poor constraint evaluator.
I reverted the previous fix 257cc5ad89840cdfba4affcc8fe62cf9d02d9017
because that was wrong.
As a drive-by fix, this also removes an strange assertion and an
unnecessary
SubstIndex setup in nested requirement transform.
No release note because this is a regression fix.
Fixes https://github.com/llvm/llvm-project/issues/188505
Fixes https://github.com/llvm/llvm-project/issues/190169