[Mesa-dev] [PATCH 1/3] glsl: don't drop intructions from unreachable terminators continue branch

Matt Turner mattst88 at gmail.com
Thu Sep 14 22:45:17 UTC 2017


On Wed, Sep 13, 2017 at 9:47 PM, Timothy Arceri <tarceri at itsqueeze.com> wrote:
> These instruction will be executed on every iteration of the loop
> we cannot drop them.
> ---
>  src/compiler/glsl/loop_analysis.h   |  7 +++++++
>  src/compiler/glsl/loop_controls.cpp | 15 +++++++++++++++
>  src/compiler/glsl/loop_unroll.cpp   |  7 -------
>  3 files changed, 22 insertions(+), 7 deletions(-)
>
> diff --git a/src/compiler/glsl/loop_analysis.h b/src/compiler/glsl/loop_analysis.h
> index 2894c6359b..0e1bfd8142 100644
> --- a/src/compiler/glsl/loop_analysis.h
> +++ b/src/compiler/glsl/loop_analysis.h
> @@ -27,20 +27,27 @@
>
>  #include "ir.h"
>  #include "util/hash_table.h"
>
>  /**
>   * Analyze and classify all variables used in all loops in the instruction list
>   */
>  extern class loop_state *
>  analyze_loop_variables(exec_list *instructions);
>
> +static inline bool
> +is_break(ir_instruction *ir)
> +{
> +   return ir != NULL && ir->ir_type == ir_type_loop_jump &&
> +      ((ir_loop_jump *) ir)->is_break();

Please indent this expression to align vertically with ir != NULL


More information about the mesa-dev mailing list