tree-ipa-type-escape slow

Kenneth Zadeck zadeck@naturalbridge.com
Wed Aug 31 00:45:00 GMT 2005


the splay tree in question is there as part of the type unification.

This is required because our design for combining modules does not unify 
the types and this messes up the type escape analysis. 

Because of this, the type name must be the key.  However, there is the 
possibility that doing some special treatment for unnamed types is 
possible.  I did not look into it.  I do not understand the front ends 
enough to know how often these are created. 

Is this a c++ issue? or an issue associated with only this benchmark?

kenny



Richard Guenther wrote:
>I'm seeing splay tree usage from tree-ipa-type-escape in the first
>places of profiles from tramp3d-v4:
>
>samples  %        image name               app name                 symbol 
>name
>141814    6.5462  no-vmlinux               no-vmlinux               (no 
>symbols)
>71471     3.2992  cc1plus                  cc1plus                  
>splay_tree_splay_helper
>51114     2.3595  cc1plus                  cc1plus                  
>comptypes
>49001     2.2619  cc1plus                  cc1plus                  
>compute_may_aliases
>
>
>-------------------------------------------------------------------------------
>  11160    15.6147  cc1plus                  cc1plus                  
>splay_tree_splay
>  59855    83.7473  cc1plus                  cc1plus                  
>splay_tree_splay_helper
>71471     3.2992  cc1plus                  cc1plus                  
>splay_tree_splay_helper
>  71471    43.1489  cc1plus                  cc1plus                  
>splay_tree_splay_helper [self]
>  59855    36.1360  cc1plus                  cc1plus                  
>splay_tree_splay_helper
>  12966     7.8279  libc-2.3.5.so            cc1plus                  
>strcmp
>  11404     6.8849  cc1plus                  cc1plus                  
>compare_type_brand
>  8650      5.2222  cc1plus                  cc1plus                  
>splay_tree_compare_pointers
>-------------------------------------------------------------------------------
>
>looking into the ipa-type-escape code I wonder if there's a reason
>to use TYPE_NAME as a key instead of TYPE_UID.  Also if TYPE_NAME
>is necessary, instead of using "<unnamed>" using NULL and special
>casing that will be a lot faster, too.  Can you elaborate on what
>exactly the datastructure is used for?  Maybe for a large number
>of types it isn't really the most efficient one.
>
>Thanks,
>Richard.
>  



More information about the Gcc mailing list