[PATCH][RFC] Remove TODO_ggc_collect, collect unconditionally

Richard Biener rguenther@suse.de
Tue Mar 19 15:37:00 GMT 2013


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?

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
        };
  



More information about the Gcc-patches mailing list