https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103164

            Bug ID: 103164
           Summary: -fipa-pta degrades aliasing oracle for tramp3d
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hubicka at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Compiling tramp3d with -Ofast -fwhole-program -fipa-pta I get:

Alias oracle query stats:
  refs_may_alias_p: 3820161 disambiguations, 4206951 queries
  ref_maybe_used_by_call_p: 16730 disambiguations, 3872185 queries
  call_may_clobber_ref_p: 971 disambiguations, 971 queries
  nonoverlapping_component_refs_p: 0 disambiguations, 10225 queries
  nonoverlapping_refs_since_match_p: 290 disambiguations, 6293 must overlaps,
6679 queries
  aliasing_component_refs_p: 3184 disambiguations, 67423 queries
  TBAA oracle: 2086432 disambiguations 3268935 queries
               163779 are in alias set 0
               677002 queries asked about the same object
               0 queries asked about the same alias set
               0 access volatile
               341575 are dependent in the DAG
               147 are aritificially in conflict with void *

Modref stats:
  modref use: 6077 disambiguations, 52234 queries
  modref clobber: 38991 disambiguations, 456453 queries
  120772 tbaa queries (0.264588 per modref query)
  27541 base compares (0.060337 per modref query)

PTA query stats:
  pt_solution_includes: 388070 disambiguations, 703922 queries
  pt_solutions_intersect: 78596 disambiguations, 579614 queries

While with -Ofast -fwhole-program:

Alias oracle query stats:
  refs_may_alias_p: 5462729 disambiguations, 5799042 queries
  ref_maybe_used_by_call_p: 23575 disambiguations, 5511000 queries
  call_may_clobber_ref_p: 2188 disambiguations, 2188 queries
  nonoverlapping_component_refs_p: 0 disambiguations, 6216 queries
  nonoverlapping_refs_since_match_p: 270 disambiguations, 4803 must overlaps,
5164 queries
  aliasing_component_refs_p: 2242 disambiguations, 41884 queries
  TBAA oracle: 2287136 disambiguations 3598543 queries
               166373 are in alias set 0
               769743 queries asked about the same object
               0 queries asked about the same alias set
               0 access volatile
               375144 are dependent in the DAG
               147 are aritificially in conflict with void *

Modref stats:
  modref use: 6124 disambiguations, 55063 queries
  modref clobber: 43317 disambiguations, 581346 queries
  121869 tbaa queries (0.209632 per modref query)
  32045 base compares (0.055122 per modref query)

PTA query stats:
  pt_solution_includes: 872055 disambiguations, 1119697 queries
  pt_solutions_intersect: 106431 disambiguations, 536171 queries

This seems to behave similarly on other medium sized testcases I tried.

Reply via email to