re PR rtl-optimization/38495 (ACATS tests cxa4004 cxa4005 cxa4026 fail)
2008-01-09 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/38495 * ira-emit.c (print_move_list, ira_debug_move_list): New functions. (add_range_and_copies_from_move_list): Print all added ranges. Add ranges to memory optimized destination. From-SVN: r143214
This commit is contained in:
parent
32dbfb3c17
commit
a174c19c0f
@ -1,3 +1,11 @@
|
|||||||
|
2008-01-09 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/38495
|
||||||
|
* ira-emit.c (print_move_list, ira_debug_move_list): New
|
||||||
|
functions.
|
||||||
|
(add_range_and_copies_from_move_list): Print all added ranges.
|
||||||
|
Add ranges to memory optimized destination.
|
||||||
|
|
||||||
2009-01-09 Jakub Jelinek <jakub@redhat.com>
|
2009-01-09 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/38686
|
PR target/38686
|
||||||
|
@ -129,6 +129,26 @@ eq_move_lists_p (move_t list1, move_t list2)
|
|||||||
return list1 == list2;
|
return list1 == list2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Print move list LIST into file F. */
|
||||||
|
static void
|
||||||
|
print_move_list (FILE *f, move_t list)
|
||||||
|
{
|
||||||
|
for (; list != NULL; list = list->next)
|
||||||
|
fprintf (f, " a%dr%d->a%dr%d",
|
||||||
|
ALLOCNO_NUM (list->from), ALLOCNO_REGNO (list->from),
|
||||||
|
ALLOCNO_NUM (list->to), ALLOCNO_REGNO (list->to));
|
||||||
|
fprintf (f, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void ira_debug_move_list (move_t list);
|
||||||
|
|
||||||
|
/* Print move list LIST into stderr. */
|
||||||
|
void
|
||||||
|
ira_debug_move_list (move_t list)
|
||||||
|
{
|
||||||
|
print_move_list (stderr, list);
|
||||||
|
}
|
||||||
|
|
||||||
/* This recursive function changes pseudo-registers in *LOC if it is
|
/* This recursive function changes pseudo-registers in *LOC if it is
|
||||||
necessary. The function returns TRUE if a change was done. */
|
necessary. The function returns TRUE if a change was done. */
|
||||||
static bool
|
static bool
|
||||||
@ -945,7 +965,14 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node,
|
|||||||
REGNO (ALLOCNO_REG (from)));
|
REGNO (ALLOCNO_REG (from)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
r->finish = ira_max_point;
|
{
|
||||||
|
r->finish = ira_max_point;
|
||||||
|
if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
|
||||||
|
fprintf (ira_dump_file,
|
||||||
|
" Adding range [%d..%d] to allocno a%dr%d\n",
|
||||||
|
r->start, ira_max_point, ALLOCNO_NUM (from),
|
||||||
|
REGNO (ALLOCNO_REG (from)));
|
||||||
|
}
|
||||||
ira_max_point++;
|
ira_max_point++;
|
||||||
ALLOCNO_LIVE_RANGES (to)
|
ALLOCNO_LIVE_RANGES (to)
|
||||||
= ira_create_allocno_live_range (to, ira_max_point, -1,
|
= ira_create_allocno_live_range (to, ira_max_point, -1,
|
||||||
@ -968,18 +995,18 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node,
|
|||||||
EXECUTE_IF_SET_IN_BITMAP (live_through, FIRST_PSEUDO_REGISTER, regno, bi)
|
EXECUTE_IF_SET_IN_BITMAP (live_through, FIRST_PSEUDO_REGISTER, regno, bi)
|
||||||
{
|
{
|
||||||
a = node->regno_allocno_map[regno];
|
a = node->regno_allocno_map[regno];
|
||||||
if (ALLOCNO_MEM_OPTIMIZED_DEST (a) == NULL)
|
if ((to = ALLOCNO_MEM_OPTIMIZED_DEST (a)) != NULL)
|
||||||
{
|
a = to;
|
||||||
ALLOCNO_LIVE_RANGES (a)
|
ALLOCNO_LIVE_RANGES (a)
|
||||||
= ira_create_allocno_live_range (a, start, ira_max_point - 1,
|
= ira_create_allocno_live_range (a, start, ira_max_point - 1,
|
||||||
ALLOCNO_LIVE_RANGES (a));
|
ALLOCNO_LIVE_RANGES (a));
|
||||||
if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
|
if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
|
||||||
fprintf
|
fprintf
|
||||||
(ira_dump_file,
|
(ira_dump_file,
|
||||||
" Adding range [%d..%d] to live through allocno a%dr%d\n",
|
" Adding range [%d..%d] to live through %s allocno a%dr%d\n",
|
||||||
start, ira_max_point - 1, ALLOCNO_NUM (a),
|
start, ira_max_point - 1,
|
||||||
REGNO (ALLOCNO_REG (a)));
|
to != NULL ? "upper level" : "",
|
||||||
}
|
ALLOCNO_NUM (a), REGNO (ALLOCNO_REG (a)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user