[Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches

amylaar at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Nov 17 18:58:00 GMT 2006



------- 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



More information about the Gcc-bugs mailing list