This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

slot combination and alias analysis


I'm I correct in assuming that the code:

void
combine_temp_slots ()
{
  struct temp_slot *p, *q;
  struct temp_slot *prev_p, *prev_q;
  int num_slots;

  /* We can't combine slots, because the information about which slot
     is in which alias set will be lost.  */
  if (flag_strict_aliasing)
    return;

is now more pessimistic than it needs to be?

It seems that with:

  /* See if the first alias set is a subset of the second.  */
  ase = get_alias_set_entry (set1);

of alias_sets_conflict_p (set1, set2), that it would be possible to
generate a new alias set, and have it inherit from the two parents
(using record_alias_subset) that are being combined.  Since we
inherit, the conflict catcher will notice, and have exactly the right
information later.  If it pessimizese code too much (due to the extra
conflicts), maybe we should only do this for -Os?  Personally I can't
imagine that it would hurt performance more than 0.1%.

What do you think?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]