================
@@ -75,10 +75,10 @@ bb.2:
   store volatile i32 0, ptr addrspace(1) undef
   ret void
 }
-; DEFAULTSIZE: .amdhsa_private_segment_fixed_size 16
+; DEFAULTSIZE: .amdhsa_private_segment_fixed_size 
kernel_non_entry_block_static_alloca_uniformly_reached_align4.private_seg_size
 ; DEFAULTSIZE: ; ScratchSize: 16
 
-; ASSUME1024: .amdhsa_private_segment_fixed_size 1040
+; ASSUME1024: .amdhsa_private_segment_fixed_size 
kernel_non_entry_block_static_alloca_uniformly_reached_align4.private_seg_size
----------------
JanekvO wrote:

As a function's `private_segment_size` depends on itself, and all of its 
callees' propagated `private_segment_size` it may be the case that any of the 
callees' `private_segment_size` has yet to be analysed through 
`AMDGPUResourceUsageAnalysis`.
For example:
```
void foo() {
  ...
  call bar
  ...
}

void bar() {
  ...
  ...
}
```

Where for `foo`, we know and can construct the calculation for its 
`private_segment_size` as
```
[foo's own private segment required size] + max(bar.private_segment_size, [any 
other of foo's called function's private_segment_size])
```
But because we are currently printing `foo`'s MachineFunction in 
`AMDGPUAsmPrinter`, we haven't analysed `bar`'s `private_segment_size` yet. 
This will eventually be known but as we need to print metadata for `foo`, it's 
already printed with `bar`'s `private_segment_size` placeholder.

TL;DR: cannot compute constant value yet, need to print symbolic representation.

https://github.com/llvm/llvm-project/pull/102913
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to