On 09/24/2013 03:40 PM, Mike Stump wrote: > On Sep 24, 2013, at 12:23 PM, Steven Bosscher <stevenb....@gmail.com> wrote: >> On Tue, Sep 24, 2013 at 5:03 PM, Eric Botcazou wrote: >>>> This patch removes REG_DEAD and REG_UNUSED notes >>> DF framework is supposed to do it for you. >> Unfortunately LRA uses its own DF framework. I'd say fortunately. Otherwise, LRA would decrease whole compiler speed by upto 10%. I can say it because of the first version of LRA was based on DF framework.
I guess that was one reason why reload was never moved to DF too. LRA/reload is the most live analysis intensive passes (too many changes on several sub-passes). LRA uses also REG notes internally and recreates them several time as a by-product of pseudo live-range analysis used for (reload) pseudo assignments. I'd be glad if we move to DF without compilation time degradation. I already wrote that DF-design (although it has a nice API which is good for prototyping) has a bad design with resource usage point of view. Keeping a lot of duplicated info by RTL side increases memory footprint very much, worsens data locality, and slows down the compiler. As I remember correctly, GCC steering committing permitted 5% compiler time degradation as a criterium to include it into the trunk and DF achieved this with difficulties. > Is that a bug, or a feature?