From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 129985 invoked by alias); 5 Dec 2017 23:39:12 -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 129970 invoked by uid 89); 5 Dec 2017 23:39:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 05 Dec 2017 23:39:11 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C8909F6888; Tue, 5 Dec 2017 23:39:09 +0000 (UTC) Received: from localhost.localdomain (ovpn-112-2.rdu2.redhat.com [10.10.112.2]) by smtp.corp.redhat.com (Postfix) with ESMTP id 01B4C620D3; Tue, 5 Dec 2017 23:39:08 +0000 (UTC) Subject: Re: [022/nnn] poly_int: C++ bitfield regions To: gcc-patches@gcc.gnu.org, richard.sandiford@linaro.org References: <871sltvm7r.fsf@linaro.org> <878tg1rduc.fsf@linaro.org> From: Jeff Law Message-ID: Date: Tue, 05 Dec 2017 23:39:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <878tg1rduc.fsf@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-12/txt/msg00274.txt.bz2 On 10/23/2017 11:08 AM, Richard Sandiford wrote: > This patch changes C++ bitregion_start/end values from constants to > poly_ints. Although it's unlikely that the size needs to be polynomial > in practice, the offset could be with future language extensions. > > > 2017-10-23 Richard Sandiford > Alan Hayward > David Sherwood > > gcc/ > * expmed.h (store_bit_field): Change bitregion_start and > bitregion_end from unsigned HOST_WIDE_INT to poly_uint64. > * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p) > (store_bit_field_1, store_integral_bit_field, store_bit_field) > (store_fixed_bit_field, store_split_bit_field): Likewise. > * expr.c (store_constructor_field, store_field): Likewise. > (optimize_bitfield_assignment_op): Likewise. Make the same change > to bitsize and bitpos. > * machmode.h (bit_field_mode_iterator): Change m_bitregion_start > and m_bitregion_end from HOST_WIDE_INT to poly_int64. Make the > same change in the constructor arguments. > (get_best_mode): Change bitregion_start and bitregion_end from > unsigned HOST_WIDE_INT to poly_uint64. > * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): > Change bitregion_start and bitregion_end from HOST_WIDE_INT to > poly_int64. > (bit_field_mode_iterator::next_mode): Update for new types > of m_bitregion_start and m_bitregion_end. > (get_best_mode): Change bitregion_start and bitregion_end from > unsigned HOST_WIDE_INT to poly_uint64. > OK. jeff