From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 469193858CD1 for ; Sat, 9 Dec 2023 10:38:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 469193858CD1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 469193858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702118329; cv=none; b=Z8w4iyZWZiuGaoNxIXE2DGLd4Q2bXNkrflg7RHbLWtvW5Vd0hGmRhewa6E5b4QkUoWV10atk7CpGVJXBxGqyCZ/M4A4jT4Y1SGsZruqfqsA0GHRgLZqyFeey4Cmv8BhugiPE2IBvtDiiZMQmUHCchEiHOoloTZ6+MoFnaAMxCO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702118329; c=relaxed/simple; bh=0usq/ISCTW+jMyfnDKb4acPL3nk6L9VHPOQEHha7Eok=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=Ff5VB6jJ74DqACL8Cro4/4ETDGZasRkXd1f1BH6YcRHUOZuUDz/CgQWWwdhtKurfAvH1hNUeJqw5VIsncDbiL8dstk+hBSjkSgcLpco1zlIgTduvpk6OLilwat76RZOiOg4uiLHUhytPwchIGFuobvaPk8kMIqpJm4lTb4yhSB0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3EE58106F; Sat, 9 Dec 2023 02:39:33 -0800 (PST) Received: from localhost (e121540-lin.manchester.arm.com [10.32.110.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F185C3F5A1; Sat, 9 Dec 2023 02:38:46 -0800 (PST) From: Richard Sandiford To: Tamar Christina Mail-Followup-To: Tamar Christina ,gcc-patches@gcc.gnu.org, nd@arm.com, rguenther@suse.de, jlaw@ventanamicro.com, richard.sandiford@arm.com Cc: gcc-patches@gcc.gnu.org, nd@arm.com, rguenther@suse.de, jlaw@ventanamicro.com Subject: Re: [PATCH 15/21]middle-end: [RFC] conditionally support forcing final edge for debugging References: Date: Sat, 09 Dec 2023 10:38:45 +0000 In-Reply-To: (Tamar Christina's message of "Mon, 6 Nov 2023 07:41:26 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-21.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_NONE,SPF_NONE,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: Tamar Christina writes: > Hi All, > > What do people think about having the ability to force only the latch connected > exit as the exit as a param? I.e. what's in the patch but as a param. > > I found this useful when debugging large example failures as it tells me where > I should be looking. No hard requirement but just figured I'd ask if we should. If it's useful for that, then perhaps it would be worth making it a DEBUG_COUNTER instead of a --param, for easy bisection. Thanks, Richard > > Thanks, > Tamar > > gcc/ChangeLog: > > * tree-vect-loop.cc (vec_init_loop_exit_info): Allow forcing of exit. > > --- inline copy of patch -- > diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc > index 27ab6abfa854f14f8a4cf3d9fcb1ac1c203a4198..d6b35372623e94e02965510ab557cb568c302ebe 100644 > --- a/gcc/tree-vect-loop.cc > +++ b/gcc/tree-vect-loop.cc > @@ -964,6 +964,7 @@ vec_init_loop_exit_info (class loop *loop) > if (exits.length () == 1) > return exits[0]; > > +#if 0 > /* If we have multiple exits we only support counting IV at the moment. Analyze > all exits and return one */ > class tree_niter_desc niter_desc; > @@ -982,6 +983,16 @@ vec_init_loop_exit_info (class loop *loop) > } > > return candidate; > +#else > + basic_block bb = ip_normal_pos (loop); > + if (!bb) > + return NULL; > + > + edge exit = EDGE_SUCC (bb, 0); > + if (exit->dest == loop->latch) > + return EDGE_SUCC (bb, 1); > + return exit; > +#endif > } > > /* Function bb_in_loop_p