This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi,As Richard pointed out in PR77677, TREE_OVERFLOW is not cleared in IPA-VRP. There are three places in which we set value_range:
1. When value ranges are obtained from SSA_NAME with get_range_info with wide_int_to_tree. In this case we will not have TREE_OVERFLOW set.
2. When we vrp_meet/vrp_intersect_ranges two ranges. It does int_const_binop but AFAIK this does not set TREE_OVERFLOW.
3. When we create range from constant. This is the problem bit and we need to clear TREE_OVERFLOW here.
Attached patch clears the TREE_OVERFLOW in 3rd case. Bootstrap and regression testing are ongoing. Is this OK if there is no regression.
Thanks, Kugan gcc/ChangeLog: 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> PR ipa/77677 * ipa-cp.c (propagate_vr_accross_jump_function):Drop TREE_OVERFLOW from constant while creating value range. gcc/testsuite/ChangeLog: 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org> PR ipa/77677 * gcc.dg/torture/pr77677.c: New test.
Attachment:
p.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |