[Mesa-dev] [RFC 0/5] nir/gcm: Use a more conservative block assignment algorithm

Jason Ekstrand jason at jlekstrand.net
Sat Jan 14 22:37:36 UTC 2017


Previous attempts to turn on global code motion and value numbering have
failed due to regressions in shader-db.  Some of these regressions are
because GCM is very aggressive about moving instructions between blocks.
This series switches the GCM pass over to a different block assignment
algorithm that doesn't move an instruction unless it's either necessary for
value numbering or if doing so would place it better (out of a loop or into
an if statement).

I don't have shader-db numbers yet.

Jason Ekstrand (5):
  nir/gcm: Compute the if-depth of each block
  nir/gcm: Loop over blocks in pin_instructions
  nir/gcm: Use an array for storring the early block
  nir/gcm: Rework the block assignment algorithm
  nir/gcm: Add a real concept of "progress"

 src/compiler/nir/nir_opt_gcm.c | 240 +++++++++++++++++++++++++----------------
 1 file changed, 147 insertions(+), 93 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list