From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 110919 invoked by alias); 28 Nov 2017 18:00:51 -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 110851 invoked by uid 89); 28 Nov 2017 18:00:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,KB_WAM_FROM_NAME_SINGLEWORD,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=designers, tale, 092, untangle X-HELO: mail-wm0-f67.google.com Received: from mail-wm0-f67.google.com (HELO mail-wm0-f67.google.com) (74.125.82.67) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 28 Nov 2017 18:00:42 +0000 Received: by mail-wm0-f67.google.com with SMTP id 64so1176008wme.3 for ; Tue, 28 Nov 2017 10:00:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:mail-followup-to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version; bh=Vk7rC0iAnlzc0keSrU/VW44eSxTKeuwBW/VgKVol5Ss=; b=ehvjPI4bTLVN5S2dP9BYh0fZW16x4FvbPOItgn1ReS4pFNun8pl5yBl5Jc7cc0QE1y jci9/OF6C60kW94quIFRAlL17nL+YzVqPO90SEAW4TIfbHelrXwiPB3GpM8cdaJI8j7z braRdvOSD7VGS3C3mGURsGmIpjLyE6VxDIeqGQ8L9Rg7wHNgAa7z0xaXj+wtVM718tf0 g/XvfciuOv/1G8yp5dALKB71RMRr3iDVHgLg2qnFGM6J+Nd1HJ12hzRMKwgu/9HouI5V JAs6Xv6wu/w637SR/M2iLRpa+wIR3tXxOnPAB7LJieUoqis1aCpK7OvUvt7UMXWi6e06 GUHA== X-Gm-Message-State: AJaThX5EY0anBLU7Ic6AoogKcjvhsAjHlZBHkPwcr/3HqjmcZfoBvJkn s6zP4USL1PX9yriiSNUQOsWUUf1yhko= X-Google-Smtp-Source: AGs4zMbdtRIRGUSWTxY8t48QHlsPHqXSscBGSsOgkvNv6NzNElqM/HJ5XdPHHWX4TTJei3df6iSl7A== X-Received: by 10.28.45.214 with SMTP id t205mr396748wmt.94.1511892040297; Tue, 28 Nov 2017 10:00:40 -0800 (PST) Received: from localhost ([2.25.234.120]) by smtp.gmail.com with ESMTPSA id c22sm110443wme.2.2017.11.28.10.00.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 Nov 2017 10:00:39 -0800 (PST) From: Richard Sandiford To: Jeff Law Mail-Followup-To: Jeff Law ,gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org Cc: gcc-patches@gcc.gnu.org Subject: Re: [092/nnn] poly_int: PUSH_ROUNDING References: <871sltvm7r.fsf@linaro.org> <87r2ttepfk.fsf@linaro.org> Date: Tue, 28 Nov 2017 18:01:00 -0000 In-Reply-To: (Jeff Law's message of "Tue, 28 Nov 2017 09:14:49 -0700") Message-ID: <87wp2awaex.fsf@linaro.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2017-11/txt/msg02448.txt.bz2 Jeff Law writes: > On 10/23/2017 11:37 AM, Richard Sandiford wrote: >> PUSH_ROUNDING is difficult to convert to a hook since there is still >> a lot of conditional code based on it. It isn't clear that a direct >> conversion with checks for null hooks is the right thing to do. >> >> Rather than untangle that, this patch converts all implementations >> that do something to out-of-line functions that have the same >> interface as a hook would have. This should at least help towards >> any future hook conversion. >> >> >> 2017-10-23 Richard Sandiford >> Alan Hayward >> David Sherwood >> >> gcc/ >> * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. >> * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... >> * config/cr16/cr16.c (cr16_push_rounding): ...this new function. >> * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. >> * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... >> * config/h8300/h8300.c (h8300_push_rounding): ...this new function. >> * config/i386/i386-protos.h (ix86_push_rounding): Declare. >> * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... >> * config/i386/i386.c (ix86_push_rounding): ...this new function. >> * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return >> a poly_int64. >> * config/m32c/m32c.c (m32c_push_rounding): Likewise. >> * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. >> * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... >> * config/m68k/m68k.c (m68k_push_rounding): ...this new function. >> * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. >> * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... >> * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. >> * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. >> * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... >> * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new >> function. >> * expr.c (emit_move_resolve_push): Treat the input and result >> of PUSH_ROUNDING as a poly_int64. >> (emit_move_complex_push, emit_single_push_insn_1): Likewise. >> (emit_push_insn): Likewise. >> * lra-eliminations.c (mark_not_eliminable): Likewise. >> * recog.c (push_operand): Likewise. >> * reload1.c (elimination_effects): Likewise. >> * rtlanal.c (nonzero_bits1): Likewise. >> * calls.c (store_one_arg): Likewise. Require the padding to be >> known at compile time. > OK. > > I so wish PUSH_ROUNDING wasn't needed and that folks could at least keep > their processors consistent (I'm looking at the coldfire designers :(. > For a tale of woe, see BZ68467. Ouch. Is this also fallout from having different code for libcalls and normal calls? That always seemed like an accident waiting to happen, but I don't remember seeing cases where it caused actual ABI breakage before. Thanks as ever for the reviews :-) Richard