[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
--- Comment #7 from vmakarov at gcc dot gnu dot org 2009-01-09 17:52 --- Subject: Bug 38495 Author: vmakarov Date: Fri Jan 9 17:52:03 2009 New Revision: 143214 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=143214 Log: 2008-01-09 Vladimir Makarov vmaka...@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. Modified: trunk/gcc/ChangeLog trunk/gcc/ira-emit.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495
[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
--- Comment #8 from jakub at gcc dot gnu dot org 2009-01-09 17:58 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495
[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495
[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
--- Comment #6 from hjl dot tools at gmail dot com 2008-12-21 15:14 --- A patch is posted at http://gcc.gnu.org/ml/gcc-patches/2008-12/msg01094.html -- hjl dot tools at gmail dot com changed: What|Removed |Added URL||http://gcc.gnu.org/ml/gcc- ||patches/2008- ||12/msg01094.html http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495
[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
--- Comment #5 from vmakarov at redhat dot com 2008-12-19 23:30 --- Eric, thanks for analysis. It saved a lot of my time. The problem was in wrong final live ranges of a379r452 therefore the conflicts was not recognized and the pseudos were coalesced. One pseudo is a temporary pseudo used for breaking register shuffle cycle (it is actually a rare case) on a CFG edge (loop exit). And another pseudo is destination of removed store insn on the loop exit. In normal case it should not conflict with the temporary pseudo because the temporary lives only on the edge and another pseudo lives only after the edge destination. But it should conflict with the temporary in this case because we removed the store and another pseudo lives through all loop. The suspicious code looks like EXECUTE_IF_SET_IN_BITMAP (live_through, FIRST_PSEUDO_REGISTER, regno, bi) { a = node-regno_allocno_map[regno]; if (ALLOCNO_MEM_OPTIMIZED_DEST (a) == NULL) { ALLOCNO_LIVE_RANGES (a) = ira_create_allocno_live_range (a, start, ira_max_point - 1, ALLOCNO_LIVE_RANGES (a)); if (internal_flag_ira_verbose 2 ira_dump_file != NULL) fprintf (ira_dump_file, Adding range [%d..%d] to live through allocno a%dr%d\n, start, ira_max_point - 1, ALLOCNO_NUM (a), REGNO (ALLOCNO_REG (a))); } I'll send a patch solving the problem after its testing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495
[Bug rtl-optimization/38495] [4.4 Regression] ACATS tests cxa4004 cxa4005 cxa4026 fail
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Keywords||ra Summary|ACATS tests cxa4004 cxa4005 |[4.4 Regression] ACATS tests |cxa4026 fail|cxa4004 cxa4005 cxa4026 fail Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38495