This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: slot combination and alias analysis
- To: mrs at windriver dot com
- Subject: Re: slot combination and alias analysis
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sat, 6 Oct 01 21:10:22 EDT
- Cc: gcc at gcc dot gnu dot org
You have two function bodies. In one, it does { float f; ... }, in
the other, it does { double d; ... }, they reference at least one byte
in common through the magic of inlining. The optimizer knows that
they don't conflict, but the stack frame code just allocates a block
(unknown), and then uses it. Unfortunately, one of the uses can be
known, say the first float. In the second, instead of being just an
unknown block, the memory is used as a known double. Since a known
float and a known double can never conflict, we know we can reorder
the memory references. But, we see that this would be wrong.
Yes, but I don't see how it can happen. The allocation of the two blocks
for the frames of the inlined functions cannot overlap, or at least I
don't think so.