From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18653 invoked by alias); 16 Jun 2016 13:45:30 -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 18644 invoked by uid 89); 16 Jun 2016 13:45:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qk0-f179.google.com Received: from mail-qk0-f179.google.com (HELO mail-qk0-f179.google.com) (209.85.220.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 16 Jun 2016 13:45:19 +0000 Received: by mail-qk0-f179.google.com with SMTP id s186so53328968qkc.1 for ; Thu, 16 Jun 2016 06:45:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=QAoZkXrewmFsRb5CBKJV3FuSPkfeprfmLngDcaIe1xY=; b=EHNBrJmuFikWRSNaI9izMelukr4KTlodPstFFq42akQJPzaaBAJqA6bRn3oqFsvRcC n6z/iQ4hvpFT8Xdw17EcWbfXF93tyI2gkWVrW/PnqQ3Tw5zgfGSm7KyZ4VjiwoFtJOo4 t6FmhXL7GpujFOCDW5EcLlQ8ce+hQJPbJXdySxqDllHDcUlwAhJSHnjKkjVanrBqt0Wj f5pf3si4WK9bTLKn/CNxzV+q3ZCWrYzIWMRi4XaooRcYTTwbRYJ3A9jXo/Ck2LhqLuI+ tOvlYNbSfKY9CAeRI4lPC241dPIeNdVPxb6T2a63ZsyoGfMtgWHQsDcjn7IGnMG1vN1p nELQ== X-Gm-Message-State: ALyK8tJojrvFFuNzvwYawJ8JPYST7Ld109SMfzMcCP4PKi49mdV0rpHlVw7a78RmXBNcrw== X-Received: by 10.200.50.140 with SMTP id z12mr4962003qta.1.1466084717530; Thu, 16 Jun 2016 06:45:17 -0700 (PDT) Received: from msticlxl57.ims.intel.com (irdmzpr01-ext.ir.intel.com. [192.198.151.36]) by smtp.gmail.com with ESMTPSA id i63sm11183449qkd.13.2016.06.16.06.45.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jun 2016 06:45:16 -0700 (PDT) Date: Thu, 16 Jun 2016 13:45:00 -0000 From: Ilya Enkovich To: Richard Biener Cc: GCC Patches Subject: Re: [PATCH, vec-tails 01/10] New compiler options Message-ID: <20160616134248.GC62320@msticlxl57.ims.intel.com> References: <20160519193619.GB40563@msticlxl57.ims.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg01234.txt.bz2 On 20 May 14:40, Ilya Enkovich wrote: > > Can you make all these --params then? I think to be useful to users we'd want > > them to be loop pragmas rather than options. > > OK, I'll change it to params. I didn't think about control via > pragmas but will do now. > > Thanks, > Ilya > > > > > Richard. > > Hi, Here is a set of params to be used instead of new flags. Does this set looks OK? I still use new option for cost model for convenient soct model enum re-use. Thanks, Ilya -- gcc/ 2016-06-16 Ilya Enkovich * common.opt (fvect-epilogue-cost-model=): New. * params.def (PARAM_VECT_EPILOGUES_COMBINE): New. (PARAM_VECT_EPILOGUES_MASK): New. (PARAM_VECT_EPILOGUES_NOMASK): New. (PARAM_VECT_SHORT_LOOPS): New. * doc/invoke.texi (-fvect-epilogue-cost-model): New. diff --git a/gcc/common.opt b/gcc/common.opt index fccd4b5..10cd75b 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2582,6 +2582,10 @@ fsimd-cost-model= Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization Specifies the vectorization cost model for code marked with a simd directive. +fvect-epilogue-cost-model= +Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_epilogue_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization +Specifies the cost model for epilogue vectorization. + Enum Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ce162a0..ecbd7ce 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -7638,6 +7638,14 @@ or Cilk Plus simd directive. The @var{model} argument should be one of have the same meaning as described in @option{-fvect-cost-model} and by default a cost model defined with @option{-fvect-cost-model} is used. +@item -fvect-epilogue-cost-model=@var{model} +@opindex fvect-epilogue-cost-model +Alter the cost model used for vectorization of loop epilogues. The +@var{model} argument should be one of @samp{unlimited}, @samp{dynamic}, +@samp{cheap}. All values of @var{model} have the same meaning as +described in @option{-fvect-cost-model} and by default @samp{dynamic} +cost model is used. + @item -ftree-vrp @opindex ftree-vrp Perform Value Range Propagation on trees. This is similar to the diff --git a/gcc/params.def b/gcc/params.def index 62a1e40..3bac68c 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -1220,6 +1220,28 @@ DEFPARAM (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS, "Maximum number of may-defs visited when devirtualizing " "speculatively", 50, 0, 0) +DEFPARAM (PARAM_VECT_EPILOGUES_COMBINE, + "vect-epilogues-combine", + "Enable loop epilogue vectorization by combining it with " + "vectorized loop body.", + 0, 0, 1) + +DEFPARAM (PARAM_VECT_EPILOGUES_MASK, + "vect-epilogues-mask", + "Enable loop epilogue vectorization using the same vector " + "size and masking.", + 0, 0, 1) + +DEFPARAM (PARAM_VECT_EPILOGUES_NOMASK, + "vect-epilogues-nomask", + "Enable loop epilogue vectorization using smaller vector size.", + 0, 0, 1) + +DEFPARAM (PARAM_VECT_SHORT_LOOPS, + "vect-short-loops", + "Enable vectorization of low trip count loops using masking.", + 0, 0, 1) + /* Local variables: