[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