On 28/09/2011, at 4:56 PM, Maxim Kuvyrkov wrote:

> Jan,
> 
> The following patch starts a series of patches which improve devirtualization 
> optimizations in GCC.
> 
> This patch builds on ipa-cp.c and ipa-prop.c infrastructure for analyzing 
> parameters and jump functions and adds basic estimation of devirtualization 
> benefit from inlining an edge.  E.g., if inlining A across edge E into B will 
> allow some of the indirect edges of A to be resolved, then inlining cost of 
> edge E is reduced.
> 
> The patch was bootstrapped and regtested on x86_64-linux-gnu on both -m32 and 
> -m64 multilibs.
> 
> OK to commit?

Ping.

The primary change of this patch is to make evaluate_conditions_for_edge to 
output KNOWN_VALS and KNOWN_BINFOS arrays in addition to conditions for a 
callsite.  KNOWN_VALS and KNOWN_BINFOS are then passed on to a subroutine of 
estimate_calls_size_and_time, which uses ipa-prop.c infrastructure to check if 
it will be possible to devirtualize any of the indirect edged within callee.  
If possible, then *size and *time returned by estimate_calls_size_and_time are 
reduced to account for the devirtualization benefits.

OK for trunk?

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics

Attachment: fsf-gcc-devirt-account.ChangeLog
Description: Binary data

Attachment: fsf-gcc-devirt-account.patch
Description: Binary data

Reply via email to