------- Comment #27 from amylaar at gcc dot gnu dot org 2006-11-17 18:58 ------- We've been using this patch: http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01488.html successfully in a 4.1.1 based compiler.
It is not optimal, though: the check for equality of the regsets in struct_equiv_init is unnecessary, and it can also lead skipping possible optimizations. The frequent live updates are also not necessary. This optimization can work with register life info that is inexact, as long as it is conservative, i.e. it may flag registers as live that are not, but it most not pretend that live registers are dead. Note also that re-integration of the if-conversion improvements was not within the scope of this patch, i.e. this is still an outstanding issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20070