release-tasks: Disable lit publishing for release candidates
There is no rc in the lit version string, so release candiates
get published using the non-rc version number.
AMDGPU: Only disassemble .amdhsa_reserve_xnack_mask on xnack targets
The disassembler unconditionally printed .amdhsa_reserve_xnack_mask when
emitting a kernel descriptor. Targets that do not support xnack have no
xnack mask to reserve, and the assembler streamer already only emits the
directive when the subtarget supports xnack. Match that behavior in the
disassembler so the round-trip is consistent and gfx11/gfx12 descriptors
no longer carry a spurious directive.
As a guard against a malformed binary, if the object's ELF e_flags
erroneously select xnack "on" for a target that does not support xnack,
still print the directive so the invalid state remains visible in the
disassembly rather than being silently dropped.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
AMDGPU: Remove xnack and sramecc subtarget features
Now that these are controlled by module flags, the subtarget
features were just used for assembler and disassembler controls.
Now that the assembler and disassembler can infer these from
the e_flags and target directives, they are no longer necessary.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
clang/AMDGPU: Mark more capability target features read-only (#214954)
Really all amdgpu subtarget features should be read-only, except
for a handful of legitimately configurable modes which should be moved
out of subtarget features. Add a few special cases here which will help
unblock progressing towards using the new generated feature bitset.
[clang-tidy] Fix a crash in bugprone-std-namespace-modification (#214704)
Check the namespaces of template argument types directly from their
declarations. This avoids querying the AST parent map (since it may not
contain lambda closure types) and fixes the crash.
Fixes #213981
clang/AMDGPU: Mark more capability target features read-only
Really all amdgpu subtarget features should be read-only, except
for a handful of legitimately configurable modes which should be moved
out of subtarget features. Add a few special cases here which will help
unblock progressing towards using the new generated feature bitset.
RuntimeLibcalls: Only provide fp128 long double libcalls when long double is fp128
The l-suffixed long double math functions (e.g, acosl, sqrtl, ...) are fp128 only
when the target's long double is fp128. The default set provided them on every
target that was not x87 or ppc_fp128, so targets using double as long
double wrongly reported the fp128 l-suffixed functions.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[lldb] Remove duplicate declarations after merge (#214949)
I'm not sure why Git decided to add two duplicate declarations when
merging #212015, but this removes the duplicate ones.
[lldb] Allow multiple ABI runtimes for C++ (#212015)
This allows `CPPLanguageRuntime` to contain more than one ABI runtime.
For dynamic types, we ask each runtime if it knows how to deal with a
vtable symbol. For exception breakpoints, we will create all
breakpoints. Note that the MS ABI will only be added on Windows targets.
So the MS ABI will not be added to `m_abi_runtimes` on other targets.
[clang][CIR][docs] Fix invalid MyST toctree 'numbered' option (#213898)
Similar to #207217
The RST-to-Markdown migration (#206181) converted the RST flag
`:numbered:` into `:numbered: true`.
MyST parses the toctree `numbered` option as `int_or_nothing`, so the
string `true` fails with:
```
'toctree': Invalid option value for 'numbered': true:
invalid literal for int() with base 10: 'true'
```
This breaks the `-W` (warnings-as-errors) `docs-clang-html` build. Make
`numbered` a valueless flag, which MyST accepts (equivalent to the
original RST behavior of numbering all levels).
[lldb] Move dynamic type cache to common ABI runtime (#212014)
Both the Itanium and the MS ABI want some cache for dynamic types. This
moves the functionality from the Itanium ABI to the base class.
[IR] Set Number of Hungoff Uses after allocation (#213304)
If allocation of the Use[] in allocHungoffUses fails (e.g. due to OOM),
it may happen that the destructor of User is called with NumUserOperands
> 0. Then `Use::zap` tries to destruct Uses that were not constructed in
the first place.
Example scenario for SwitchInst:
`SwitchInst::init()` is called, which means the constructor of the
parent class User went through successfully, which means the destructor
of User will be called eventually. If now `SwitchInst::init()` calls
first `setNumHungOffUseOperands(2)` and then `allocHungoffUses()` and
the allocation there fails, `~User()` is called and tries to destruct 2
Uses, which can lead to problems.
This patch consequently ensures that first the allocation happens and
then NumUserOperands is set accordingly, so that this problem is
prevented.
[CostModel][X86] Update logic vector reduction costs to match llvm-mca estimates (#214191)
Replaces the olds costs which were just instruction counts
Still working on the bool reduction costs - these will be handled in a followup
[NVPTX] Add Rubin extensions to tcgen05.commit (#211577)
The Rubin architecture extends `tcgen05.commit` operations with two
additional features: support for 32-bit CTA multicast masks and the
ability to track completion of Matrix A reads from shared memory for all
prior `tcgen05.mma` operations.
This change adds support for these features to the `tcgen05.commit`
intrinsics. In addition, it also replaces generic/shared variants with
overloaded intrinsics.