[Mesa-dev] [PATCH 0/7] NIR dead control flow, take two

Connor Abbott cwabbott0 at gmail.com
Tue Jul 21 21:56:36 PDT 2015


On Tue, Jul 21, 2015 at 9:53 PM, Connor Abbott <cwabbott0 at gmail.com> wrote:
> This is another spin of my dead control flow elimination series, this
> time based on the control flow modification series I sent out earlier.
> It's much shorter, since it now uses the much-more-reusable modification
> API, rather than a few ad-hoc functions to do what it needs to do. The
> changes themselves were relatively minor, however.
>
> Like before, the last patch is for testing purposes only; it lobotomizes
> the GLSL IR pass that does roughly the equivalent thing, so that the NIR
> version gets more exposure. It causes one extra piglit failure, but
> that's expected and not due to the NIR pass. The constant folding test
> expects the compiler to optimize away a function call before link time,
> but after disabling the optimization, that no longer happens. Jenkins
> reports that piglit.spec.arb_shader_atomic_counters.semantics also
> fails, but only on one platform and I couldn't reproduce it so it seems
> like a spurious failure. Other than that, there are no piglit
> regressions.

Oh, and I forgot... the series is also available at

git://people.freedesktop.org/~cwabbott0/mesa nir-dead-cf-v5

>
> Connor Abbott (7):
>   nir: add an optimization for removing dead control flow
>   nir/dead_cf: delete code that's unreachable due to jumps
>   nir: add nir_block_get_following_loop() helper
>   nir: add a helper for iterating over blocks in a cf node
>   nir/dead_cf: add support for removing useless loops
>   i965/fs/nir: enable the dead control flow optimization
>   XXX disable opt_if_simplification
>
>  src/glsl/Makefile.sources           |   1 +
>  src/glsl/glsl_parser_extras.cpp     |   2 +-
>  src/glsl/nir/nir.c                  |  23 +++
>  src/glsl/nir/nir.h                  |   6 +
>  src/glsl/nir/nir_opt_dead_cf.c      | 359 ++++++++++++++++++++++++++++++++++++
>  src/mesa/drivers/dri/i965/brw_nir.c |   2 +
>  6 files changed, 392 insertions(+), 1 deletion(-)
>  create mode 100644 src/glsl/nir/nir_opt_dead_cf.c
>
> --
> 2.4.3
>


More information about the mesa-dev mailing list