[GSoC] constant-folding pattern not fired

Prathamesh Kulkarni bilbotheelffriend@gmail.com
Mon Aug 18 11:45:00 GMT 2014


On Mon, Aug 18, 2014 at 4:37 PM, Richard Biener
<richard.guenther@gmail.com> wrote:
> 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.
oops, I got mixed up -:)
sorry for the noise.

This patch adds the test-case for that pattern.
testsuite/
  * match-constant-folding.c: Add new test-case.

Thanks,
Prathamesh

>
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: foo.patch
Type: text/x-patch
Size: 602 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc/attachments/20140818/2d97adbd/attachment.bin>


More information about the Gcc mailing list