New attempt: subword-based DCE, PR42575
Eric Botcazou
ebotcazou@adacore.com
Mon Aug 2 08:10:00 GMT 2010
> Or something else may happen entirely. Can you enumerate all the ways dead
> code can happen for non-subregs and fix each in a way that does not involve
> running DCE? I'm sure you'll agree that attempting this would be absurd.
All certainly not, indeed, the significant ones would be good enough as a
first approach. If, in the process of doing that, there is some evidence
that there are too many of them, then, yes, adding a custom pass is probably
the best approach.
> As for effort - for reference, below is the lower-subreg patch I
> experimented with (and intend to finish, eventually) after you suggested
> your second patch. You can judge for yourself whether that constitutes
> trying very hard.
Indeed, now I see it, thanks for posting the patch.
> Well, we can _never_ know what it would take to enhance existing code,
> unless you manage to enumerate every way dead code can appear in the
> RTL. Your approach can never fix the problem entirely, since it would
> only add one band-aid for every instance of the problem we find.
No band-aids, just small improvements. This is the way I think production
compilers should evolve, unless there is clear evidence that some "quantum
leap" is required. PR42575 wasn't such a clear evidence to me.
> I don't disagree that we should be doing these kinds of fixes if we find
> they make the compiler better (again, see the patch below), but it can
> never fix the _class_ of problems.
If there is a class of problems. So you're thinking that eliminating dead
word-sized subregs of multi-word registers is a class of problems on its own,
whereas I'm thinking that it's the intersection of other classes of problems.
That would indeed sort of explain the total disagreement.
--
Eric Botcazou
More information about the Gcc-patches
mailing list