From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) by sourceware.org (Postfix) with ESMTP id 29FFC385AC12 for ; Wed, 7 Jul 2021 23:43:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 29FFC385AC12 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=kernel.crashing.org Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id 167NgfFt022799; Wed, 7 Jul 2021 18:42:41 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id 167Ngf4v022798; Wed, 7 Jul 2021 18:42:41 -0500 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Wed, 7 Jul 2021 18:42:41 -0500 From: Segher Boessenkool To: Hongtao Liu Cc: Richard Biener , Jakub Jelinek , Richard Sandiford , liuhongt , GCC Patches Subject: Re: [PATCH 1/2] CALL_INSN may not be a real function call. Message-ID: <20210707234241.GR1583@gate.crashing.org> References: <20210603065408.47912-1-hongtao.liu@intel.com> <20210705233008.GJ1583@gate.crashing.org> <20210707145238.GL1583@gate.crashing.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, TXREP, T_SPF_HELO_PERMERROR, T_SPF_PERMERROR 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-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: Wed, 07 Jul 2021 23:43:46 -0000 On Wed, Jul 07, 2021 at 11:23:48PM +0800, Hongtao Liu wrote: > On Wed, Jul 7, 2021 at 10:54 PM Segher Boessenkool > wrote: [ snip some old stuff ] > > Yeah. This stuff needs a rethink. > > > > What is wrong with just using an unspec and clobbers? > > > It's partial and **potential clobber**, All RTL "clobber" is always a potential clobber, it never guarantees the existing value does not survive. You can pass it through some unspec to make this more explicit. You will have to add some hook that CSE can use to figure out what bits are conserved by your target-specific construct, as you should have done in the first place. This will be much less work for you too, compared to actually checking if all existing GCC code needs too check "FAKE_CALL_P" or not (instead of just hoping it works now, as you do). Segher