[LLE][LoopDistribution][LoopVersioning] Form LCSSA at Caller Invoking LoopVersioning Utility (#202296)
LoopVersioning utility `versionLoop()` expects the input form to be
LCSSA. However, passes like Loop distribution, Loop-load-elimination,
may invoke versioning with a non-LCSSA IR. Versioning updates exit-block
PHIs to handle both the original loop and the cloned loop. However, a
raw non-LCSSA use in the exit block (such as `switch i1 %C`) still
points to the original loop’s `%C`. On the cloned-loop path, control
reaches the exit block without executing the original `%C`, resulting in
error: `Instruction does not dominate all uses!`.
The fix is to form LCSSA at the caller pass.
[NFC][SPIRV] Use `StringRef` by value (no `const`, no `&`) (#207940)
A `StringRef` is non-modifiable and it acts as a reference, so there is
no need to declare it as `const` nor `&`.
---------
Co-authored-by: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Pull up the following revisions(s) (requested by riastradh in ticket #2035):
lib/libc/citrus/modules/citrus_viqr.c: revision 1.10
lib/libc/citrus/modules/citrus_iconv_std.c: revision 1.18
iconv(3): Fix use-after-free in VIQR encoding, and incorrect
mbstate_t allocation alignment in various encodings (triggerable
if the source is VIQR).
Fixes:
- PR lib/59019: various iconv issues
- PR lib/60413: iconv_samples test crashes on sparc*
[lldb][Linux] Show si_addr for SIGBUS signals (#207718)
The general rule is if si_addr is the same as the PC, we don't show it
because it doesn't add any new information.
SIGBUS signals are caused by an instruction trying to do something, but
si_addr is not the address of the instruction. It's some virtual
address, which is the important bit so add it to the description.
https://man7.org/linux/man-pages/man7/signal.7.html
> SIGBUS <...> Bus error (bad memory access)
Before:
```
* thread #1, name = 'test.o', stop reason = signal SIGBUS: illegal address
* frame #0: 0x0000aaaaaaaa0b80 test.o`main at test.c:42:13
```
After:
```
[7 lines not shown]
Pull up the following revisions(s) (requested by riastradh in ticket #1308):
lib/libc/citrus/modules/citrus_viqr.c: revision 1.10
lib/libc/citrus/modules/citrus_iconv_std.c: revision 1.18
iconv(3): Fix use-after-free in VIQR encoding, and incorrect
mbstate_t allocation alignment in various encodings (triggerable
if the source is VIQR).
Fixes:
- PR lib/59019: various iconv issues
- PR lib/60413: iconv_samples test crashes on sparc*
www/jmeter: catch up with batik ugprade
Don't extract licenses of the 3rd-party dependencies. Bump PORTREVISION.
PR: 296572
Reported by: mi (maintaineer)
[libc] Add auxiliary vector and note macros to elf.h (#207914)
Added missing macros to elf.h:
* sys-auxv-macros.h: Added AT_RSEQ_FEATURE_SIZE and AT_RSEQ_ALIGN.
* elf.yaml: Added PT_AARCH64_MEMTAG_MTE, PN_XNUM, ELFCLASSNUM, EV_NUM,
and AT_* macros (via sys-auxv-macros.h). Also added NN_* and NT_* note
macros (including NT_FPREGSET and NT_SIGINFO) to match system headers.
* CMakeLists.txt: Added sys_auxv_macros dependency to elf target.
Assisted-by: Automated tooling, human reviewed.
[RISCV] Fix interleaved + strided costs for e64 elements on rv32 (#207927)
This is the same fix as #176105 for interleaved + strided memory op
costs.
We currently compute the cost of interleaved + strided ops as N *
scalar element memory ops, but on rv32 the scalar memory access will
be on an illegal type for 64 bit elements, even with zve64x. Prevent
it from overcosting by just using TCC_Basic.
Update widelands to 1.3.1
From Paul Ripke in pkgsrc-wip + ctype() patch.
Sole consumer of asio. rm:-Wold-style-cast still needed after its update.
Highlights in release 1.3.1
This point release fixes a severe multiplayer desync found in Widelands 1.3.
Note that it is not possible to combine the versions 1.3 and 1.3.1 in a
network game.
Highlights in release 1.3
Since the release of version 1.2, we implemented several hundreds of new
features and bugfixes; for example, to name just a few of the highlights:
- Market trading
[10 lines not shown]
[NFC][SPIRV] Correct misuses of `StringRef`
A `StringRef` is non-modifiable and it acts as a reference, so there is
no need to declare it as `const` or `&`.