> Hi,
> 
> in PR 59736, IPA-CP stumples on an already removed call graph edge.
> The reason is that it keeps an internal linked list of edge clones
> which can however now be corrupted by cgraph de-speculation machinery
> which can decide to remove an edge.
> 
> In order to fix this, I made the linked-list bi-directional and added
> a remove hook that fixes it up if need be.
> 
> Bootstrapped and tedted on x86_64-linux.  Unfortunately, I don't have
> a simple testcase (the smallest I have is a 8.3K multidetla reduced
> mess).  OK for trunk anyway?
> 
> Thanks,
> 
> Martin
> 
> 
> 2014-01-17  Martin Jambor  <mjam...@suse.cz>
> 
>       PR ipa/59736
>       * ipa-cp.c (prev_edge_clone): New variable.
>       (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
>       Also resize prev_edge_clone vector.
>       (ipcp_edge_duplication_hook): Also update prev_edge_clone.
>       (ipcp_edge_removal_hook): New function.
>       (ipcp_driver): Register ipcp_edge_removal_hook.

OK,
thanks!
Honza

Reply via email to