summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2012-11-20 21:29:37 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2012-11-20 21:29:37 +0000
commitb1f8db923750108b9600bab07d786c77d55c4bb5 (patch)
tree6b841ddfabda2aa437f2098865a1897701326091
parentc9e305147230f43f940a9ed43aeb41b63d5d7f39 (diff)
Make the mips and powerpc optimizer bug workarounds permanent (i.e. apply
them to all platforms). Both of them had been added very late in a release cycle, which caused us to prefer workarounds with minimal side effects. Since the issue they are avoiding may happen on other platforms, there is no harm in making sure no other platform gets bitten by them. And at the moment no supported platform runs gcc 3, so this does not cause any regression.
-rw-r--r--gnu/usr.bin/gcc/gcc/combine.c2
-rw-r--r--gnu/usr.bin/gcc/gcc/config/mips/openbsd.h3
-rw-r--r--gnu/usr.bin/gcc/gcc/config/rs6000/openbsd.h3
-rw-r--r--gnu/usr.bin/gcc/gcc/loop.c2
4 files changed, 1 insertions, 9 deletions
diff --git a/gnu/usr.bin/gcc/gcc/combine.c b/gnu/usr.bin/gcc/gcc/combine.c
index 29142b7d2fc..2e58ffd0a6c 100644
--- a/gnu/usr.bin/gcc/gcc/combine.c
+++ b/gnu/usr.bin/gcc/gcc/combine.c
@@ -9737,9 +9737,7 @@ simplify_shift_const (x, code, result_mode, varop, orig_count)
/* If we can't do that, try to simplify the shift in each arm of the
logical expression, make a new logical expression, and apply
the inverse distributive law. */
-#ifdef BROKEN_SIMPLIFY_SHIFT_CONST_P
if (GET_CODE (XEXP (varop, 1)) == CONST_INT)
-#endif
{
rtx lhs = simplify_shift_const (NULL_RTX, code, shift_mode,
XEXP (varop, 0), count);
diff --git a/gnu/usr.bin/gcc/gcc/config/mips/openbsd.h b/gnu/usr.bin/gcc/gcc/config/mips/openbsd.h
index a38638f21a5..c3d822eac2f 100644
--- a/gnu/usr.bin/gcc/gcc/config/mips/openbsd.h
+++ b/gnu/usr.bin/gcc/gcc/config/mips/openbsd.h
@@ -139,6 +139,3 @@ Boston, MA 02111-1307, USA. */
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
-
-/* Prevent too much recursion in simplify_shift_const(). */
-#define BROKEN_SIMPLIFY_SHIFT_CONST_P
diff --git a/gnu/usr.bin/gcc/gcc/config/rs6000/openbsd.h b/gnu/usr.bin/gcc/gcc/config/rs6000/openbsd.h
index ddcfa1a6529..610f817354c 100644
--- a/gnu/usr.bin/gcc/gcc/config/rs6000/openbsd.h
+++ b/gnu/usr.bin/gcc/gcc/config/rs6000/openbsd.h
@@ -111,9 +111,6 @@ Boston, MA 02111-1307, USA. */
default to using nm. */
#undef OBJECT_FORMAT_COFF
-/* Some code gets optimized incorrectly by move_movables() in loop.c */
-#define BROKEN_MOVE_MOVABLES_P
-
/* This must agree with <machine/_types.h> */
#undef SIZE_TYPE
#define SIZE_TYPE "long unsigned int"
diff --git a/gnu/usr.bin/gcc/gcc/loop.c b/gnu/usr.bin/gcc/gcc/loop.c
index bb473344bcd..e2d5025c265 100644
--- a/gnu/usr.bin/gcc/gcc/loop.c
+++ b/gnu/usr.bin/gcc/gcc/loop.c
@@ -1133,7 +1133,7 @@ scan_loop (loop, flags)
Generally this increases code size, so do not move moveables when
optimizing for code size. */
-#ifndef BROKEN_MOVE_MOVABLES_P
+#if 0 /* verified to cause bad code generation on OpenBSD/powerpc */
if (! optimize_size)
{
move_movables (loop, movables, threshold, insn_count);