[Mesa-dev] [PATCH 0/8] nir: Fix and enable global code motion

Jason Ekstrand jason at jlekstrand.net
Wed Jan 18 02:38:34 UTC 2017


This patch series has a bunch of fixes and refactors for the global code
motion pass in NIR.  The patch to dominance is needed for correctness while
most of the rest of them are just cleanups or exist to enable patch 7
without regressions.  With the exception of "Deus Ex: Mankind Divided", the
numbers are finally looking really good.

Jason Ekstrand (8):
  nir/dominance: Better handle unreachable blocks
  nir/gcm: Loop over blocks in pin_instructions
  nir/gcm: Use an array for storring the early block
  nir/gcm: Move block choosing into a helper function
  nir/gcm: Add a real concept of "progress"
  nir/gcm: Delete dead instructions
  nir/gcm: Prefer the instruction's original block
  i965/nir: Use GCM and GVN in the first run of nir_optimize

 src/compiler/nir/nir.h              |   9 +-
 src/compiler/nir/nir_dominance.c    |  37 +++++-
 src/compiler/nir/nir_opt_gcm.c      | 254 +++++++++++++++++++++++-------------
 src/mesa/drivers/dri/i965/brw_nir.c |  22 +++-
 4 files changed, 215 insertions(+), 107 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list