13#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANTRANSFORMS_H
14#define LLVM_TRANSFORMS_VECTORIZE_VPLANTRANSFORMS_H
21class InductionDescriptor;
25class PredicatedScalarEvolution;
26class TargetLibraryInfo;
36 GetIntOrFpInductionDescriptor,
81 bool UseActiveLaneMaskForControlFlow,
113 const std::optional<unsigned> &MaxEVLSafeElements);
This file contains the declarations of the Vectorization Plan base classes:
LLVM Basic Block Representation.
A struct for saving information about induction variables.
The group of interleaved loads/stores sharing the same stride and close to each other.
This is an important class for using LLVM in a threaded context.
Represents a single loop in the control flow graph.
This class implements a map that also provides access to all stored values in a deterministic order.
An interface layer with SCEV used to manage how we see SCEV expressions for values in the context of ...
The main scalar evolution driver.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
Provides information about what library functions are available for the current target.
VPlan-based builder utility analogous to IRBuilder.
Helper class to create VPRecipies from IR instructions.
VPlan models a candidate for vectorization, encoding various decisions take to produce efficient outp...
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
std::unique_ptr< VPlan > VPlanPtr
@ DataAndControlFlowWithoutRuntimeCheck
Use predicate to control both data and control flow, but modify the trip count so that a runtime over...