Mercurial > hg > CbC > CbC_gcc
diff gcc/ira-build.c @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children | b7f97abdc517 |
line wrap: on
line diff
--- a/gcc/ira-build.c Sun Feb 07 18:28:00 2010 +0900 +++ b/gcc/ira-build.c Fri Feb 12 23:39:51 2010 +0900 @@ -58,7 +58,7 @@ array. */ ira_loop_tree_node_t ira_loop_nodes; -/* Map regno -> allocnos with given regno (see comments for +/* Map regno -> allocnos with given regno (see comments for allocno member `next_regno_allocno'). */ ira_allocno_t *ira_regno_allocno_map; @@ -468,7 +468,7 @@ ALLOCNO_CONFLICT_HARD_REG_COSTS (a) = NULL; ALLOCNO_UPDATED_HARD_REG_COSTS (a) = NULL; ALLOCNO_UPDATED_CONFLICT_HARD_REG_COSTS (a) = NULL; - ALLOCNO_LEFT_CONFLICTS_NUM (a) = -1; + ALLOCNO_LEFT_CONFLICTS_SIZE (a) = -1; ALLOCNO_COVER_CLASS (a) = NO_REGS; ALLOCNO_UPDATED_COVER_CLASS_COST (a) = 0; ALLOCNO_COVER_CLASS_COST (a) = 0; @@ -848,7 +848,7 @@ /* Merge ranges R1 and R2 and returns the result. The function maintains the order of ranges and tries to minimize number of the result ranges. */ -allocno_live_range_t +allocno_live_range_t ira_merge_allocno_live_ranges (allocno_live_range_t r1, allocno_live_range_t r2) { @@ -1379,7 +1379,7 @@ if (preorder_func != NULL) (*preorder_func) (loop_node); - + if (bb_p) for (subloop_node = loop_node->children; subloop_node != NULL; @@ -1388,11 +1388,11 @@ { if (preorder_func != NULL) (*preorder_func) (subloop_node); - + if (postorder_func != NULL) (*postorder_func) (subloop_node); } - + for (subloop_node = loop_node->subloops; subloop_node != NULL; subloop_node = subloop_node->subloop_next) @@ -1434,7 +1434,7 @@ if ((a = ira_curr_regno_allocno_map[regno]) == NULL) a = ira_create_allocno (regno, false, ira_curr_loop_tree_node); - + ALLOCNO_NREFS (a)++; ALLOCNO_FREQ (a) += REG_FREQ_FROM_BB (curr_bb); if (output_p) @@ -1458,7 +1458,7 @@ create_insn_allocnos (XEXP (x, 0), false); return; } - else if (code == PRE_DEC || code == POST_DEC || code == PRE_INC || + else if (code == PRE_DEC || code == POST_DEC || code == PRE_INC || code == POST_INC || code == POST_MODIFY || code == PRE_MODIFY) { create_insn_allocnos (XEXP (x, 0), true); @@ -1491,7 +1491,7 @@ curr_bb = bb = bb_node->bb; ira_assert (bb != NULL); FOR_BB_INSNS_REVERSE (bb, insn) - if (INSN_P (insn)) + if (NONDEBUG_INSN_P (insn)) create_insn_allocnos (PATTERN (insn), false); /* It might be a allocno living through from one subloop to another. */ @@ -1549,7 +1549,7 @@ FOR_EACH_EDGE (e, ei, loop_node->loop->header->preds) if (e->src != loop_node->loop->latch) create_loop_allocnos (e); - + edges = get_loop_exit_edges (loop_node->loop); for (i = 0; VEC_iterate (edge, edges, i, e); i++) create_loop_allocnos (e); @@ -1663,10 +1663,10 @@ { int i; enum reg_class cover_class; - + if (node->bb != NULL) return false; - + for (i = 0; i < ira_reg_class_cover_size; i++) { cover_class = ira_reg_class_cover[i]; @@ -1873,7 +1873,7 @@ a = ALLOCNO_NEXT_REGNO_ALLOCNO (a)) regno_allocnos[n++] = a; ira_assert (n > 0); - qsort (regno_allocnos, n, sizeof (ira_allocno_t), + qsort (regno_allocnos, n, sizeof (ira_allocno_t), regno_allocno_order_compare_func); for (i = 1; i < n; i++) ALLOCNO_NEXT_REGNO_ALLOCNO (regno_allocnos[i - 1]) = regno_allocnos[i]; @@ -2302,7 +2302,7 @@ [first_not_finished])) first_not_finished++; min = first_not_finished; - } + } if (min == i) /* We could increase min further in this case but it is good enough. */ @@ -2394,7 +2394,8 @@ static bool copy_info_to_removed_store_destinations (int regno) { - ira_allocno_t a, parent_a; + ira_allocno_t a; + ira_allocno_t parent_a = NULL; ira_loop_tree_node_t parent; allocno_live_range_t r; bool merged_p; @@ -2511,7 +2512,7 @@ continue; } ira_assert (ALLOCNO_CAP_MEMBER (parent_a) == NULL); - + if (ALLOCNO_MEM_OPTIMIZED_DEST (a) != NULL) mem_dest_p = true; if (REGNO (ALLOCNO_REG (a)) == REGNO (ALLOCNO_REG (parent_a))) @@ -2622,7 +2623,7 @@ ira_add_allocno_conflict (a, live_a); } } - + for (r = ira_finish_point_ranges[i]; r != NULL; r = r->finish_next) sparseset_clear_bit (allocnos_live, ALLOCNO_NUM (r->allocno)); }