middle-end/111591 - explain why TBAA doesn't need adjustment

While tidying the prototype patch I've done for the reduced testcase
in PR111591 and in that process trying to produce a testcase that
is miscompiled by stack slot coalescing and the TBAA info that
remains un-altered I've realized we do not need to adjust TBAA info.

The following documents this in the place we adjust points-to info
which we do need to adjust.

	PR middle-end/111591
	* cfgexpand.cc (update_alias_info_with_stack_vars): Document
	why not adjusting TBAA info on accesses is OK.
This commit is contained in:
Richard Biener 2023-12-13 08:54:49 +01:00
parent 8e0568d8ac
commit 97094d2ffd

View file

@ -786,7 +786,13 @@ add_partitioned_vars_to_ptset (struct pt_solution *pt,
/* Update points-to sets based on partition info, so we can use them on RTL.
The bitmaps representing stack partitions will be saved until expand,
where partitioned decls used as bases in memory expressions will be
rewritten. */
rewritten.
It is not necessary to update TBAA info on accesses to the coalesced
storage since our memory model doesn't allow TBAA to be used for
WAW or WAR dependences. For RAW when the write is to an old object
the new object would not have been initialized at the point of the
read, invoking undefined behavior. */
static void
update_alias_info_with_stack_vars (void)