[Mesa-dev] [PATCH 1/3] mesa: Make unreachable macro take a string argument.

Ian Romanick idr at freedesktop.org
Mon Jun 30 10:37:24 PDT 2014


Patches 1 & 3 are

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 06/30/2014 10:27 AM, Matt Turner wrote:
> To aid in debugging.
> ---
>  src/glsl/opt_vectorize.cpp                                |  3 +--
>  src/mesa/drivers/common/meta.c                            |  3 +--
>  src/mesa/drivers/dri/i965/brw_blorp_clear.cpp             |  4 +---
>  src/mesa/drivers/dri/i965/brw_reg.h                       |  3 +--
>  src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp  |  3 +--
>  src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp |  3 +--
>  src/mesa/main/compiler.h                                  | 14 +++++++++++---
>  7 files changed, 17 insertions(+), 16 deletions(-)
> 
> diff --git a/src/glsl/opt_vectorize.cpp b/src/glsl/opt_vectorize.cpp
> index f9a3b61..28534a8 100644
> --- a/src/glsl/opt_vectorize.cpp
> +++ b/src/glsl/opt_vectorize.cpp
> @@ -227,8 +227,7 @@ write_mask_to_swizzle(unsigned write_mask)
>     case WRITEMASK_Z: return SWIZZLE_Z;
>     case WRITEMASK_W: return SWIZZLE_W;
>     }
> -   assert(!"not reached");
> -   unreachable();
> +   unreachable("not reached");
>  }
>  
>  /**
> diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> index 1a2e453..3db3611 100644
> --- a/src/mesa/drivers/common/meta.c
> +++ b/src/mesa/drivers/common/meta.c
> @@ -2613,8 +2613,7 @@ _mesa_meta_setup_texture_coords(GLenum faceTarget,
>              coord = coords3;
>              break;
>           default:
> -            assert(0);
> -            unreachable();
> +            unreachable("not reached");
>           }
>  
>           coord[3] = (float) (slice / 6);
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
> index 5efdf71..df34c72 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
> @@ -337,9 +337,7 @@ brw_blorp_clear_params::brw_blorp_clear_params(struct brw_context *brw,
>              x_scaledown = 2;
>              break;
>           default:
> -            assert(!"Unexpected sample count for fast clear");
> -            unreachable();
> -            break;
> +            unreachable("Unexpected sample count for fast clear");
>           }
>           y_scaledown = 2;
>           x_align = x_scaledown * 2;
> diff --git a/src/mesa/drivers/dri/i965/brw_reg.h b/src/mesa/drivers/dri/i965/brw_reg.h
> index fc2e0b0..24346be 100644
> --- a/src/mesa/drivers/dri/i965/brw_reg.h
> +++ b/src/mesa/drivers/dri/i965/brw_reg.h
> @@ -358,9 +358,8 @@ brw_vecn_reg(unsigned width, unsigned file, unsigned nr, unsigned subnr)
>     case 16:
>        return brw_vec16_reg(file, nr, subnr);
>     default:
> -      assert(!"Invalid register width");
> +      unreachable("Invalid register width");
>     }
> -   unreachable();
>  }
>  
>  static inline struct brw_reg
> diff --git a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
> index fd517f8..0667465 100644
> --- a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
> @@ -86,8 +86,7 @@ protected:
>  
>     virtual vec4_instruction *emit_urb_write_opcode(bool complete)
>     {
> -      assert(!"Not reached");
> -      unreachable();
> +      unreachable("Not reached");
>     }
>  };
>  
> diff --git a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
> index 7563aef..78c758c 100644
> --- a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
> +++ b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
> @@ -89,8 +89,7 @@ protected:
>  
>     virtual vec4_instruction *emit_urb_write_opcode(bool complete)
>     {
> -      assert(!"Not reached");
> -      unreachable();
> +      unreachable("Not reached");
>     }
>  };
>  
> diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h
> index 6006917..79d8740 100644
> --- a/src/mesa/main/compiler.h
> +++ b/src/mesa/main/compiler.h
> @@ -253,15 +253,23 @@ static INLINE GLuint CPU_TO_LE32(GLuint x)
>   * function" warnings.
>   */
>  #if __GNUC__ >= 4 && __GNUC_MINOR__ >= 5
> -#define unreachable() __builtin_unreachable()
> +#define unreachable(str)    \
> +do {                        \
> +   assert(!str);            \
> +   __builtin_unreachable(); \
> +} while (0)
>  #elif (defined(__clang__) && defined(__has_builtin))
>  # if __has_builtin(__builtin_unreachable)
> -#  define unreachable() __builtin_unreachable()
> +#  define unreachable(str)  \
> +do {                        \
> +   assert(!str);            \
> +   __builtin_unreachable(); \
> +} while (0)
>  # endif
>  #endif
>  
>  #ifndef unreachable
> -#define unreachable()
> +#define unreachable(str)
>  #endif
>  
>  /*
> 



More information about the mesa-dev mailing list