ir3: don't add array stores to block keeps
Array accesses (including stores) are fully converted to SSA. This means ir3_dce can handle them correctly and we don't have to forcefully keep them around. Totals: MaxWaves: 2381954 -> 2382720 (+0.03%) Instrs: 49073677 -> 49056449 (-0.04%) CodeSize: 102537524 -> 102485082 (-0.05%); split: -0.05%, +0.00% NOPs: 8396340 -> 8405825 (+0.11%) MOVs: 1450777 -> 1433266 (-1.21%) COVs: 825142 -> 822678 (-0.30%) Full: 1714304 -> 1712751 (-0.09%) (ss): 1126433 -> 1126611 (+0.02%); split: -0.00%, +0.02% (sy): 554174 -> 554194 (+0.00%); split: -0.00%, +0.00% (ss)-stall: 4013834 -> 4014314 (+0.01%) (sy)-stall: 16713036 -> 16713790 (+0.00%); split: -0.00%, +0.01% LDPs: 23957 -> 23701 (-1.07%) Preamble Instrs: 11106162 -> 11105987 (-0.00%) Cat0: 9252109 -> 9261512 (+0.10%) Cat1: 2337941 -> 2317966 (-0.85%) Cat2: 18452467 -> 18448379 (-0.02%) Cat3: 14099754 -> 14097262 (-0.02%) Cat4: 1362443 -> 1362435 (-0.00%) Cat6: 515831 -> 515767 (-0.01%) Cat7: 1636810 -> 1636806 (-0.00%) Totals from 417 (0.25% of 164705) affected shaders: MaxWaves: 5552 -> 6318 (+13.80%) Instrs: 160717 -> 143489 (-10.72%) CodeSize: 367044 -> 314602 (-14.29%); split: -14.30%, +0.01% NOPs: 29576 -> 39061 (+32.07%) MOVs: 25110 -> 7599 (-69.74%) COVs: 5276 -> 2812 (-46.70%) Full: 6879 -> 5326 (-22.58%) (ss): 3484 -> 3662 (+5.11%); split: -0.32%, +5.42% (sy): 2486 -> 2506 (+0.80%); split: -0.12%, +0.93% (ss)-stall: 8949 -> 9429 (+5.36%) (sy)-stall: 124684 -> 125438 (+0.60%); split: -0.28%, +0.89% LDPs: 256 -> 0 (-inf%) Preamble Instrs: 60629 -> 60454 (-0.29%) Cat0: 33230 -> 42633 (+28.30%) Cat1: 30386 -> 10411 (-65.74%) Cat2: 43140 -> 39052 (-9.48%) Cat3: 26251 -> 23759 (-9.49%) Cat4: 1148 -> 1140 (-0.70%) Cat6: 102 -> 38 (-62.75%) Cat7: 13332 -> 13328 (-0.03%) Signed-off-by: Job Noorman <jnoorman@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36720>
This commit is contained in:
@@ -558,12 +558,6 @@ ir3_create_array_store(struct ir3_context *ctx, struct ir3_array *arr, int n,
|
||||
ir3_instr_set_address(mov, address);
|
||||
|
||||
arr->last_write = dst;
|
||||
|
||||
/* the array store may only matter to something in an earlier
|
||||
* block (ie. loops), but since arrays are not in SSA, depth
|
||||
* pass won't know this.. so keep all array stores:
|
||||
*/
|
||||
array_insert(block, block->keeps, mov);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user