mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-06 13:40:23 +08:00
re PR rtl-optimization/64287 (Disable -fuse-caller-save when -pg is active)
2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com> PR rtl-optimization/64287 gcc/ * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default. (process_options): Disable flag_ipa_ra if profiling. gcc/testsuite/ * gcc.dg/aru-2.c: New test. From-SVN: r219208
This commit is contained in:
parent
dd1ca4c209
commit
b176bb73b4
@ -1,3 +1,9 @@
|
||||
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.
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
26
gcc/testsuite/gcc.dg/aru-2.c
Normal file
26
gcc/testsuite/gcc.dg/aru-2.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* { 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);
|
||||
}
|
12
gcc/toplev.c
12
gcc/toplev.c
@ -113,6 +113,13 @@ along with GCC; see the file COPYING3. If not see
|
||||
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 *);
|
||||
@ -1634,6 +1641,11 @@ process_options (void)
|
||||
/* 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
|
||||
|
Loading…
Reference in New Issue
Block a user