From 46dc0789fed233da1561e6c2ee1a4a7ab82e9fd4 Mon Sep 17 00:00:00 2001 From: Mircea Namolaru Date: Tue, 28 Aug 2007 06:52:16 +0000 Subject: Modulo-scheduling improvements. Patch 2 of 2 Co-Authored-By: Andrey Belevantsev Co-Authored-By: Revital Eres Co-Authored-By: Vladimir Yanovsky From-SVN: r127848 --- gcc/ddg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gcc/ddg.c') diff --git a/gcc/ddg.c b/gcc/ddg.c index 295811d..f1ec8fd 100644 --- a/gcc/ddg.c +++ b/gcc/ddg.c @@ -176,13 +176,17 @@ create_ddg_dep_from_intra_loop_link (ddg_ptr g, ddg_node_ptr src_node, rtx set; set = single_set (dest_node->insn); - if (set) + /* TODO: Handle registers that REG_P is not true for them, i.e. + subregs and special registers. */ + if (set && REG_P (SET_DEST (set))) { int regno = REGNO (SET_DEST (set)); - struct df_ref *first_def = - df_bb_regno_first_def_find (g->bb, regno); + struct df_ref *first_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); + if (bitmap_bit_p (bb_info->gen, first_def->id)) return; } -- cgit v1.1