[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
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:
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.
More information about the Gcc-bugs