This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: patch to solve PR37859


Vladimir Makarov wrote:
Adam Nemet wrote:
Vlad,

Thanks for patch. I think I understand the difference. What you're saying is
that the reason the change on r719 does not reach r696 because the loop with
r719 flows directly into an adjacent loop instead of the parent loop.


I will bootstrap the patch on mips64 overnight and report back.

There are few comments below FWIW.

Here is the modified version of the patch. I also decided to use a new attribute for ira_loop_tree_node because calculation of it for each store is a bit more expensive.

2008-11-14 Vladimir Makarov <vmakarov@redhat.com>

   PR bootstrap/37859
   * ira-int.h (struct ira_loop_tree_node): New member
   entered_from_non_parent_p.

* ira-color.c (print_loop_title): Print loop bbs.

* ira-emit.c (entered_from_non_parent_p,
setup_entered_from_non_parent_p): New functions.
(not_modified_p): Rename to store_can_be_removed_p. Check there
is no side entries.
(generate_edge_moves): Use store_can_be_removed_p instead of
not_modified_p.
(ira_emit): Call setup_entered_from_non_parent_p.
* ira-build.c (copy_info_to_removed_store_destinations):
Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
(ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
update all accumulated attributes.
OK.

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]