diff options
author | Kenneth Zadeck <zadeck@naturalbridge.com> | 2008-01-22 13:57:01 +0000 |
---|---|---|
committer | Kenneth Zadeck <zadeck@gcc.gnu.org> | 2008-01-22 13:57:01 +0000 |
commit | 963acd6f89ae458cfbddcba67bd0d7530a71feec (patch) | |
tree | ebfe2c3b0f60689e131c3a7a378e9b4a90660f8e /gcc/ddg.c | |
parent | 115e6e5572d2fe0fddf7ed3bba2fa692461e8a0a (diff) | |
download | gcc-963acd6f89ae458cfbddcba67bd0d7530a71feec.zip gcc-963acd6f89ae458cfbddcba67bd0d7530a71feec.tar.gz gcc-963acd6f89ae458cfbddcba67bd0d7530a71feec.tar.bz2 |
re PR tree-optimization/26854 (Inordinate compile times on large routines)
2008-01-22 Kenneth Zadeck <zadeck@naturalbridge.com>
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
Diffstat (limited to 'gcc/ddg.c')
-rw-r--r-- | gcc/ddg.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -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; } } |