[Clang] Fix a bug in parameter mapping substitution (#208663)
When building parameter mapping, both substitution and
CheckTemplateArguments were marked as ParameterMappingSubstitution,
while CheckTemplateArguments could also substitute into default
arguments eagerly such that some type constraints were transformed too
early.
It turned out that we don't have to enforce that rebuild in
SubstTypeConstraint, so this reverts that behavior.
Fixes https://github.com/llvm/llvm-project/issues/197597
[lldb] Fix data race when setting a breakpoint in mulitple debuggers. (#208485)
When you have two SBDebugger with a target for the same `a.out` and you
try to add a breakpoint at the same location.
The data race happens in `CompileUnit::GetSupportFiles()` one debugger
sees the there is no support files. it sets the parsed flag and parses
the support file. The other debugger sees the parsed flag is set and
will not set the breakpoint since the support file is still parsing and
and will assume the symbol file does not have support files.
py-tzdata: updated to 2026.3
2026.3
Briefly:
Alberta moved to permanent -06 on 2026-06-18. Morocco moves to permanent +00 on
2026-09-20. More integer overflow bugs have been fixed in zic.
py-discid: updated to 1.4.2
Changes in 1.4.2 (2026-07-10):
* Provide Python wheel on PyPI.
* Removed remaining Python 2 specific code from ``util.py``.
cargo-deny: updated to 0.20.2
0.20.2
Fixed
- fixed snapshot filenames on Windows which caused the release binary publish to fail...again.
0.20.1
Fixed
- fixed snapshot filenames on Windows which caused the release binary publish to fail.
0.20.0
Changed
- refactored the CLI, moving some duplicated options/flags into the root and removing several deprecated options/flags/values. See the PR for a full list of changes.
Added
- resolved 873 by adding a new [`bans.std-replacements`](https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html#the-std-replacements-field-optional) lint which checks the graph for crates.io sourced crates that have been partially or fully replaced in `std` and/or `core`.
Fixed
- resolved 765 by respecting non-default build script paths in manifests.
- resolved 874 by cleaning up the CLI, deduplicating some options/flags that caused bug in the `list` subcommand.
[orc-rt] Rename the "disable logging" level from "none" to "off" (#208697)
Rename ORC_RT_LOG_LEVEL_NONE to ORC_RT_LOG_LEVEL_OFF. The old name
collided with the "none" backend (a different mechanism) and could be
misread as "no filtering" rather than "no output"; "off" avoids both
issues.
[X86][ACE] Add x86_bsr type and Block Scale Register support
This patch adds comprehensive support for the Block Scale Register (BSR),
a 1024-bit architectural register used by ACE (AI Compute Extensions) for
storing scale factors in mixed-precision matrix operations.
- Add x86_bsr as an IR type and update similar to x86_amx
Intrinsics Infrastructure:
- Add x86_bsr intrinsics in IntrinsicsX86.td:
- bsrmovf: Store both halves to hardware BSR
- bsrmovh_set/bsrmovl_set: Store individual halves
- bsrmovh_get/bsrmovl_get: Read individual halves
- bsr_create: Create x86_bsr from two 512-bit vectors
- Conversion intrinsics between x86_bsr and vector types
X86 Backend:
- Add X86LowerBSRType pass to lower x86_bsr SSA values to implicit
hardware register operations (similar to X86LowerAMXType)
[7 lines not shown]
AMDGPU/GlobalISel: Switch RegBankLegalize lowering to extended LLTs
Stop using LLT::scalar for lowering in AMDGPURegBankLegalizeHelper
Affects integer lowering code for RegBankLLTMappingApplyID and
custom cpp for LoweringMethodID.
clang/AMDGPU: Fix double linking opencl libs with --libclc-lib
Noticed by inspection. If using an explicit --libclc-lib flag,
do not attempt to also link the rocm device libs which will contain
different implementations of the same opencl symbols.
Co-Authored-By: Claude <noreply at anthropic.com>
clang/AMDGPU: Merge toolchain subclasses
Simplify the toolchain implementations by collapsing
them into one. Previously we had a confusing split. The
AMDGPUToolChain base class implemented much of the base
support. It was subclassed by ROCMToolChain, which would
have been more accurately described as the offloading subclass.
That was further subclassed into HIP and OpenMP specific subclasses.
Deleting those two is the important part of this change. There was
code duplication, and features arbitrarily handled in one but not
the other. The offload kind is passed in almost everywhere if you
really need to know the original language. However, I consider
this an antifeature, and it is really poor QoI to have the HIP
and OpenMP toolchains behave differently in any way. The platform
should be consistent and the driver behaviors should not depend
on the language.
There is additional mess in the handling of spirv, which this
[9 lines not shown]
clang/AMDGPU: Remove driver restriction on --gpu-max-threads-per-block
Previously this flag was only handled for HIP, and would produce an unused
argument warning. There is a custom warning produced by cc1 that the
argument isn't supported, but practically speaking that was unreachable
due to not forwarding the argument. Also add a test for the untested warning.
Also use a simpler method for forwarding the flag to cc1.
AMDGPU/GlobalISel: Switch legalizer custom lowering to extended LLTs
Stop using LLT::scalar in custom lowering in AMDGPULegalizerInfo.
The exception is S1 since it seems to work fine.
Does not change legalizer actions. In general this is intended as a
mechanical step in amdgpu's switch to extended LLTs, just try to
avoid LLT::scalar in instructions generated after IRtranslator,
since it seems like a step in the right direction. Some tests remove
-global-isel-abort=2 since GIM_SwitchType no longer fails on
LLT::scalar. Exposes a couple of new failures with 16bit bitcast.
[AMDGPU] Extend wave reduction intrinsics to Pre-gfx8 (#208071)
Add support for gfx6/7 families.
These subtargets don't support 64-bit Scalar Compares
or S_MUL_HI_U32. Added workarounds for these where
they come up in the code path.
[orc-rt] Add backend-independent category and level APIs to Logging.h (#208696)
Add orc_rt_log_Category_getName, orc_rt_log_Level_getName, and
orc_rt_log_Level_parse. These are independent of the logging backend and
will be used by the printf backend and by upcoming test tools.
[X86][ACE] Add x86_bsr type and Block Scale Register support
This patch adds comprehensive support for the Block Scale Register (BSR),
a 1024-bit architectural register used by ACE (AI Compute Extensions) for
storing scale factors in mixed-precision matrix operations.
- Add x86_bsr as an IR type and update similar to x86_amx
Intrinsics Infrastructure:
- Add x86_bsr intrinsics in IntrinsicsX86.td:
- bsrmovf: Store both halves to hardware BSR
- bsrmovh_set/bsrmovl_set: Store individual halves
- bsrmovh_get/bsrmovl_get: Read individual halves
- bsr_create: Create x86_bsr from two 512-bit vectors
- Conversion intrinsics between x86_bsr and vector types
X86 Backend:
- Add X86LowerBSRType pass to lower x86_bsr SSA values to implicit
hardware register operations (similar to X86LowerAMXType)
[7 lines not shown]
[OpenMP] Use secure_getenv when read OMPT library path (#208652)
An internal review flagged the use of `getenv` when reading the OMPT
tool library path from the environment and passing it to the loader as a
potential vuln.
This patch replaces the use of getenv in question with the use of
secure_getenv on glibc platforms.
On non glibc platforms, no change is implemented.
AMDGPU/GlobalISel: Switch CallLowering to extended LLTs
Stop using LLT::scalar for argument lowering in AMDGPUCallLowering.
Mostly straightforward, worth noting that some places now require
a bitcast between integer and float.
AMDGPU/GlobalISel: Switch to extended LLTs
IRtranslator now translates bfloat. Switch tablegen to use extendedLLTs.
Around 300 regression tests fail to inst-select because GIM_SwitchType
does not accept LLT::scalar. Around 100 mir inst select tests had input
updated to i32/f32 and select successfully. Then there are 24 various
crashes, mostly combiner or machine-verifier, those tests are disabled.
Most problems come from mixing s32 with i32/f32 and the way operator==
works with extendedLLTs compared to GIM_SwitchType.
In general, for inst-select fixes, I think it would be best to avoid
explicit use of LLT::scalar in lowering to avoid mixing it with
LLT::integer/LLT::float See inst-select-extendedLLTs.mir and
inst-select-extendedLLTs-err.mir.