IPA merge 3: passmanager tweeks

Diego Novillo dnovillo@redhat.com
Sat Dec 16 16:32:00 GMT 2006


Jan Hubicka wrote on 12/02/06 09:50:

> This patch also makes working stuff like TODO_dump_function at the end of IPA
> pass and hopefully brings us closer to plan of using pass manager instead of
> all the current funny interaction in between cgraphunit, passes and
> tree-optimize.
> 
Yes, that's sorely needed.

> Bootstrapped/regtested i686-linux, OK?
> 
> 	* omp-low.c (expand_omp_parallel): Set function properties.
> 	* function.h (struct function): Add curr_properties and last_verified.
> 	* passes.c (register_dump_files): Do not set TODO_set_props for the
> 	first pass
> 	(init_optimization_passes): Set it here; reorder initialization so the
> 	dump files appear in more logic order.
s/logic/logical/

> 	(last_verified, curr_properties): Kill.
> 	(do_per_function): New function.
> 	(execute_function_todo): Break out from ...
> 	(execute_todo): ... here; handle per-function flags.
> 	(clear_last_verified, verify_curr_properties,
> 	update_properties_after_pass): New functions.
> 	(execute_one_pass): Handle per-function properties.
> 	(execute_ipa_pass_list): Use do_per_function; sanity check that cfun
> 	and current_function_decls are cleared out.
> 	* ipa-cp.c (constant_val_insert): Clear cfun/current_function_decl
> 	after use.
>         cgraph_add_new_function (child_fn);
>
OK, with some revisions.

> +   /* Properties used by the passmanager.  */
s/passmanager/pass manager/

> ! /* Call CALLBACK for every function if current function is not set
> !    (ie we do IPA) and for current function otehrwise.  */
>
Rephrase.  Maybe

/* If we are in IPA mode (i.e., current_function_decl is NULL), call
   function CALLBACK for every function in the call graph.  Otherwise,
   call CALLBACK on the current function.  */

> ! /* Perform all TODO actions that ought to be done at function basis.  */
> ! static void
>
Vertical spacing after comment.  What did you mean with 'at function
basis'?  Did you mean 'on every function'?

> ! /* Clear the last verified flag.  */
> ! static void
>
Vertical spacing after comment.

> ! clear_last_verified (void *data ATTRIBUTE_UNUSED)
> ! {
> !   cfun->last_verified = 0;
> ! }
>   
> ! /* Helper function. Verify that the properties has been turn into the
> !    properties expected by the pass.  */
> ! static void
>
Likewise.

> ! /* After executing the pass, apply expected changes to the function properties.
> !    */
>
Watch wrapping.



More information about the Gcc-patches mailing list