The October 23rd, 2009 change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math. When you start up the benchmark with reference input, it fails almost immediately because the calculations don't converge.
At this point, I don't have a narrowed down test case, but the following change: 2009-10-23 Richard Guenther <rguent...@suse.de> PR tree-optimization/41778 * tree-ssa-pre.c (do_regular_insertion): Only insert if a redundancy along a path in the CFG we want to optimize for speed is going to be removed. (execute_pre): Do partial-PRE only if the function is to be optimized for speed. (gate_pre): Do not turn off all of PRE when not optimizing a function for speed. Now prevents the spec 2006 calculix benchmark from running if calculix was built with -ffast-math. The change is due to the special code in rs6000.md (and mips.md) for optimizing negative multiply and add and negative multiply and subtract optimizations with -fno-signed-zeros is used (which is set with -ffast-math). If I undo this one change in a local compiler, it builds and runs fine at full speed. If I disable the negative multiply and subtract operation from the the machine description, it runs fine, but at about 1/2 speed. Similarly if I disable -ffast-math, it runs fine, but at 1/2 speed. If I use the -fno-tree-pre option to disable the PRE pass, it fails. -- Summary: October 23rd change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42286