diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-27 16:24:19 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-27 16:24:19 +0000 |
commit | 1e204c7444fe8a80a1183349ccf75766c144d626 (patch) | |
tree | 1730ad833e4ff685d5139cd97e10380194193470 /gcc/ira-int.h | |
parent | e3fe8cc4a45fc1741723768cc784138d89ccf698 (diff) | |
download | gcc-1e204c7444fe8a80a1183349ccf75766c144d626.tar.gz |
2008-10-27 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/37813
* ira-conflicts.c (process_regs_for_copy): Remove class subset
check.
* ira-int.h (ira_hard_regno_cover_class): New.
* ira-lives.c (mark_reg_live, mark_reg_dead,
process_bb_node_lives): Use ira_hard_regno_cover_class.
* ira.c (reg_class ira_hard_regno_cover_class): New global
variable.
(setup_hard_regno_cover_class): New function.
(ira_init): Call setup_hard_regno_cover_class.
* ira-costs.c (cost_class_nums): Add comment.
(find_allocno_class_costs): Initiate cost_class_nums.
(setup_allocno_cover_class_and_costs): Check cost_class_nums.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141384 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-int.h')
-rw-r--r-- | gcc/ira-int.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ira-int.h b/gcc/ira-int.h index fc18cdf9a0d..dafcfb7ec46 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -547,6 +547,11 @@ extern int ira_reg_cost, ira_mem_cost; extern int ira_load_cost, ira_store_cost, ira_shuffle_cost; extern int ira_move_loops_num, ira_additional_jumps_num; +/* Map: hard register number -> cover class it belongs to. If the + corresponding class is NO_REGS, the hard register is not available + for allocation. */ +extern enum reg_class ira_hard_regno_cover_class[FIRST_PSEUDO_REGISTER]; + /* Map: register class x machine mode -> number of hard registers of given class needed to store value of given mode. If the number for some hard-registers of the register class is different, the size |