[clang] [Clang][CodeGen] Emit dereferenceable and nofree for indirect arguments (PR #213347)

Sayan Sivakumaran via cfe-commits cfe-commits at lists.llvm.org
Sun Aug 2 07:38:23 PDT 2026


================
@@ -467,7 +467,7 @@ void test_tuple_reg_count(svfloat32_t x, svfloat32x2_t y) {
                                    svfloat32_t, svfloat32_t, svfloat32_t, svfloat32x2_t);
   test_tuple_reg_count_callee(x, x, x, x, x, x, x, y);
 }
-// CHECK-AAPCS: declare void @test_tuple_reg_count_callee(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, ptr noundef align 16 dead_on_return)
+// CHECK-AAPCS: declare void @test_tuple_reg_count_callee(<vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 4 x float>, ptr nofree noundef align 16 dead_on_return)
----------------
sivakusayan wrote:

I was a bit confused on why `dereferenceable` was not being emitted here, apparently `getMinimumObjectSize` returns 0 for `svfloat32x2_t`. But if I'm reading [the documentation](https://support.arm.com/documentation/102476/0101/Introducing-SVE) correctly the minimum size should be 16 bytes? Maybe something to worry about elsewhere.

https://github.com/llvm/llvm-project/pull/213347


More information about the cfe-commits mailing list