gcc/
commit18d9a6142b44d7a83ee7684d07a9b722cdc7bbbc
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Sep 2014 07:38:12 +0000 (22 07:38 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Sep 2014 07:38:12 +0000 (22 07:38 +0000)
treec22e285369e1c4471ca4321ef553f4227182b181
parentb46f680981be1a5455fea46342cc0cc6f6073daa
gcc/
* hard-reg-set.h: Include hash-table.h.
(target_hard_regs): Add a finalize method and a x_simplifiable_subregs
field.
* target-globals.c (target_globals::~target_globals): Call
hard_regs->finalize.
* rtl.h (subreg_shape): New structure.
(shape_of_subreg): New function.
(simplifiable_subregs): Declare.
* reginfo.c (simplifiable_subreg): New structure.
(simplifiable_subregs_hasher): Likewise.
(simplifiable_subregs): New function.
(invalid_mode_changes): Delete.
(alid_mode_changes, valid_mode_changes_obstack): New variables.
(record_subregs_of_mode): Remove subregs_of_mode parameter.
Record valid mode changes in valid_mode_changes.
(find_subregs_of_mode): Remove subregs_of_mode parameter.
Update calls to record_subregs_of_mode.
(init_subregs_of_mode): Remove invalid_mode_changes and bitmap
handling.  Initialize new variables.  Update call to
find_subregs_of_mode.
(invalid_mode_change_p): Check new variables instead of
invalid_mode_changes.
(finish_subregs_of_mode): Finalize new variables instead of
invalid_mode_changes.
(target_hard_regs::finalize): New function.
* ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
even when CLASS_CANNOT_CHANGE_MODE is undefined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215449 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/hard-reg-set.h
gcc/ira-costs.c
gcc/reginfo.c
gcc/rtl.h
gcc/target-globals.c