Skip to content

Draft: intel/compiler: Move instructions from a DO block to the next block

Ian Romanick requested to merge idr/mesa:review/do-block-opt into main

The constant combining pass will put additional MOV instructions in the block with the DO instruction. The first real instructions for the loop are generally in the next block. Moving the extra MOV instructions to that block can help scheduling.

I went down some odd paths while developing this path, and I believe there are some issues with our CFG tracking. See #9732.

Shader-db results:

All BDW+ platforms had similar results. (Ice Lake shown)
Ice Lake
total cycles in shared programs: 849931695 -> 849912435 (<.01%)
cycles in affected programs: 78947923 -> 78928663 (-0.02%)
helped: 358 / HURT: 18

Fossil-db results:

All SKL+ platforms had similar results. (Ice Lake shown)
Totals:
Cycles: 14713211897 -> 14713083917 (-0.00%); split: -0.00%, +0.00%

Totals from 732 (0.11% of 645899) affected shaders:
Cycles: 672054455 -> 671926475 (-0.02%); split: -0.02%, +0.00%

Merge request reports