[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical
When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.
Fixes #176553.
[NFC][clang-tidy] Update documentation for StatusOr check. (#176498)
Specifically:
1. Avoid the "or" suffix for variable names per
[abseil.io/tips/181](https://abseil.io/tips/181)
2. Replace DCHECK with CHECK which works in non-debug mode
3. Suggest init-capture in workaround for lambda captures
4. Reduce one line length to satisfy `doc8`
[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical
When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.
Fixes #176553.
[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical
When a conditional branch has both successors pointing to the same block (e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize` generates duplicate `Delete` updates for the same CFG edge. This can cause assertion in `fix-irreducible` pass.
Fixes #176553.
workflows/release-binaries: Run this job once a week to catch regressions (#176008)
This will increase the chances that we can have this job working for the
first release candidate.
[RFC][Clang][AMDGPU] Emit only delta target-features to reduce IR bloat
Currently, AMDGPU functions have `target-features` attribute populated with all default features for the target GPU. This is redundant because the backend can derive these defaults from the `target-cpu` attribute via `AMDGPUTargetMachine::getFeatureString()`.
In this PR, for AMDGPU targets only:
- Functions without explicit target attributes no longer emit `target-features`
- Functions with `__attribute__((target(...)))` or `-target-feature` emit only features that differ from the target's defaults (delta)
The backend already handles missing `target-features` correctly by falling back to the TargetMachine's defaults.
A new cc1 flag `-famdgpu-emit-full-target-features` is added to emit full features when needed.
Example:
Before:
```llvm
attributes #0 = { "target-cpu"="gfx90a" "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,..." }
[13 lines not shown]
workflows/release-binaries: Fix attestation artifact name (#176417)
We were contructing the attestation artifact name using the arch and the
OS of the current runner instead of using the runner that the builds
were done on. This led to a conflict in artifact names between all the
release binary jobs.
[RFC][Clang][AMDGPU] Emit only delta target-features to reduce IR bloat
Currently, AMDGPU functions have `target-features` attribute populated with all default features for the target GPU. This is redundant because the backend can derive these defaults from the `target-cpu` attribute via `AMDGPUTargetMachine::getFeatureString()`.
In this PR, for AMDGPU targets only:
- Functions without explicit target attributes no longer emit `target-features`
- Functions with `__attribute__((target(...)))` or `-target-feature` emit only features that differ from the target's defaults (delta)
The backend already handles missing `target-features` correctly by falling back to the TargetMachine's defaults.
A new cc1 flag `-famdgpu-emit-full-target-features` is added to emit full features when needed.
Example:
Before:
```llvm
attributes #0 = { "target-cpu"="gfx90a" "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,..." }
[13 lines not shown]
[libc] Remove ballot on slab find (#176606)
Summary:
This negatively impacts performance, while the other changes in the
initial PR slightly improved it. This was originally done to make Volta
independent thread scheduling work, but that doesn't seem to work
correctly all the time either so we should make this faster.
[Clang][AMDGPU] Handle `wavefrontsize32` and `wavefrontsize64` features more robustly
We should also not allow `-wavefrontsize32` and `-wavefrontsize64` to be specified at the same time.
[mlir][vscode] Add angle bracket support to MLIR language configuration (#176602)
Add angle brackets (<>) to brackets, autoClosingPairs, and
surroundingPairs for better editing of types like tensor<3xf32>. Also
add colorizedBracketPairs for visual distinction between nested bracket
types.
[mlir][vscode] Fix PDLL grammar character class regex (#176601)
The character class [aA-zZ_0-9] incorrectly matches characters between
ASCII 90-97 (Z-a range), which includes: [ \ ] ^ _ `. This should be
[a-zA-Z_0-9] for proper identifier matching.
[Clang][AMDGPU] Handle `wavefrontsize32` and `wavefrontsize64` features more robustly
We should also not allow `-wavefrontsize32` and `-wavefrontsize64` to be specified at the same time.
[WebAssembly] Mark extract.last.active as having invalid cost.
Currently the WebAssembly backend crashes when trying to lower some
extract.last.active intrinsic calls. Mark their cost as invalid
temporarily, to avoid them being introduced by the loop
vectorizer after 2abd6d6d7ac (#158088).
[CI] Disable precompiled headers in pre-commit CI (#176563)
Spliced out from #176420 to make sure that CI is fine without PCH, which
are currently used by Flang.
[Offload][CI] Convert openmp-offload-amdgpu staging bots to ScriptedBuilder (#174991)
Convert the first AMDGPU buildbots to use the ScriptedBuilder introduced
llvm-zorg. For the motivation, see
https://github.com/llvm/llvm-zorg/pull/648.
Since the production buildbot still needs to be restarted for
ScriptedBuilder to work, only convert the builders that are currently in
staging for now. These are:
* openmp-offload-amdgpu-runtime
* openmp-offload-amdgpu-clang-flang
Both of them happen to be OpenMPBuilder.getOpenMPCMakeBuildFactory-based
builders before this change. They also set an environment variable that
the previous ScriptedBuilder did not, so we are adding support.
The corresponding llvm-zorg change is
https://github.com/llvm/llvm-zorg/pull/697.
[clang][analyzer] Add ReportInC99AndEarlier option to DeprecatedOrUnsafeBuf… (#168704)
…ferHandling checker
The checker may report warnings for deprecated buffer handling functions
(memcpy, memset, memmove, etc.) even when not compiling with C11
standard if the new option "ReportInC99AndEarlier" is set to true.
These functions are deprecated in C11, but may still be problematic in
earlier C standards.
[X86][NewPM] Cleanup some minor issues in recently ported passes
* Ensure passes implemented as single functions are marked as static to
enforce internal linkage.
* Avoid the use of temporary variables to hold pass output status that
only have one user/do not change any ordering guarantees.