From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by sourceware.org (Postfix) with ESMTPS id EA00B3858C53 for ; Wed, 26 Apr 2023 12:21:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EA00B3858C53 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2a7b02615f1so69752141fa.0 for ; Wed, 26 Apr 2023 05:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682511684; x=1685103684; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=pBpvt47Ac+E7H/dkjjW05S8X9BtZ1Le0XOzYRBlaw8g=; b=grHtYR89im+sVrmWKpwC59BHbYpEaiDRczzr5TAc60us3JuhszS+oUltV5oSdOyzZv +bfTETxS3wuHoTUkgOmwqPuTkOG5uoX4UxTu2O5EzpVxmWNgzxU+xO4QRvwRSwQu7RKj kRAfDiZ3lsLrdrkPXk5dsiXqs3fMY7vYObntC4Fi2dEs8kTe68y4K/mT8P8c15ohLMrJ WT4UCzYM45TKGwaQI8gTc9rmbumXxVWoeJL85xUJv7GZqG8CfweFo1Kh3+6WukSYFQGc uZBoUh9y7oqTCuciIUIQJ9IcTWCxdguK4c3W8d2RyCNJzhRs3Ps2DLIR8X2l/iLEqC9d Gyrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682511684; x=1685103684; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pBpvt47Ac+E7H/dkjjW05S8X9BtZ1Le0XOzYRBlaw8g=; b=Ufxi0Z+BYGy0J3u3UcXcOZ/8ycPDTNChkxrCvQ0/1BYi0GS9j95yj+GJMHGbq66Zt/ qpP64Q/CS0kOZ7sZ/ckisZR9rGk/GOA6RfMkDRCG2kOPSOLY/+QQRddFGJEh9rP+wBuI 9Bc0NpOop7DN7y+OZu55J+Dkou8qNDHvvdT5hWJ3x39koaU58UVVRal14tgXHnh8XZMM 4b5hDLWWq5GeXXlXdtTS0A3rku6ANK70R0io2yxrOcNDYa2ll1/cnD9q6ijQUgoLmJ71 4IjQrUbaPl1cLOaw07QTeGEz9wRJcjcaulwDwIU/Hv5N0lSsR8C75WGzJjcnqhAlpZTF JhSA== X-Gm-Message-State: AAQBX9cLlB41XbZ+ySV4SfoMia0A71nEHE5oJ/YgI8QEzF/tYkk/wvhN eLESUMgz9BVbWfO5yK9CWFvpAROZm/qKzC8RwDQ= X-Google-Smtp-Source: AKy350ZFdN5UhC5oH8ZkX6atMqoJs/PihelRqPyXhp0kLvF55rKFyL8i0/rWph26b/2/V9VCpriu4EcN0B3gV12qCLY= X-Received: by 2002:a05:651c:1026:b0:2a1:17f8:e904 with SMTP id w6-20020a05651c102600b002a117f8e904mr4680274ljm.4.1682511684138; Wed, 26 Apr 2023 05:21:24 -0700 (PDT) MIME-Version: 1.0 References: <8089B1FC-D297-4D78-B11D-6FBB4A7CFFBF@microchip.com> In-Reply-To: <8089B1FC-D297-4D78-B11D-6FBB4A7CFFBF@microchip.com> From: Richard Biener Date: Wed, 26 Apr 2023 14:19:55 +0200 Message-ID: Subject: Re: [PATCH] avr: Set param_min_pagesize to 0 [PR105523] To: SenthilKumar.Selvaraj@microchip.com Cc: gcc-patches@gcc.gnu.org, Denis Chertykov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Wed, Apr 26, 2023 at 12:56=E2=80=AFPM wrote: > > On Wed, Apr 26, 2023 at 3:15=E2=80=AFPM Richard Biener via Gcc-patches wrote: > > > > On Wed, Apr 26, 2023 at 11:42=E2=80=AFAM Richard Biener > > wrote: > > > > > > On Wed, Apr 26, 2023 at 11:01=E2=80=AFAM SenthilKumar.Selvaraj--- via > > > Gcc-patches wrote: > > > > > > > > Hi, > > > > > > > > This patch fixes PR 105523 by setting param_min_pagesize to 0 for t= he > > > > avr target. For this target, zero and offsets from zero are perfect= ly > > > > valid addresses, and the default value of param_min_pagesize ends u= p > > > > triggering warnings on valid memory accesses. > > > > > > I think the proper configuration is to have > > > DEFAULT_ADDR_SPACE_ZERO_ADDRESS_VALID > > > > Err, TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID > > That worked. Ok for trunk and backporting to 13 and 12 branches > (pending regression testing)? OK, but please let Denis time to comment. Richard. > Regards, > Senthil > > PR 105523 > > gcc/ChangeLog: > > * config/avr/avr.cc (avr_addr_space_zero_address_valid): > (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Return true. > > gcc/testsuite/ChangeLog: > > * gcc.target/avr/pr105523.c: New test. > > > > diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc > index c193430cf07..5439eb8e55c 100644 > --- a/gcc/config/avr/avr.cc > +++ b/gcc/config/avr/avr.cc > @@ -9788,6 +9788,16 @@ avr_addr_space_diagnose_usage (addr_space_t as, lo= cation_t loc) > (void) avr_addr_space_supported_p (as, loc); > } > > +/* Implement `TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID. Zero is a valid > + address in all address spaces. Even in ADDR_SPACE_FLASH1 etc., > + a zero address is valid and means 0x0000, where RAMPZ is > + set to the appropriate segment value. */ > + > +static bool > +avr_addr_space_zero_address_valid (addr_space_t as) > +{ > + return true; > +} > > /* Look if DECL shall be placed in program memory space by > means of attribute `progmem' or some address-space qualifier. > @@ -14688,6 +14698,9 @@ avr_float_lib_compare_returns_bool (machine_mode = mode, enum rtx_code) > #undef TARGET_ADDR_SPACE_DIAGNOSE_USAGE > #define TARGET_ADDR_SPACE_DIAGNOSE_USAGE avr_addr_space_diagnose_usage > > +#undef TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID > +#define TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID avr_addr_space_zero_address= _valid > + > #undef TARGET_MODE_DEPENDENT_ADDRESS_P > #define TARGET_MODE_DEPENDENT_ADDRESS_P avr_mode_dependent_address_p > > diff --git a/gcc/testsuite/gcc.target/avr/pr105523.c b/gcc/testsuite/gcc.= target/avr/pr105523.c > new file mode 100644 > index 00000000000..fbbf7bf4422 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/avr/pr105523.c > @@ -0,0 +1,14 @@ > +/* { dg-do compile } */ > +/* { dg-options "-Os -Wall" } */ > + > +/* Verify no "array subscript 0 is outside array bounds of" is generated > + for accessing memory addresses in the 0-4096 range. */ > + > +typedef __UINT8_TYPE__ uint8_t; > + > +#define SREG (*(volatile uint8_t*) (0x3F + __AVR_SFR_OFFSET__ )) > + > +void bar (void) > +{ > + SREG =3D 0; > +} > >