From patchwork Mon Aug 4 19:08:58 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Maciej W. Rozycki" X-Patchwork-Id: 376426 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0CE66140081 for ; Tue, 5 Aug 2014 05:09:28 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=WWKJneExn76QVkBBaHM1XABgcj8Qy/0NfP4Skvdrw852AOyyEs 8RyyCZVfosrlTNteuruzQVlJWghWNpRnhlJxXLIBuaKkl5OyoyQr1BvaZvH7cHIG jGxvVEHbWMB4gYciYlLqLUC9S5dnOqVRtuO1qxoJqepXl/DvBVIFPZklk= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=6eJkOcc6kRoL7JUOTRt7E/9iT94=; b=WQlyg2JxbviA7eeII6KV XazBUAZgJ0UD52C/dUbVVE29pVLopCcnRQoy3iKB6yy5dj5QXMHHqElfsQ73usYc 4w6BV3SiUhczqhrBf43SKMwj6swkbgQsjCs/h3RfH3XHGUoXokrWULxubX4JfHLr FAmWEayu+1ILWICpVwXi8HQ= Received: (qmail 22556 invoked by alias); 4 Aug 2014 19:09:22 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 22546 invoked by uid 89); 4 Aug 2014 19:09:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 04 Aug 2014 19:09:11 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1XENd4-0006iJ-QZ from Maciej_Rozycki@mentor.com ; Mon, 04 Aug 2014 12:09:06 -0700 Received: from SVR-IES-FEM-02.mgc.mentorg.com ([137.202.0.106]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 4 Aug 2014 12:09:06 -0700 Received: from localhost (137.202.0.76) by SVR-IES-FEM-02.mgc.mentorg.com (137.202.0.106) with Microsoft SMTP Server (TLS) id 14.2.247.3; Mon, 4 Aug 2014 20:09:04 +0100 Date: Mon, 4 Aug 2014 20:08:58 +0100 From: "Maciej W. Rozycki" To: David Edelsohn CC: Subject: [PATCH] gcc/testsuite: Disable pr44194-1.c for BE Power64/Linux Message-ID: User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Hi, The pr44194-1.c test case scores a failure invariably for big-endian Power64/Linux targets: PASS: gcc.dg/pr44194-1.c (test for excess errors) FAIL: gcc.dg/pr44194-1.c scan-rtl-dump dse1 "global deletions = (2|3)" PASS: gcc.dg/pr44194-1.c scan-rtl-dump-not final "insn[: ][^\n]*set \\(mem(?![^\n]*scratch)" because IIUC the case only makes sense for targets where functions return small structures in registers. For historical reasons this is not the case for Power/Linux targets, except from the newly-added 64-bit little-endian one (according to LINUX64_DEFAULT_ABI_ELFv2 defined in rs6000/sysv4le.h and then rs6000_return_in_memory) or where the `-mabi=elfv2' option has been used (that, regrettably, looks undetectable to me; there's no preprocessor macro defined one could use to tell the ABIs apart). The test case already excludes 32-bit targets based on the implication none uses registers for struct returns (that is not entirely correct, though fixing it is beyond the scope of this change). These observations are reflected in the change below, that disables the test case for big-endian Power64/Linux targets while retaining it for little-endian ones. As noted above there's no way to detect `-mabi=elfv2' being in effect, so the check for relevance is hardwired to the target triplet instead. This makes the failure go away in my power-linux-gnu testing that includes a 64-bit big-endian multilib. I have no way to test a 64-bit little-endian multilib, however I believe the change is obviously correct in this respect. This could get extended to cover other Power targets, as it seems to me there are more that should be excluded, however I don't feel comfortable enough with the intricacies of the Power configuration to dare changing anything for targets I have no way to test. OK to apply? 2014-08-04 Maciej W. Rozycki gcc/testsuite/ * gcc.dg/pr44194-1.c: Also exclude powerpc*-*-linux*, but not powerpc*le-*-linux*. Maciej gcc-test-ppc-pr44194.diff Index: gcc-fsf-trunk-quilt/gcc/testsuite/gcc.dg/pr44194-1.c =================================================================== --- gcc-fsf-trunk-quilt.orig/gcc/testsuite/gcc.dg/pr44194-1.c 2014-05-16 16:00:05.000000000 +0100 +++ gcc-fsf-trunk-quilt/gcc/testsuite/gcc.dg/pr44194-1.c 2014-08-04 17:54:23.648935358 +0100 @@ -1,4 +1,4 @@ -/* { dg-do compile { target { { { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } && { ! hppa*64*-*-* } } && { ! alpha*-*-* } } } } */ +/* { dg-do compile { target { { { { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } && { ! hppa*64*-*-* } } && { ! alpha*-*-* } } && { { ! powerpc*-*-linux* } || { powerpc*le-*-linux* } } } } } */ /* { dg-options "-O2 -fdump-rtl-dse1 -fdump-rtl-final" } */ /* Restrict to 64-bit targets since 32-bit targets usually return small