From 24c256c826a3363fdb6fda6c2172d17a6c77b4c2 Mon Sep 17 00:00:00 2001 From: Miod Vallat Date: Thu, 6 Jun 2013 21:14:15 +0000 Subject: Disable a broken optimization in try_combine(); GCC PR #34628. The PR comes with a real fix, but it is covered by the GPL v3, and is neither trivial nor straightforward, so use a hammer and disable the unreliable code. Verified to fix bogus code generation on macppc. --- gnu/gcc/gcc/combine.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gnu/gcc') diff --git a/gnu/gcc/gcc/combine.c b/gnu/gcc/gcc/combine.c index c5655ea4038..7ab118801a1 100644 --- a/gnu/gcc/gcc/combine.c +++ b/gnu/gcc/gcc/combine.c @@ -2374,8 +2374,10 @@ try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) above (see detailed comments there) that ensures that I1DEST isn't mentioned in any SETs in NEWPAT that are field assignments. */ +#if !defined(OPENBSD_NATIVE) && !defined(OPENBSD_CROSS) /* GCC PR #34628 */ if (! combinable_i3pat (NULL_RTX, &newpat, i1dest, NULL_RTX, 0, (rtx*) 0)) +#endif { undo_all (); return 0; -- cgit v1.2.3