[PATCH][RFC] Remove TODO_ggc_collect, collect unconditionally

Richard Biener rguenther@suse.de
Thu Mar 21 09:07:00 GMT 2013


On Tue, 19 Mar 2013, Richard Biener wrote:

> On Tue, 19 Mar 2013, Richard Biener wrote:
> 
> > On Tue, 19 Mar 2013, Richard Biener wrote:
> > 
> > > 
> > > This adds a GC collection point after each pass instead just after
> > > those with TODO_ggc_collect in their todo.  The patch will possibly
> > > slow-down gcac checking a bit (80 passes have TODO_ggc_collect,
> > > I didn't try to enumerate those that do not, but a grep shows we
> > > may have up to 212 passes.  OTOH gcac checking will now "properly"
> > > verify that all pass boundaries are suitable for collection.
> > > 
> > > A complete patch will remove TODO_ggc_collect and all its uses
> > > as well.
> > > 
> > > The patch should result in lower peak memory consumption for
> > > some of the odd testcases that we worked on.
> > > 
> > > Bootstrap & regtest scheduled on x86_64-unknown-linux-gnu.
> > 
> > Which shows that I need to merge the IRA and reload/lra passes.
> > Honza tells me that they are considered "separate" has historical
> > reasons only.  Given that reload pushes TV_IRA and that the boundary
> > isn't GC safe I don't think that is too bad (dump files will now
> > be shared, of course).
> > 
> > I'll schedule a gcac checking bootstrap over night as well.
> 
> The following is it, changelog omits the boring part (enumerating
> all files and pass structs touched ...).
> 
> Regularly bootstrapped and tested on x86_64-unknown-linux-gnu,
> the gcac one is still running (as expected ...).
> 
> Any objections?

One testcase, g++.dg/pr55604.C, needs adjustment (it uses
-fdump-rtl-reload which is gone after the patch).

I let a gcac bootstrap run into stage3 (and then killed it after
3 days ...).  I also built a gcac compiler without bootstrapping
and ran the testsuite.  Unfortunately that results in lot of
timeouts and weird errors.  I have reported PR56673 for a GC issue
unrelated to this patch (multi-versioning is broken).  Weird errors
include -frepo linking errors.

Any hints on how to globally disable the dejagnu timeout so I can
eventually get a clean gcac testsuite run without the patch to
compare against (I doubt -frepo errors can be related to this patch).

Thanks,
Richard.

> 2013-03-19  Richard Biener  <rguenther@suse.de>
> 
> 	* passes.c (execute_todo): Do not call ggc_collect conditional here.
> 	(execute_one_ipa_transform_pass): But unconditionally here.
> 	(execute_one_pass): And here.
> 	(init_optimization_passes): Remove reload pass.
> 	* tree-pass.h (TODO_ggc_collect): Remove.
> 	(pass_reload): Likewise.
> 	* ira.c (do_reload): Merge into ...
> 	(ira): ... this.
> 	(rest_of_handle_reload): Remove.
> 	(pass_reload): Likewise.
> 	* config/i386/i386.c (ix86_option_override): Refer to ira instead
> 	of reload for vzeroupper pass placement.
> 	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
> 	and todo_flags_finish of all passes.
> 
> Index: trunk/gcc/passes.c
> ===================================================================
> *** trunk.orig/gcc/passes.c	2013-03-19 12:25:46.000000000 +0100
> --- trunk/gcc/passes.c	2013-03-19 15:07:06.015047490 +0100
> *************** static struct rtl_opt_pass pass_rest_of_
> *** 406,412 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 406,412 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
>   
> *************** static struct rtl_opt_pass pass_postrelo
> *** 432,438 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
>   
> --- 432,438 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing               /* todo_flags_finish */
>    }
>   };
>   
> *************** init_optimization_passes (void)
> *** 1620,1626 ****
>         NEXT_PASS (pass_sms);
>         NEXT_PASS (pass_sched);
>         NEXT_PASS (pass_ira);
> -       NEXT_PASS (pass_reload);
>         NEXT_PASS (pass_postreload);
>   	{
>   	  struct opt_pass **p = &pass_postreload.pass.sub;
> --- 1620,1625 ----
> *************** execute_todo (unsigned int flags)
> *** 2016,2024 ****
>         fflush (dump_file);
>       }
>   
> -   if (flags & TODO_ggc_collect)
> -     ggc_collect ();
> - 
>     /* Now that the dumping has been done, we can get rid of the optional
>        df problems.  */
>     if (flags & TODO_df_finish)
> --- 2015,2020 ----
> *************** execute_one_ipa_transform_pass (struct c
> *** 2190,2195 ****
> --- 2186,2194 ----
>     pass_fini_dump_file (pass);
>   
>     current_pass = NULL;
> + 
> +   /* Signal this is a suitable GC collection point.  */
> +   ggc_collect ();
>   }
>   
>   /* For the current function, execute all ipa transforms. */
> *************** execute_one_pass (struct opt_pass *pass)
> *** 2367,2372 ****
> --- 2366,2374 ----
>   
>     current_pass = NULL;
>   
> +   /* Signal this is a suitable GC collection point.  */
> +   ggc_collect ();
> + 
>     return true;
>   }
>   
> Index: trunk/gcc/bt-load.c
> ===================================================================
> *** trunk.orig/gcc/bt-load.c	2013-01-11 10:54:52.000000000 +0100
> --- trunk/gcc/bt-load.c	2013-03-19 14:49:29.666365217 +0100
> *************** struct rtl_opt_pass pass_branch_target_l
> *** 1520,1527 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing |
> !   TODO_ggc_collect,                     /* todo_flags_finish */
>    }
>   };
>   
> --- 1520,1526 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing,              /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_branch_target_l
> *** 1570,1575 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect,                     /* todo_flags_finish */
>    }
>   };
> --- 1569,1574 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0,                                    /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/cfgcleanup.c
> ===================================================================
> *** trunk.orig/gcc/cfgcleanup.c	2013-01-31 11:06:09.000000000 +0100
> --- trunk/gcc/cfgcleanup.c	2013-03-19 14:49:46.809555946 +0100
> *************** struct rtl_opt_pass pass_jump =
> *** 3057,3063 ****
>     0,					/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   TODO_ggc_collect,			/* todo_flags_start */
>     TODO_verify_rtl_sharing,		/* todo_flags_finish */
>    }
>   };
> --- 3057,3063 ----
>     0,					/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   0,					/* todo_flags_start */
>     TODO_verify_rtl_sharing,		/* todo_flags_finish */
>    }
>   };
> *************** struct rtl_opt_pass pass_jump2 =
> *** 3084,3090 ****
>     0,					/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   TODO_ggc_collect,			/* todo_flags_start */
>     TODO_verify_rtl_sharing,		/* todo_flags_finish */
>    }
>   };
> --- 3084,3090 ----
>     0,					/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   0,					/* todo_flags_start */
>     TODO_verify_rtl_sharing,		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/cfgexpand.c
> ===================================================================
> *** trunk.orig/gcc/cfgexpand.c	2013-03-18 12:31:42.000000000 +0100
> --- trunk/gcc/cfgexpand.c	2013-03-19 14:49:59.956702233 +0100
> *************** struct rtl_opt_pass pass_expand =
> *** 4863,4868 ****
>     PROP_ssa | PROP_trees,		/* properties_destroyed */
>     TODO_verify_ssa | TODO_verify_flow
>       | TODO_verify_stmts,		/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
> --- 4863,4868 ----
>     PROP_ssa | PROP_trees,		/* properties_destroyed */
>     TODO_verify_ssa | TODO_verify_flow
>       | TODO_verify_stmts,		/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/combine-stack-adj.c
> ===================================================================
> *** trunk.orig/gcc/combine-stack-adj.c	2013-01-11 10:55:26.000000000 +0100
> --- trunk/gcc/combine-stack-adj.c	2013-03-19 14:50:33.851079297 +0100
> *************** struct rtl_opt_pass pass_stack_adjustmen
> *** 659,665 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect,                     /* todo_flags_finish */
>    }
>   };
> --- 659,664 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/combine.c
> ===================================================================
> *** trunk.orig/gcc/combine.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/combine.c	2013-03-19 14:51:01.178383334 +0100
> *************** struct rtl_opt_pass pass_combine =
> *** 13823,13829 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect,                     /* todo_flags_finish */
>    }
>   };
> --- 13823,13828 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/compare-elim.c
> ===================================================================
> *** trunk.orig/gcc/compare-elim.c	2013-01-11 10:54:42.000000000 +0100
> --- trunk/gcc/compare-elim.c	2013-03-19 14:51:09.767478849 +0100
> *************** struct rtl_opt_pass pass_compare_elim_af
> *** 669,675 ****
>     0,					/* todo_flags_start */
>     TODO_df_finish
>     | TODO_df_verify
> !   | TODO_verify_rtl_sharing
> !   | TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
> --- 669,674 ----
>     0,					/* todo_flags_start */
>     TODO_df_finish
>     | TODO_df_verify
> !   | TODO_verify_rtl_sharing		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/cprop.c
> ===================================================================
> *** trunk.orig/gcc/cprop.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/cprop.c	2013-03-19 14:51:18.068571228 +0100
> *************** struct rtl_opt_pass pass_rtl_cprop =
> *** 1930,1935 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
>    }
>   };
> --- 1930,1935 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/cse.c
> ===================================================================
> *** trunk.orig/gcc/cse.c	2013-02-07 10:14:45.000000000 +0100
> --- trunk/gcc/cse.c	2013-03-19 14:51:33.389741719 +0100
> *************** struct rtl_opt_pass pass_cse =
> *** 7466,7473 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect |
> !   TODO_verify_flow,                     /* todo_flags_finish */
>    }
>   };
>   
> --- 7466,7472 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_cse2 =
> *** 7529,7535 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> -   TODO_ggc_collect |
>     TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> --- 7528,7533 ----
> *************** struct rtl_opt_pass pass_cse_after_globa
> *** 7590,7596 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> -   TODO_ggc_collect |
>     TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> --- 7588,7593 ----
> Index: trunk/gcc/dce.c
> ===================================================================
> *** trunk.orig/gcc/dce.c	2013-01-11 10:55:26.000000000 +0100
> --- trunk/gcc/dce.c	2013-03-19 14:51:45.045871389 +0100
> *************** struct rtl_opt_pass pass_ud_rtl_dce =
> *** 802,809 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                     /* todo_flags_finish */
>    }
>   };
>   
> --- 802,808 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_fast_rtl_dce =
> *** 1218,1224 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 1217,1222 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/dse.c
> ===================================================================
> *** trunk.orig/gcc/dse.c	2013-03-11 11:00:38.000000000 +0100
> --- trunk/gcc/dse.c	2013-03-19 14:51:53.264962797 +0100
> *************** struct rtl_opt_pass pass_rtl_dse1 =
> *** 3935,3942 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 3935,3941 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_rtl_dse2 =
> *** 3956,3962 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 3955,3960 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/final.c
> ===================================================================
> *** trunk.orig/gcc/final.c	2013-02-04 11:18:45.000000000 +0100
> --- trunk/gcc/final.c	2013-03-19 14:52:09.083138974 +0100
> *************** struct rtl_opt_pass pass_compute_alignme
> *** 821,828 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing
> !   | TODO_ggc_collect                    /* todo_flags_finish */
>    }
>   };
>   
> --- 821,827 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing               /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_final =
> *** 4405,4411 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 4404,4410 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/function.c
> ===================================================================
> *** trunk.orig/gcc/function.c	2013-03-11 11:00:39.000000000 +0100
> --- trunk/gcc/function.c	2013-03-19 14:52:27.275341219 +0100
> *************** struct rtl_opt_pass pass_thread_prologue
> *** 6995,7003 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     TODO_verify_flow,                     /* todo_flags_start */
> !   TODO_df_verify |
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 6995,7002 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     TODO_verify_flow,                     /* todo_flags_start */
> !   TODO_df_verify | TODO_df_finish
> !   | TODO_verify_rtl_sharing             /* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/gcse.c
> ===================================================================
> *** trunk.orig/gcc/gcse.c	2013-01-11 10:54:52.000000000 +0100
> --- trunk/gcc/gcse.c	2013-03-19 14:52:38.648467764 +0100
> *************** struct rtl_opt_pass pass_rtl_pre =
> *** 4154,4160 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
>    }
>   };
>   
> --- 4154,4160 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_rtl_hoist =
> *** 4175,4181 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
>    }
>   };
>   
> --- 4175,4181 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/ifcvt.c
> ===================================================================
> *** trunk.orig/gcc/ifcvt.c	2013-03-06 09:46:38.000000000 +0100
> --- trunk/gcc/ifcvt.c	2013-03-19 14:52:48.857581358 +0100
> *************** struct rtl_opt_pass pass_if_after_combin
> *** 4514,4521 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 4514,4520 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_if_after_reload
> *** 4551,4557 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 4550,4555 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/ipa-cp.c
> ===================================================================
> *** trunk.orig/gcc/ipa-cp.c	2013-03-01 12:05:02.000000000 +0100
> --- trunk/gcc/ipa-cp.c	2013-03-19 14:52:54.478643890 +0100
> *************** struct ipa_opt_pass_d pass_ipa_cp =
> *** 3632,3638 ****
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
>     TODO_dump_symtab |
> !   TODO_remove_functions | TODO_ggc_collect /* todo_flags_finish */
>    },
>    ipcp_generate_summary,			/* generate_summary */
>    ipcp_write_summary,			/* write_summary */
> --- 3632,3638 ----
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
>     TODO_dump_symtab |
> !   TODO_remove_functions         /* todo_flags_finish */
>    },
>    ipcp_generate_summary,			/* generate_summary */
>    ipcp_write_summary,			/* write_summary */
> Index: trunk/gcc/ipa-inline.c
> ===================================================================
> *** trunk.orig/gcc/ipa-inline.c	2013-03-08 12:56:05.000000000 +0100
> --- trunk/gcc/ipa-inline.c	2013-03-19 14:53:06.384776340 +0100
> *************** struct gimple_opt_pass pass_early_inline
> *** 2091,2097 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa | TODO_ggc_collect	/* todo_flags_finish */
>    }
>   };
>   
> --- 2091,2097 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> *************** struct ipa_opt_pass_d pass_ipa_inline =
> *** 2125,2131 ****
>     0,					/* properties_destroyed */
>     TODO_remove_functions,		/* todo_flags_finish */
>     TODO_dump_symtab 
> !   | TODO_remove_functions | TODO_ggc_collect	/* todo_flags_finish */
>    },
>    inline_generate_summary,		/* generate_summary */
>    inline_write_summary,			/* write_summary */
> --- 2125,2131 ----
>     0,					/* properties_destroyed */
>     TODO_remove_functions,		/* todo_flags_finish */
>     TODO_dump_symtab 
> !   | TODO_remove_functions		/* todo_flags_finish */
>    },
>    inline_generate_summary,		/* generate_summary */
>    inline_write_summary,			/* write_summary */
> Index: trunk/gcc/ipa.c
> ===================================================================
> *** trunk.orig/gcc/ipa.c	2013-01-17 13:38:08.000000000 +0100
> --- trunk/gcc/ipa.c	2013-03-19 14:53:23.951971808 +0100
> *************** struct simple_ipa_opt_pass pass_ipa_func
> *** 957,964 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_remove_functions | TODO_dump_symtab
> !   | TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 957,963 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_remove_functions | TODO_dump_symtab /* todo_flags_finish */
>    }
>   };
>   
> *************** struct simple_ipa_opt_pass pass_ipa_free
> *** 987,993 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 986,992 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> *************** struct ipa_opt_pass_d pass_ipa_whole_pro
> *** 1026,1033 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_remove_functions | TODO_dump_symtab
> !   | TODO_ggc_collect			/* todo_flags_finish */
>    },
>    NULL,					/* generate_summary */
>    NULL,					/* write_summary */
> --- 1025,1031 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_remove_functions | TODO_dump_symtab /* todo_flags_finish */
>    },
>    NULL,					/* generate_summary */
>    NULL,					/* write_summary */
> Index: trunk/gcc/ira.c
> ===================================================================
> *** trunk.orig/gcc/ira.c	2013-02-14 15:51:57.000000000 +0100
> --- trunk/gcc/ira.c	2013-03-19 15:13:11.932087373 +0100
> *************** ira (FILE *f)
> *** 4359,4364 ****
> --- 4359,4366 ----
>     int rebuild_p;
>     bool saved_flag_caller_saves = flag_caller_saves;
>     enum ira_region saved_flag_ira_region = flag_ira_region;
> +   basic_block bb;
> +   bool need_dce;
>   
>     ira_conflicts_p = optimize > 0;
>   
> *************** ira (FILE *f)
> *** 4588,4600 ****
>         flag_caller_saves = saved_flag_caller_saves;
>         flag_ira_region = saved_flag_ira_region;
>       }
> - }
> - 
> - static void
> - do_reload (void)
> - {
> -   basic_block bb;
> -   bool need_dce;
>   
>     if (flag_ira_verbose < 10)
>       ira_dump_file = dump_file;
> --- 4590,4595 ----
> *************** do_reload (void)
> *** 4634,4641 ****
>   
>     timevar_pop (TV_RELOAD);
>   
> -   timevar_push (TV_IRA);
> - 
>     if (ira_conflicts_p && ! ira_use_lra_p)
>       {
>         ira_free (ira_spilled_reg_stack_slots);
> --- 4629,4634 ----
> *************** do_reload (void)
> *** 4693,4700 ****
>   
>     if (need_dce && optimize)
>       run_fast_dce ();
> - 
> -   timevar_pop (TV_IRA);
>   }
>   
>   /* Run the integrated register allocator.  */
> --- 4686,4691 ----
> *************** struct rtl_opt_pass pass_ira =
> *** 4721,4753 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0,                                    /* todo_flags_finish */
> !  }
> ! };
> ! 
> ! static unsigned int
> ! rest_of_handle_reload (void)
> ! {
> !   do_reload ();
> !   return 0;
> ! }
> ! 
> ! struct rtl_opt_pass pass_reload =
> ! {
> !  {
> !   RTL_PASS,
> !   "reload",                             /* name */
> !   OPTGROUP_NONE,                        /* optinfo_flags */
> !   NULL,                                 /* gate */
> !   rest_of_handle_reload,	        /* execute */
> !   NULL,                                 /* sub */
> !   NULL,                                 /* next */
> !   0,                                    /* static_pass_number */
> !   TV_RELOAD,	                        /* tv_id */
> !   0,                                    /* properties_required */
> !   0,                                    /* properties_provided */
> !   0,                                    /* properties_destroyed */
> !   0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 4712,4717 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/loop-init.c
> ===================================================================
> *** trunk.orig/gcc/loop-init.c	2013-03-19 13:18:37.000000000 +0100
> --- trunk/gcc/loop-init.c	2013-03-19 16:35:23.655956258 +0100
> *************** struct rtl_opt_pass pass_loop2 =
> *** 318,324 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 318,324 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/lower-subreg.c
> ===================================================================
> *** trunk.orig/gcc/lower-subreg.c	2013-02-25 13:37:17.000000000 +0100
> --- trunk/gcc/lower-subreg.c	2013-03-19 14:53:52.171285783 +0100
> *************** struct rtl_opt_pass pass_lower_subreg =
> *** 1699,1705 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> -   TODO_ggc_collect |
>     TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> --- 1699,1704 ----
> *************** struct rtl_opt_pass pass_lower_subreg2 =
> *** 1721,1727 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> -   TODO_ggc_collect |
>     TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> --- 1720,1725 ----
> Index: trunk/gcc/modulo-sched.c
> ===================================================================
> *** trunk.orig/gcc/modulo-sched.c	2013-01-11 10:54:42.000000000 +0100
> --- trunk/gcc/modulo-sched.c	2013-03-19 14:54:04.186419474 +0100
> *************** struct rtl_opt_pass pass_sms =
> *** 3369,3375 ****
>     0,                                    /* todo_flags_start */
>     TODO_df_finish
>       | TODO_verify_flow
> !     | TODO_verify_rtl_sharing
> !     | TODO_ggc_collect                  /* todo_flags_finish */
>    }
>   };
> --- 3369,3374 ----
>     0,                                    /* todo_flags_start */
>     TODO_df_finish
>       | TODO_verify_flow
> !     | TODO_verify_rtl_sharing           /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/postreload-gcse.c
> ===================================================================
> *** trunk.orig/gcc/postreload-gcse.c	2013-01-11 10:54:28.000000000 +0100
> --- trunk/gcc/postreload-gcse.c	2013-03-19 14:54:26.732670295 +0100
> *************** struct rtl_opt_pass pass_gcse2 =
> *** 1339,1344 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_verify_rtl_sharing
> !   | TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
>    }
>   };
> --- 1339,1344 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_verify_rtl_sharing
> !   | TODO_verify_flow                    /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/predict.c
> ===================================================================
> *** trunk.orig/gcc/predict.c	2013-03-08 15:48:08.000000000 +0100
> --- trunk/gcc/predict.c	2013-03-19 14:55:02.373064708 +0100
> *************** struct gimple_opt_pass pass_profile =
> *** 2895,2901 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect | TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> --- 2895,2901 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_strip_predic
> *** 2915,2921 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect | TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> --- 2915,2921 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/ree.c
> ===================================================================
> *** trunk.orig/gcc/ree.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/ree.c	2013-03-19 14:55:09.719145692 +0100
> *************** struct rtl_opt_pass pass_ree =
> *** 958,964 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect |
> !   TODO_verify_rtl_sharing,              /* todo_flags_finish */
>    }
>   };
> --- 958,963 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_rtl_sharing               /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/reg-stack.c
> ===================================================================
> *** trunk.orig/gcc/reg-stack.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/reg-stack.c	2013-03-19 14:55:18.145238579 +0100
> *************** struct rtl_opt_pass pass_stack_regs_run
> *** 3344,3350 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 3344,3349 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/regmove.c
> ===================================================================
> *** trunk.orig/gcc/regmove.c	2013-01-11 10:54:52.000000000 +0100
> --- trunk/gcc/regmove.c	2013-03-19 14:55:22.974291828 +0100
> *************** struct rtl_opt_pass pass_regmove =
> *** 1377,1383 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 1377,1382 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_df_finish | TODO_verify_rtl_sharing /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/reorg.c
> ===================================================================
> *** trunk.orig/gcc/reorg.c	2013-01-11 10:54:31.000000000 +0100
> --- trunk/gcc/reorg.c	2013-03-19 14:55:36.837444691 +0100
> *************** struct rtl_opt_pass pass_delay_slots =
> *** 3909,3915 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 3909,3915 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_machine_reorg =
> *** 3944,3949 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 3944,3949 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   0                                     /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/sched-rgn.c
> ===================================================================
> *** trunk.orig/gcc/sched-rgn.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/sched-rgn.c	2013-03-19 14:55:56.177657906 +0100
> *************** struct rtl_opt_pass pass_sched =
> *** 3628,3635 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
>   
> --- 3628,3634 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
>   
> *************** struct rtl_opt_pass pass_sched2 =
> *** 3650,3656 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow |
> !   TODO_ggc_collect                      /* todo_flags_finish */
>    }
>   };
> --- 3649,3654 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/store-motion.c
> ===================================================================
> *** trunk.orig/gcc/store-motion.c	2013-01-11 10:54:52.000000000 +0100
> --- trunk/gcc/store-motion.c	2013-03-19 14:56:02.297725389 +0100
> *************** struct rtl_opt_pass pass_rtl_store_motio
> *** 1249,1254 ****
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow | TODO_ggc_collect   /* todo_flags_finish */
>    }
>   };
> --- 1249,1254 ----
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_df_finish | TODO_verify_rtl_sharing |
> !   TODO_verify_flow                      /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-cfgcleanup.c
> ===================================================================
> *** trunk.orig/gcc/tree-cfgcleanup.c	2013-03-01 12:05:04.000000000 +0100
> --- trunk/gcc/tree-cfgcleanup.c	2013-03-19 16:35:23.654956247 +0100
> *************** struct gimple_opt_pass pass_merge_phi =
> *** 992,998 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect      	/* todo_flags_finish */
> !   | TODO_verify_ssa
>    }
>   };
> --- 992,997 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_verify_ssa               /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-complex.c
> ===================================================================
> *** trunk.orig/gcc/tree-complex.c	2013-01-11 10:54:24.000000000 +0100
> --- trunk/gcc/tree-complex.c	2013-03-19 14:57:00.809370589 +0100
> *************** struct gimple_opt_pass pass_lower_comple
> *** 1648,1656 ****
>     PROP_gimple_lcx,			/* properties_provided */
>     0,                       		/* properties_destroyed */
>     0,					/* todo_flags_start */
> !     TODO_ggc_collect
> !     | TODO_update_ssa
> !     | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
>   };
>   
> --- 1648,1655 ----
>     PROP_gimple_lcx,			/* properties_provided */
>     0,                       		/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_update_ssa
> !   | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_lower_comple
> *** 1679,1686 ****
>     PROP_gimple_lcx,			/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_update_ssa
> !     | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
>   };
> --- 1678,1684 ----
>     PROP_gimple_lcx,			/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_update_ssa
> !   | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-emutls.c
> ===================================================================
> *** trunk.orig/gcc/tree-emutls.c	2013-01-11 10:54:30.000000000 +0100
> --- trunk/gcc/tree-emutls.c	2013-03-19 14:57:04.606412445 +0100
> *************** ipa_lower_emutls (void)
> *** 798,804 ****
>     access_vars.release ();
>     free_varpool_node_set (tls_vars);
>   
> !   return TODO_ggc_collect | TODO_verify_all;
>   }
>   
>   /* If the target supports TLS natively, we need do nothing here.  */
> --- 798,804 ----
>     access_vars.release ();
>     free_varpool_node_set (tls_vars);
>   
> !   return TODO_verify_all;
>   }
>   
>   /* If the target supports TLS natively, we need do nothing here.  */
> Index: trunk/gcc/tree-loop-distribution.c
> ===================================================================
> *** trunk.orig/gcc/tree-loop-distribution.c	2013-03-05 10:15:39.000000000 +0100
> --- trunk/gcc/tree-loop-distribution.c	2013-03-19 14:57:10.918482053 +0100
> *************** struct gimple_opt_pass pass_loop_distrib
> *** 1585,1591 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !   | TODO_verify_ssa             /* todo_flags_finish */
>    }
>   };
> --- 1585,1590 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_verify_ssa               /* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-nrv.c
> ===================================================================
> *** trunk.orig/gcc/tree-nrv.c	2013-01-11 10:54:42.000000000 +0100
> --- trunk/gcc/tree-nrv.c	2013-03-19 14:57:22.183606284 +0100
> *************** struct gimple_opt_pass pass_nrv =
> *** 285,291 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 285,291 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/tree-pass.h
> ===================================================================
> *** trunk.orig/gcc/tree-pass.h	2013-03-07 15:55:32.000000000 +0100
> --- trunk/gcc/tree-pass.h	2013-03-19 16:35:58.666318670 +0100
> *************** struct simple_ipa_opt_pass
> *** 153,159 ****
>     (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
>   
>   /* To-do flags.  */
> - #define TODO_ggc_collect		(1 << 1)
>   #define TODO_verify_ssa			(1 << 2)
>   #define TODO_verify_flow		(1 << 3)
>   #define TODO_verify_stmts		(1 << 4)
> --- 153,158 ----
> *************** extern struct rtl_opt_pass pass_mode_swi
> *** 445,451 ****
>   extern struct rtl_opt_pass pass_sms;
>   extern struct rtl_opt_pass pass_sched;
>   extern struct rtl_opt_pass pass_ira;
> - extern struct rtl_opt_pass pass_reload;
>   extern struct rtl_opt_pass pass_clean_state;
>   extern struct rtl_opt_pass pass_branch_prob;
>   extern struct rtl_opt_pass pass_value_profile_transformations;
> --- 444,449 ----
> Index: trunk/gcc/tree-sra.c
> ===================================================================
> *** trunk.orig/gcc/tree-sra.c	2013-03-19 13:18:37.000000000 +0100
> --- trunk/gcc/tree-sra.c	2013-03-19 16:35:23.654956247 +0100
> *************** struct gimple_opt_pass pass_sra_early =
> *** 3450,3456 ****
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_update_ssa
> -   | TODO_ggc_collect
>     | TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
> --- 3450,3455 ----
> *************** struct gimple_opt_pass pass_sra =
> *** 3472,3478 ****
>     0,					/* properties_destroyed */
>     TODO_update_address_taken,		/* todo_flags_start */
>     TODO_update_ssa
> -   | TODO_ggc_collect
>     | TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
> --- 3471,3476 ----
> Index: trunk/gcc/tree-ssa-ccp.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-ccp.c	2013-02-20 16:19:27.000000000 +0100
> --- trunk/gcc/tree-ssa-ccp.c	2013-03-19 14:57:35.191749754 +0100
> *************** struct gimple_opt_pass pass_ccp =
> *** 2139,2145 ****
>     0,					/* todo_flags_start */
>     TODO_verify_ssa
>     | TODO_update_address_taken
> !   | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */
>    }
>   };
>   
> --- 2139,2145 ----
>     0,					/* todo_flags_start */
>     TODO_verify_ssa
>     | TODO_update_address_taken
> !   | TODO_verify_stmts			/* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/tree-ssa-copy.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-copy.c	2013-03-19 11:35:19.000000000 +0100
> --- trunk/gcc/tree-ssa-copy.c	2013-03-19 14:57:39.812800695 +0100
> *************** struct gimple_opt_pass pass_copy_prop =
> *** 844,850 ****
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_cleanup_cfg
> -     | TODO_ggc_collect
>       | TODO_verify_ssa
>       | TODO_update_ssa			/* todo_flags_finish */
>    }
> --- 844,849 ----
> Index: trunk/gcc/tree-ssa-dom.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-dom.c	2013-01-31 10:58:22.000000000 +0100
> --- trunk/gcc/tree-ssa-dom.c	2013-03-19 14:57:45.883867651 +0100
> *************** struct gimple_opt_pass pass_phi_only_cpr
> *** 3043,3049 ****
>     0,		                        /* properties_destroyed */
>     0,                                    /* todo_flags_start */
>     TODO_cleanup_cfg
> -     | TODO_ggc_collect
>       | TODO_verify_ssa
>       | TODO_verify_stmts
>       | TODO_update_ssa			/* todo_flags_finish */
> --- 3043,3048 ----
> Index: trunk/gcc/tree-ssa-dse.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-dse.c	2013-01-11 10:54:31.000000000 +0100
> --- trunk/gcc/tree-ssa-dse.c	2013-03-19 14:57:50.096914113 +0100
> *************** struct gimple_opt_pass pass_dse =
> *** 366,372 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> --- 366,371 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-forwprop.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-forwprop.c	2013-03-08 16:22:34.000000000 +0100
> --- trunk/gcc/tree-ssa-forwprop.c	2013-03-19 14:57:54.751965447 +0100
> *************** struct gimple_opt_pass pass_forwprop =
> *** 3153,3160 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !   | TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> --- 3153,3159 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-ifcombine.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-ifcombine.c	2013-01-11 10:54:46.000000000 +0100
> --- trunk/gcc/tree-ssa-ifcombine.c	2013-03-19 14:58:00.305026682 +0100
> *************** struct gimple_opt_pass pass_tree_ifcombi
> *** 664,671 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !   | TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> --- 664,670 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-loop.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-loop.c	2013-03-19 13:18:37.000000000 +0100
> --- trunk/gcc/tree-ssa-loop.c	2013-03-19 16:35:23.643956132 +0100
> *************** struct gimple_opt_pass pass_tree_loop =
> *** 56,63 ****
>     PROP_cfg,				/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   TODO_ggc_collect,			/* todo_flags_start */
> !   TODO_verify_ssa | TODO_ggc_collect	/* todo_flags_finish */
>    }
>   };
>   
> --- 56,63 ----
>     PROP_cfg,				/* properties_required */
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
> !   0,					/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_tree_unswitc
> *** 170,176 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect                  	/* todo_flags_finish */
>    }
>   };
>   
> --- 170,176 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_vectorize =
> *** 245,251 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 245,251 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_complete_unr
> *** 491,497 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 491,497 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_complete_unr
> *** 538,545 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_flow
> !     | TODO_ggc_collect 			/* todo_flags_finish */
>    }
>   };
>   
> --- 538,544 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_flow			/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_iv_optimize
> *** 653,659 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_update_ssa | TODO_ggc_collect	/* todo_flags_finish */
>    }
>   };
>   
> --- 652,658 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_update_ssa			/* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/tree-ssa-phiopt.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-phiopt.c	2013-03-19 13:18:37.000000000 +0100
> --- trunk/gcc/tree-ssa-phiopt.c	2013-03-19 16:35:23.654956247 +0100
> *************** struct gimple_opt_pass pass_phiopt =
> *** 2013,2020 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_verify_ssa
>       | TODO_verify_flow
>       | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
> --- 2013,2019 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa
>       | TODO_verify_flow
>       | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
> *************** struct gimple_opt_pass pass_cselim =
> *** 2042,2049 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_verify_ssa
>       | TODO_verify_flow
>       | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
> --- 2041,2047 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa
>       | TODO_verify_flow
>       | TODO_verify_stmts	 		/* todo_flags_finish */
>    }
> Index: trunk/gcc/tree-ssa-phiprop.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-phiprop.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/tree-ssa-phiprop.c	2013-03-19 14:58:50.951585259 +0100
> *************** struct gimple_opt_pass pass_phiprop =
> *** 420,427 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !   | TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> --- 420,426 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_update_ssa
>     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-pre.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-pre.c	2013-03-19 11:16:05.000000000 +0100
> --- trunk/gcc/tree-ssa-pre.c	2013-03-19 14:59:07.428766988 +0100
> *************** struct gimple_opt_pass pass_pre =
> *** 4789,4795 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     TODO_rebuild_alias,			/* todo_flags_start */
> !   TODO_ggc_collect | TODO_verify_ssa	/* todo_flags_finish */
>    }
>   };
>   
> --- 4789,4795 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     TODO_rebuild_alias,			/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
>   
> *************** struct gimple_opt_pass pass_fre =
> *** 4841,4846 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */
>    }
>   };
> --- 4841,4846 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_verify_ssa			/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-reassoc.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-reassoc.c	2013-03-07 15:56:14.000000000 +0100
> --- trunk/gcc/tree-ssa-reassoc.c	2013-03-19 14:59:14.888849246 +0100
> *************** struct gimple_opt_pass pass_reassoc =
> *** 4293,4299 ****
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_verify_ssa
> !     | TODO_verify_flow
> !     | TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
> --- 4293,4298 ----
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_verify_ssa
> !     | TODO_verify_flow			/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-sink.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-sink.c	2013-03-19 11:27:30.000000000 +0100
> --- trunk/gcc/tree-ssa-sink.c	2013-03-19 14:59:21.649923834 +0100
> *************** struct gimple_opt_pass pass_sink_code =
> *** 597,603 ****
>     0,					/* todo_flags_start */
>     TODO_update_ssa
>       | TODO_verify_ssa
> !     | TODO_verify_flow
> !     | TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
> --- 597,602 ----
>     0,					/* todo_flags_start */
>     TODO_update_ssa
>       | TODO_verify_ssa
> !     | TODO_verify_flow			/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-ssa-strlen.c
> ===================================================================
> *** trunk.orig/gcc/tree-ssa-strlen.c	2013-01-11 10:54:28.000000000 +0100
> --- trunk/gcc/tree-ssa-strlen.c	2013-03-19 14:59:39.859124663 +0100
> *************** struct gimple_opt_pass pass_strlen =
> *** 2020,2026 ****
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> --- 2020,2025 ----
>     0,				/* properties_provided */
>     0,				/* properties_destroyed */
>     0,				/* todo_flags_start */
> !   TODO_verify_ssa		/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree-switch-conversion.c
> ===================================================================
> *** trunk.orig/gcc/tree-switch-conversion.c	2013-01-11 10:54:56.000000000 +0100
> --- trunk/gcc/tree-switch-conversion.c	2013-03-19 14:59:43.423163973 +0100
> *************** struct gimple_opt_pass pass_convert_swit
> *** 1477,1483 ****
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_update_ssa 
> !   | TODO_ggc_collect | TODO_verify_ssa
>     | TODO_verify_stmts
>     | TODO_verify_flow			/* todo_flags_finish */
>    }
> --- 1477,1483 ----
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
>     TODO_update_ssa 
> !   | TODO_verify_ssa
>     | TODO_verify_stmts
>     | TODO_verify_flow			/* todo_flags_finish */
>    }
> Index: trunk/gcc/tree-vectorizer.c
> ===================================================================
> *** trunk.orig/gcc/tree-vectorizer.c	2013-03-18 09:55:09.000000000 +0100
> --- trunk/gcc/tree-vectorizer.c	2013-03-19 14:59:47.037203861 +0100
> *************** struct gimple_opt_pass pass_slp_vectoriz
> *** 214,221 ****
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_ggc_collect
> !     | TODO_verify_ssa
>       | TODO_update_ssa
>       | TODO_verify_stmts                 /* todo_flags_finish */
>    }
> --- 214,220 ----
>     0,                                    /* properties_provided */
>     0,                                    /* properties_destroyed */
>     0,                                    /* todo_flags_start */
> !   TODO_verify_ssa
>       | TODO_update_ssa
>       | TODO_verify_stmts                 /* todo_flags_finish */
>    }
> Index: trunk/gcc/tree-vrp.c
> ===================================================================
> *** trunk.orig/gcc/tree-vrp.c	2013-02-27 12:26:24.000000000 +0100
> --- trunk/gcc/tree-vrp.c	2013-03-19 14:59:52.518264325 +0100
> *************** struct gimple_opt_pass pass_vrp =
> *** 9365,9371 ****
>     TODO_cleanup_cfg
>       | TODO_update_ssa
>       | TODO_verify_ssa
> !     | TODO_verify_flow
> !     | TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
> --- 9365,9370 ----
>     TODO_cleanup_cfg
>       | TODO_update_ssa
>       | TODO_verify_ssa
> !     | TODO_verify_flow			/* todo_flags_finish */
>    }
>   };
> Index: trunk/gcc/tree.c
> ===================================================================
> *** trunk.orig/gcc/tree.c	2013-03-18 09:55:00.000000000 +0100
> --- trunk/gcc/tree.c	2013-03-19 14:59:59.297339104 +0100
> *************** struct simple_ipa_opt_pass pass_ipa_free
> *** 5296,5302 ****
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   TODO_ggc_collect			/* todo_flags_finish */
>    }
>   };
>   
> --- 5296,5302 ----
>     0,					/* properties_provided */
>     0,					/* properties_destroyed */
>     0,					/* todo_flags_start */
> !   0					/* todo_flags_finish */
>    }
>   };
>   
> Index: trunk/gcc/config/i386/i386.c
> ===================================================================
> *** trunk.orig/gcc/config/i386/i386.c	2013-03-07 13:26:01.000000000 +0100
> --- trunk/gcc/config/i386/i386.c	2013-03-19 15:14:18.103818196 +0100
> *************** static void
> *** 3930,3936 ****
>   ix86_option_override (void)
>   {
>     static struct register_pass_info insert_vzeroupper_info
> !     = { &pass_insert_vzeroupper.pass, "reload",
>   	1, PASS_POS_INSERT_AFTER
>         };
>   
> --- 3930,3936 ----
>   ix86_option_override (void)
>   {
>     static struct register_pass_info insert_vzeroupper_info
> !     = { &pass_insert_vzeroupper.pass, "ira",
>   	1, PASS_POS_INSERT_AFTER
>         };
>   
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend



More information about the Gcc-patches mailing list