From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua1-x934.google.com (mail-ua1-x934.google.com [IPv6:2607:f8b0:4864:20::934]) by sourceware.org (Postfix) with ESMTPS id 25E313858404 for ; Sat, 16 Oct 2021 09:27:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 25E313858404 Received: by mail-ua1-x934.google.com with SMTP id f4so709074uad.4 for ; Sat, 16 Oct 2021 02:27:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=8i1ddl9yAHp6zQ16LlMHLy1JScjpAis6UJ+QA6RxVgI=; b=NbkSbEXrBZZtY/jsowRV9WXAfshHYmD50viMZO9RsmbKkCbzz/gu5ZvOuudQzJA6T9 xKH3qwy6JkGl+VswVlynJvLcOjLkyR/mfIZ4IfH1wgaknetoakT4Cz+F0j1wIRUZglX5 d1PrpnYz9A/AbWYHZNTowOzudcvyKxTaKTZtkzUTmcr3wOSoRDnqiIaE/5WZgV0Et4ld DBxvgY6EJCqQ35B7C08svswF/Vw4AK4BWbJjvjLbnpAOXf2F/rb3FKS3U13Vu28f8HB1 IpABxSBqftk+Rw5cQ1STMvdP7elM5SgvOJekmixYv27u4n9HOXe0tGYGg3JlQMAp0F0H COzQ== X-Gm-Message-State: AOAM530UyEJz+gvUNtMQtTgC/E34uHHVXTXowwJYDsUVTlKF6qX7m1XY 4NospHARv3+4ln06bZuXDlVyaIlHVYx/a4qfhuM= X-Google-Smtp-Source: ABdhPJx1R8OGAsiZ9dUX+hUxMngiSbIruhtLnSZigzbK+JEpXkZh4XZreveejBfwlEgl69pTTURd4Y9olD7y6u+sEw0= X-Received: by 2002:ab0:63d1:: with SMTP id i17mr16825531uap.115.1634376470613; Sat, 16 Oct 2021 02:27:50 -0700 (PDT) MIME-Version: 1.0 References: <65efdb72-260a-e5a3-5b28-f536f86bd5e6@redhat.com> In-Reply-To: <65efdb72-260a-e5a3-5b28-f536f86bd5e6@redhat.com> From: Andrew Pinski Date: Sat, 16 Oct 2021 02:27:39 -0700 Message-ID: Subject: Re: [PATCH] Ranger : Do not process abnormal ssa-names. To: Andrew MacLeod Cc: gcc-patches , Aldy Hernandez , Richard Biener , Jakub Jelinek Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Oct 2021 09:27:52 -0000 On Fri, Oct 15, 2021 at 6:53 AM Andrew MacLeod via Gcc-patches wrote: > > I've been looking at the pathological time issue ranger has with the > testcase from, uuuuuh.. PR 97623 I think. I've lost the details, but > kept the file since it was showing unpleasant behaviour. > > Most of the time is spent in callbacks from substitute_and_fold to > value_on_edge() dealing with PHI results and arguments. Turns out, its > virtually all wasted time dealing with SSA_NAMES with the > OCCURS_IN_ABNORMAL_PHI flag set.. > > This patch tells ranger not to consider any SSA_NAMEs which occur in > abnormal PHIs. This reduces the memory footprint of all the caches, and > also has a ripple effect with the new threader code which uses the GORI > exports and imports tables, making it faster as well as no ssa-name with > the abnormal flag set will be entered into the tables. > > That alone was not quite enough, as all the sheer volume of call backs > still took time, so I added checks in the value_of_* class of routines > used by substitute_and_fold to indicate there is no constant value > available for any SSA_NAME with that flag set. > > On my x86_64 box, before this change, that test case looked like: > > tree VRP : 7.76 ( 4%) 0.23 ( 5%) 8.02 > ( 4%) 537k ( 0%) > tree VRP threader : 7.20 ( 4%) 0.08 ( 2%) 7.28 ( > 4%) 392k ( 0%) > tree Early VRP : 39.22 ( 22%) 0.07 ( 2%) 39.44 ( > 22%) 1142k ( 0%) > > And with this patch , the results are: > > tree VRP : 7.57 ( 6%) 0.26 ( 5%) 7.85 > ( 6%) 537k ( 0%) > tree VRP threader : 0.62 ( 0%) 0.02 ( 0%) 0.65 > ( 0%) 392k ( 0%) > tree Early VRP : 4.00 ( 3%) 0.01 ( 0%) 4.03 > ( 3%) 1142k ( 0%) > > Which is a significant improvement, both for EVRP and the threader.. > > The patch adjusts the ranger folder, as well as the hybrid folder. > > bootstrapped on x86_64-pc-linux-gnu with no regressions and no missed > cases that I have been able to find. Did you test it with go enabled? Because others and myself are now running into a bootstrap failure most likely due to this patch. The number of SSA_NAME_OCCURS_IN_ABNORMAL_PHI in go is increased due to -fnon-call-exceptions being true there. Thanks, Andrew Pinski PS here is the ICE for me: libtool: compile: /home/apinski/src/upstream-gcc/gcc/objdir/./gcc/gccgo -B/home/apinski/src/upstream-gcc/gcc/objdir/./gcc/ -B/home/apinski/upstream-gcc/x86_64-pc-linux-gnu/bin/ -B/home/apinski/upstream-gcc/x86_64-pc-linux-gnu/lib/ -isystem /home/apinski/upstream-gcc/x86_64-pc-linux-gnu/include -isystem /home/apinski/upstream-gcc/x86_64-pc-linux-gnu/sys-include -fchecking=3D1 -minline-all-stringops -O2 -g -m32 -I . -c -fgo-pkgpath=3Dcmd/go/internal/modget /home/apinski/src/upstream-gcc/gcc/libgo/go/cmd/go/internal/modget/get.go /home/apinski/src/upstream-gcc/gcc/libgo/go/cmd/go/internal/modget/query.go -o cmd/go/internal/modget.o during GIMPLE pass: evrp In function =E2=80=98cmd/go/internal/modget.resolver.resolveQueries=E2=80= =99: go1: internal compiler error: tree check: expected class =E2=80=98type=E2= =80=99, have =E2=80=98exceptional=E2=80=99 (error_mark) in useless_type_conversion_p, at gimple-expr.c:87 0x862719 tree_class_check_failed(tree_node const*, tree_code_class, char const*, int, char const*) /home/apinski/src/upstream-gcc/gcc/gcc/tree.c:8739 0x7910ed tree_class_check(tree_node*, tree_code_class, char const*, int, char const*) /home/apinski/src/upstream-gcc/gcc/gcc/tree.h:3556 0x7910ed useless_type_conversion_p(tree_node*, tree_node*) /home/apinski/src/upstream-gcc/gcc/gcc/gimple-expr.c:87 0xf81a58 verify_gimple_phi /home/apinski/src/upstream-gcc/gcc/gcc/tree-cfg.c:5128 0xf81a58 verify_gimple_in_cfg(function*, bool) /home/apinski/src/upstream-gcc/gcc/gcc/tree-cfg.c:5457 0xe54a57 execute_function_todo /home/apinski/src/upstream-gcc/gcc/gcc/passes.c:2042 0xe5546e execute_todo /home/apinski/src/upstream-gcc/gcc/gcc/passes.c:2096 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See for instructions. > > I don't want to push it quite yet as I wanted feedback to make sure we > don't actually do anything I'm not aware of with SSA_NAMES which have > the ABNORMAL_PHI flag set. Most of the code i can find in VRP and > vr-values appears to punt, so I presume not even considering those names > is fine? > > This also seems like something that might be worth back-porting, > especially the hybrid pass parts... > > Andrew > >