From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) by sourceware.org (Postfix) with ESMTPS id 23BEC3858D20 for ; Fri, 14 Apr 2023 08:59:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 23BEC3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-x22f.google.com with SMTP id bx15so16251061ljb.7 for ; Fri, 14 Apr 2023 01:59:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681462794; x=1684054794; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=GO+c/nVNDk+84vsAXFp9vZQazjKEb0vJGyifzXFYVq8=; b=Td3LyMkvAwzY4L83av5YfKc9ApZz0MAWPQ9VlQhK3tgBXyyd6BF3rwhEG9xK/I2UxC cpNQGJtAw+JHHd1Nu156ckXBDYRPh44x3xcGVVD5KkQmdD2dQsNqy5mstn36d/0xLomK jIXR4Gd/ymTXeYpBara+prEwETCETMMtQjwiKbjCerqc1fWZXMY1oH1A6plX1YP2KJrf rJ/Z+k9YUqPxm58FwMGA4t+2i9nR0vvxL9WqcD/BaSVlOuXEPDQycR8QQ/QDpSlo6Qa6 JfP4sC8eyfhGGt5VLCpNHi5loS6Hw8klbjMfNilGyGhnRL4vAbOn+TbWxZWkobiGPdmn 9QCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681462794; x=1684054794; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GO+c/nVNDk+84vsAXFp9vZQazjKEb0vJGyifzXFYVq8=; b=NXD0wCSqrh+uQ4FSac6qf/Tb5q/MHAdnwvQWlOqNYoA1wBiuC0dGlN5ddDSedKA7SN lUU9Cn/aWo3uNGmdewApSg7CavRqRDEBKA9aA+NqMpJK338zdYxmMTqETUYCyYsp43Wc hrj/M3JE96xdv0R+6oJPkijxTXsUreaEkauuoqOkVfnsTL5yXVNYEu46Qh01HqYc4v11 lRGC6AN1OWV1GksbPEL93sI9JNBJMdiaz0wE0inPgDUNI22SFCk4IlzS5XVg4u9zLRv/ 9OQrwxVPbqeIc+4U7gEidnhjPBYY/i01w3UNpxE0RziwNRsFUrpFJiuvXEw1mKP52Rab 3u5Q== X-Gm-Message-State: AAQBX9cYAOZdQ6ErNRaKCoAcCTGnMuaINtd13nPzl3IxxJbgRcsypye/ fzxaIMZGA3FjOqJVfMYIaj3QJDJxvZnFCqybj3M= X-Google-Smtp-Source: AKy350biupyleVPdvWK5p5v0+JpqkGBfK8k1xyPwD4cTa/3Vq3/6oCWLjgCCre1CNSwrdDL+XujNAvwXeZDqokW+ulA= X-Received: by 2002:a05:651c:906:b0:2a7:6f6a:baf with SMTP id e6-20020a05651c090600b002a76f6a0bafmr3915315ljq.0.1681462794338; Fri, 14 Apr 2023 01:59:54 -0700 (PDT) MIME-Version: 1.0 References: <1d4c9e6c-85e4-7eff-0833-aca7f874fbda@linux.ibm.com> In-Reply-To: <1d4c9e6c-85e4-7eff-0833-aca7f874fbda@linux.ibm.com> From: Richard Biener Date: Fri, 14 Apr 2023 10:59:42 +0200 Message-ID: Subject: Re: PATCH] tree-ssa-sink: Add heuristics for code sinking To: Ajit Agarwal Cc: gcc-patches , Segher Boessenkool , Peter Bergner , Jeff Law Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Fri, Apr 14, 2023 at 10:42=E2=80=AFAM Ajit Agarwal via Gcc-patches wrote: > > Hello All: > > This patch add heuristics for code sinking opportunities. > Bootstrapped and regtested for powerpc64-linux-gnu. > > Thanks & Regards > Ajit > > tree-ssa-sink: Add heuristics for code sinking. > > Add following code sinking heuristics: > > 1. from code block dominates the call. > 2. To Code block have uses inside the function call. > 3. Loop headers. > 4. Sinking from code block after call increases register > pressure. > 5. Sinking calls. > > 2023-04-14 Ajit Kumar Agarwal > > gcc/ChangeLog: > > * tree-ssa-sink.cc (statement_sink_location): Add heuristics > for code sinking. > --- > gcc/tree-ssa-sink.cc | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/gcc/tree-ssa-sink.cc b/gcc/tree-ssa-sink.cc > index 87b1d40c174..8de88b259a3 100644 > --- a/gcc/tree-ssa-sink.cc > +++ b/gcc/tree-ssa-sink.cc > @@ -465,6 +465,39 @@ statement_sink_location (gimple *stmt, basic_block f= rombb, > if (sinkbb =3D=3D frombb) > return false; > > + auto_vec h; > + h =3D get_all_dominated_blocks (CDI_DOMINATORS, > + frombb); > + bool is_call =3D false; > + while (h.length ()) > + { > + basic_block bb =3D h.pop (); > + > + if (bb =3D=3D frombb) > + continue; > + > + for (gimple_stmt_iterator gsi =3D gsi_last_bb (bb); !gsi_en= d_p (gsi);) > + { > + gimple *stmt =3D gsi_stmt (gsi); > + > + if (is_gimple_call (stmt)) > + { > + is_call =3D true; > + break; > + } > + > + if (!gsi_end_p (gsi)) > + gsi_prev (&gsi); > + } > + } > + > + if (!is_gimple_call (stmt) > + && (gimple_bb (use) !=3D frombb) > + && !is_gimple_call (use) > + && dominated_by_p (CDI_DOMINATORS, sinkbb, frombb) > + && is_call) > + return false; > + Sorry, but this lacks a comment, it doesn't explain why the existing heuris= tics are not enough (select_best_block), it repeats dominance computing. More so it lacks a testcase demonstrating the effect. Richard. > if (sinkbb =3D=3D gimple_bb (use)) > *togsi =3D gsi_for_stmt (use); > else > -- > 2.31.1 >