From 963acd6f89ae458cfbddcba67bd0d7530a71feec Mon Sep 17 00:00:00 2001 From: Kenneth Zadeck Date: Tue, 22 Jan 2008 13:57:01 +0000 Subject: re PR tree-optimization/26854 (Inordinate compile times on large routines) 2008-01-22 Kenneth Zadeck PR rtl-optimization/26854 PR rtl-optimization/34400 PR rtl-optimization/34884 * ddg.c (create_ddg_dep_from_intra_loop_link): Use DF_RD->gen. * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted (df_rd_bb_info.expanded_lr_out): Deleted * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag. * loop_iv.c (iv_analysis_loop_init): Ditto. * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n, df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free): Removed code to allocate, initialize or free expanded_lr_out. (df_rd_bb_local_compute_process_def): Restructured to make more understandable. (df_rd_confluence_n): Removed code to no apply invalidate_by_call sets if the sets are being trimmed. From-SVN: r131719 --- gcc/ddg.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gcc/ddg.c') diff --git a/gcc/ddg.c b/gcc/ddg.c index c67b6c2..14b1874 100644 --- a/gcc/ddg.c +++ b/gcc/ddg.c @@ -184,13 +184,12 @@ create_ddg_dep_from_intra_loop_link (ddg_ptr g, ddg_node_ptr src_node, { int regno = REGNO (SET_DEST (set)); struct df_ref *first_def; - struct df_ref *last_def; + struct df_rd_bb_info *bb_info = DF_RD_BB_INFO (g->bb); first_def = df_bb_regno_first_def_find (g->bb, regno); gcc_assert (first_def); - last_def = df_bb_regno_last_def_find (g->bb, regno); - if (first_def == last_def) + if (bitmap_bit_p (bb_info->gen, first_def->id)) return; } } -- cgit v1.1