]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sparc-protos.h (sparc_optimization_options): Declare.
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 26 May 2011 12:46:47 +0000 (12:46 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 26 May 2011 12:46:47 +0000 (12:46 +0000)
* config/sparc/sparc-protos.h (sparc_optimization_options): Declare.
* config/sparc/sparc.h (OPTIMIZATION_OPTIONS): Define.
* config/sparc/sparc.c (sparc_optimization_options): New function.
Set flag_ira_share_save_slots to 0.

From-SVN: r174280

gcc/ChangeLog
gcc/config/sparc/sparc-protos.h
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.h

index 6ec4e5e952cc3606e99f518e6b671a348951b095..5f20ec89f0a9f6670cf85ff5da7c623bf6ed41a6 100644 (file)
@@ -1,5 +1,10 @@
 2011-05-26  Eric Botcazou  <ebotcazou@adacore.com>
 
+       * config/sparc/sparc-protos.h (sparc_optimization_options): Declare.
+       * config/sparc/sparc.h (OPTIMIZATION_OPTIONS): Define.
+       * config/sparc/sparc.c (sparc_optimization_options): New function.
+       Set flag_ira_share_save_slots to 0.
+
        Backport from mainline
        2011-01-21  Jeff Law  <law@redhat.com>
 
index fc6a990dc268026c8dfa228268626a7ea6b38432..88aca6fa4310115f93c7abd5ec6b8a14c506b69a 100644 (file)
@@ -48,6 +48,7 @@ extern bool sparc_can_use_return_insn_p (void);
 extern int check_pic (int);
 extern int short_branch (int, int);
 extern void sparc_profile_hook (int);
+extern void sparc_optimization_options (int, int);
 extern void sparc_override_options (void);
 extern void sparc_output_scratch_registers (FILE *);
 
index 949c4734f9e3fed3ae1307a80326b2b1d10f3e34..619faad38766c34a1bdf843cd47fa276218c09bc 100644 (file)
@@ -627,6 +627,17 @@ sparc_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED)
   return true;
 }
 
+/* Specify default optimizations.  */
+
+void
+sparc_optimization_options (int l ATTRIBUTE_UNUSED, int s ATTRIBUTE_UNUSED)
+{
+  /* Disable save slot sharing for call-clobbered registers by default.
+     The IRA sharing algorithm works on single registers only and this
+     pessimizes for double floating-point registers.  */
+  flag_ira_share_save_slots = 0;
+}
+
 /* Validate and override various options, and do some machine dependent
    initialization.  */
 
index 470ca9f4efd0cf8a8092f8acd3618898ce845b87..488a3e6c23e0c749496d38818a32e859fa7ff319 100644 (file)
@@ -501,7 +501,8 @@ extern enum cmodel sparc_cmodel;
 #define CAN_DEBUG_WITHOUT_FP
 
 /* Option handling.  */
-
+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
+  sparc_optimization_options ((LEVEL), (SIZE))
 #define OVERRIDE_OPTIONS  sparc_override_options ()
 \f
 /* Mask of all CPU selection flags.  */