From patchwork Wed Nov 17 16:03:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frederik Harwath X-Patchwork-Id: 47822 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1BCB13858439 for ; Wed, 17 Nov 2021 16:13:51 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 7CC6F385782F for ; Wed, 17 Nov 2021 16:04:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7CC6F385782F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: 1tqFVCUAWNEPPuGJ4G1pfuQ6DyscwYIXltofBJmN0NpO7EKNqvwVmXlQr5B0vG6WYG2Co9Zew2 MHpBZ+IdvD08y7sSXDDzOxRHLp9kjKcmkAy37VG4M3L/sCrfwsWFpzR5d3q4HkrpZzn8wsOH64 JkAa0vMHkfX9G547Zcis1qXuiUKxge6Ur6VnXXSnx4ijGqdwANvJ6ucflVfGRa2tQraksDL0gl YrP4Aw6rBehx/zpoaPRrA7EUAGwVtUdqsof69E/oeZYiv9uegye0qXJS30e+CytRBhdVaru3m8 rloZzIuZcfJe9e0gorGlX+gZ X-IronPort-AV: E=Sophos;i="5.87,241,1631606400"; d="scan'208";a="68445346" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 17 Nov 2021 08:04:20 -0800 IronPort-SDR: EYwpazGVhL9nAd9tsne0JH6G/iSRSNOYxg4BnO2+Gzf8x8Wwj7XhNzGR9ulCQC032M4OTk032a 64Ao49TzfG6tf9ZjuI4nYWYFJFM4Vl5J9tqNG+BE8I9KlYNlGrYSHjrAzpyUA9qhnyNeDj08Q3 V7UWIE5Aw13UgVWYY6y5/5mBxIQe7QgaGydb07hvqR7Oi0KvTKXeT6XjdEdYAitpb5j288aDUk dFO/SAR05cfg5j0N+OJ+Jm/4JM/0qcIz6zBqcDiYYdiQ5UkOBxis570F8L8w7hgau3rmVPXAaZ d00= From: Frederik Harwath To: Subject: [OG11][committed][PATCH 10/22] openacc: Add "can_be_parallel" flag info to "graph" dumps Date: Wed, 17 Nov 2021 17:03:18 +0100 Message-ID: <20211117160330.20029-10-frederik@codesourcery.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211117160330.20029-1-frederik@codesourcery.com> References: <20211117160330.20029-1-frederik@codesourcery.com> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, 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: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" gcc/ChangeLog: * graph.c (oacc_get_fn_attrib): New declaration. (find_loop_location): New declaration. (draw_cfg_nodes_for_loop): Print value of the can_be_parallel flag at the top of loops in OpenACC functions. --- gcc/graph.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) -- 2.33.0 ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 diff --git a/gcc/graph.c b/gcc/graph.c index ce8de33ffe10..3ad07be3b309 100644 --- a/gcc/graph.c +++ b/gcc/graph.c @@ -191,6 +191,10 @@ draw_cfg_nodes_no_loops (pretty_printer *pp, struct function *fun) } } + +extern tree oacc_get_fn_attrib (tree); +extern dump_user_location_t find_loop_location (class loop *); + /* Draw all the basic blocks in LOOP. Print the blocks in breath-first order to get a good ranking of the nodes. This function is recursive: It first prints inner loops, then the body of LOOP itself. */ @@ -205,17 +209,26 @@ draw_cfg_nodes_for_loop (pretty_printer *pp, int funcdef_no, if (loop->header != NULL && loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)) - pp_printf (pp, - "\tsubgraph cluster_%d_%d {\n" - "\tstyle=\"filled\";\n" - "\tcolor=\"darkgreen\";\n" - "\tfillcolor=\"%s\";\n" - "\tlabel=\"loop %d\";\n" - "\tlabeljust=l;\n" - "\tpenwidth=2;\n", - funcdef_no, loop->num, - fillcolors[(loop_depth (loop) - 1) % 3], - loop->num); + { + pp_printf (pp, + "\tsubgraph cluster_%d_%d {\n" + "\tstyle=\"filled\";\n" + "\tcolor=\"darkgreen\";\n" + "\tfillcolor=\"%s\";\n" + "\tlabel=\"loop %d %s\";\n" + "\tlabeljust=l;\n" + "\tpenwidth=2;\n", + funcdef_no, loop->num, + fillcolors[(loop_depth (loop) - 1) % 3], loop->num, + /* This is only meaningful for loops that have been processed + by Graphite. + + TODO Use can_be_parallel_valid_p? */ + !oacc_get_fn_attrib (cfun->decl) + ? "" + : loop->can_be_parallel ? "(can_be_parallel = true)" + : "(can_be_parallel = false)"); + } for (class loop *inner = loop->inner; inner; inner = inner->next) draw_cfg_nodes_for_loop (pp, funcdef_no, inner);