intel/compiler: Clean up and reworks of URB message handling for scalar stages
The main thing here is changing the SIMD8 URB read and write messages to be lowered to SEND messages much, much earlier in the compilation process.
Another commit also adds a couple bits of validation to the brw_eu_validate
pass.
Thanks to the spilt-SEND optimization by @kwg, the intel/fs: Lower URB messages to SEND
commit has some pretty shocking fossil-db results:
Tiger Lake, Ice Lake, and Sky Lake had similar results. (Ice Lake shown)
Instructions in all programs: 140729545 -> 139577251 (-0.8%)
Instructions helped: 193324
Cycles in all programs: 9073094108 -> 9071697924 (-0.0%)
Cycles helped: 36490
Cycles hurt: 149100
Spills in all programs: 98829 -> 13695 (-86.1%)
Spills helped: 2159
Fills in all programs: 128142 -> 18400 (-85.6%)
Fills helped: 2159
🤯🤯🤯 See the commit message of that patch for more details.