[PATCH PR68021]Set ratio to 1 when computing the value of biv cand by itself

Bin Cheng Bin.Cheng@arm.com
Wed Feb 10 11:34:00 GMT 2016


Hi,
This is another way to fix PR68021, and I think it's the least intrusive way.  The issue is triggered in a special case in which cand is a original biv, and use denotes the value of the biv itself.  In this case, the use is added specifically for the original biv, as a result, get_computation_aff isn't called for the <cand, use> pair before rewriting the use.  It is possible that constant_multiple_of/operand_equal_q could fail because of inconsistent fold behavior.  The fold behavior is fully described in PR68021.
This patch fixes IVOPT part of issue by setting ratio to 1, because it is known that the use has the value of the biv cand.

Bootstrap and test on x86_64 and aarch64.  Is it OK if no failures?

Thanks,
bin

2016-02-09  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68021
	* tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
	when computing the value of biv cand by itself.

gcc/testsuite/ChangeLog
2016-02-09  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/68021
	* gcc.dg/tree-ssa/pr68021.c: New test.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pr68021-20160209.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160210/149dd8f2/attachment.txt>


More information about the Gcc-patches mailing list