[AMDGPU] Fix checkVALUHazardsHelper distance accounting on branchy CFG (#203770)
#197267's `checkVALUHazardsHelper` rewrite walked predecessors with an
always-false predicate and accumulated wait-state distance in a single
counter shared across recursively visited blocks. On branchy control
flow that counter sums sibling-path distances, so window - distance goes
negative and the protective S_NOP is dropped.
This fix restores independent per-window `getWaitStatesSince` scans,
which return the minimum distance to a matching producer across
predecessor paths.
It also splits the pre-gfx940 and gfx940-family paths for readability
while preserving #197267's sgpr-soffset window rules.
Co-authored-by: Larry Meadows <Lawrence.Meadows at amd.com>
---------
Co-authored-by: Larry Meadows <Lawrence.Meadows at amd.com>
[llvm] Fix APFloat::exp for 32-bit x86 when dealing with signaling NaNs. (#204274)
Currently APFloat::exp uses convertToFloat and convertToDouble which
might silence sNaN on 32-bit x86. Add `APFloat::isSignaling` check explicitly.
[Flang] Add mock flang driver (#203481)
Add a mock driver to pass CMake's compiler introspection for
CMake_Fortran_COMPILER. It's purpose is to not having to build the full
flang compiler for the runtimes-configure phase in
bootstrapping-runtimes builds, but only when the Fortran compiler is
actually needed (e.g. flang-rt-mod, libomp-mod).
To detect LLVMFlang, CMake executes
```
${CMAKE_Fortran_COMPILER} -v -c -target=... CMakeFortranCompilerId.F
```
and expects a new file to appear in the working directory. This would
usually be an object file (e.g. ELF), but it doesn't matter for CMake as
it parses it for the preprocessor result of CMakeFortranCompilerId.F
which would appear as string literals in the binary file (CMake cannot
execute the file because it might be cross-compiling). Just passing it
through the preprocessor yields the same result. The most relevant
preprocessor definition is __flang__ which leads to
[44 lines not shown]
[libc] Clean up sysconf implementation and tests (#204130)
Refactored sysconf.cpp to use a switch-case block instead of an if-else
chain. Delegated the logic for existing options to helper functions
(get_page_size, get_nprocessors_conf, get_nprocessors_onln) in an
anonymous namespace to reduce cognitive complexity.
Updated file headers in sysconf.cpp and sysconf_test.cpp to the standard
three-section format.
Fix RLIM_INFINITY to work on both 32- and 64-bit systems.
Modernized suffix literals in sysconf_test.cpp.
Assisted-by: Automated tooling, human reviewed.
[OpenMP] Limit HSA core dumps for OpenMP test suite (#204352)
Summary:
These will print extra information, which makes it difficult to match on
the `libomptarget` output in exceptional cases like in the sanitizer
checks.
NAS-141273 / 27.0.0-BETA.1 / Remove shared pydantic `Field()` from API type aliases (by themylogin) (#19130)
## Problem
Several API fields that are declared *required* are silently treated as
**optional with a bogus default** at runtime. For example, on the
current API
(v25_10_4):
VMRAWDevice.path = '127.0.0.1' # required path field, no default
declared
`VMRAWDevice.path` is `path: NonEmptyString = Field(pattern=...)` — it
should be
required, but it inherits `'127.0.0.1'` (leaked from
`VMDisplayDevice.bind`).
So `vm.device.create` for a RAW device with no `path` passes validation
and
silently uses `'127.0.0.1'` as the file path instead of being rejected.
[70 lines not shown]