[PATCH] Improve target pass registration

Alexander Monakov amonakov@ispras.ru
Tue Oct 4 14:49:00 GMT 2016


On Fri, 30 Sep 2016, Jakub Jelinek wrote:
> This patch allows backends to provide their *-passes.def file with
> instructions how to ammend passes.def, which then can be inspected in
> pass-instances.def the script generates.

A few minor comments:

> --- gcc/gen-pass-instances.awk.jj	2016-09-29 22:53:10.264776158 +0200
> +++ gcc/gen-pass-instances.awk	2016-09-30 13:22:53.745373889 +0200
> @@ -30,81 +32,201 @@
>  # through:
>  #   NEXT_PASS (pass_copy_prop, 8);
>  # (currently there are 8 instances of that pass)
> +#
> +#     INSERT_PASS_AFTER (pass_copy_prop, 1, pass_stv);

I think it would be nice to mention that a 4th argument can be supplied and if
so, it will be passed to the pass at run time (although I see the existing
comment doesn't mention that either).

> +# will insert
> +#     NEXT_PASS (pass_stv, 1);
> +# after immediately after the NEXT_PASS (pass_copy_prop, 1) line,

Typo in the comment: duplicated 'after'.

> --- gcc/config/i386/i386-passes.def.jj	2016-09-30 12:54:29.959793738 +0200
> +++ gcc/config/i386/i386-passes.def	2016-09-30 14:01:31.237200032 +0200
> @@ -0,0 +1,31 @@
[snip]
> +
> +/*
> + Macros that should be defined used in this file:
> +   INSERT_PASS_AFTER (PASS, INSTANCE, TGT_PASS)
> +   INSERT_PASS_BEFORE (PASS, INSTANCE, TGT_PASS)
> +   REPLACE_PASS (PASS, INSTANCE, TGT_PASS)
> + */

REPLACE_PASS isn't actually used in this file.

> --- gcc/config/i386/i386-protos.h.jj	2016-06-24 12:59:29.000000000 +0200
> +++ gcc/config/i386/i386-protos.h	2016-09-30 14:00:54.759659671 +0200

> @@ -4105,13 +4105,15 @@ class pass_stv : public rtl_opt_pass
[snip]
>  
>    /* opt_pass methods: */
>    virtual bool gate (function *)
>      {
> -      return TARGET_STV && TARGET_SSE2 && optimize > 1;
> +      return (timode_p ^ (TARGET_64BIT == 0))
> +	     && TARGET_STV && TARGET_SSE2 && optimize > 1;

The first line could also be 'timode_p == !!TARGET_64BIT'.
Also I believe this needs parens around the whole expression.

Alexander



More information about the Gcc-patches mailing list