Re: [google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-11 Thread Xinliang David Li
ok for google branch for now. Please resubmit to trunk and backport the trunk version if needed. thanks, David On Tue, Feb 11, 2014 at 10:29 AM, Wei Mi wrote: >>> +/* Return true if the use is defined by a gcov counter var. >>> + It is used to check if an iv candidate is generated for >>> +

Re: [google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-11 Thread Wei Mi
>> +/* Return true if the use is defined by a gcov counter var. >> + It is used to check if an iv candidate is generated for >> + profiling. For profile generated ssa name, we should not >> + use it as IV because gcov counter may have data-race for >> + multithread program, it could involve

Re: [google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-11 Thread Xinliang David Li
On Mon, Feb 10, 2014 at 11:48 PM, Wei Mi wrote: > Here is the updated patch, which follow UD chain to determine whether > iv.base is defined by __gcovx.xxx[] var. It is a lot simpler than > adding a tree bit. > > regression test and previously failed benchmark in piii mode is ok. > Other test is g

Re: [google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-10 Thread Wei Mi
Here is the updated patch, which follow UD chain to determine whether iv.base is defined by __gcovx.xxx[] var. It is a lot simpler than adding a tree bit. regression test and previously failed benchmark in piii mode is ok. Other test is going on. 2014-02-10 Wei Mi * tree-ssa-loop-ivop

Re: [google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-10 Thread Xinliang David Li
I don't think you should add a new tree bit just for this. A simple UD check can determine prephitmp_23, etc are abnormal ssa names: # prephitmp_23 = PHI PROF_edge_counter_10 = prephitmp_23 + 1; __gcov0.foo[0] = PROF_edge_counter_10; Note you may need to 'hack' a little to check if a stati

[google gcc-4_8] Don't use gcov counter related ssa name as induction variables

2014-02-10 Thread Wei Mi
Hi, I saw a bug happened in fdo-gen phase when a gcov counter related ssa name was used as induction variable and used to calculate loop boundary after loop cond was replaced by an expr with the ssa name. We knew that there was data race in gcov counter in multithread program, so the values in gco