[Mesa-dev] [PATCH v3 18/42] intel/compiler: add a helper function to query hardware type table
Jason Ekstrand
jason at jlekstrand.net
Thu Jan 17 20:16:16 UTC 2019
On Tue, Jan 15, 2019 at 7:54 AM Iago Toral Quiroga <itoral at igalia.com>
wrote:
> We open coded this in a couple of places, so a helper function is probably
> sensible. Plus it makes it more consistent with the 3src hardware type
> case.
>
> Suggested-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
> src/intel/compiler/brw_reg_type.c | 34 ++++++++++++++++---------------
> 1 file changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/src/intel/compiler/brw_reg_type.c
> b/src/intel/compiler/brw_reg_type.c
> index 09b3ea61d4c..0c9f522eca0 100644
> --- a/src/intel/compiler/brw_reg_type.c
> +++ b/src/intel/compiler/brw_reg_type.c
> @@ -193,6 +193,20 @@ static const struct hw_3src_type {
> #undef E
> };
>
> +static inline const struct hw_type *
> +get_hw_type_map(const struct gen_device_info *devinfo, uint32_t *size)
> +{
> + if (devinfo->gen >= 11) {
> + if (size)
> + *size = ARRAY_SIZE(gen11_hw_type);
>
All of these type tables have the same size because we declare everything
through BRW_REGISTER_TYPE_LAST. Do we really need to be returning the
array size separately for every table?
> + return gen11_hw_type;
> + } else {
> + if (size)
> + *size = ARRAY_SIZE(gen4_hw_type);
> + return gen4_hw_type;
> + }
> +}
> +
> /**
> * Convert a brw_reg_type enumeration value into the hardware
> representation.
> *
> @@ -203,16 +217,10 @@ brw_reg_type_to_hw_type(const struct gen_device_info
> *devinfo,
> enum brw_reg_file file,
> enum brw_reg_type type)
> {
> - const struct hw_type *table;
> -
> - if (devinfo->gen >= 11) {
> - assert(type < ARRAY_SIZE(gen11_hw_type));
> - table = gen11_hw_type;
> - } else {
> - assert(type < ARRAY_SIZE(gen4_hw_type));
> - table = gen4_hw_type;
> - }
> + uint32_t table_size;
> + const struct hw_type *table = get_hw_type_map(devinfo, &table_size);
>
> + assert(type < table_size);
> assert(devinfo->has_64bit_types || brw_reg_type_to_size(type) < 8 ||
> type == BRW_REGISTER_TYPE_NF);
>
> @@ -234,13 +242,7 @@ enum brw_reg_type
> brw_hw_type_to_reg_type(const struct gen_device_info *devinfo,
> enum brw_reg_file file, unsigned hw_type)
> {
> - const struct hw_type *table;
> -
> - if (devinfo->gen >= 11) {
> - table = gen11_hw_type;
> - } else {
> - table = gen4_hw_type;
> - }
> + const struct hw_type *table = get_hw_type_map(devinfo, NULL);
>
> if (file == BRW_IMMEDIATE_VALUE) {
> for (enum brw_reg_type i = 0; i <= BRW_REGISTER_TYPE_LAST; i++) {
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190117/4d75c578/attachment-0001.html>
More information about the mesa-dev
mailing list