[Bug middle-end/70593] [6 Regression] Miscompilation of xen starting with r226901

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 8 09:24:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70593

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |bernds at gcc dot gnu.org,
                   |                            |law at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Conflict graph:

After sorting:
Sorted Coalesce list:
(10000, 0) c_2 <-> c_5
(10000, 0) c_2 <-> a_6
(10000, 0) c_5 <-> _7(D)

Partition map

Partition 0 (x_1(D) - 1 )
Partition 1 (c_2 - 2 )
Partition 2 (c_5 - 5 )
Partition 3 (a_6 - 6 )
Partition 4 (_7(D) - 7 )

Coalesce list: (2)c_2 & (5)c_5 [map: 1, 2] : Success -> 1
Coalesce list: (2)c_2 & (6)a_6 [map: 1, 3] : Success -> 1
Coalesce list: (5)c_2 & (7)_7(D) [map: 1, 4] : Success -> 1
After Coalescing:

Partition map

Partition 0 (x_1(D) - 1 )
Partition 1 (c_2 - 2 5 6 7 )

There should be some conflict that a_6 and c_5 can't be in the same partitions,
they are different vars, and used in different asm outputs.  But guess what
confuses the coalesce handling is that that have matching constraint and the
same value in those.

Perhaps just build_ssa_conflict_graph isn't ready to handle statements with
multiple SSA_OP_DEFs (where we need to arrange for conflicts in between the
partitions in different outputs)?


More information about the Gcc-bugs mailing list