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

    <tr>
        <th>Summary</th>
        <td>
            Unstable order of `-pass-remarks-analysis=stack-frame-layout` output
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    The `llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll` test added in 6ae4014befbc16c63c31922d8462afcaae51e260 uncovers a non-determinism in LLVM. There seems to be a dependency on the order of iteration over an unordered container or something like that. The lines printed by `emitStackSlotRemark` have unstable order (the easiest way to reproduce is to build libc++ and llc with `-D_LIBCPP_DEBUG_RANDOMIZE_UNSPECIFIED_STABILITY`, see https://libcxx.llvm.org/DesignDocs/UnspecifiedBehaviorRandomization.html):
```
$ diff -u \
  <(llc <llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll -mtriple=aarch64 -mattr=+sve2 -pass-remarks-analysis=stack-frame-layout 2>&1 >/dev/null) \
  <(llc <llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll -mtriple=aarch64 -mattr=+sve2 -pass-remarks-analysis=stack-frame-layout 2>&1 >/dev/null)
--- /dev/fd/63  2024-07-29 16:49:54.964017882 +0200
+++ /dev/fd/62  2024-07-29 16:49:54.964017882 +0200
@@ -1,23 +1,23 @@
 remark: <unknown>:0:0:
 Function: csr_d8_allocnxv4i32i32f64
 Offset: [SP-8], Type: Spill, Align: 8, Size: 8
-Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-16], Type: Variable, Align: 16, Size: 16
+Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-20], Type: Variable, Align: 4, Size: 4
 Offset: [SP-32], Type: Variable, Align: 8, Size: 8
 remark: <unknown>:0:0:
 Function: csr_d8_allocnxv4i32i32f64_fp
 Offset: [SP-8], Type: Spill, Align: 8, Size: 8
-Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-16], Type: Variable, Align: 16, Size: 16
+Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-20], Type: Variable, Align: 4, Size: 4
 Offset: [SP-32], Type: Spill, Align: 16, Size: 8
 Offset: [SP-40], Type: Variable, Align: 8, Size: 8
 remark: <unknown>:0:0:
 Function: svecc_z8_allocnxv4i32i32f64_fp
 Offset: [SP-8], Type: Spill, Align: 8, Size: 8
-Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-16], Type: Spill, Align: 16, Size: 16
+Offset: [SP-16], Type: Spill, Align: 8, Size: 8
 Offset: [SP-20], Type: Variable, Align: 4, Size: 4
 Offset: [SP-32], Type: Variable, Align: 16, Size: 16
 Offset: [SP-32], Type: Variable, Align: 8, Size: 8
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsVl9v27YX_TT0y4UM6VKWrQc_-E9UBEjboE4K_H4vBk1eRVwo0hApJ-6nHyi7WdOsWLp1wDoMSGBTpA7POTySj_Be31miOZss2WQ9En1oXDcXhh7rZrRz6ji_aQhYkRpzaBlWgXxgWK2cojdkGVaLRSebImdY-QMlPgh5n9SdaCkx4uj6MDaGFSnE-0AoRQq0hUJQnmb5juqdzApZcMmzElHN8gJFLYWgSUZYpNBb6Q7UeRBgnU0UBepabbVvI8zV1ce3Y7hpqCPwRK2H4GBHIEDRnqwiK4_gLISGwHWKOnA16ECdCNpZiMggLPR2mCQF0tkgtI0LO_CupdBoewdG3xOERoRhMzDakod9p20gBbtjtIdaHTZR_Ma48IFa0d1H2Y04EPTWB7EznzkwnEVCJLyOpjyIY6Td0b5zqpcE-iSj10aB0TvJcMlwCcIqMEbCgw5N3DFZb68ul6vr6-36Ynn7Zvth8W79_u3l_y-2t-821xery-ryYr3d3CyWl1eXN_9jRcpwFW2CJoS9Z3zBsGJYxS0eH8fxfMeuu2NYrSmGYu2kZ1jdWr8nqWtNakmNOGjXfRBWuVZ_GlwcN6E1DMuIl65Zuogbnf5OQ8xB6bqGpAc2WZ0uAjC-YjiLehhf_YVsQdKGTu8NMb4WYlgOSStC6BhfM1z6AyEke-F90g2n4hNhhTl67Rlfv4QEZPyCYZHB8FkpOjCsbG-ixp9ewIl8kiTwNFMrhlXBATDFPEmnCZaQFYwv8nikk3xcFnmaTWczBIbLFNOnc12eg_kVFH4_VJ6yPIUkY7hCHuc-fxsmzo6f1DO-iIb39t66Bxsl8kV6_j8vrHorYzLjUum7rZpthTFO2sdDrjlqjnWRn9e-r2tPYQCdLDfXyYxN1vExuTnuKV7d7HU0bgULo-8GxFkcbfQnOg1Ohn4NkxV_CucFnRc4H0Wn46vkGVRWfImVFU8H9HfRwvQ1tPIvob5lOMfXQP0uqx8biG29_y8T_9BMvKT0XN63OOWv4vTjwuUPJOX2078rXn9k_k-ere94en7gy-upJI3UnKuSl2JE82yKiMUkS_momdd5oeqSi5KmU84nVJZ1OpF8UvJc4rSQIz2PP7PpFMssn8yQjwXN8kKpTBSqzAqpWJ5SK7R5qnYj7X1P8yzNUpyMjNiR8UPxR7T0AMMsw6hp1M3jTcmuv_MsT432wf8GE3QwNL993mpdPZTS1xeVWI9dH_Z9GPWdmT8vpXc6NP1uLF2sVed2NTDad-4XkrFlDXRjQz3rOczx1wAAAP__3Wi2Zw">