From patchwork Sat Mar 30 17:11:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 232535 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 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 396032C009B for ; Sun, 31 Mar 2013 04:11:53 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:in-reply-to:subject:content-type:mime-version:message-id :date; q=dns; s=default; b=qeFV25nRowQUdzt7HAmA9EiSnM3nDfmulqDpB Z+eowurJYH17P7MeJsg1HMFWukPhttdKeCVcrSRsxgxzxrIIzTuC3wuRFP/rR2Zp 6FD3wVnkz3Z19OfSBVHA1BU5Y5yGDPgQ7zD60OsMHHYThyZyydivRDMJqrr3wJWp EdybC0= 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:from :to:cc:in-reply-to:subject:content-type:mime-version:message-id :date; s=default; bh=UWIJ1subU8AeJhFrfhJK+RbZQH0=; b=qVZfWXZfmEv nJMIagn1aWiu1fCf8Tv58paANhwAqpt5DHQk3nnf2P34STK4vQ2IHF8ErUV0X5mq Z7G9YCYL0egFNGXsa9VUTXI1myZQXUrpNSYEvuciXOOOvPA4P8WHiupT16Tx+N0o azvtN+iMGegwAQRtWx0atTvpxdGqhbYI= Received: (qmail 6848 invoked by alias); 30 Mar 2013 17:11:18 -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 6341 invoked by uid 89); 30 Mar 2013 17:11:10 -0000 X-Spam-SWARE-Status: No, score=-4.2 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, KHOP_THREADED, RCVD_IN_HOSTKARMA_W, RCVD_IN_HOSTKARMA_WL autolearn=ham version=3.3.1 Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sat, 30 Mar 2013 17:11:07 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1ULzJ4-000364-4e from Tom_deVries@mentor.com ; Sat, 30 Mar 2013 10:11:06 -0700 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Sat, 30 Mar 2013 10:11:06 -0700 Received: from build1-lucid-cs (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.1.289.1; Sat, 30 Mar 2013 10:11:05 -0700 Received: by build1-lucid-cs (Postfix, from userid 49877) id 6DCFB421213; Sat, 30 Mar 2013 10:11:05 -0700 (PDT) From: Tom de Vries To: Vladimir Makarov CC: gcc-patches In-Reply-To: <51558EF4.1030106@mentor.com> Subject: [PATCH][03/10] -fuse-caller-save - Add implicit parameter to find_all_hard_reg_sets MIME-Version: 1.0 Message-ID: <20130330171105.6DCFB421213@build1-lucid-cs> Date: Sat, 30 Mar 2013 10:11:05 -0700 X-Virus-Found: No Vladimir, This patch adds an implicit parameter to find_all_hard_reg_sets. Thanks, -Tom 2013-03-30 Radovan Obradovic Tom de Vries * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and handle. * rtl.h (find_all_hard_reg_sets): Add bool parameter. * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add new argument to find_all_hard_reg_sets call. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index c4591bfe..fe24d43 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -1271,7 +1271,7 @@ recompute_todo_spec (rtx next, bool for_backtrack) { HARD_REG_SET t; - find_all_hard_reg_sets (prev, &t); + find_all_hard_reg_sets (prev, &t, true); if (TEST_HARD_REG_BIT (t, regno)) return HARD_DEP; if (prev == pro) @@ -3041,7 +3041,7 @@ check_clobbered_conditions (rtx insn) if ((current_sched_info->flags & DO_PREDICATION) == 0) return; - find_all_hard_reg_sets (insn, &t); + find_all_hard_reg_sets (insn, &t, true); restart: for (i = 0; i < ready.n_ready; i++) diff --git a/gcc/rtl.h b/gcc/rtl.h index b9defcc..6486f20 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -2038,7 +2038,7 @@ extern const_rtx set_of (const_rtx, const_rtx); extern void record_hard_reg_sets (rtx, const_rtx, void *); extern void record_hard_reg_uses (rtx *, void *); #ifdef HARD_CONST -extern void find_all_hard_reg_sets (const_rtx, HARD_REG_SET *); +extern void find_all_hard_reg_sets (const_rtx, HARD_REG_SET *, bool); #endif extern void note_stores (const_rtx, void (*) (rtx, const_rtx, void *), void *); extern void note_uses (rtx *, void (*) (rtx *, void *), void *); diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index b198685..27c1974 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -1028,13 +1028,13 @@ record_hard_reg_sets (rtx x, const_rtx pat ATTRIBUTE_UNUSED, void *data) /* Examine INSN, and compute the set of hard registers written by it. Store it in *PSET. Should only be called after reload. */ void -find_all_hard_reg_sets (const_rtx insn, HARD_REG_SET *pset) +find_all_hard_reg_sets (const_rtx insn, HARD_REG_SET *pset, bool implicit) { rtx link; CLEAR_HARD_REG_SET (*pset); note_stores (PATTERN (insn), record_hard_reg_sets, pset); - if (CALL_P (insn)) + if (implicit && CALL_P (insn)) IOR_HARD_REG_SET (*pset, call_used_reg_set); for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) if (REG_NOTE_KIND (link) == REG_INC)