diff options
author | Jeff Law <law@redhat.com> | 2010-05-13 08:46:29 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2010-05-13 08:46:29 -0600 |
commit | e4f36d3117acafcd1a5724d7e915101267b957e4 (patch) | |
tree | d639ecc05dac2aceaa0d49d0c1a67fc5626d3c2a /gcc | |
parent | 1fcebc1100ac1071632480c742df280649fab312 (diff) | |
download | gcc-e4f36d3117acafcd1a5724d7e915101267b957e4.zip gcc-e4f36d3117acafcd1a5724d7e915101267b957e4.tar.gz gcc-e4f36d3117acafcd1a5724d7e915101267b957e4.tar.bz2 |
ira-conflicts.c (print_allocno_conflicts): New function broken out from...
* ira-conflicts.c (print_allocno_conflicts): New function broken out
from...
(print_conflicts): Call print_allocno_conflicts.
From-SVN: r159368
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ira-conflicts.c | 104 |
2 files changed, 60 insertions, 50 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 23187cf..3c178f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-05-13 Jeff Law <law@redhat.com> + + * ira-conflicts.c (print_allocno_conflicts): New function broken out + from... + (print_conflicts): Call print_allocno_conflicts. + 2010-05-13 Jakub Jelinek <jakub@redhat.com> PR debug/44104 diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c index 58fa4ad..70100ac 100644 --- a/gcc/ira-conflicts.c +++ b/gcc/ira-conflicts.c @@ -684,68 +684,72 @@ print_hard_reg_set (FILE *file, const char *title, HARD_REG_SET set) putc ('\n', file); } -/* Print information about allocno or only regno (if REG_P) conflicts - to FILE. */ static void -print_conflicts (FILE *file, bool reg_p) +print_allocno_conflicts (FILE * file, bool reg_p, ira_allocno_t a) { - ira_allocno_t a; - ira_allocno_iterator ai; HARD_REG_SET conflicting_hard_regs; + ira_allocno_t conflict_a; + ira_allocno_conflict_iterator aci; + basic_block bb; - FOR_EACH_ALLOCNO (a, ai) + if (reg_p) + fprintf (file, ";; r%d", ALLOCNO_REGNO (a)); + else { - ira_allocno_t conflict_a; - ira_allocno_conflict_iterator aci; - basic_block bb; - - if (reg_p) - fprintf (file, ";; r%d", ALLOCNO_REGNO (a)); + fprintf (file, ";; a%d(r%d,", ALLOCNO_NUM (a), ALLOCNO_REGNO (a)); + if ((bb = ALLOCNO_LOOP_TREE_NODE (a)->bb) != NULL) + fprintf (file, "b%d", bb->index); else - { - fprintf (file, ";; a%d(r%d,", ALLOCNO_NUM (a), ALLOCNO_REGNO (a)); - if ((bb = ALLOCNO_LOOP_TREE_NODE (a)->bb) != NULL) - fprintf (file, "b%d", bb->index); - else - fprintf (file, "l%d", ALLOCNO_LOOP_TREE_NODE (a)->loop->num); - putc (')', file); - } - fputs (" conflicts:", file); - if (ALLOCNO_CONFLICT_ALLOCNO_ARRAY (a) != NULL) - FOR_EACH_ALLOCNO_CONFLICT (a, conflict_a, aci) - { - if (reg_p) - fprintf (file, " r%d,", ALLOCNO_REGNO (conflict_a)); + fprintf (file, "l%d", ALLOCNO_LOOP_TREE_NODE (a)->loop->num); + putc (')', file); + } + fputs (" conflicts:", file); + if (ALLOCNO_CONFLICT_ALLOCNO_ARRAY (a) != NULL) + FOR_EACH_ALLOCNO_CONFLICT (a, conflict_a, aci) + { + if (reg_p) + fprintf (file, " r%d,", ALLOCNO_REGNO (conflict_a)); + else + { + fprintf (file, " a%d(r%d,", ALLOCNO_NUM (conflict_a), + ALLOCNO_REGNO (conflict_a)); + if ((bb = ALLOCNO_LOOP_TREE_NODE (conflict_a)->bb) != NULL) + fprintf (file, "b%d)", bb->index); else - { - fprintf (file, " a%d(r%d,", ALLOCNO_NUM (conflict_a), - ALLOCNO_REGNO (conflict_a)); - if ((bb = ALLOCNO_LOOP_TREE_NODE (conflict_a)->bb) != NULL) - fprintf (file, "b%d)", bb->index); - else - fprintf (file, "l%d)", - ALLOCNO_LOOP_TREE_NODE (conflict_a)->loop->num); - } + fprintf (file, "l%d)", + ALLOCNO_LOOP_TREE_NODE (conflict_a)->loop->num); } - COPY_HARD_REG_SET (conflicting_hard_regs, - ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a)); - AND_COMPL_HARD_REG_SET (conflicting_hard_regs, ira_no_alloc_regs); - AND_HARD_REG_SET (conflicting_hard_regs, - reg_class_contents[ALLOCNO_COVER_CLASS (a)]); - print_hard_reg_set (file, "\n;; total conflict hard regs:", - conflicting_hard_regs); - COPY_HARD_REG_SET (conflicting_hard_regs, - ALLOCNO_CONFLICT_HARD_REGS (a)); - AND_COMPL_HARD_REG_SET (conflicting_hard_regs, ira_no_alloc_regs); - AND_HARD_REG_SET (conflicting_hard_regs, - reg_class_contents[ALLOCNO_COVER_CLASS (a)]); - print_hard_reg_set (file, ";; conflict hard regs:", - conflicting_hard_regs); - } + } + COPY_HARD_REG_SET (conflicting_hard_regs, + ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a)); + AND_COMPL_HARD_REG_SET (conflicting_hard_regs, ira_no_alloc_regs); + AND_HARD_REG_SET (conflicting_hard_regs, + reg_class_contents[ALLOCNO_COVER_CLASS (a)]); + print_hard_reg_set (file, "\n;; total conflict hard regs:", + conflicting_hard_regs); + COPY_HARD_REG_SET (conflicting_hard_regs, + ALLOCNO_CONFLICT_HARD_REGS (a)); + AND_COMPL_HARD_REG_SET (conflicting_hard_regs, ira_no_alloc_regs); + AND_HARD_REG_SET (conflicting_hard_regs, + reg_class_contents[ALLOCNO_COVER_CLASS (a)]); + print_hard_reg_set (file, ";; conflict hard regs:", + conflicting_hard_regs); putc ('\n', file); } /* Print information about allocno or only regno (if REG_P) conflicts + to FILE. */ +static void +print_conflicts (FILE *file, bool reg_p) +{ + ira_allocno_t a; + ira_allocno_iterator ai; + + FOR_EACH_ALLOCNO (a, ai) + print_allocno_conflicts (file, reg_p, a); +} + +/* Print information about allocno or only regno (if REG_P) conflicts to stderr. */ void ira_debug_conflicts (bool reg_p) |