]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/53621 ([SH] Frame pointers not generated with -fno-omit-frame-pointer...
authorChristian Bruel <christian.bruel@st.com>
Thu, 14 Jun 2012 08:55:36 +0000 (10:55 +0200)
committerChristian Bruel <chrbr@gcc.gnu.org>
Thu, 14 Jun 2012 08:55:36 +0000 (10:55 +0200)
PR target/53621
* config/sh/sh.c (sh_option_override): Don't force
flag_omit_frame_pointer and maccumulate_outgoing_args.
* config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.

* gcc.dg/stack-usage-1.c: Force -fomit-frame-pointer on SH.

From-SVN: r188601

gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.opt
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/stack-usage-1.c

index 901a4ef331add3c87a3b32439a4e5fb1fd9ba4e1..23660deef80b5d5266234688f87b773dd6b7362c 100644 (file)
@@ -1,3 +1,10 @@
+2012-06-12  Christian Bruel  <christian.bruel@st.com>
+
+       PR target/53621
+       * config/sh/sh.c (sh_option_override): Don't force
+        flag_omit_frame_pointer and maccumulate_outgoing_args.
+       * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
+
 2012-06-05  Peter Bergner  <bergner@vnet.ibm.com>
 
        Backport from mainline
index 6ac593e839e13d043fffb7763b2ceaa9dcdfdddd..39ef00d265c272943e161d52cf0fe8e20778cca9 100644 (file)
@@ -911,8 +911,6 @@ sh_option_override (void)
     if (! VALID_REGISTER_P (ADDREGNAMES_REGNO (regno)))
       sh_additional_register_names[regno][0] = '\0';
 
-  flag_omit_frame_pointer = (PREFERRED_DEBUGGING_TYPE == DWARF2_DEBUG);
-
   if ((flag_pic && ! TARGET_PREFERGOT)
       || (TARGET_SHMEDIA && !TARGET_PT_FIXED))
     flag_no_function_cse = 1;
@@ -944,22 +942,17 @@ sh_option_override (void)
        flag_schedule_insns = 0;
     }
 
-    if ((target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS) == 0)
-       target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
-
   /* Unwind info is not correct around the CFG unless either a frame 
      pointer is present or M_A_O_A is set.  Fixing this requires rewriting 
      unwind info generation to be aware of the CFG and propagating states 
      around edges.  */
   if ((flag_unwind_tables || flag_asynchronous_unwind_tables
        || flag_exceptions || flag_non_call_exceptions)   
-      && flag_omit_frame_pointer
-      && !(target_flags & MASK_ACCUMULATE_OUTGOING_ARGS))
+      && flag_omit_frame_pointer && !TARGET_ACCUMULATE_OUTGOING_ARGS)
     {
-      if (target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS)
        warning (0, "unwind tables currently require either a frame pointer "
                 "or -maccumulate-outgoing-args for correctness");
-      target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
+       TARGET_ACCUMULATE_OUTGOING_ARGS = 1;
     }
 
   /* Unwinding with -freorder-blocks-and-partition does not work on this
index e94f53a5cbd62ca16a0d16243a853856e116e2be..99a6373e20e6d0b3dcef2a78bdcbec3e49a3f42e 100644 (file)
@@ -202,7 +202,7 @@ Target RejectNegative Condition(SUPPORT_SH5_32MEDIA_NOFPU)
 Generate FPU-less SHcompact code
 
 maccumulate-outgoing-args
-Target Report Mask(ACCUMULATE_OUTGOING_ARGS)
+Target Report Var(TARGET_ACCUMULATE_OUTGOING_ARGS) Init(1)
 Reserve space for outgoing arguments in the function prologue
 
 madjust-unroll
index d838f8bfda37f54af367255adceaabab687a3cb0..7bb2362ff286b618b866b65a6fa754b5c3f7ebb6 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-13  Christian Bruel  <christian.bruel@st.com>
+
+       PR target/53621
+       * gcc.dg/stack-usage-1.c: Force -fomit-frame-pointer on SH.
+
 2012-06-05  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/50619
index 1d03a8dc994c8aac17804c0ca8471bd2c510f207..89b62ed7dfc0c9780f11faf41287a8ee60a2d6c6 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-fstack-usage" } */
+/* { dg-options "-fstack-usage -fomit-frame-pointer" { target { sh-*-* } } } */
 
 /* This is aimed at testing basic support for -fstack-usage in the back-ends.
    See the SPARC back-end for an example (grep flag_stack_usage in sparc.c).