From patchwork Fri Jul 26 08:47:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongyu Wang X-Patchwork-Id: 1965218 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=iTonfzAu; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WVhKK5xZWz1yY5 for ; Fri, 26 Jul 2024 18:50:12 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A4B3B3870849 for ; Fri, 26 Jul 2024 08:50:10 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by sourceware.org (Postfix) with ESMTPS id 724543858C33 for ; Fri, 26 Jul 2024 08:49:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 724543858C33 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 724543858C33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.19 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1721983792; cv=none; b=R6BX0r2MVgDIP86q0MaUMF0J53sv4qWZtQFtiwlB4rYxWejiof/RRmgfA60d6jCbMciXj257+bsaezqz/qA/1CDW8/uK3Q/c3OKJfsf9HWsgKBQZGyl2t2hNFv/keWQpIGs9NpI926TyPcN2pHPkdaW15G8nGGvhor/D0fI8fD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1721983792; c=relaxed/simple; bh=Z5QmLswSVHBgb1UEKCxP08vEIBBtHQ6Hxx40EYPL7zY=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=jLBO0+rjInodPIBV2si3CS9a5zUyjVxndYL2Nzud8UmS80Jhq3NwviWDK+62QWM4TqluCoWvl7t2IoEXJyHVK0ccWNqbLObAM88S/XWswC71tZOK6ernmIsV6HqOZZzwRPG95D7cxrmPNW3mBbCgjoHbF2JguQ8NjHnhw6BvgFo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1721983791; x=1753519791; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Z5QmLswSVHBgb1UEKCxP08vEIBBtHQ6Hxx40EYPL7zY=; b=iTonfzAuE98I3hImP1IpJ+LiHiyumU/GriYeXfDAFcEyDtFPf1yavu9c /HkLYA1eSUYJVjMx669TrhpBuQR/M/PlRjYIh3fTGFy5lJNGTZEjJ8abc 9ztrJ1iecJLnsFxpYvT2EUcO3xogtbqP8JqyZI1IBZ9GE3ZSXIjmu8cRw oMYrmYXtcjtXqj4yTqofQ0AbeVptqXeRudTMs2rPJQa0Xvqzc+hOIkctY HWpgERjCQtG+pRKP3cneq3y708Yck02vVT58UqeZ54XUvHgOuEtRNzDws 2Y2HnEsu26WOy3ypzGofBBB3WWh4IJIsCpn0oP/5FZY7u5zUfF28jd7h3 A==; X-CSE-ConnectionGUID: UmX2tyFbRoiTYWDqhhqKdA== X-CSE-MsgGUID: DA/WCA5aQ4uorJ830opZew== X-IronPort-AV: E=McAfee;i="6700,10204,11144"; a="19462105" X-IronPort-AV: E=Sophos;i="6.09,238,1716274800"; d="scan'208";a="19462105" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jul 2024 01:49:49 -0700 X-CSE-ConnectionGUID: Tg3ikcwrT6K0nk26UTa9Uw== X-CSE-MsgGUID: QVPEMlqMTEyM9ZMva4GiPA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,238,1716274800"; d="scan'208";a="57989637" Received: from shvmail03.sh.intel.com ([10.239.245.20]) by orviesa005.jf.intel.com with ESMTP; 26 Jul 2024 01:49:48 -0700 Received: from shliclel4217.sh.intel.com (shliclel4217.sh.intel.com [10.239.240.127]) by shvmail03.sh.intel.com (Postfix) with ESMTP id F24B0100734A; Fri, 26 Jul 2024 16:49:46 +0800 (CST) From: Hongyu Wang To: gcc-patches@gcc.gnu.org Cc: hongtao.liu@intel.com, ubizjak@gmail.com Subject: [PATCH] i386: Mark target option with optimization when enabled with opt level [PR116065] Date: Fri, 26 Jul 2024 16:47:46 +0800 Message-Id: <20240726084746.4151041-1-hongyu.wang@intel.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_SHORT, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Hi, When introducing munroll-only-small-loops, the option was marked as Target Save and added to -O2 default which makes attribute(optimize) resets target option and causing error when cmdline has O1 and funciton attribute has O2 and other target options. Mark this option as Optimization to fix. Bootstrapped and regtested on x86_64-pc-linux-gnu. Ok for trunk and backport down to gcc-13? gcc/ChangeLog PR target/116065 * config/i386/i386.opt (munroll-only-small-loops): Mark as Optimization instead of Save. gcc/testsuite/ChangeLog PR target/116065 * gcc.target/i386/pr116065.c: New test. --- gcc/config/i386/i386.opt | 2 +- gcc/testsuite/gcc.target/i386/pr116065.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr116065.c diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index 353fffb2343..52054bc018a 100644 --- a/gcc/config/i386/i386.opt +++ b/gcc/config/i386/i386.opt @@ -1259,7 +1259,7 @@ Target Mask(ISA2_RAOINT) Var(ix86_isa_flags2) Save Support RAOINT built-in functions and code generation. munroll-only-small-loops -Target Var(ix86_unroll_only_small_loops) Init(0) Save +Target Var(ix86_unroll_only_small_loops) Init(0) Optimization Enable conservative small loop unrolling. mlam= diff --git a/gcc/testsuite/gcc.target/i386/pr116065.c b/gcc/testsuite/gcc.target/i386/pr116065.c new file mode 100644 index 00000000000..083e70f2413 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr116065.c @@ -0,0 +1,24 @@ +/* PR target/116065 */ +/* { dg-do compile } */ +/* { dg-options "-O1 -mno-avx" } */ + +#ifndef __AVX__ +#pragma GCC push_options +#pragma GCC target("avx") +#define __DISABLE_AVX__ +#endif /* __AVX__ */ + +extern inline double __attribute__((__gnu_inline__,__always_inline__)) + foo (double x) { return x; } + +#ifdef __DISABLE_AVX__ +#undef __DISABLE_AVX__ +#pragma GCC pop_options +#endif /* __DISABLE_AVX__ */ + +void __attribute__((target ("avx"), optimize(3))) +bar (double *p) +{ + *p = foo (*p); +} +