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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
I'll note that there's SLP nodes with quite some redundancy:

namd557_pair_fail.cpp:113:20: note: op template: p_i_x_122 = _3 + _4;
namd557_pair_fail.cpp:113:20: note:     stmt 0 p_i_x_122 = _3 + _4;
namd557_pair_fail.cpp:113:20: note:     stmt 1 p_i_x_122 = _3 + _4;
namd557_pair_fail.cpp:113:20: note:     stmt 2 p_i_x_122 = _3 + _4;
namd557_pair_fail.cpp:113:20: note:     stmt 3 p_i_y_123 = _5 + _6;
namd557_pair_fail.cpp:113:20: note:     stmt 4 p_i_y_123 = _5 + _6;
namd557_pair_fail.cpp:113:20: note:     stmt 5 p_i_z_124 = _7 + _8;
namd557_pair_fail.cpp:113:20: note:     children 0x54bccb0 0x54bcd60

this is another side-effect of how we perform discovery.

We also have SLP sub-graph overlaps like

namd557_pair_fail.cpp:113:20: note: node 0x54bb600 (max_nunits=2, refcnt=1)
const vector(2) double
namd557_pair_fail.cpp:113:20: note: op template: _40 = *p_j_145.position.x;
namd557_pair_fail.cpp:113:20: note:     stmt 0 _40 = *p_j_145.position.x;
namd557_pair_fail.cpp:113:20: note:     stmt 1 _41 = *p_j_145.position.y;
...
namd557_pair_fail.cpp:117:20: note: node (external) 0x54bca90 (max_nunits=4,
refcnt=1) const vector(4) double
namd557_pair_fail.cpp:117:20: note:     stmt 0 _40 = *p_j_145.position.x;
namd557_pair_fail.cpp:117:20: note:     stmt 1 _41 = *p_j_145.position.y;
namd557_pair_fail.cpp:117:20: note:     stmt 2 _42 = *p_j_145.position.z;
namd557_pair_fail.cpp:117:20: note:     stmt 3 _41 = *p_j_145.position.y;

where those are from different discovery roots, but we cost them together
because they overlap but we do not attempt to merge the actual graphs.

Reply via email to