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

            Bug ID: 126103
           Summary: ranger: incoming range to a threading path is ignored
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: aldyh at gcc dot gnu.org
                CC: amacleod at redhat dot com
        Depends on: 125986
            Blocks: 126010
  Target Milestone: ---

Created attachment 64928
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=64928&action=edit
instrumentation for DOM to reproduce bug

gimple-isel.ii, a preprocessed file from a stage1 bootstrap has a threading
candidate that the path ranger cannot solve on its own.

To reproduce, you must apply both the instrumentation patch, and the proposed
patch Andrew provided for PR125986.  Both are included in this PR.

Use -O2 -fdump-tree-dom-all —-param=threader-debug=all

Threading path candidate is 367->344->345.

Even though the only block leading into the threading path is:

if (_890 == 0B)
    goto <bb 349>; [30.00%]
  else
    goto <bb 367>; [70.00%]

...ranger cannot fold:

>>>>>>STMT: if (_890 == 0B)

DOM has no problem correctly folding this as false.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125986
[Bug 125986] ranger: incoming relations to a threading path are ignored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126010
[Bug 126010] [meta-bug] Remove DOM

Reply via email to