[PATCH 02/11] Generate pass-instances.def

Jeff Law law@redhat.com
Mon Jul 29 20:03:00 GMT 2013


On 07/26/2013 09:04 AM, David Malcolm wrote:
> Introduce a new gen-pass-instances.awk script, and use it at build time
> to make a pass-instances.def from passes.def.
>
> An example of the result can be seen at:
>
>    http://dmalcolm.fedorapeople.org/gcc/2013-07-25/pass-instances.def
>
> The generated pass-instances.def contains similar content to passes.def,
> but the pass instances within it are explicitly numbered, so that e.g.
> the third instance of:
>
>    NEXT_PASS (pass_copy_prop)
>
> becomes:
>
>    NEXT_PASS (pass_copy_prop, 3)
>
> This is needed by a subsequent patch so that we can create fields within
> the pipeline class for each pass instance, where we need unique field
> names to avoid a syntax error.  For example, all 8 instances of
> pass_copy_prop will need different names. e.g.
>
>     opt_pass *pass_copy_prop_1;
>     ...
>     opt_pass *pass_copy_prop_8;
>
> I have successfully tested the script with gawk, with gawk using the
> "-c" compatibility option to turn off gawk extensions, and with busybox
> awk (versions tested were gawk-4.0.1 and busybox-1.19.4).
>
> This patch replaces a previous attempt at this:
>    http://gcc.gnu.org/ml/gcc-patches/2013-07/msg00686.html
> which converted multi-instance passes to using a new NEXT_PASS_NUM
> macro, requiring the instance numbering within passes.def to be
> maintained by hand.
>
> In the new approach, the instance numbers are generated automatically,
> and are visible at build time, giving the uniqueness needed by later
> patches, whilst avoiding manual maintenance work, and also making it
> easy to see the instance numbering (by inspecting the generated
> pass-instances.def).
>
> gcc/
>
> 	* Makefile.in (pass-instances.def): New.
> 	(passes.o): Replace dependency on passes.def with one on
> 	pass-instances.def
>
> 	* gen-pass-instances.awk: New.
>
> 	* passes.c (pipeline::pipeline): Use pass-instances.def rather
> 	than passes.def, updating local definition of NEXT_PASS macro
> 	to add an extra NUM parameter (currently unused).
My awk-fu isn't all that great.  I'm going to assume this works and that 
if it breaks, you own it :-)

Fine for the trunk.

jeff



More information about the Gcc-patches mailing list