From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116286 invoked by alias); 6 Dec 2016 17:52:50 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 116275 invoked by uid 89); 6 Dec 2016 17:52:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1475, extensively X-HELO: smtp.eu.adacore.com Received: from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Dec 2016 17:52:49 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 0EA01814CF; Tue, 6 Dec 2016 18:52:47 +0100 (CET) Received: from smtp.eu.adacore.com ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fpLdyMZNNpVT; Tue, 6 Dec 2016 18:52:46 +0100 (CET) Received: from polaris.localnet (bon31-6-88-161-99-133.fbx.proxad.net [88.161.99.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.eu.adacore.com (Postfix) with ESMTPSA id DA97F814C9; Tue, 6 Dec 2016 18:52:46 +0100 (CET) From: Eric Botcazou To: Ian Lance Taylor Cc: gcc-patches@gcc.gnu.org, "Lynn A. Boger" Subject: Re: [patch v2] Get rid of stack trampolines for nested functions (1/4) Date: Tue, 06 Dec 2016 17:52:00 -0000 Message-ID: <10247773.6SAYMWXB7c@polaris> User-Agent: KMail/4.14.10 (Linux/3.16.7-48-desktop; KDE/4.14.9; x86_64; ; ) In-Reply-To: <3049494.GQlGFrCAi9@polaris> References: <1518726.5fkcUnkpqM@arcturus.home> <3049494.GQlGFrCAi9@polaris> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart1646998.bN38sqAOIH" Content-Transfer-Encoding: 7Bit X-SW-Source: 2016-12/txt/msg00485.txt.bz2 This is a multi-part message in MIME format. --nextPart1646998.bN38sqAOIH Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Content-length: 366 > There are a couple of changes to the RTL expander for calls; they are > supposed to be transparent but they might have tripped on a latent issue. Tentative fix attached, I need to test it extensively in Ada though. Btw, Ian, if the heap trampoline support is no longer used by the Go compiler, you might want to remove it from the middle-end. -- Eric Botcazou --nextPart1646998.bN38sqAOIH Content-Disposition: attachment; filename="go_fix.diff" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="go_fix.diff" Content-length: 1140 Index: calls.c =================================================================== --- calls.c (revision 243245) +++ calls.c (working copy) @@ -3427,13 +3427,6 @@ expand_call (tree exp, rtx target, int i if (STRICT_ALIGNMENT) store_unaligned_arguments_into_pseudos (args, num_actuals); - /* Prepare the address of the call. This must be done before any - register parameters is loaded for find_first_parameter_load to - work properly in the presence of descriptors. */ - funexp = prepare_call_address (fndecl ? fndecl : fntype, funexp, - static_chain_value, &call_fusage, - reg_parm_seen, flags); - /* Now store any partially-in-registers parm. This is the last place a block-move can happen. */ if (reg_parm_seen) @@ -3544,6 +3537,9 @@ expand_call (tree exp, rtx target, int i } after_args = get_last_insn (); + funexp = prepare_call_address (fndecl ? fndecl : fntype, funexp, + static_chain_value, &call_fusage, + reg_parm_seen, flags); load_register_parameters (args, num_actuals, &call_fusage, flags, pass == 0, &sibcall_failure); --nextPart1646998.bN38sqAOIH--