------- Comment #9 from steven at gcc dot gnu dot org  2008-11-16 12:17 -------
Advice to folks caring about compiler stability instead of supposedly faster:
Always use double-queue instead of overeager.  The overeager solver is just not
reliable enough, and I have never found any proof for the speed benefit that
Seongbae claimed it has.

The theoretical worst-case time for the overeager algorithm is exponential in
the number of basic blocks, for densely connected CFGs.  I have argued before
that such an algorithm should *never* have been selected as the default for
GCC, even if it is, say, 0.5% faster for a GCC bootstrap (but I did the
comparison last year and I have never actually measured any benefits of
overeager over double queue).

For the double queue, and also for the hybrid search, the number of passes has
a reasonable proven upper bound for any CFG, so these algorithms are much more
reliable.

See also the discussion in PR34400, esp. comments 25-28:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400#c25
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400#c28


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36365

Reply via email to