From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) by sourceware.org (Postfix) with ESMTPS id EE71A3858401 for ; Tue, 21 Dec 2021 14:39:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EE71A3858401 Received: by mail-lj1-x231.google.com with SMTP id r22so2020802ljk.11 for ; Tue, 21 Dec 2021 06:39:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=R8Fd6bfencOyTdYCq8wncohj4pVMRgRa3Xwu8a4cP7Q=; b=uyQQKAJ0ag7Aq8fIna4N3kDNFokhDyYJT/0OXJ5rEbGnOj0GsxWBlOrx9koi7PAwfv pqIRlkpE9HJYFGXeOAU3mD6iAa5Uts14V6uKcGnFsze1eF8uANgrsxvA4RpwUKBQblDz BC/6Sm4CFE+M0XaR6fqkScj1bKl11Sk6YDFDygkFTHV9xlPHfxYzjXCm+P8qohZTkdb3 HffEeJtj4h6XG66fsUYSMgMmJZkx0+WmK7Sg/9earWRw1WcDBmdX/0+z285Q+aZs1cPV pOwHCZMAeffWNUqtBs+PVeYU2ODpsaBF9NLqIww6VhNbtckWm5elGsVnt0awOv73xtMG iFKQ== X-Gm-Message-State: AOAM531Yfm+Ai3CXU5IMsuadeIYYvGgAA1WddmLzwXAQOWp9EdevuHLw 2sxvsxk7TAmMPGDk48Nwc+jHVxRP2QcV X-Google-Smtp-Source: ABdhPJyTHRjrUOZIIDeFKLjCph8hboias79vv+L33fzB4pyblcJe61Rz0RhqJJWEUqZoTe6Ao339gw== X-Received: by 2002:a2e:5c04:: with SMTP id q4mr2798325ljb.334.1640097556532; Tue, 21 Dec 2021 06:39:16 -0800 (PST) Received: from [192.168.0.135] ([185.30.228.158]) by smtp.gmail.com with ESMTPSA id cf18sm1855776lfb.251.2021.12.21.06.39.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 06:39:16 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Re: [TCWG CI] Regression caused by gcc: Add -fipa-strict-aliasing From: Maxim Kuvyrkov In-Reply-To: <665564136.5207.1639692295652@jenkins.jenkins> Date: Tue, 21 Dec 2021 17:39:15 +0300 Cc: gcc-regression@gcc.gnu.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <665564136.5207.1639692295652@jenkins.jenkins> To: Jan Hubicka X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-regression@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-regression mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Dec 2021 14:39:20 -0000 Hi Jan, This was sent out due to a bug in our CI. Sorry for the noise. Regards, -- Maxim Kuvyrkov https://www.linaro.org > On 17 Dec 2021, at 01:04, ci_notify@linaro.org wrote: >=20 > [TCWG CI] Regression caused by gcc: Add -fipa-strict-aliasing: > commit 16c848090f237c2398930b8c0ef75acebf4fa44d > Author: Jan Hubicka >=20 > Add -fipa-strict-aliasing >=20 > Results regressed to > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -8 > # build_abe newlib: > -6 > # build_abe stage2 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -5 > # benchmark -- -Os_LTO_mthumb = artifacts/build-16c848090f237c2398930b8c0ef75acebf4fa44d/results_id: > 1 >=20 > from > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -8 > # build_abe newlib: > -6 > # build_abe stage2 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -5 > # benchmark -- -Os_LTO_mthumb artifacts/build-baseline/results_id: > 1 >=20 > THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, = REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT. >=20 > This commit has regressed these CI configurations: > - tcwg_bmk_gnu_eabi_stm32/gnu_eabi-master-arm_eabi-coremark-Os_LTO >=20 > First_bad build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/build-16c848090f2= 37c2398930b8c0ef75acebf4fa44d/ > Last_good build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/build-5954b4d415f= 6424f1232c6b22a772ce184773f54/ > Baseline build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/build-baseline/ > Even more details: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/ >=20 > Reproduce builds: > > mkdir investigate-gcc-16c848090f237c2398930b8c0ef75acebf4fa44d > cd investigate-gcc-16c848090f237c2398930b8c0ef75acebf4fa44d >=20 > # Fetch scripts > git clone https://git.linaro.org/toolchain/jenkins-scripts >=20 > # Fetch manifests and test.sh script > mkdir -p artifacts/manifests > curl -o artifacts/manifests/build-baseline.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/manifests/build-b= aseline.sh --fail > curl -o artifacts/manifests/build-parameters.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/manifests/build-p= arameters.sh --fail > curl -o artifacts/test.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/test.sh --fail > chmod +x artifacts/test.sh >=20 > # Reproduce the baseline build (build all pre-requisites) > ./jenkins-scripts/tcwg_bmk-build.sh @@ = artifacts/manifests/build-baseline.sh >=20 > # Save baseline build state (which is then restored in = artifacts/test.sh) > mkdir -p ./bisect > rsync -a --del --delete-excluded --exclude /bisect/ --exclude = /artifacts/ --exclude /gcc/ ./ ./bisect/baseline/ >=20 > cd gcc >=20 > # Reproduce first_bad build > git checkout --detach 16c848090f237c2398930b8c0ef75acebf4fa44d > ../artifacts/test.sh >=20 > # Reproduce last_good build > git checkout --detach 5954b4d415f6424f1232c6b22a772ce184773f54 > ../artifacts/test.sh >=20 > cd .. > >=20 > Full commit (up to 1000 lines): > > commit 16c848090f237c2398930b8c0ef75acebf4fa44d > Author: Jan Hubicka > Date: Mon Dec 13 17:29:26 2021 +0100 >=20 > Add -fipa-strict-aliasing >=20 > gcc/ChangeLog: >=20 > 2021-12-13 Jan Hubicka >=20 > * common.opt: Add -fipa-strict-aliasing. > * doc/invoke.texi: Document -fipa-strict-aliasing. > * ipa-modref.c (modref_access_analysis::record_access): = Honor > -fipa-strict-aliasing. > (modref_access_analysis::record_access_lto): Likewise. > --- > gcc/common.opt | 4 ++++ > gcc/doc/invoke.texi | 12 +++++++++++- > gcc/ipa-modref.c | 8 +++++--- > 3 files changed, 20 insertions(+), 4 deletions(-) >=20 > diff --git a/gcc/common.opt b/gcc/common.opt > index 445a53a265c..8f8fc2f9ee7 100644 > --- a/gcc/common.opt > +++ b/gcc/common.opt > @@ -1945,6 +1945,10 @@ fira-algorithm=3D > Common Joined RejectNegative Enum(ira_algorithm) = Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization > -fira-algorithm=3D[CB|priority] Set the used IRA algorithm. >=20 > +fipa-strict-aliasing > +Common Var(flag_ipa_strict_aliasing) Init(1) Optimization > +Assume strict aliasing rules apply across (uninlined) function = boundaries. > + > Enum > Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA = algorithm %qs) >=20 > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 221c7c3ea48..80c36b9abe0 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -570,7 +570,7 @@ Objective-C and Objective-C++ Dialects}. > -fsingle-precision-constant -fsplit-ivs-in-unroller = -fsplit-loops@gol > -fsplit-paths @gol > -fsplit-wide-types -fsplit-wide-types-early -fssa-backprop = -fssa-phiopt @gol > --fstdarg-opt -fstore-merging -fstrict-aliasing @gol > +-fstdarg-opt -fstore-merging -fstrict-aliasing = -fipa-strict-aliasing @gol > -fthread-jumps -ftracer -ftree-bit-ccp @gol > -ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol > -ftree-coalesce-vars -ftree-copy-prop -ftree-dce = -ftree-dominator-opts @gol > @@ -12423,6 +12423,16 @@ int f() @{ > The @option{-fstrict-aliasing} option is enabled at levels > @option{-O2}, @option{-O3}, @option{-Os}. >=20 > +@item -fipa-strict-aliasing > +@opindex fipa-strict-aliasing > +Constrols whether rules of @option{-fstrict-aliasing} are applied = across > +function boundaries. Note that if multiple functions gets inlined = into a > +signle function the memory accesses are no longer considred to be = crossing a > +function bounday. > + > +The @option{-fipa-strict-aliasing} option is enabled by default and = is > +effective only in combination with @option{-fstrict-aliasing}. > + > @item -falign-functions > @itemx -falign-functions=3D@var{n} > @itemx -falign-functions=3D@var{n}:@var{m} > diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c > index 2c89c63baf6..d6bd9d33278 100644 > --- a/gcc/ipa-modref.c > +++ b/gcc/ipa-modref.c > @@ -999,9 +999,11 @@ modref_access_analysis::record_access = (modref_records *tt, > ao_ref *ref, > modref_access_node &a) > { > - alias_set_type base_set =3D !flag_strict_aliasing ? 0 > + alias_set_type base_set =3D !flag_strict_aliasing > + || !flag_ipa_strict_aliasing ? 0 > : ao_ref_base_alias_set (ref); > - alias_set_type ref_set =3D !flag_strict_aliasing ? 0 > + alias_set_type ref_set =3D !flag_strict_aliasing > + || !flag_ipa_strict_aliasing ? 0 > : (ao_ref_alias_set (ref)); > if (dump_file) > { > @@ -1021,7 +1023,7 @@ modref_access_analysis::record_access_lto = (modref_records_lto *tt, ao_ref *ref, > /* get_alias_set sometimes use different type to compute the alias = set > than TREE_TYPE (base). Do same adjustments. */ > tree base_type =3D NULL_TREE, ref_type =3D NULL_TREE; > - if (flag_strict_aliasing) > + if (flag_strict_aliasing && flag_ipa_strict_aliasing) > { > tree base; >=20 >