This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, PR 59736] Fix an IPA-CP issue with de-speculation


> 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  <mjambor@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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]