> On Mar 1, 2019, at 1:25 PM, Richard Biener <richard.guent...@gmail.com> wrote: > > On March 1, 2019 6:49:20 PM GMT+01:00, Qing Zhao <qing.z...@oracle.com > <mailto:qing.z...@oracle.com>> wrote: >> Jeff, >> >> thanks a lot for the reply. >> >> this is really helpful. >> >> I double checked the dumped intermediate file for pass “dom3", and >> located the following for _152: >> >> ****BEFORE the pass “dom3”, there is no _152, the corresponding Block >> looks like: >> >> <bb 4> [local count: 12992277]: >> _98 = (int) ufcMSR_52(D); >> k_105 = (sword) ufcMSR_52(D); >> i_49 = _98 > 0 ? k_105 : 0; >> >> ***During the pass “doms”, _152 is generated as following: >> >> Optimizing block #4 >> …. >> Visiting statement: >> i_49 = _98 > 0 ? k_105 : 0; >> Meeting >> [0, 65535] >> and >> [0, 0] >> to >> [0, 65535] >> Intersecting >> [0, 65535] >> and >> [0, 65535] >> to >> [0, 65535] >> Optimizing statement i_49 = _98 > 0 ? k_105 : 0; >> Replaced 'k_105' with variable '_98' >> gimple_simplified to _152 = MAX_EXPR <_98, 0>; >> i_49 = _152; >> Folded to: i_49 = _152; >> LKUP STMT i_49 = _152 >> ==== ASGN i_49 = _152 >> >> then bb 4 becomes: >> >> <bb 4> [local count: 12992277]: >> _98 = (int) ufcMSR_52(D); >> k_105 = _98; >> _152 = MAX_EXPR <_98, 0>; >> i_49 = _152; >> >> and all the i_49 are replaced with _152. >> >> However, the value range info for _152 doesnot reflect the one for >> i_49, it keeps as UNDEFINED. >> >> is this the root problem? > > It looks like DOM fails to visit stmts generated by simplification. Can you > open a bug report with a testcase?
The problem is, It took me quite some time in order to come up with a small and independent testcase for this problem, a little bit change made the error disappear. do you have any suggestion on this? or can you give me some hint on how to fix this in DOM? then I can try the fix on my side? Thanks a lot. Qing > > Richard. >