Skip to content
Snippets Groups Projects
  • Jan Hubicka's avatar
    9b7cad58
    Avoid pointer compares on TYPE_MAIN_VARIANT in TBAA · 9b7cad58
    Jan Hubicka authored
    while building more testcases for ipa-icf I noticed that there are two places
    in aliasing code where we still compare TYPE_MAIN_VARIANT for pointer equality.
    This is not good idea for LTO since type merging may not happen for example
    when in one unit pointed to type is forward declared while in other it is fully
    defined.  We have same_type_for_tbaa for that.
    
    Bootstrapped/regtested x86_64-linux, OK?
    
    gcc/ChangeLog:
    
    	* alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p.
    	* alias.h (view_converted_memref_p): Declare.
    	* tree-ssa-alias.cc (view_converted_memref_p): Export.
    	(ao_compare::compare_ao_refs): Use same_type_for_tbaa.
    9b7cad58
    History
    Avoid pointer compares on TYPE_MAIN_VARIANT in TBAA
    Jan Hubicka authored
    while building more testcases for ipa-icf I noticed that there are two places
    in aliasing code where we still compare TYPE_MAIN_VARIANT for pointer equality.
    This is not good idea for LTO since type merging may not happen for example
    when in one unit pointed to type is forward declared while in other it is fully
    defined.  We have same_type_for_tbaa for that.
    
    Bootstrapped/regtested x86_64-linux, OK?
    
    gcc/ChangeLog:
    
    	* alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p.
    	* alias.h (view_converted_memref_p): Declare.
    	* tree-ssa-alias.cc (view_converted_memref_p): Export.
    	(ao_compare::compare_ao_refs): Use same_type_for_tbaa.