re PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489)
authorJakub Jelinek <jakub@redhat.com>
Mon, 18 Feb 2019 11:16:33 +0000 (12:16 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 18 Feb 2019 11:16:33 +0000 (12:16 +0100)
PR target/89361
* config/s390/s390.c (s390_indirect_branch_attrvalue,
s390_indirect_branch_settings): Define unconditionally.
(s390_set_current_function): Likewise, but guard the whole body except
the s390_indirect_branch_settings call with
#if S390_USE_TARGET_ATTRIBUTE.
(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.

From-SVN: r268983

gcc/ChangeLog
gcc/config/s390/s390.c

index 7dfa7c3201fbcc180a472d5376098b4314c7fe19..45b5d5d0e986722c618c5c353f276b6cfb2167da 100644 (file)
@@ -1,5 +1,13 @@
 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
 
+       PR target/89361
+       * config/s390/s390.c (s390_indirect_branch_attrvalue,
+       s390_indirect_branch_settings): Define unconditionally.
+       (s390_set_current_function): Likewise, but guard the whole body except
+       the s390_indirect_branch_settings call with
+       #if S390_USE_TARGET_ATTRIBUTE.
+       (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
+
        * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
        *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
        Use HOST_WIDE_INT_M1U instead of ~(0ULL).
index 713973a3fd4a94e1516e1f0711b69d31bbc9c07d..aff271806b77b6ffd165078704c35d7f3b5e3e9b 100644 (file)
@@ -15462,6 +15462,7 @@ s390_can_inline_p (tree caller, tree callee)
 
   return ret;
 }
+#endif
 
 /* Set VAL to correct enum value according to the indirect-branch or
    function-return attribute in ATTR.  */
@@ -15535,6 +15536,7 @@ s390_indirect_branch_settings (tree fndecl)
     s390_indirect_branch_attrvalue (attr, &cfun->machine->function_return_mem);
 }
 
+#if S390_USE_TARGET_ATTRIBUTE
 /* Restore targets globals from NEW_TREE and invalidate s390_previous_fndecl
    cache.  */
 
@@ -15550,6 +15552,7 @@ s390_activate_target_options (tree new_tree)
     TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts ();
   s390_previous_fndecl = NULL_TREE;
 }
+#endif
 
 /* Establish appropriate back-end context for processing the function
    FNDECL.  The argument might be NULL to indicate processing at top
@@ -15557,6 +15560,7 @@ s390_activate_target_options (tree new_tree)
 static void
 s390_set_current_function (tree fndecl)
 {
+#if S390_USE_TARGET_ATTRIBUTE
   /* Only change the context if the function changes.  This hook is called
      several times in the course of compiling a function, and we don't want to
      slow things down too much or call target_reinit when it isn't safe.  */
@@ -15588,10 +15592,9 @@ s390_set_current_function (tree fndecl)
   if (old_tree != new_tree)
     s390_activate_target_options (new_tree);
   s390_previous_fndecl = fndecl;
-
+#endif
   s390_indirect_branch_settings (fndecl);
 }
-#endif
 
 /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.  */
 
@@ -16331,10 +16334,10 @@ s390_case_values_threshold (void)
 #undef TARGET_ASM_FILE_END
 #define TARGET_ASM_FILE_END s390_asm_file_end
 
-#if S390_USE_TARGET_ATTRIBUTE
 #undef TARGET_SET_CURRENT_FUNCTION
 #define TARGET_SET_CURRENT_FUNCTION s390_set_current_function
 
+#if S390_USE_TARGET_ATTRIBUTE
 #undef TARGET_OPTION_VALID_ATTRIBUTE_P
 #define TARGET_OPTION_VALID_ATTRIBUTE_P s390_valid_target_attribute_p