This is the mail archive of the gcc-bugs@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]

[Bug gcov-profile/50127] [4.7 regression] g++.dg/tree-prof/partition2.C FAILs on several targets


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50127

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-06 13:00:28 UTC ---
Created attachment 26256
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26256
gcc47-pr50127.patch

Untested fix.

The problem was that partition_hot_cold_basic_blocks was leaving garbage in
some bb->aux fields, but subsequent optimization passes and/or df_analyze here
assume that each pass cleans that up after itself.  DF was storing age in
bb->aux as ptrdiff_t values, and when some bb->aux contained pointer to another
bb, if it was in the upper half of address space (for 32-bit hosts), it was
treated as negative age, while if in the lower half of AS (for 64-bit hosts),
it was just assumed to be very huge age.


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