[LoongArch] Type legalize v2f32 loads by using an f64 load and a scalar_to_vector.
On 64-bit targets the generic legalize will use an i64 load and a
scalar_to_vector for us. But on 32-bit targets i64 isn't legal and the
generic legalizer will end up emitting two 32-bit loads.
[compiler-rt][WebAssembly] Use an int as CMP_RESULT (#194093)
LLVM uses an i32 as the default for `getCmpLibcallReturnType`, but
compiler-rt uses a word-sized integer by default. On most physical
hardware this happens to work because `i32` is largely ABI-compatible
with a word. On wasm64, however, they are not compatible so this causes
problems.
Resolve this by using `int` as the comparison result in compiler-rt.
Closes: https://github.com/llvm/llvm-project/issues/75302
Closes: https://github.com/llvm/llvm-project/issues/192416
[lldb] Handle partial memory region coverage in IRMemoryMap::FindSpace (#194001)
FindSpace walks process memory regions to find addresses that won't
collide with the inferior's real memory. This is necessary even for
host-only allocations because the IR Interpreter works entirely in
inferior virtual addresses. IRMemoryMap remaps those addresses to read
from host memory instead of inferior memory, so overlapping ranges would
silently read the wrong data.
For WebAssembly, GetMemoryRegionInfo succeeds for the first region
(linear memory) but fails for addresses beyond it. The previous fix
(#193124) skipped the memory region walk entirely when `CanJIT()` is
false. However, as Jason points out, that removes the
collision-avoidance mechanism and risks overlapping with real inferior
memory.
Instead, handle the GetMemoryRegionInfo failure gracefully. If the
target can't describe memory beyond a certain point, treat the remaining
address space as unmapped and use it for the allocation. This preserves
the collision avoidance while avoiding the lldbassert.
[RISCV][P-ext] Remove dead code from LowerOperation handling of ISD::STORE. NFC (#194088)
We rely on default type legaliation of v2i16 and v4i8 stores for RV64P.
graphics/libplacebo: unbreak GLSLANG build after 1697360b7726
src/glsl/meson.build:52:16: ERROR: C++ static library 'SPIRV' not found
PR: 294727
Reported by: Ivan Rozhuk
(cherry picked from commit 3e04376300805a264a0533d3557e6c7bb2855600)
graphics/libplacebo: unbreak GLSLANG build after 1697360b7726
src/glsl/meson.build:52:16: ERROR: C++ static library 'SPIRV' not found
PR: 294727
Reported by: Ivan Rozhuk
[DirectX] Emit `dx.precise` metadata when fast math is not present (#192526)
This patch introduces the ability for DXILOpBuilder to annotate
instructions with `dx.precise` whenever fast math flags are not present.
Fix: https://github.com/llvm/llvm-project/issues/149127