From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2122) id 4F5FE3858416; Wed, 15 Sep 2021 15:32:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4F5FE3858416 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jason Merrill To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-3552] c++: don't warn about internal interference sizes X-Act-Checkin: gcc X-Git-Author: Jason Merrill X-Git-Refname: refs/heads/master X-Git-Oldrev: adddfc85c07143f7c8097a90a83bfb15b8bd52e8 X-Git-Newrev: 4320a4b717dcccddf230d0b944bfc5a7ae282508 Message-Id: <20210915153209.4F5FE3858416@sourceware.org> Date: Wed, 15 Sep 2021 15:32:09 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Sep 2021 15:32:09 -0000 https://gcc.gnu.org/g:4320a4b717dcccddf230d0b944bfc5a7ae282508 commit r12-3552-g4320a4b717dcccddf230d0b944bfc5a7ae282508 Author: Jason Merrill Date: Wed Sep 15 09:30:10 2021 -0400 c++: don't warn about internal interference sizes Most any compilation on ARM/AArch64 was warning because the default L1 cache line size of 32B was smaller than the default std::hardware_constructive_interference_size of 64B. This is mostly due to inaccurate --param l1-cache-line-size, but it's not helpful to complain to a user that didn't set the values. gcc/cp/ChangeLog: * decl.c (cxx_init_decl_processing): Only warn about odd interference sizes if they were specified with --param. Diff: --- gcc/cp/decl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 1a2925b4108..9ad9446e262 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -4756,7 +4756,7 @@ cxx_init_decl_processing (void) /* Check that the hardware interference sizes are at least alignof(max_align_t), as required by the standard. */ const int max_align = max_align_t_align () / BITS_PER_UNIT; - if (param_destruct_interfere_size) + if (global_options_set.x_param_destruct_interfere_size) { if (param_destruct_interfere_size < max_align) error ("%<--param destructive-interference-size=%d%> is less than " @@ -4767,11 +4767,13 @@ cxx_init_decl_processing (void) "is less than %<--param l1-cache-line-size=%d%>", param_destruct_interfere_size, param_l1_cache_line_size); } + else if (param_destruct_interfere_size) + /* Assume the internal value is OK. */; else if (param_l1_cache_line_size >= max_align) param_destruct_interfere_size = param_l1_cache_line_size; /* else leave it unset. */ - if (param_construct_interfere_size) + if (global_options_set.x_param_construct_interfere_size) { if (param_construct_interfere_size < max_align) error ("%<--param constructive-interference-size=%d%> is less than " @@ -4783,6 +4785,8 @@ cxx_init_decl_processing (void) "is greater than %<--param l1-cache-line-size=%d%>", param_construct_interfere_size, param_l1_cache_line_size); } + else if (param_construct_interfere_size) + /* Assume the internal value is OK. */; else if (param_l1_cache_line_size >= max_align) param_construct_interfere_size = param_l1_cache_line_size; }