Question on higher degree polynomial in scalar evolution
Richard Biener
richard.guenther@gmail.com
Wed Feb 6 11:58:00 GMT 2013
On Wed, Feb 6, 2013 at 7:27 AM, Bin.Cheng <amker.cheng@gmail.com> wrote:
> Hi,
> Considering below program,
>
> extern int d;
>
> int func(void)
> {
> int a, b, c;
> a = 2;
> c = 5;
> do
> {
> b = a + 1;
> d = a + c;
> a = b;
> c = d;
> } while (a < 100);
>
> return 0;
> }
>
> The gimple dump before pass_scev_cprop is like:
>
> <bb 2>:
>
> <bb 3>:
> # a_1 = PHI <2(2), a_5(4)>
> # c_2 = PHI <5(2), c_6(4)>
> a_5 = a_1 + 1;
> c_6 = a_1 + c_2;
> if (a_5 != 100)
> goto <bb 4>;
> else
> goto <bb 5>;
>
> <bb 4>:
> goto <bb 3>;
>
> <bb 5>:
> # d_lsm.4_12 = PHI <c_6(3)>
> d = d_lsm.4_12;
> return 0;
>
> When analyzing c_2=PHI<5,c_6> in scev_const_prop, resolver_mixers
> returns chrec_dont_know, rather than {5, +, 2, +, 1}.
> So two questions about this:
> 1. Is it expected to handle higher degree polynomial lie this?
Yes.
> If yes,
> 2. does it mean we don't use higher degree in misc. loop optimizations in GCC?
Yes.
> I just started reading this part of code, so please correct if I
> missed something.
>
> Thanks in advance.
>
> --
> Best Regards.
More information about the Gcc
mailing list