From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id 4B23D3858D28 for ; Thu, 16 Dec 2021 11:04:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4B23D3858D28 Received: by mail-wr1-x42d.google.com with SMTP id a18so43493932wrn.6 for ; Thu, 16 Dec 2021 03:04:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:date:to:cc:message-id:subject:mime-version :list-id; bh=wcQKchFG30/x4jLi2W2l8pXICSi68AC9VeBD1epJo3I=; b=TPnZNms3bEhjO1mtCyw1owY4r+c+lWvi5wCsD+mbfR+jPtemKxaitXTAAs0esp6WFG WKFdipTUjuz1W4FnjjLIdTirdiobs7Ka0UIWuxbkvsW7eATqAv7F1lT21p1ZD+ZyIrc2 fjn+9kiMh47tTPBZl8DD6bH4E6KkAhfQCm09uuLKMUeoJ9MePAMVtqnz5ioHg05BHpW+ ZMB0yLUnpbLpK/6F/4pQSQIYCoFZTXnjx6TAjv5bRESbM9MWy8f6sq1hIQwe5Xb851TA vDDnkVtUgSSQAeIy6FZzUCHdQrctxz8KVZxYZgVF13l37C3uJINviMVJYpxEm6qLSHqy KsvQ== X-Gm-Message-State: AOAM532KOXOiXczd6L8wT4C3HHeVg56M7FzKo9zd5gIu9GPoegZxgS2N Od0Egg87uut8IGi3++vG/jod9g== X-Google-Smtp-Source: ABdhPJxxzNYhECrMFPZ8i2h/84HMLV2aTVIDqE01TJ+3i7A3LWKTgdbcKypxiY3mUTuBXeX+jRDhBQ== X-Received: by 2002:a5d:6e85:: with SMTP id k5mr8957470wrz.545.1639652695245; Thu, 16 Dec 2021 03:04:55 -0800 (PST) Received: from jenkins.jenkins (ci.linaro.org. [88.99.136.175]) by smtp.gmail.com with ESMTPSA id d16sm4614565wrv.111.2021.12.16.03.04.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Dec 2021 03:04:54 -0800 (PST) From: ci_notify@linaro.org X-Google-Original-From: linaro-infrastructure-errors@lists.linaro.org Date: Thu, 16 Dec 2021 11:04:53 +0000 (UTC) To: "Vladimir N. Makarov" Cc: gcc-regression@gcc.gnu.org Message-ID: <847000796.5102.1639652694858@jenkins.jenkins> Subject: [TCWG CI] 447.dealII slowed down by 3% after gcc: [PR99531] Modify pseudo class cost calculation when processing move involving the pseudo and a hard register MIME-Version: 1.0 X-Jenkins-Job: TCWG Bisect tcwg_bmk_tx1/gnu-master-aarch64-spec2k6-O2_LTO X-Jenkins-Result: SUCCESS X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Thu, 16 Dec 2021 11:04:58 -0000 After gcc commit a7acb6dca941db2b1c135107dac3a34a20650d5c Author: Vladimir N. Makarov [PR99531] Modify pseudo class cost calculation when processing move involving the pseudo and a hard register the following benchmarks slowed down by more than 2%: - 447.dealII slowed down by 3% from 5492 to 5632 perf samples Below reproducer instructions can be used to re-build both "first_bad" and "last_good" cross-toolchains used in this bisection. Naturally, the scripts will fail when triggerring benchmarking jobs if you don't have access to Linaro TCWG CI. For your convenience, we have uploaded tarballs with pre-processed source and assembly files at: - First_bad save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-a7acb6dca941db2b1c135107dac3a34a20650d5c/save-temps/ - Last_good save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-149739c39475f3691e67aa0aee4f205f4e83392f/save-temps/ - Baseline save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-baseline/save-temps/ Configuration: - Benchmark: SPEC CPU2006 - Toolchain: GCC + Glibc + GNU Linker - Version: all components were built from their tip of trunk - Target: aarch64-linux-gnu - Compiler flags: -O2 -flto - Hardware: NVidia TX1 4x Cortex-A57 This benchmarking CI is work-in-progress, and we welcome feedback and suggestions at linaro-toolchain@lists.linaro.org . In our improvement plans is to add support for SPEC CPU2017 benchmarks and provide "perf report/annotate" data behind these reports. THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT. This commit has regressed these CI configurations: - tcwg_bmk_gnu_tx1/gnu-master-aarch64-spec2k6-O2_LTO First_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-a7acb6dca941db2b1c135107dac3a34a20650d5c/ Last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-149739c39475f3691e67aa0aee4f205f4e83392f/ Baseline build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/build-baseline/ Even more details: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/ Reproduce builds: mkdir investigate-gcc-a7acb6dca941db2b1c135107dac3a34a20650d5c cd investigate-gcc-a7acb6dca941db2b1c135107dac3a34a20650d5c # Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts # 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-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/manifests/build-baseline.sh --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/manifests/build-parameters.sh --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tx1-gnu-master-aarch64-spec2k6-O2_LTO/26/artifact/artifacts/test.sh --fail chmod +x artifacts/test.sh # Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh # 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/ cd gcc # Reproduce first_bad build git checkout --detach a7acb6dca941db2b1c135107dac3a34a20650d5c ../artifacts/test.sh # Reproduce last_good build git checkout --detach 149739c39475f3691e67aa0aee4f205f4e83392f ../artifacts/test.sh cd .. Full commit (up to 1000 lines): commit a7acb6dca941db2b1c135107dac3a34a20650d5c Author: Vladimir N. Makarov Date: Mon Dec 13 13:48:12 2021 -0500 [PR99531] Modify pseudo class cost calculation when processing move involving the pseudo and a hard register Pseudo class calculated on the 1st iteration should not have a special treatment in cost calculation when processing move involving the pseudo and a hard register. gcc/ChangeLog: PR target/99531 * ira-costs.c (record_operand_costs): Do not take pseudo class calculated on the 1st iteration into account when processing move involving the pseudo and a hard register. gcc/testsuite/ChangeLog: PR target/99531 * gcc.target/i386/pr99531.c: New test. --- gcc/ira-costs.c | 22 +--------------------- gcc/testsuite/gcc.target/i386/pr99531.c | 7 +++++++ 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index cb5ca8bc21b..d7191dcee3e 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -1310,7 +1310,7 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref) machine_mode mode = GET_MODE (SET_SRC (set)); cost_classes_t cost_classes_ptr = regno_cost_classes[regno]; enum reg_class *cost_classes = cost_classes_ptr->classes; - reg_class_t rclass, hard_reg_class, pref_class, bigger_hard_reg_class; + reg_class_t rclass, hard_reg_class, bigger_hard_reg_class; int cost, k; move_table *move_costs; bool dead_p = find_regno_note (insn, REG_DEAD, REGNO (src)); @@ -1336,23 +1336,6 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref) : move_costs[rclass][hard_reg_class]); op_costs[i]->cost[k] = cost * frequency; - /* If we have assigned a class to this allocno in our - first pass, add a cost to this alternative - corresponding to what we would add if this allocno - were not in the appropriate class. */ - if (pref) - { - if ((pref_class = pref[COST_INDEX (regno)]) == NO_REGS) - op_costs[i]->cost[k] - += ((i == 0 ? ira_memory_move_cost[mode][rclass][0] : 0) - + (i == 1 ? ira_memory_move_cost[mode][rclass][1] : 0) - * frequency); - else if (ira_reg_class_intersect[pref_class][rclass] - == NO_REGS) - op_costs[i]->cost[k] - += (move_costs[pref_class][rclass] - * frequency); - } /* If this insn is a single set copying operand 1 to operand 0 and one operand is an allocno with the other a hard reg or an allocno that prefers a hard @@ -1378,9 +1361,6 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref) } op_costs[i]->mem_cost = ira_memory_move_cost[mode][hard_reg_class][i] * frequency; - if (pref && (pref_class = pref[COST_INDEX (regno)]) != NO_REGS) - op_costs[i]->mem_cost - += ira_memory_move_cost[mode][pref_class][i] * frequency; return; } } diff --git a/gcc/testsuite/gcc.target/i386/pr99531.c b/gcc/testsuite/gcc.target/i386/pr99531.c new file mode 100644 index 00000000000..0e1a08b7c77 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr99531.c @@ -0,0 +1,7 @@ +/* { dg-do compile { target { x86_64-*-linux* } } } */ +/* { dg-options "-O2" } */ + +int func(int, int, int, int, int, int); +int caller(int a, int b, int c, int d, int e) { return func(0, a, b, c, d, e); } + +/* { dg-final { scan-assembler-not "push" } } */ >>From ci_notify@linaro.org Thu Dec 16 22:05:00 2021 Return-Path: X-Original-To: gcc-regression@gcc.gnu.org Delivered-To: gcc-regression@gcc.gnu.org Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by sourceware.org (Postfix) with ESMTPS id 26DF83858D28 for ; Thu, 16 Dec 2021 22:04:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 26DF83858D28 Received: by mail-wr1-x42e.google.com with SMTP id a18so525354wrn.6 for ; Thu, 16 Dec 2021 14:04:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:date:to:cc:message-id:subject:mime-version :list-id; bh=Q8/oBcbaDkP7H/5Ycu6of9oGW7Czx0JEZc4LcnwY98Y=; b=zN5IiLQ9q4x3u3fCh2pxDETwidriemZ4m+W765t5nsXVI6PsSl1EtTM3l/pvs9jRe+ eul8Me+fkKlyZCSfiqYLJLYReO1tnGpOrFD+qMn3RNfYepxp6GMWB1uDg1YCAyEStFhN y8K5nVu1C8eqdLu0vKs+F7BcEYnQhAGQdrX59uPW9MfSijzeEVjYpmvmxlLiBkMOGxAf qfq+4m/2EITPsimcY1GBqlfr4Qr/CxWe/kYG8bZBFRRcLzTCtRLHuKOzl3SyRUlXWnnq GAOOofCEY73ujjW5BAWPDjw/rEq+CwwJg8jhpcWY1aPoxP+FvKO5UgN+ILnN//X2pGKq Iulg== X-Gm-Message-State: AOAM531HjiyaqbroebMWQoB2RE8pc6zDd7XxYpY2FDeUeWlD/Etkot7l vRcObY0vWgJotQboKcHctLKtYA== X-Google-Smtp-Source: ABdhPJzw93dJ9AB6Bibn6Ue0kb5FdUAEyxulwjjZ2o/5hjok9VUe+Pjk8Z55lRa/igO3z+Z56pp16A== X-Received: by 2002:a5d:6e85:: with SMTP id k5mr11339384wrz.545.1639692297094; Thu, 16 Dec 2021 14:04:57 -0800 (PST) Received: from jenkins.jenkins (ci.linaro.org. [88.99.136.175]) by smtp.gmail.com with ESMTPSA id u2sm6585237wrs.17.2021.12.16.14.04.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Dec 2021 14:04:55 -0800 (PST) From: ci_notify@linaro.org X-Google-Original-From: linaro-infrastructure-errors@lists.linaro.org Date: Thu, 16 Dec 2021 22:04:54 +0000 (UTC) To: Jan Hubicka Cc: gcc-regression@gcc.gnu.org Message-ID: <665564136.5207.1639692295652@jenkins.jenkins> Subject: [TCWG CI] Regression caused by gcc: Add -fipa-strict-aliasing MIME-Version: 1.0 X-Jenkins-Job: TCWG Bisect tcwg_bmk_stm32/gnu_eabi-master-arm_eabi-coremark-Os_LTO X-Jenkins-Result: SUCCESS X-Spam-Status: No, score=-13.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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Thu, 16 Dec 2021 22:05:00 -0000 [TCWG CI] Regression caused by gcc: Add -fipa-strict-aliasing: commit 16c848090f237c2398930b8c0ef75acebf4fa44d Author: Jan Hubicka Add -fipa-strict-aliasing Results regressed to # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard: -8 # build_abe newlib: -6 # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard: -5 # benchmark -- -Os_LTO_mthumb artifacts/build-16c848090f237c2398930b8c0ef75acebf4fa44d/results_id: 1 from # reset_artifacts: -10 # build_abe binutils: -9 # build_abe stage1 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard: -8 # build_abe newlib: -6 # build_abe stage2 -- --set gcc_override_configure=--disable-libsanitizer --set gcc_override_configure=--disable-multilib --set gcc_override_configure=--with-cpu=cortex-m4 --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--with-float=hard: -5 # benchmark -- -Os_LTO_mthumb artifacts/build-baseline/results_id: 1 THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT. This commit has regressed these CI configurations: - tcwg_bmk_gnu_eabi_stm32/gnu_eabi-master-arm_eabi-coremark-Os_LTO First_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/build-16c848090f237c2398930b8c0ef75acebf4fa44d/ Last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/build-5954b4d415f6424f1232c6b22a772ce184773f54/ Baseline build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-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_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/ Reproduce builds: mkdir investigate-gcc-16c848090f237c2398930b8c0ef75acebf4fa44d cd investigate-gcc-16c848090f237c2398930b8c0ef75acebf4fa44d # Fetch scripts git clone https://git.linaro.org/toolchain/jenkins-scripts # 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_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/manifests/build-baseline.sh --fail curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/manifests/build-parameters.sh --fail curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_eabi-master-arm_eabi-coremark-Os_LTO/9/artifact/artifacts/test.sh --fail chmod +x artifacts/test.sh # Reproduce the baseline build (build all pre-requisites) ./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh # 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/ cd gcc # Reproduce first_bad build git checkout --detach 16c848090f237c2398930b8c0ef75acebf4fa44d ../artifacts/test.sh # Reproduce last_good build git checkout --detach 5954b4d415f6424f1232c6b22a772ce184773f54 ../artifacts/test.sh cd .. Full commit (up to 1000 lines): commit 16c848090f237c2398930b8c0ef75acebf4fa44d Author: Jan Hubicka Date: Mon Dec 13 17:29:26 2021 +0100 Add -fipa-strict-aliasing gcc/ChangeLog: 2021-12-13 Jan Hubicka * 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(-) 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= Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization -fira-algorithm=[CB|priority] Set the used IRA algorithm. +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) 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}. +@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=@var{n} @itemx -falign-functions=@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 = !flag_strict_aliasing ? 0 + alias_set_type base_set = !flag_strict_aliasing + || !flag_ipa_strict_aliasing ? 0 : ao_ref_base_alias_set (ref); - alias_set_type ref_set = !flag_strict_aliasing ? 0 + alias_set_type ref_set = !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 = NULL_TREE, ref_type = NULL_TREE; - if (flag_strict_aliasing) + if (flag_strict_aliasing && flag_ipa_strict_aliasing) { tree base; >>From hjl@sc.intel.com Thu Dec 16 22:40:12 2021 Return-Path: X-Original-To: gcc-regression@gcc.gnu.org Delivered-To: gcc-regression@gcc.gnu.org Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id AF1DB385842F for ; Thu, 16 Dec 2021 22:40:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AF1DB385842F X-IronPort-AV: E=McAfee;i="6200,9189,10200"; a="238363710" X-IronPort-AV: E=Sophos;i="5.88,212,1635231600"; d="scan'208";a="238363710" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Dec 2021 14:40:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,212,1635231600"; d="scan'208";a="605692165" Received: from scymds02.sc.intel.com ([10.82.73.244]) by FMSMGA003.fm.intel.com with ESMTP; 16 Dec 2021 14:40:08 -0800 Received: from gnu-clx-1.sc.intel.com (gnu-clx-1.sc.intel.com [172.25.70.216]) by scymds02.sc.intel.com with ESMTP id 1BGMe8ox019129; Thu, 16 Dec 2021 14:40:08 -0800 Received: by gnu-clx-1.sc.intel.com (Postfix, from userid 1000) id 412793E001F; Thu, 16 Dec 2021 14:40:08 -0800 (PST) Date: Thu, 16 Dec 2021 14:40:08 -0800 To: skpgkp2@gmail.com, hjl.tools@gmail.com, gcc-regression@gcc.gnu.org Subject: Regressions on native/master at commit r12-6023 vs commit r12-6020 on Linux/x86_64 User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20211216224008.412793E001F@gnu-clx-1.sc.intel.com> From: "H. J. Lu" X-Spam-Status: No, score=-3466.8 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=no 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: Thu, 16 Dec 2021 22:40:12 -0000 New failures: FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10074) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12968) New passes: FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++17 (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2a (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-3_a.H -std=c++2b (internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have namespace_decl in get_merge_kind, at cp/module.cc:10072) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header-5_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++17 (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2a (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966) FAIL: g++.dg/modules/xtreme-header_a.H -std=c++2b (internal compiler error: tree check: expected none of template_decl, have template_decl in add_specializations, at cp/module.cc:12966)