------- Comment #5 from bonzini at gnu dot org 2009-01-02 08:17 ------- Subject: Re: [ira] error in start_allocno_priorities, at ira-color.c:1806
Kenneth Zadeck wrote: > 2009-01-01 Kenneth Zadeck <zad...@naturalbridge.com> > > PR rtl-optimization/35805 > * df-problems.c (df_lr_finalize): Add recursive call to resolve lr > problem if fast dce is able to remove any instructions. > * dce.c (dce_process_block): Fix dump message. > > This patch fixes the problem. The comment in the patch describes the > issue. Since this was not really a failure, it would be hard to make > this issue into a testcase. IIUC the bugzilla comment trail, this caused gcc.c-torture/compile/930523-1.c to fail with --enable-checking=df; that's already a testcase. > Ok to commit? Hmmm... I am not sure I like this patch, for two reasons. 1) it might incur a compile-time penalty for the sake of verification, even with df checking disabled. OTOH having possibly different code for checking and non-checking compilation is even worse. 2) there are already provisions in dce.c to redo the analysis. But they do not get to the least fixed point because they just rebuild the local bitmaps and iterate from the existing solution. Instead of iterating "while (global_changed)", we could try doing only one iteration (it's a fast DCE after all, and the pessimistic dataflow makes me guess that subsequent DCE iterations won't find much?) and zap the solution there. This has the advantage that we can skip the recomputation if global_changed is false. Did I miss anything? Paolo -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35805