[PATCH] Verify edge probability consistency in verify_flow_info

Tom de Vries Tom_deVries@mentor.com
Sun Aug 6 10:25:00 GMT 2017


On 08/04/2017 11:15 AM, Jan Hubicka wrote:
>>>
>>> III.
>>>
>>> I've written this patch to check for the missing probability more
>>> consistently. I'm not certain if we can require that the probability
>>> should always be set, so I'm just requiring that if it is set on one
>>> outgoing edge, it needs to be set on all outgoing edges.
>>>
>>> Sofar I've build a c-only x86_64 non-bootstrap compiler and ran dg.exp.
>>> The only problem I ran into was in attr-simd{,-2,-4}.c. I've written a
>>> tentative patch for that, and will submit it as follow-up.
>>>
>>> Is this check a good idea?
>> I think the additional checking is a good idea.  Ideally we'd verify
>> that all edges have a probability.  Until then I think you need some
>> kind of rationale in a comment for why the checking is limited.
>>

[ Not done yet. ]

I've extended the patch to skip over EH edges. I've limited the check 
further (as shown in attached patch) to only check if 'EDGE_COUNT 
(bb->succs) == 2'. That way I don't run into the more complicated cases 
like a switch with default edge probability set to never, and all other 
edges not set.

I've committed two patches for expand_oacc_for that trigger the check.

>>>
>>> OK for trunk if bootstrap and reg-test on x86_64 succeeds?
>> Yea, but I'd like to see ongoing work towards full checking.
> 
> I have full checking in my tree for some time.  At x86-64 bootstrap there
> is one remaining offender in simd_clone_adjust which was not fixed yet
> https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00219.html
> Jakub did not tell me what would be a reasonable guess :)
> 
> After that I plan to enable full checking after checking arm/ppc.
> So I hope we will converge to full checking really soon.  But having
> additional check is fine.
> 

To make sure I understand correctly: are you saying that you have in a 
local tree:
- patches that add missing edge probabilities, and
- a patch that adds a check that all edges have probabilities,
and that the state of that local tree is that for x86_64 bootstrap and 
reg-test there only one regression site left?

If that is the case, I'd better stop fixing sites that trigger the check 
in my patch.

Thanks,
- Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Verify-edge-probability-consistency-in-verify_flow_info.patch
Type: text/x-patch
Size: 1473 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20170806/39d519c4/attachment.bin>


More information about the Gcc-patches mailing list