>       * alias.c (record_component_aliases): Honor odr_based_tbaa_p.
>       * ipa-devirt.c (odr_type_d): Add tbaa_enabled field.
>       (get_odr_type): Return NULL when odr_type_hash is NULL.
>       (enable_odr_based_tbaa): New function.
>       (odr_based_tbaa_p): New function.
>       (set_type_canonical_for_odr_type): New function.
>       * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
>       set_type_canonical_for_odr_type): Declare.
>       * lto-common.c: Update copyright; include tree-pretty-print.h.
>       (types_to_register): New static var.
>       (iterative_hash_canonical_type): Add new parameter INSERT.
>       (hash_canonical_type): Likewise.
>       (lookup_canonical_type): New function.
>       (lto_register_canonical_types_for_odr_types): New.
>       (odr_or_derived_type_p): New function.
>       (lto_read_decls): Deffer ODR and ODR derived types
>       to later canonical type calculation.
>       * tree.c (gimple_canonical_types_compatible_p): Honnor
>       odr_based_tbaa_p.

Ping.  This patch improves TBAA for C++ code bases relatively
noticeably...

Honza

Reply via email to