From: Jakub Jelinek Date: Mon, 18 Feb 2019 11:16:33 +0000 (+0100) Subject: re PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a10e76edcee03f7c0a5136a6e4b1ac483ee0d70f;p=gcc.git re PR target/89361 (s390 broken without S390_USE_TARGET_ATTRIBUTE, likely since r257489) 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7dfa7c3201f..45b5d5d0e98 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2019-02-18 Jakub Jelinek + 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 (*_ior_and_sr_ze, *__ior_and_lshiftrt, *_sidi_ior_and_lshiftrt): Use HOST_WIDE_INT_M1U instead of ~(0ULL). diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 713973a3fd4..aff271806b7 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -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