From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 72425 invoked by alias); 18 Sep 2019 08:56:04 -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 72258 invoked by uid 89); 18 Sep 2019 08:56:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=H*f:sk:mptwoe6, H*i:sk:mptwoe6 X-HELO: mail-lj1-f178.google.com Received: from mail-lj1-f178.google.com (HELO mail-lj1-f178.google.com) (209.85.208.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 18 Sep 2019 08:56:03 +0000 Received: by mail-lj1-f178.google.com with SMTP id d5so6357191lja.10 for ; Wed, 18 Sep 2019 01:56:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2YM9kFbSXiu3mHSE+47BiXaljSHmo+Tj7uXJLSI3wgk=; b=k0ENPKvS7ZAx64SHKU4ewLD/oTHLz3qZBrGowowvIcV6AF3z1sxZqEw/q/A2ZyRf2i V+rPO7rv9ijW/W4kOhDrgtI8EReitCmuEZEVB+Xk/E7q44+Rm2wndR6FzZ8U9pyTqDph 8r4mt+qnDCZe9Lyy562ekH0JJfXVNmWYEjz0EkhnTIOFIi0Ctj2DBsEzlRLlt41gbF7k tFJD123bPBDOp8ziJPsgbghfox1OrAWLGHoit0/hmxbhGQAhlZKQrkMPNPMcduC7omb9 ZlSH1ZaMEGLb8aoiaJTAblneNi/+uCCdKTlz9wzIunKTH8wumt49dozjV/p8IgxUmKdU kzEw== MIME-Version: 1.0 References: In-Reply-To: From: Richard Biener Date: Wed, 18 Sep 2019 08:56:00 -0000 Message-ID: Subject: Re: Don't treat variable-length vectors as VLAs during gimplification To: Richard Sandiford Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-09/txt/msg01087.txt.bz2 On Wed, Sep 18, 2019 at 8:53 AM Richard Sandiford wrote: > > Source-level SVE vectors should be gimplified in the same way > as normal fixed-length vectors rather than as VLAs. > > This is tested by later SVE patches. > > Tested on aarch64-linux-gnu with SVE (with and without follow-on > patches) and x86_64-linux-gnu. OK to install? OK. Richard. > Richard > > > 2019-09-18 Richard Sandiford > > gcc/ > * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead > of checking specifically for INTEGER_CST. > > Index: gcc/gimplify.c > =================================================================== > --- gcc/gimplify.c 2019-08-08 18:11:51.411313290 +0100 > +++ gcc/gimplify.c 2019-09-18 07:52:22.799034800 +0100 > @@ -1754,11 +1754,12 @@ gimplify_decl_expr (tree *stmt_p, gimple > tree init = DECL_INITIAL (decl); > bool is_vla = false; > > - if (TREE_CODE (DECL_SIZE_UNIT (decl)) != INTEGER_CST > + poly_uint64 size; > + if (!poly_int_tree_p (DECL_SIZE_UNIT (decl), &size) > || (!TREE_STATIC (decl) > && flag_stack_check == GENERIC_STACK_CHECK > - && compare_tree_int (DECL_SIZE_UNIT (decl), > - STACK_CHECK_MAX_VAR_SIZE) > 0)) > + && maybe_gt (size, > + (unsigned HOST_WIDE_INT) STACK_CHECK_MAX_VAR_SIZE))) > { > gimplify_vla_decl (decl, seq_p); > is_vla = true;