[llvm][RISCV] Use zilsd for callee-saved register spill/restore on RV32 (#184794)
When the Zilsd extension is enabled on RV32, use SD_RV32/LD_RV32
instructions to spill and restore pairs of callee-saved GPRs instead of
saving 2 separate 32 bit data.
Note that we need to ensure stack slot to be aligned.
[AMDGPU] Add structural stall heuristic to scheduling strategies
Implements a structural stall heuristic that considers both resource
hazards and latency constraints when selecting instructions. In coexec,
this changes the pending queue from a binary “not ready to issue”
distinction into part of a unified candidate comparison. Pending
instructions still identify structural stalls in the current cycle, but
they are now evaluated directly against available instructions by stall
cost, making the heuristics both more intuitive and more expressive.
- Add getStructuralStallCycles() to GCNSchedStrategy that computes the
number of cycles an instruction must wait due to:
- Resource conflicts on unbuffered resources (from the SchedModel)
- Sequence-dependent hazards (from GCNHazardRecognizer)
- Add getHazardWaitStates() to GCNHazardRecognizer that returns the number
of wait states until all hazards for an instruction are resolved,
providing cycle-accurate hazard information for scheduling heuristics.
[InferAS][NFC] Improve documentation for getAddrSpaceCastPreservedPtrMask (#185239)
Clarify the description of the preserved pointer bit mask and its
purpose in address space inference. Reformat the example for better
readability.
Co-authored-by: Yuanke Luo <ykluo at birentech.com>
[DA] Fix test case for the Weak Zero SIV tests (NFC) (#185555)
The IR does not match the pseudo code. The pseudo code is intentional,
so update the IR accordingly.
www/py-a2wsgi: New port
Convert WSGI app to ASGI app or ASGI app to WSGI app.
Pure Python. Only depend on the standard library.
Compared with other converters, the advantage is that a2wsgi
will not accumulate the requested content or response content
in the memory, so you don't have to worry about the memory
limit caused by a2wsgi. This problem exists in converters
implemented by uvicorn/startlette or hypercorn.
[clang] Adjust -pedantic-errors -WX/-Wno-error=X interaction (#184756)
While -Wno-long-long suppresses -pedantic-errors diagnostics in both GCC
and Clang, GCC -Wno-error=long-long emits warnings while Clang still
emits errors.
```
% echo 'long long x = 0;' | gcc -std=c89 -pedantic-errors -Wno-error=long-long -x c -fsyntax-only -
<stdin>:1:6: warning: ISO C90 does not support 'long long' [-Wlong-long]
% echo 'long long x = 0;' | clang -std=c89 -pedantic-errors -Wno-error=long-long -x c -fsyntax-only -
<stdin>:1:1: error: 'long long' is an extension when C99 mode is not enabled [-Werror,-Wlong-long]
1 | long long x = 0;
| ^
1 error generated.
```
The order of -pedantic-errors and -Wno-error=long-long does not matter.
Two fixes to how extension diagnostics interact with -pedantic-errors
[20 lines not shown]
www/py-baize: New port
Powerful and exquisite WSGI/ASGI framework/toolkit. Only relies on the
standard library.
The minimize implementation of methods required in the Web framework.
No redundant implementation means that you can freely customize functions
without considering the conflict with baize's own implementation.
[HLSL] Add support for groupshared args (#181886)
Add support for groupshared args to HLSL.
Some support for template errors and warnings still needs to be added in
a follow up (tracked by #182535)
Closes #174472
[libunwind][PAC] Defang ptrauth's PC in valid CFI range abort
It turns out making the CFI check a release mode abort causes many,
if not the majority, of JITs to fail during unwinding as they do not
set up CFI sections for their generated code. As a result any JITs
that do nominally support unwinding (and catching) through their JIT
or assembly frames trip this abort.
rdar://170862047
A bit of MMU handling cleanup:
- BI_MMU_APOLLO does, in fact, mean the Apollo MMU for 68020 used on the
DN3000 and DN4000 machines.
- If we end up with an unknown MMU value, try to reconcile with machine
type and CPU type.
Mk/Uses: Remove certs.mk
It was a useful shorthand for the security/ca_root_nss dependency.
However, several people disagreed.
Can anybody explain why libedit.mk is there? It is also a one string
substitution. Same with libarchive.mk.
[Clang] Track alloca element types to avoid getAllocatedType() calls (#181740)
Store alloca element types alongside alloca pointers in Clang's CodeGen,
eliminating the need to query getAllocatedType() later.
Changes:
- CodeGenFunction.h: Modified DominatingLLVMValue::saved_type to track
type Uses Type==nullptr as sentinel for "not saved" instead of separate
bool. Fixes a bug where it previously tried to use the addrspacecasted
value constructor and later cast it to an alloca.
- CGHLSLRuntime.cpp: Changed OutputSemantic map to store (Value*, Type*)
pairs to trivially remove getAllocatedType calls.
Co-authored-by: Claude Sonnet 4.5 <noreply at anthropic.com>
Move virt68k's bootinfo code to a generic m68k location with names
linux_bootinfo.[ch] (since that's what this data is compatible with).
Facilitates use by other m68k platforms in the future.
Also, don't bother installing the header file; nothing in userland needs it.
mk: drop old, now unused version of DTB generation
This was replaced by bsd.dtb.mk back in 2020.
Build-tested on evbarm-aarch64, evbarm-earmv7hf, riscv-riscv64, amd64,
and sparc64.