From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nikam.ms.mff.cuni.cz (nikam.ms.mff.cuni.cz [195.113.20.16]) by sourceware.org (Postfix) with ESMTPS id E38D83858CDA for ; Mon, 25 Sep 2023 08:47:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E38D83858CDA Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=ucw.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kam.mff.cuni.cz Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id 3653A2825F9; Mon, 25 Sep 2023 10:47:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucw.cz; s=gen1; t=1695631637; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dNU7Otxco0WIoFtaqtl9fRn9AIw67VZksdUScKeeplI=; b=oav+tdCRJnJHjsikSoM/dKNycHwMqlGpi6VI16PVsL6pKfx5mO4kXzYMgt+0htRiv9LSk+ 37xsq8XScMGUgyCtJASVRpai7Ritg9/hhlAiFchAT9u7b2y1/6TofWCqkTm0rZKZoYpSiP f9+LkDOHzRo0Usgit2v7FvMnZvVZqTQ= Date: Mon, 25 Sep 2023 10:47:17 +0200 From: Jan Hubicka To: Martin Jambor Cc: GCC Patches Subject: Re: [PATCH] ipa-sra: Allow IPA-SRA in presence of returns which will be removed Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,JMQ_SPF_NEUTRAL,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > >> gcc/ChangeLog: > >> > >> 2023-08-18 Martin Jambor > >> > >> PR ipa/110378 > >> * ipa-param-manipulation.cc > >> (ipa_param_body_adjustments::mark_dead_statements): Verify that any > >> return uses of PARAM will be removed. > >> (ipa_param_body_adjustments::mark_clobbers_dead): Likewise. > >> * ipa-sra.cc (isra_param_desc): New fields > >> remove_only_when_retval_removed and split_only_when_retval_removed. > >> (struct gensum_param_desc): Likewise. Fix comment long line. > >> (ipa_sra_function_summaries::duplicate): Copy the new flags. > >> (dump_gensum_param_descriptor): Dump the new flags. > >> (dump_isra_param_descriptor): Likewise. > >> (isra_track_scalar_value_uses): New parameter desc. Set its flag > >> remove_only_when_retval_removed when encountering a simple return. > >> (isra_track_scalar_param_local_uses): Replace parameter call_uses_p > >> with desc. Pass it to isra_track_scalar_value_uses and set its > >> call_uses. > >> (ptr_parm_has_nonarg_uses): Accept parameter descriptor as a > >> parameter. If there is a direct return use, mark any.. > >> (create_parameter_descriptors): Pass the whole parameter descriptor to > >> isra_track_scalar_param_local_uses and ptr_parm_has_nonarg_uses. > >> (process_scan_results): Copy the new flags. > >> (isra_write_node_summary): Stream the new flags. > >> (isra_read_node_info): Likewise. > >> (adjust_parameter_descriptions): Check that transformations > >> requring return removal only happen when return value is removed. > >> Restructure main loop. Adjust dump message. > >> > >> gcc/testsuite/ChangeLog: > >> > >> 2023-08-18 Martin Jambor > >> > >> PR ipa/110378 > >> * gcc.dg/ipa/ipa-sra-32.c: New test. > >> * gcc.dg/ipa/pr110378-4.c: Likewise. > >> * gcc.dg/ipa/ipa-sra-4.c: Use a return value. > >> --- > >> gcc/ipa-param-manipulation.cc | 7 +- > >> gcc/ipa-sra.cc | 247 +++++++++++++++++--------- > >> gcc/testsuite/gcc.dg/ipa/ipa-sra-32.c | 30 ++++ > >> gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c | 4 +- > >> gcc/testsuite/gcc.dg/ipa/pr110378-4.c | 50 ++++++ > >> 5 files changed, 251 insertions(+), 87 deletions(-) > >> create mode 100644 gcc/testsuite/gcc.dg/ipa/ipa-sra-32.c > >> create mode 100644 gcc/testsuite/gcc.dg/ipa/pr110378-4.c > >> OK, Thanks Honza