[Mesa-dev] [PATCH 0/9] i965: Remove unneeded algebraic optimizations

Jason Ekstrand jason at jlekstrand.net
Thu Mar 17 17:21:37 UTC 2016


This little series prepares the backend compiler for invariant and precise
by removing any potentially unsafe optimizations.  The easiest
implementation for invariant and precise seems to be the same: Don't change
the semantics of invariant or precise values.  This means that we need to
track what values are invariant or precise and be very careful how we
optimize them.  In the backend, it's easier to just not do those
optimizations than to try and plumb that information through accurately.
Fortunately, NIR is doing a good enough job that this can be done with a
minimum of shader-db damage.

Jason Ekstrand (9):
  i965/fs: Remove the RCP+RSQ peephole
  nir/algebraic: Add two more fsat optimizations
  i965/fs: Get rid of the sel.sat peephole
  i965/fs: Get rid of all remaining algebraic optimizations for floats
  i965/fs: Don't constant-fold RCP
  i965/vec4: Don't constant propagate saturated values
  i965/vec4: Don't allow type conversion in opt_vector_float
  i965/vec4: Handle saturated constants in opt_vector_float
  i965/vec4: Disable algebraic optimizations on floats

 src/compiler/nir/nir_opt_algebraic.py              |   2 +
 src/mesa/drivers/dri/i965/brw_fs.cpp               | 119 ++++-----------------
 .../drivers/dri/i965/brw_fs_copy_propagation.cpp   |  15 ---
 src/mesa/drivers/dri/i965/brw_vec4.cpp             |  49 ++++-----
 .../drivers/dri/i965/brw_vec4_copy_propagation.cpp |   3 +
 5 files changed, 41 insertions(+), 147 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list