From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id C3DC6384601E for ; Tue, 25 Jun 2024 06:20:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C3DC6384601E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C3DC6384601E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719296442; cv=none; b=U8YmSdSH5IgeAzJRDVeoLkge7ukXFmh6rZw+EJ0ka842nF5TTdpwAj77J7GaRUtsz32DN+Hb0aq+1jHH/cq7VACqtaABI4Znu4+T8vTV7yhfExSBgxxRoYOloaV/pypYs23gLg0Zqn3bp5Ewj3jhRxiQm4RMn66r5Cnl7fyCz/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719296442; c=relaxed/simple; bh=XgD+h5FV8phesfzz6eTKgJqxLq8YBpaCwojaO8GHGMo=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=ncZ4fymGk92/mCiA5qOUojcN4mqIA36LcgXZ/k2RWbrKgwU2A231Y+d7EGIrro/22Ps3yxsMeu6YE+B81IOBmOiZ5zxdb8kHSjO8ZtBmkKPCiRtYkhn+0m8YXHUN/Admyq3nKVrP1yTbPDyfrqLJPKucYb3P2IFkNtx2mgI2BXo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45OKvAkn023883; Mon, 24 Jun 2024 21:21:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h= message-id:date:mime-version:subject:from:to:cc:references :in-reply-to:content-type:content-transfer-encoding; s=pp1; bh=X xlUzz/a4kwS15HFOej79ILCsMY+JcJQTNaVqP9RXuE=; b=JdoQbcx+OOGzqg6E6 +n6zkLFbY5+Rk+ARZVsrbV67+C5W86ilsicg8c1qH8EPasfRscYFKVf66DosL6gl TthLtE+DH9zbgz3vZn2kIvshsJ2XRHmFEImkBjqHxPq5CzvYdqjtSpM/gsRBfakg f5miKdofPo54vFHfkqwA2X8a53X6p4DO/kJ3xogVHHSDF692iWV9k5RY0G4wuQHB UXPGqSxK2MSdv1ljrwlQbEMERaiezb+h3zE7WjJbIOfrYtZHOwi9Lwsggl+CU8pt tllEyDN2+MLt7mKhLLYBZRY6KD9yfZxZP+Tx8FGvPycUMALe9w4jhZV8EMC2Ha31 0zhsQ== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yye8d09v6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2024 21:21:35 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 45OHwMVE000397; Mon, 24 Jun 2024 21:21:34 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([172.16.1.74]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 3yxbn32gr4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2024 21:21:34 +0000 Received: from smtpav05.wdc07v.mail.ibm.com (smtpav05.wdc07v.mail.ibm.com [10.39.53.232]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 45OLLVG728181228 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jun 2024 21:21:33 GMT Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 391B958065; Mon, 24 Jun 2024 21:21:31 +0000 (GMT) Received: from smtpav05.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B671A5805D; Mon, 24 Jun 2024 21:21:30 +0000 (GMT) Received: from [9.61.7.64] (unknown [9.61.7.64]) by smtpav05.wdc07v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Jun 2024 21:21:30 +0000 (GMT) Message-ID: Date: Mon, 24 Jun 2024 16:21:30 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PING][PATCH v2] rs6000: ROP - Do not disable shrink-wrapping for leaf functions [PR114759] From: Peter Bergner To: Segher Boessenkool Cc: "Kewen.Lin" , GCC Patches References: <1e003d78-3b2e-4263-830a-7c00a3e9db54@linux.ibm.com> Content-Language: en-US In-Reply-To: <1e003d78-3b2e-4263-830a-7c00a3e9db54@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: BjilBrOqiyhckfDSvfNGM7dH1XXWkrVB X-Proofpoint-ORIG-GUID: BjilBrOqiyhckfDSvfNGM7dH1XXWkrVB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-24_18,2024-06-24_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 mlxscore=0 mlxlogscore=724 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2406140001 definitions=main-2406240166 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP 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: Ping. [Message-ID: <1e003d78-3b2e-4263-830a-7c00a3e9db54@linux.ibm.com>] Peter On 6/18/24 5:59 PM, Peter Bergner wrote: > Updated patch. This passed bootstrap and regtesting on powerpc64le-linux > with no regressions. Ok for trunk? > > Changes from v1: > 1. Moved the disabling of shrink-wrapping to rs6000_emit_prologue > and beefed up comment. Used a more accurate test. > 2. Added comment to the test case on why rop_ok is needed. > > Peter > > > rs6000: ROP - Do not disable shrink-wrapping for leaf functions [PR114759] > > Only disable shrink-wrapping when using -mrop-protect when we know we > will be emitting the ROP-protect hash instructions (ie, non-leaf functions). > > 2024-06-17 Peter Bergner > > gcc/ > PR target/114759 > * config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move > the disabling of shrink-wrapping from here.... > * config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here. > > gcc/testsuite/ > PR target/114759 > * gcc.target/powerpc/pr114759-1.c: New test. > --- > gcc/config/rs6000/rs6000-logue.cc | 5 +++++ > gcc/config/rs6000/rs6000.cc | 4 ---- > gcc/testsuite/gcc.target/powerpc/pr114759-1.c | 16 ++++++++++++++++ > 3 files changed, 21 insertions(+), 4 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/powerpc/pr114759-1.c > > diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc > index 193e2122c0f..c384e48e378 100644 > --- a/gcc/config/rs6000/rs6000-logue.cc > +++ b/gcc/config/rs6000/rs6000-logue.cc > @@ -3018,6 +3018,11 @@ rs6000_emit_prologue (void) > && (lookup_attribute ("no_split_stack", > DECL_ATTRIBUTES (cfun->decl)) > == NULL)); > + /* If we are inserting ROP-protect hash instructions, disable shrink-wrap > + until the bug where the hashst insn is emitted in the wrong location > + is fixed. See PR101324 for details. */ > + if (info->rop_hash_size) > + flag_shrink_wrap = 0; > > frame_pointer_needed_indeed > = frame_pointer_needed && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM); > diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc > index e4dc629ddcc..fd6e013c346 100644 > --- a/gcc/config/rs6000/rs6000.cc > +++ b/gcc/config/rs6000/rs6000.cc > @@ -3427,10 +3427,6 @@ rs6000_override_options_after_change (void) > } > else if (!OPTION_SET_P (flag_cunroll_grow_size)) > flag_cunroll_grow_size = flag_peel_loops || optimize >= 3; > - > - /* If we are inserting ROP-protect instructions, disable shrink wrap. */ > - if (rs6000_rop_protect) > - flag_shrink_wrap = 0; > } > > #ifdef TARGET_USES_LINUX64_OPT > diff --git a/gcc/testsuite/gcc.target/powerpc/pr114759-1.c b/gcc/testsuite/gcc.target/powerpc/pr114759-1.c > new file mode 100644 > index 00000000000..579e08e920f > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr114759-1.c > @@ -0,0 +1,16 @@ > +/* { dg-do compile } */ > +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect -fdump-rtl-pro_and_epilogue" } */ > +/* { dg-require-effective-target rop_ok } Only enable on supported ABIs. */ > + > +/* Verify we still attempt shrink-wrapping when using -mrop-protect > + and there are no function calls. */ > + > +long > +foo (long arg) > +{ > + if (arg) > + asm ("" ::: "r20"); > + return 0; > +} > + > +/* { dg-final { scan-rtl-dump-times "Performing shrink-wrapping" 1 "pro_and_epilogue" } } */