PING^3 [ARM] [1/3] Refactor NEON builtin code

Jie Zhang jie@codesourcery.com
Thu Jan 20 09:57:00 GMT 2011


On 01/20/2011 05:38 AM, Julian Brown wrote:
> Hi,
>
> On Mon, 17 Jan 2011 09:57:45 +0800
> Jie Zhang<jie@codesourcery.com>  wrote:
>
>>> On 12/23/2010 09:49 PM, Jie Zhang wrote:
>>>> http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00851.html
>>>>
>>>> I just updated the patch to the latest trunk.
>
> I can't approve/disapprove this patch, but this part makes me nervous:
> IIUC it means that the builtins will depend on the order of patterns in
> neon.md, which seems like a potential maintenance nightmare. I think it
> also means that we depend on the order in which mode iterators get
> expanded, which I strongly suspect isn't specified anywhere.
>
> Can we avoid making that linkage?
>
Thanks for your review!

I don't think this patch will make builtins depends on the order of 
patterns in neon.md or the order of mode iterators. That patch just 
flattens neon_builtin_data[].

Before this patch, one entry in neon_builtin_data[], for example,
VAR3 (BINOP, vaddl, v8qi, v4hi, v2si) will be expanded into

{ "vaddl", NEON_BINOP, T_V8QI | T_V4HI | T_V2SI,
     { CODE_FOR_neon_vaddlv8qi,
       CODE_FOR_neon_vaddlv4hi,
       CODE_FOR_neon_vaddlv2si },
   3, 0 },

After this patch, it will be expanded into

{"vaddl", NEON_BINOP, T_V8QI, CODE_FOR_neon_vaddlv8qi, 0},
{"vaddl", NEON_BINOP, T_V4HI, CODE_FOR_neon_vaddlv4hi, 0},
{"vaddl", NEON_BINOP, T_V2SI, CODE_FOR_neon_vaddlv2si, 0},


Maybe you can be more specific?


Regards,
-- 
Jie Zhang



More information about the Gcc-patches mailing list