[GSoC] constant-folding pattern not fired
Richard Biener
richard.guenther@gmail.com
Mon Aug 18 11:08:00 GMT 2014
On Sun, Aug 17, 2014 at 9:50 PM, Prathamesh Kulkarni
<bilbotheelffriend@gmail.com> wrote:
> Hi,
> Apparently this pattern is not getting fired (even in isolation).
>
> /* x % 1 -> 0 */
> (simplify
> (trunc_mod @0 integer_onep)
> { build_zero_cst (type); })
>
> I tried with this test-case:
> int f(int x)
> {
> int t1 = 1;
> int t2 = x % t1;
> return t2;
> }
>
> I get the following output in ccp1 dump file:
> http://pastebin.com/B6HjptkC
It shows (and I also see that):
Visiting statement:
t2_3 = x_2(D) % t1_1;
which is likely CONSTANT
Match-and-simplified x_2(D) % t1_1 to 0
Lattice value changed to CONSTANT 0. Adding SSA edges to worklist.
so it works as expected? Or what do you miss?
Note that the function is simplified all the way to return 0; and
intermediate statemens are removed.
Thanks,
Richard.
> and the following output is generated in gimple-match.c:
> http://pastebin.com/tmi0cpxv
>
> I guess the generated code appears to be correct for the above pattern,
> so we are not doing anything wrong in genmatch ?
>
> Thanks,
> Prathamesh
More information about the Gcc
mailing list