Am 27.04.2011 08:56, schrieb John Regehr:
It's not hard to generate programs that always terminate, for example by suppressing backwards gotos and loops that modify the induction variable in unstructured ways. But we haven't felt that this was desirable. We could add it to our todo list if it would be useful for you. Is there some reason that timeouts are not acceptable?
From a user's point of view infinite loops are desirable, because they are often a source of bugs. At least in libFirm's case, many of the csmith-discovered bugs we fixed so far were somehow connected to infinite loops.
The point is the content of infinite loops is reachable, but dead, which breaks most definitions of dominance and control dependency,
hence analyses go crazy and the resulting optimizations are bogus. -- Andreas Zwinkau Karlsruhe Institute of Technology (KIT) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Prof. Snelting Adenauerring 20a 76131 Karlsruhe Phone: +49 721 608 48351 Fax: +49 721 608 48457 Email: zwinkau@kit.edu Web: http://pp.info.uni-karlsruhe.de/person.php?id=107 KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association