<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/57626>57626</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            SPARC lacks support for over-aligned dynamic alloca
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          rorth
      </td>
    </tr>
</table>

<pre>
    The SPARC backend lacks support for over-aligned dynamic alloca.  So far, I've encountered the issue in the testsuite ([D133493](https://reviews.llvm.org/D133493):
```
FAILED: MultiSource/UnitTests/C++11/frame_layout/CMakeFiles/frame_layout.dir/frame_layout.cpp.o
[...]
fatal error: error in backend: Function "_Z10test_frameILj4096ELb1ELj2048ELb0ELb0EJEEvDpT4_jPKcP13trace_elementd": over-aligned dynamic alloca not supported.
void test_frame<4096u, true, 2048u, false, false>(, unsigned int, char const*, trace_element*, double)
```
Additionally, it breaks asan support with several instances of the same issue:
```
      4 fatal error: error in backend: Function "_Z21MemSetOOBTestTemplateIcEvj": over-aligned dynamic alloca not supported.
      3 fatal error: error in backend: Function "_Z21StrLenOOBTestTemplatePcjN12_GLOBAL__N_17OOBKindE": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_Z24asan_write_sized_alignedPhj": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN48AddressSanitizerInternalInterface_SetShadow_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN52AddressSanitizer_HasFeatureAddressSanitizerTest_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN56AddressSanitizerInterface_GetEstimatedAllocatedSize_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN7testing8internal16BoolFromGTestEnvEPKcb": over-aligned dynamic alloca not supported.
      3 fatal error: error in backend: Function "main": over-aligned dynamic alloca not supported.
```
which caused be to disable asan completely.

This puts `clang` at a considerable advantage to `gcc` which handles both just fine.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVkuP2zgM_jXORajhVxz74EMy48xmm3mgmV56MWSJjpUqUiDJCWZ__VJOprMbdBfoFGgDRxIlmvxE0iRbzV-q5x7I5mn-6Ya0lH0FxYnE2RI7HA7aONJpQ_QRzAcqxVYBJ_xF0b1ghEqpGQ0J2WjSURMkN2QVJLMjEFBMD8qBQW6H4oW1A45qJBxYZwfhgARJEUwXt3GaZmUaTG-R7p072CCdB8kSHwNHAScbSnnch9psceuVOyk9V3QbRPMgjy7PSC7nq3V9i6fkfpBObPRgGOCbn5Vwz143rm-CZIFPHOO6M3QPjaQvenD-6J5-haWQYK_OQi7M9RY7HEJ9QTFdhGHobzGSHXVUEjBGGw9lXHgLXGzs95aDYk5ohXZImi9x5A3TjOJX610WlXm9buN6vUuirMBlNP7_rOvj7eE5a3ZPH9lTnDpDGTQgYQ_KcZTkJf-Pu4jS7tW1wMMz2KMWnLypD9Ibr37wHnVmAD97EONGR6WFt0Vaey8iOSh71ieU8zTrqSFMK4vU_CzpH0gve1wPrQTvzO95cs658AZC5C-eWzjSGqAYm9RS9S1AT8L1xALeGS0uUCFVDCzR3RhuFi90DsD_Chgy_jLywy5L4nvYb8A9Pi58YD3D_iCpgxWrj7t3euKMJX0Plo0za1BXWJ7Y7iFOmrv142K-bpqHJp4hx0eheP1TCN9jrcx7rTkZ_PQbK_4C3lzUPvU_Z653gHnICowuA9ZuKOYFRGNWPmFhrI1z52MVXbvpKdenxpu08MMCM2Z9_OVop8k12uYPapdA3WDg-sjj_P2I8-_ad7TrHbjaOrHH-OTzUTkuNsjz21HPfBIUaluISzDE-UJruTR6f-dh1epYY95tf-3XvadCvVPjVao79YL1hNHB4ust1mJNuLAUc_A5pTKNaQMcyJfX98fxuReWHAZnCUpikqotzoQ6QscMLzim3lEGP1Ll6HYUjCxbxjzjWWtPFceqSlqN6Xo3WOwshIJwAlWc50mezYoyn_Aq5WVa0okTTkJ17kt-qB-ZDEZW_24jtlgghjbEyyHhe4nL9OFg9A6Yr_pjgfAVfzpDLJO-KmkyY3nUQRfxIu5YWxRJUU6zssxYyWYwkbQFaSss-1jzJ6JKoiSJyqiIs7SI8zDKZwlLuyTqMs6LNAmyCNCP8lsvMzHViKEdthYPpcDO5O2Q2rGawqt8OrhemwrjxPWTEWw1Iv0bDXA55w">