[dsymutil] Add support for code signing dSYM bundles (#190676)
This PR adds support for code signing the dSYM bundle using the
`codesign` command line utility.
[LLDB] Fix potential data race in Symtab initialization (#192753)
Claude pointed out to me that Symtab::FindFunctionSymbols doesn't lock
the mutex before checking m_name_indexes_computed and recomputing it. On
top of that all the initialization flags are bitfields, which makes any
unguarded concurrent accesses UB. Changing them to bools should no
longer be necessary after introducing a lock, but several of the public
methods trust that their caller holds the lock so I'm opting to remove
this footgun just in case.
rdar://174988238
[NFC][CodeGen] Add MachineBlockHashInfoResult for use in NewPM (#193059)
This patch extracts the hash computation logic into a separate
`MachineBlockHashInfoResult` class. This allows the data to be
managed independently of the legacy pass manager and prepares
the infrastructure for the New Pass Manager.
Preparation for #192911.
Revert "[HLSL][DirectX] Emit convergence control tokens when targeting DirectX" (#193090)
This change appears to introduce complications when trying to do a full
loop unroll that is exhibited here:
https://github.com/llvm/llvm-project/actions/runs/24577221310/job/71865579618.
This results in invalid DXIL as the unreachable branch is not correctly
cleaned up.
Initial leads look like this is because the instructions with
convergence control tokens are still being used for analysis when they
are within an unreachable branch.
Reverts llvm/llvm-project#188792
[lldb][docs] Simplify the links page (#193038)
When we created the links page, we didn't have many so it made sense to
include a little snippet for some of the videos. Now that this has
grown, it makes the page harder to navigate.
[CIR] Allow user-defined casts in emitPointerWithAlignment (#193078)
In CIR, we use a fully-covered switch for casts in
emitPointerWithAlignment and only allow casts that are known to be safe
to fall through without handling. Classic codegen uses a default and all
casts that don't already have special handling fall through. This change
moves CK_UserDefinedConversion to the group that we allow to fall
through and changes the unanalyzed group to emit an NYI diagnostic
rather than calling llvm_unreachable.
[LV][RISCV][NFC] Add explicit LMUL controls via computeFeasibleMaxVF
Add components of maxVF and its support under scalable only
vectorization. This mode disables Fixed vectorization rather
than choosing between Scalable and Fixed. It is disabled currently
as other components need to be ported as well.
[CodeGen] Add MachineBlockHashInfoAnalysis for the new pass manager (#192911)
This patch introduces `MachineBlockHashInfoAnalysis` and its
corresponding
printer pass `MachineBlockHashInfoPrinterPass` to the new pass manager.
This allows running `-passes="print<machine-block-hash>"` via `llc`.
Can't merge before #192826, and don't want to mix test patch with
determinism fix in #192826.
[libc][math] Qualify floor functions to constexpr (#192791)
Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
[SSAF][Analysis] Add PointerFlowReachableAnalysis
PointerFlowReachableAnalysis uses PointerFlow and UnsafeBufferUsage
summaries. It computes reachable nodes in the PointerFlow graph from
unsafe buffer nodes in the UnsafeBufferUsage summary.
rdar://174874942
[NFC][SSAF][EntityPointerLevel] Move EntityID-to-EPL map serialization to the EPL module
Factor out the serialization of `std::map<EntityId, EntityPointerLevelSet>`
to `EntityPointerLevelFormat.h`.
[LV][RISCV][NFC] Add explicit LMUL controls via computeFeasibleMaxVF
Add components of maxVF and its support under scalable only
vectorization. This mode disables Fixed vectorization rather
than choosing between Scalable and Fixed. It is disabled currently
as other components need to be ported as well.
[AMDGPU] Add `.amdgpu.info` section for per-function metadata
AMDGPU object linking requires the linker to propagate resource usage
(registers, stack, LDS) across translation units. To support this, the compiler
must emit per-function metadata and call graph edges in the relocatable object
so the linker can compute whole-program resource requirements.
This PR introduces a `.amdgpu.info` ELF section using a tagged, length-prefixed
binary format: each entry is encoded as:
```
[kind: u8] [len: u8] [payload: <len> bytes]
```
A function scope is opened by an `INFO_FUNC` entry (containing a symbol
reference), followed by per-function attributes (register counts, flags, private
segment size) and relational edges (direct calls, LDS uses, indirect call
signatures). String data such as function type signatures is stored in a
companion `.amdgpu.strtab` section.
[4 lines not shown]
[flang][OpenMP] Get final label from nested constructs (#192517)
Non-block DO loops can share termination statements. When parsing a
non-block DO loop, account for labels on terminating statements from
recursively parsed ExecutionPartConstructs.
Fixes https://github.com/llvm/llvm-project/issues/188892
[SSAF][WPA] Add no-op PointerFlow and UnsafeBufferUsage analysis
We need no-op PointerFlow and UnsafeBufferUsage analyses for the
analysis that depends on their summary data.
Refactored PointerFlow and UnsafeBufferUsage serialization for code
sharing.
rdar://174874942