[Bug tree-optimization/79621] Missed path isolation opportunity

law at redhat dot com gcc-bugzilla@gcc.gnu.org
Tue Feb 21 18:56:00 GMT 2017


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

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |missed-optimization
            Summary|[7 Regression] ICE in       |Missed path isolation
                   |operator[], at vec.h:732    |opportunity

--- Comment #5 from Jeffrey A. Law <law at redhat dot com> ---
;;   basic block 4, loop depth 1, count 0, freq 7500, maybe hot
;;   Invalid sum of incoming frequencies 11023, should be 7500
;;    prev block 3, next block 5, flags: (NEW, REACHABLE, IRREDUCIBLE_LOOP,
VISITED)
;;    pred:       3 [100.0%]  (FALLTHRU)
;;                5 [5.9%]  (FALSE_VALUE,EXECUTABLE)
;;                4 [75.0%]  (DFS_BACK,IRREDUCIBLE_LOOP,TRUE_VALUE,EXECUTABLE)
;;                6 [85.0%]  (DFS_BACK,TRUE_VALUE,EXECUTABLE)
  # gv_20 = PHI <1(3), 1(5), gv_16(4), 1(6)>
  # e7_11 = PHI <e7_13(D)(3), e7_13(D)(5), e7_11(4), 0(6)>
  b5.2_2 = b5;
  _3 = b5.2_2 / e7_11;
  b5 = _3;
  gv_16 = gv_20 + 1;
  if (gv_16 != 4)
    goto <bb 4>; [75.00%]
  else
    goto <bb 6>; [25.00%]

We fail to isolate the path 6->4 which would result in a division by zero. 
This is due to the 4->4 edge and the fact that duplication of bb4 could expand
the phis at the start of bb4 (causing them to move and we'd have dangling
references to them in gimple-ssa-isolate-paths.c.

Note that isolation of 6->4 should expose the PHI as a degenerate, allowing for
the propagation of e7_13 for e7_11.


More information about the Gcc-bugs mailing list