[llvm] [WIP][SPARC] Allow overaligned `alloca`s (PR #107223)
Rainer Orth via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 13 10:25:12 PDT 2024
rorth wrote:
Most patches should be in place now. On Solaris/sparcv9, there are only two failures left:
```
AddressSanitizer-sparc-sunos :: TestCases/alloca_big_alignment.cpp
Assertion failed: !(reinterpret_cast<uintptr_t>(str) & 127L), file compiler-rt/test/asan/TestCases/alloca_big_alignment.cpp, line 10
AddressSanitizer-sparc-sunos :: TestCases/alloca_vla_interact.cpp
Assertion failed: q == top, file compiler-rt/test/asan/TestCases/alloca_vla_interact.cpp, line 45
```
The necessary patches are PRs #107405, #108206, #108200, and #108542.
There's one patch left that's in final testing: tests like `AddressSanitizer-sparc-sunos :: TestCases/Posix/stack-overflow.cpp` that involve stack overflows currently incur a second `SEGV` when trying to read the frame pointer from the (now invalid) stack. The patch to avoid that is working on Solaris. It requires a V9 insn which can only be used with `-mcpu=v9` on Linux/sparc64. That isn't the default however, and a [patch to enable it](https://reviews.llvm.org/D130688) has been stalled for 2 years now. I'm currently trying to finish it.
There are several more failures on Linux/sparc64, some of which involve (lack of) `printf` interception as reported in Issue #108392, while a few others require further analysis.
https://github.com/llvm/llvm-project/pull/107223
More information about the llvm-commits
mailing list