From patchwork Fri Jul 24 01:15:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Bergner X-Patchwork-Id: 1335277 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=gcc.gnu.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=n+Ph+FX5; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BCWVL5qJ0z9sPB for ; Fri, 24 Jul 2020 11:15:53 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E05BC385DC2E; Fri, 24 Jul 2020 01:15:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E05BC385DC2E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1595553349; bh=lx9ndx/B7bgOu0+FG3e8C9DT0EX7nHtMAX/GTI64sfo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=n+Ph+FX5cILVCjDfUaOWJMRiuVY5FmoeUbJqE0bWgwyxdwRiYlHH28a7ZTsoYkdgj KTglyB3LaaVh0jQlABAJqZCAHymlXNs4ajynxkfYxhtE8T9q0jXbBBhtvKFeYIoeaL SyuYu5q0m/HYejuG4nvS62apLGUwQHWu7hpXV1/E= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 272EF3858D38 for ; Fri, 24 Jul 2020 01:15:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 272EF3858D38 Received: from pps.filterd (m0127361.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 06O12MpW180527; Thu, 23 Jul 2020 21:15:46 -0400 Received: from ppma04wdc.us.ibm.com (1a.90.2fa9.ip4.static.sl-reverse.com [169.47.144.26]) by mx0a-001b2d01.pphosted.com with ESMTP id 32fb8xyw4u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Jul 2020 21:15:46 -0400 Received: from pps.filterd (ppma04wdc.us.ibm.com [127.0.0.1]) by ppma04wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 06O1FVqM029142; Fri, 24 Jul 2020 01:15:45 GMT Received: from b03cxnp08027.gho.boulder.ibm.com (b03cxnp08027.gho.boulder.ibm.com [9.17.130.19]) by ppma04wdc.us.ibm.com with ESMTP id 32brq9rqn8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jul 2020 01:15:45 +0000 Received: from b03ledav001.gho.boulder.ibm.com (b03ledav001.gho.boulder.ibm.com [9.17.130.232]) by b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 06O1Fg8Z12780258 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 24 Jul 2020 01:15:42 GMT Received: from b03ledav001.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4B07D6E058; Fri, 24 Jul 2020 01:15:44 +0000 (GMT) Received: from b03ledav001.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8961A6E056; Fri, 24 Jul 2020 01:15:43 +0000 (GMT) Received: from [9.65.200.87] (unknown [9.65.200.87]) by b03ledav001.gho.boulder.ibm.com (Postfix) with ESMTP; Fri, 24 Jul 2020 01:15:43 +0000 (GMT) To: Segher Boessenkool Subject: [PATCH] rs6000: ICE in unrecognizable insn when using -mpower10 Message-ID: <1f5922e9-ee1c-5409-b4e5-543ee7a374fb@linux.ibm.com> Date: Thu, 23 Jul 2020 20:15:42 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Language: en-US X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-07-23_09:2020-07-23, 2020-07-23 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=858 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2007240001 X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Peter Bergner via Gcc-patches From: Peter Bergner Reply-To: Peter Bergner Cc: Michael Meissner , Bill Schmidt , GCC Patches Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" We get an ICE when using -mpower10 and a -mcpu= value that is older than power10. The -mpower10 option requires -mcpu=power10 or later. The following patch enforces that. This passed bootstrap and regtesting with no errors. Ok for trunk? GCC 10 does not ICE on this test case, so I am not asking for a backport. Peter gcc/ PR target/95907 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add check to require -mcpu=power10 if using -mpower10. gcc/testsuite/ PR target/95907 * g++.target/powerpc/pr95907.C: New test. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6bea544d26a..96241a9d0a3 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4094,6 +4094,14 @@ rs6000_option_override_internal (bool global_init_p) rs6000_isa_flags &= ~OPTION_MASK_FLOAT128_HW; } + /* If the user explicitly uses -mpower10, ensure our ISA flags are + compatible with it. */ + if (TARGET_POWER10 + && (rs6000_isa_flags_explicit & OPTION_MASK_POWER10) != 0 + && (processor_target_table[cpu_index].target_enable + & OPTION_MASK_POWER10) == 0) + error ("%qs requires %qs", "-mpower10", "-mcpu=power10"); + /* Enable -mprefixed by default on power10 systems. */ if (TARGET_POWER10 && (rs6000_isa_flags_explicit & OPTION_MASK_PREFIXED) == 0) rs6000_isa_flags |= OPTION_MASK_PREFIXED; diff --git a/gcc/testsuite/g++.target/powerpc/pr95907.C b/gcc/testsuite/g++.target/powerpc/pr95907.C new file mode 100644 index 00000000000..45d276f25a7 --- /dev/null +++ b/gcc/testsuite/g++.target/powerpc/pr95907.C @@ -0,0 +1,7 @@ +// PR target/95907 +// { dg-do compile } +// { dg-require-effective-target power10_ok } +// { dg-options "-mpower10" } + +int foobool_argc; +bool foobool() { return foobool_argc; }