This is the mail archive of the
mailing list for the GCC project.
Re: Fix PR 33870
On Nov 14, 2007 1:04 PM, Diego Novillo <firstname.lastname@example.org> wrote:
> Richard Guenther wrote:
> > Oh, and as you basically go back towards my first fix that was reverted this
> > patch causes compile-time regressions and we hit
> > internal compiler error: in ssa_operand_alloc, at tree-ssa-operands.c:484
> > more often as well.
> You'll need to be more specific. We are simply limiting the first SFT
> of a nested struct out of the partitioner, instead of recursing into MPT
> elements during operand scanning.
No, we are limiting all pointed-to SFTs of all structs (maybe this was not
intended, but it is necessary) out of the partitioner. Which will effectively
make the NMTs contain all pointed-to SFTs. My initial patch fixed the
problem by recursing into MPTs that are contained in NMTs to look for
SFTs in them. With my initial patch those MPTs could contain unrelated
symbols, but clearly you are growing the numer of symbols in NMTs
(the regression is not as bad as for my initial patch, but is the least
regression we can have there if we want to fix the miscompilation this way).
> Where is the extra compile time coming from? Are we generating that
> many more virtual operands? It would help quite a bit if you'd open a
> PR with a testcase for me to reproduce this behaviour.
We enlarge the NMT aliased symbols. (And obviously we can now create
aritifical testcases with any number of aliased SFTs remaining on a stmt,
I'll come up with one of those for you)