brw: Move "SSA form" printing to after divergence analysis is run

We were printing the SSA form, then immediately running divergence
analysis.  This patch flips those, so we can see con/div in INTEL_DEBUG
output for SSA form, which is really useful.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36750>
This commit is contained in:
Kenneth Graunke 2025-08-11 14:05:44 -07:00 committed by Marge Bot
parent 1b0808adf3
commit 3e493e03cc

View file

@ -2371,6 +2371,14 @@ brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler,
OPT(nir_lower_locals_to_regs, 32);
nir_validate_ssa_dominance(nir, "before nir_convert_from_ssa");
/* Rerun the divergence analysis before convert_from_ssa as this pass has
* some assert on consistent divergence flags.
*/
NIR_PASS(_, nir, nir_convert_to_lcssa, true, true);
nir_divergence_analysis(nir);
if (unlikely(debug_enabled || archiver)) {
/* Re-index SSA defs so we print more sensible numbers. */
nir_foreach_function_impl(impl, nir) {
@ -2387,14 +2395,6 @@ brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler,
brw_debug_archive_nir(archiver, nir, dispatch_width, "ssa");
}
nir_validate_ssa_dominance(nir, "before nir_convert_from_ssa");
/* Rerun the divergence analysis before convert_from_ssa as this pass has
* some assert on consistent divergence flags.
*/
NIR_PASS(_, nir, nir_convert_to_lcssa, true, true);
nir_divergence_analysis(nir);
OPT(nir_convert_from_ssa, true, true);
OPT(nir_opt_dce);