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