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)?