+2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
+
+ PR rtl-optimization/64287
+ * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
+ (process_options): Disable flag_ipa_ra if profiling.
+
2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
* config/nds32/nds32-peephole2.md: Do not mention define_peephole.
+2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
+
+ PR rtl-optimization/64287
+ * gcc.dg/aru-2.c: New test.
+
2015-01-05 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/64344
--- /dev/null
+/* { dg-do run } */
+/* { dg-options "-O2 -pg" } */
+
+static int __attribute__((noinline))
+bar (int x)
+{
+ return x + 3;
+}
+
+int __attribute__((noinline))
+foo (int y0, int y1, int y2, int y3, int y4) {
+ int r = 0;
+ r += bar (r + y4);
+ r += bar (r + y3);
+ r += bar (r + y2);
+ r += bar (r + y1);
+ r += bar (r + y0);
+ return r;
+}
+
+int
+main (void)
+{
+ int z = foo (0, 1, 2, 3, 4);
+ return !(z == 191);
+}
declarations for e.g. AIX 4.x. */
#endif
+#ifndef HAVE_epilogue
+#define HAVE_epilogue 0
+#endif
+#ifndef HAVE_prologue
+#define HAVE_prologue 0
+#endif
+
#include <new>
static void general_init (const char *);
/* Save the current optimization options. */
optimization_default_node = build_optimization_node (&global_options);
optimization_current_node = optimization_default_node;
+
+ /* Disable use caller save optimization if profiler is active or port
+ does not emit prologue and epilogue as RTL. */
+ if (profile_flag || !HAVE_prologue || !HAVE_epilogue)
+ flag_ipa_ra = 0;
}
/* This function can be called multiple times to reinitialize the compiler