[HLSL] Move cross implementation to header files (#211446)
This patch removes the previous implementation of cross; instead, it
adds a new one inside the header files.
Fix: https://github.com/llvm/llvm-project/issues/135425
Assisted by: Claude Opus 4.8
---------
Co-authored-by: Joao Saffran <jderezende at microsoft.com>
RuntimeLibcalls: Emit all available impls for a libcall, not just one (#210915)
The intent is RuntimeLibcalls should represent all functions that are
callable from the module, which may have contextually selectable
alternatives. Previously we had this warning since there was no mechanism
to select which one you want, and as a workaround the library call sets avoided
adding the variants which should nto be selected.
Now targets can use initLibcallLoweringInfo, so remove the warning to
unblock more libcall cleanups. Eventually initLibcallLoweringInfo should also
be tablegen driven.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[clang][DependencyScanning] Adding a Multiarch clang-scan-deps Test (#211404)
This test adds coverage of multiarch scanning command macro
canonicalization.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
[clang][DependencyScanning] Adding a test that exercies the async-scanning code path (#211402)
This PR adds a test that exercises the async-scanning code path to
sanity check that async-scanning generates identical results as TU
scanning.
---
<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>
[lldb] Add support for Wasm globals (#212516)
WebAssembly globals are not addressable: they live in an index space of
their own and hold values (rather than bytes) in the module, or need to
be read from the runtime.
Give them a synthetic address space in which an address holds the global
index where it would otherwise hold an offset, and a section spanning
that index space so a global becomes a symbol. With a process, a read of
such an address asks the engine over qWasmGlobal. Without one, the
object file serves the initializer, which is all that is known before
the module is instantiated.
The section is based in a range of its own rather than at zero. Code and
linear memory are both addressed from zero, so a global index would
otherwise name a code or data address as well.
The import section now parses each import descriptor by kind, because
the global index space includes imported globals and finding the next
import means knowing the shape of the current one.
[scudo] Fix all deadlocks with condition code variables. (#212604)
Added a ScopedFLLock that automatically handles notify calls if there
are waiters. Replace all ScopedLock of FLLock with this new
ScopedFLLock. Updated the enable function to properly notify FLLock
waiters if necessary.
Added a new function for re-enabling in the child process after a fork
to clear the variables used by the condition code.
ARM: Mark more generic libgcc functions as available
Generic libgcc/compiler-rt functions coexist with aeabi variants
(e.g., __divsi3 and __aeabi_idiv) according to my reading of the
build. At least in compiler-rt, they are aliases (such that I'm not sure
what the point of ever emitting the __aeabi name is).
They were previously removed from the available set on AEABI+AAPCS targets
to force selection of the preferred __aeabi_* variants, back when
only one implementation per libcall could be recorded.
Now that multiple implementations can be available per libcall, stop hiding
the generics and select the __aeabi_* variant explicitly as the preferred
implemntation. This reduces the number of special cases to consider for
future libcalls info improvements.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Hexagon: Stop excluding some generic compiler-rt functions from libcalls
RuntimeLibcalls should indicate any function that exists and is callable.
Historically the list of library functions was conflated with the library
functions which should be used, so the library definition was complicated
by excluding the overridden cases. My reading of the compiler-rt sources is
that the generically named functions are built alongside the __hexagon
prefixed variants. e.g., __divsi3 and __hexagon_divsi3 both exist.
It will simplify future libcall work the fewer special case target exclusions
there are, so allow the functions to be defined and apply the selection
preference for the __hexagon prefixed versions in LibcallLoweringInfo.
I do question why compiler-rt is built this way; why doesn't the hexagon
just replace the standard entrypoint names with the target implementations?
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
MSP430: Mark more generic libgcc functions as available (#210962)
The generic soft-float, conversion, comparison and integer helper
routines (__addsf3, __divli's __divsi3, __ashlsi3, ...) exist in the MSP430
libgcc port alongside the preferred __mspabi_* variants. They were previously
removed to force selection of the __mspabi_* names, back when only one
implementation per libcall could be recorded.
Stop hiding them: only __lshrsi3 stays excluded, since the MSP430 libgcc
port provides the 32-bit logical right shift solely under __mspabi_srll and
never defines a generic __lshrsi3.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
RuntimeLibcalls: Emit all available impls for a libcall, not just one
The intent is RuntimeLibcalls should represent all functions that are
callable from the module, which may have contextually selectable alternatives.
Previously we had this warning since there was no mechanism to select which
one you want, and as a workaround the library call sets avoided adding the
variants which should nto be selected.
Now targets can use initLibcallLoweringInfo, so remove the warning to unblock
more libcall cleanups. Eventually initLibcallLoweringInfo should also be tablegen
driven.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>