This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
slot combination and alias analysis
- To: gcc at gcc dot gnu dot org
- Subject: slot combination and alias analysis
- From: mike stump <mrs at windriver dot com>
- Date: Fri, 5 Oct 2001 16:41:43 -0700 (PDT)
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?