Since the gimple-tuples branch was merged, test omnetpp from SPEC CPU2006 hangs when compiled with -O2 for powerpc-linux. Here's a minimized testcase of the code with the problem:
extern void foo (void); class cPar { public: double dblval; long longValue (); double doubleValue (); }; long cPar::longValue () { return (long) doubleValue (); } double cPar::doubleValue () { foo (); return dblval; } and code to invoke it from a separate file: void foo (void) { } class cPar { public: double dblval; long longValue (); double doubleValue (); }; int main () { cPar x; long i; x.dblval = 42.; i = x.longValue (); if (i != 42) __builtin_abort (); } The failure starts on the tuples branch with this patch: http://gcc.gnu.org/viewcvs?view=rev&rev=138188 r138188 | rguenth | 2008-07-27 14:38:30 +0000 (Sun, 27 Jul 2008) -- Summary: bad tail call from tuples merge Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis at gcc dot gnu dot org GCC target triplet: powerpc-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37024