[clangd] Enforce SymbolKind YAML coverage with -Wswitch (#225945)
Turn the SymbolKind YAML mappings into switch cases so missing mappings
trigger -Wswitch.
Follow-up to #222070.
[RISCV] Combine two consecutive VSLIDEDOWN_VL nodes into one (#225232)
Given this pattern
```
%down0 = RISCVISD::VSLIDEDOWN_VL undef, %val, %offset0, %mask, %vl0
%down1 = RISCVISD::VSLIDEDOWN_VL undef, %down0, %offset1, %mask, %vl1
```
we can turn it into
```
%down1 = RISCVISD::VSLIDEDOWN_VL undef, %val, %offset2, %mask, %vl1
```
where %offset2 is `%offset0 + %offset1`, if `%vl0 >= %offset1 + %vl1`.
[BOLT] Make .debug_names emission reproducible (#225218)
--update-debug-sections does not produce the same binary twice when the
input has a .debug_names section, or is given one with
--create-debug-names-section. Three sections vary from run to run:
.debug_str, .debug_names and .debug_str_offsets. On a two-CU split-DWARF
test binary, ten runs of the same llvm-bolt produced three different
outputs.
PR #197859 made the per-bucket work merge in partition order precisely
so the output would be reproducible, but missed this section. Two
issues:
- .debug_str offsets were handed out from the workers, so main.dwo.dwo
added by the merge step lands in a different place in each run. The
string offsets stored in .debug_names follow from it, and so does
.debug_str_offsets;
- hash colliding names were ordered by insertion (worker) order, also
non-deterministic.
[2 lines not shown]
[CIR] Fix the order of temporary object cleanup (#225560)
We had a problem in CIR where we were performing cleanups in the wrong
order when conditional and unconditional cleanups were needed for
temporary objects created in a single expression. The unconditional
cleanups were being emitted as they occur, while the conditional
cleanups were deferred until the entire expression had been emitted. The
result was that conditional cleanups were performed after unconditional
cleanups, even if the unconditionally destroyed object was created
first.
This change fixes that problem by reorganizing the way conditional
cleanups are handled. A cir.cleanup.scope operation is now created
eagerly where a conditional begins rather than at the start of the full
expression, so that it nests inside the cleanup scopes of temporaries
created before the conditional and outside those created after it. Scope
nesting determines the order in which the cleanup regions run, so this
yields reverse-of-construction order. A ConditionalCleanupScope object
tracks the scope and the conditional cleanups waiting to be emitted into
[3 lines not shown]
[flang][cuda] Lower device is active as an operation (#225583)
Instead of lowering straight to a functin call, go through an op so it
can be lowered differently between device and host.
[GlobalOpt] Fix constructor folding on global with explicit section. (#220729)
Make sure we don't try to emit a non-zero value into BSS, or anything
similar to that.
jail: set default root directory for a jail to its parent's root.
All default jail parameter values are an empty or otherwise standard
value, or are copied the jail's parent. A notable exception is the
root directory, which is instead copied from the creating process's
jail. Fix that to be in line with everything else.
This change affects only the default when no path is specified; if
a path of "/" is explicitly given, that will still be the creating
process's root directory.
jail: set default root directory for a jail to its parent's root.
All default jail parameter values are an empty or otherwise standard
value, or are copied the jail's parent. A notable exception is the
root directory, which is instead copied from the creating process's
jail. Fix that to be in line with everything else.
This change affects only the default when no path is specified; if
a path of "/" is explicitly given, that will still be the creating
process's root directory.
[HLSLSemanticSignatures] Implement the optimal packing of elements (#218064)
Implements the optimal packing algorithm by sorting the elements in an
optimal order before sorting with prefix packing. This also adds an
explicit packing stage for the clip/cull signature elements that allows
them to be packed with other compatible semantic types.
Resolves: #205874.
Assisted by: Claude Opus 5 and GPT-5.6 Sol
[SystemZ][z/OS] Fix compile errors cused by sys::fs::file_t (#225539)
Follow-up to #224859: some calls/prototypes are guarded on z/OS, and
also need to be updated. This change fixes various compile errors.
[Bazel] Add ComplexDialect dependency to FortranLower (#225973)
Fixes FortranLower bazel error introduced in commit 45bc3fbacaed, where
ConvertVariable.cpp includes mlir/Dialect/Complex/IR/Complex.h.
[AMDGPU] Exclude GFX11.7 from GFX11 VOPD interlock hazard fix
Narrowed the scope of #220348 from all of GFX11. Also, this Hazard
is now defined as a feature in AMDGPU.td.
[flang][FIR] Make global section an inherent attribute
Preserve the section when lowering fir.global to an LLVM global.
Set the CUDA managed-pointer section through the generated property setter.
Test inherent property storage and FIR-to-LLVM conversion.
Assisted-by: Codex