freedreno/ir3: IR3_PASS(), ir3_validate(), and other cleanups
This is mostly standardizing the pass interface and adding an IR3_PASS()
macro, which conditionally dumps the ir (if IR3_SHADER_DEBUG=optmsgs
) if the pass changed anything.
It also makes cf/cp/dce iterative which slightly helps a couple shaders.. but the purpose is mainly to allow some further cleanup by pulling out internal iteration from the passes themselves (not done yet).
update: also added a validate pass, some helpers to maintain proper src/dst type information, etc. Which does effect shader-db some, mostly because it fixes cases where the cp pass would see src/dst types not matching even though a conversion was folded.
Edited by Rob Clark