Displaying 15 results from an estimated 15 matches similar to: "[VPlan] Dead instructions are invariant to VFs when build vplan"
2018 Jun 01
2
[VPlan] about vectorization factor selection
Hi,
Current loop vectorizer uses a range of vectorization factors computed by MaxVF. For each VF, it setups unform and scalar info before building VPlan and the final best VF selection. The best VF is also selected within the VF range.
for (unsigned VF = 1; VF <= MaxVF; VF *= 2) {
// Collect Uniform and Scalar instructions after vectorization with VF.
2016 Aug 18
2
Cost model is missing in InstCombiner
----- Original Message -----
> From: "Mehdi Amini via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Shixiong Xu" <shixiong at cadence.com>
> Cc: llvm-dev at lists.llvm.org
> Sent: Thursday, August 18, 2016 11:05:35 AM
> Subject: Re: [llvm-dev] Cost model is missing in InstCombiner
> +David M.
> > On Aug 17, 2016, at 3:48 AM, Shixiong Xu
2016 Aug 17
2
Cost model is missing in InstCombiner
Hi,
I think canEvaluateTruncated() in InstCombiner needs use cost model to decide whether perform optimization or not. Without cost model from TargetTransformInfo, aggressively optimizing IR in vector types according to the number of bits demanded may lead to scalarization of vector operations. For example, if the input IR is:
%wide.load25 = load <32 x i8>, <32 x i8>* %231, align
2017 Dec 06
5
[LV][VPlan] Status Update on VPlan ----- where we are currently, and what's ahead of us
Status Update on VPlan ---- where we are currently, and what's ahead of us
==========================================================
Goal:
-----
Extending Loop Vectorizer (LV) such that it can handle outer loops, via uplifting its infrastructure with VPlan.
The goal of this status update is to summarize the progress and the future steps needed.
Background:
-----------
This is related to
2018 Jan 16
1
[RFC][LV][VPlan] Proposal for Outer Loop Vectorization Implementation Plan
On 01/15/2018 03:52 PM, Philip Reames wrote:
> To revive the discussion around vectorizer testing, here's a quick
> sample of a few of the issues hit recently in the loop vectorizer. I
> want to be careful to say that I am not stating these are the result
> of any recent work, just that they're issues that have been triaged
> down to the loop vectorizer doing something
2018 Jan 05
2
RFC: [LV] any objections in moving isLegalMasked* check from Legal to CostModel? (Cleaning up LoopVectorizationLegality)
All,
I'm trying to refactor LoopVectorize such that it has better conformance to VPlan vision going forward
(http://www.llvm.org/docs/Proposals/VectorizationPlan.html). All VP*Recipe class definitions are now
moved to VPlan.h, and I have a patch under review to move LoopVectorizationPlanner class out of
LoopVectorize.cpp (https://reviews.llvm.org/D41420).
Next thing I'm working on is
2018 Jan 05
0
RFC: [LV] any objections in moving isLegalMasked* check from Legal to CostModel? (Cleaning up LoopVectorizationLegality)
> On 5 Jan 2018, at 21:01, Saito, Hideki via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
> All,
>
> I'm trying to refactor LoopVectorize such that it has better conformance to VPlan vision going forward
> (http://www.llvm.org/docs/Proposals/VectorizationPlan.html). All VP*Recipe class definitions are now
> moved to VPlan.h, and I have a patch under review
2018 Jan 06
2
RFC: [LV] any objections in moving isLegalMasked* check from Legal to CostModel? (Cleaning up LoopVectorizationLegality)
Amara,
>I support this direction
Thanks for the support.
>but are there actually any real world workloads where gather/scatter scalarisation would be worth it, on any micro-architecture? If we don’t have examples and the compile time cost is non-negligible then I think we’d still like to keep the early >bailouts in some form.’
It's not like I have specific application code in
2018 Jan 15
0
[RFC][LV][VPlan] Proposal for Outer Loop Vectorization Implementation Plan
To revive the discussion around vectorizer testing, here's a quick
sample of a few of the issues hit recently in the loop vectorizer. I
want to be careful to say that I am not stating these are the result of
any recent work, just that they're issues that have been triaged down to
the loop vectorizer doing something incorrect or questionable from a
performance perspective.
2018 Jan 07
0
RFC: [LV] any objections in moving isLegalMasked* check from Legal to CostModel? (Cleaning up LoopVectorizationLegality)
On 01/05/2018 06:28 PM, Saito, Hideki wrote:
> Amara,
>
>> I support this direction
> Thanks for the support.
>
>> but are there actually any real world workloads where gather/scatter scalarisation would be worth it, on any micro-architecture? If we don’t have examples and the compile time cost is non-negligible then I think we’d still like to keep the early >bailouts in
2017 Dec 06
3
[RFC][LV][VPlan] Proposal for Outer Loop Vectorization Implementation Plan
Proposal for Outer Loop Vectorization Implementation Plan
=============================================
=====
Goal:
=====
Extending Loop Vectorizer (LV) such that it can handle outer loops, via VPlan infrastructure enhancements.
Understand the trade-offs in trying to make concurrent progress with moving remaining inner loop vectorization
functionality to VPlan infrastructure
===========
2018 Jan 09
1
RFC: [LV] any objections in moving isLegalMasked* check from Legal to CostModel? (Cleaning up LoopVectorizationLegality)
Thanks, Hal.
I plan to post a patch w/o HW Legality early bailout first. That should enable further discussion on where the initial very high cost for "illegal masked load/store/gather/scatter" should be coming from --- like should LoopVectorize provide it? Or should it be provided by TTI? I prefer the latter (TTI) but the first revision of the patch will intentionally do the former
2017 Dec 14
3
[RFC][LV][VPlan] Proposal for Outer Loop Vectorization Implementation Plan
>Another might be to introduce changes under feature flags to ease the revert/reintroduce/revert cycle.
This is essentially the first guard. We plan to have flags/settings to control which types of outer loops are handled.
The new code path is initially exclusive to outer loop vectorization. If we disable all types of outer loops
(and that's the initial default), LV continues to be good
2020 Jan 11
2
Writing loop transformations on the right representation is more productive
Am Fr., 10. Jan. 2020 um 16:10 Uhr schrieb Renato Golin <rengolin at gmail.com>:
> On Fri, 3 Jan 2020 at 11:27, Michael Kruse via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > 1. Candidate selection through cost function
> > --------------------------------------------
> > Instead of needing to know which transformation is profitable before
> >
2020 Jan 03
10
Writing loop transformations on the right representation is more productive
In the 2018 LLVM DevMtg [1], I presented some shortcomings of how LLVM
optimizes loops. In summary, the biggest issues are (a) the complexity
of writing a new loop optimization pass (including needing to deal
with a variety of low-level issues, a significant amount of required
boilerplate, the difficulty of analysis preservation, etc.), (b)
independent optimization heuristics and a fixed pass