[InstSimplify] Fold value-preserving zext/sext of trunc (#204089)
Fold a value-preserving `zext (trunc nuw X)` / `sext (trunc nsw X)` back
to
`X` in `simplifyCastInst` (when the trunc source type equals the extend
result type and the no-wrap flag guarantees the round-trip is identity).
After indvars canonicalizes a min-index loop, the running-index select
has a
`trunc nuw nsw i64 %iv to i32` on its true side while `arr[i]` is
addressed
directly with the i64 `%iv`. When PHI-translating the select-dependent
address along the backedge (see #203863), the true side becomes
`gep base, zext nneg (trunc nuw %iv)`, which has no matching instruction
in
the loop, so the select dependency is never formed and the redundant
load
survives.
[11 lines not shown]
graphics/fotocx: the port had been updated to version 26.6.1
Move KERN_PROC_PATHNAME sysctl(3) call into its own function
and use it where applicable; this further reduces the number
of linuxisms in the program.
Reported by: portscout
[libc][complex] Enable cabs and cabsf in libc (#206677)
This PR adds basic implementation for cabs and cabsf in LLVM libc and
also extend current MPC infrastructure to support cabs operation.
---------
Signed-off-by: jinge90 <ge.jin at intel.com>
[SPARC] Make SPARC_REGISTER Sparc specific in llvm-readobj and LLDB (#206316)
The commit 4418a8e5 failed to limit SPARC_REGISTER to Sparc targets
only, which causes conflict when adding new dynamic tags for other
targets.
[NewPM] Port StaticDataAnnotator
Standard NewPM pass porting. The PassBuilder wireup/test coverage will
come in the next PR.
Reviewers: arsenm, teresajohnson, mingmingl-llvm
Pull Request: https://github.com/llvm/llvm-project/pull/207629
[NewPM] Port StaticDataSplitter
Standard pass porting. Remove the MBPI member given it was unused.
Reviewers: arsenm, teresajohnson, mingmingl-llvm
Pull Request: https://github.com/llvm/llvm-project/pull/207627
[ObjectYAML][NFC] Hoist ContiguousBlobAccumulator into a shared header (#207306)
Move ContiguousBlobAccumulator out of ELFEmitter.cpp's anonymous
namespace so other yaml2obj emitters can reuse it.
[RFC][AMDGPU][lld] Add object linking support
Add AMDGPU ELF object-linking support in lld, including resource propagation,
LDS layout, indirect-call handling, named-barrier updates, target compatibility
checks, and kernel descriptor/metadata patching.
This is a large PR because the linker needs to understand and validate several
AMDGPU object-linking concepts end to end. I tried to keep the changes scoped to
the necessary linker support and related metadata plumbing, but I'm open to
suggestions on how to split or structure the review to make it easier.
[AMDGPU] Introduce ABI occupancy for object linking
This PR introduces ABI occupancy as the contract used to compile functions under
object linking. The default is derived from the occupancy needed for a 1024
workitem workgroup, can be overridden with `-amdgpu-abi-waves-per-eu`, and can
be overridden per function by `amdgpu-flat-work-group-size` or tightened by an
accepted `amdgpu-waves-per-eu` hint.
The backend emits the selected occupancy in `.amdgpu.info` and uses it to
enforce the object linking register budget.
[docs][AMDGPU] move DMA operations to a separate file (#206917)
This includes the various `.async` and `.tensor` operations. Various
scattered bits of information are now in one place. Also added the
missing documentation for tensor intrinsics.