LLVM 23.0.0git
LoopVectorizationPlanner.cpp File Reference

This file implements VFSelectionContext methods for loop vectorization VF selection, independent of cost-modeling decisions. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "loop-vectorize"

Variables

static cl::opt< boolMaximizeBandwidth ("vectorizer-maximize-bandwidth", cl::init(false), cl::Hidden, cl::desc("Maximize bandwidth when selecting vectorization factor which " "will be determined by the smallest type in loop."))
static cl::opt< boolUseWiderVFIfCallVariantsPresent ("vectorizer-maximize-bandwidth-for-vector-calls", cl::init(true), cl::Hidden, cl::desc("Try wider VFs if they enable the use of vector variants"))
static cl::opt< boolConsiderRegPressure ("vectorizer-consider-reg-pressure", cl::init(false), cl::Hidden, cl::desc("Discard VFs if their register pressure is too high."))
static cl::opt< boolForceTargetSupportsScalableVectors ("force-target-supports-scalable-vectors", cl::init(false), cl::Hidden, cl::desc("Pretend that scalable vectors are supported, even if the target does " "not support them. This flag should only be used for testing."))
static cl::opt< boolForceTargetSupportsMaskedMemoryOps ("force-target-supports-masked-memory-ops", cl::init(false), cl::Hidden, cl::desc("Assume the target supports masked memory operations (used for " "testing)."))
 Note: This currently only applies to llvm.masked.load and llvm.masked.store.

Detailed Description

This file implements VFSelectionContext methods for loop vectorization VF selection, independent of cost-modeling decisions.

Definition in file LoopVectorizationPlanner.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-vectorize"

Definition at line 28 of file LoopVectorizationPlanner.cpp.

Variable Documentation

◆ ConsiderRegPressure

cl::opt< bool > ConsiderRegPressure("vectorizer-consider-reg-pressure", cl::init(false), cl::Hidden, cl::desc("Discard VFs if their register pressure is too high.")) ( "vectorizer-consider-reg-pressure" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Discard VFs if their register pressure is too high.")  )
static

◆ ForceTargetSupportsMaskedMemoryOps

cl::opt< bool > ForceTargetSupportsMaskedMemoryOps("force-target-supports-masked-memory-ops", cl::init(false), cl::Hidden, cl::desc("Assume the target supports masked memory operations (used for " "testing).")) ( "force-target-supports-masked-memory-ops" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Assume the target supports masked memory operations (used for " "testing).")  )
static

Note: This currently only applies to llvm.masked.load and llvm.masked.store.

TODO: Extend this to cover other operations as needed.

Referenced by llvm::VFSelectionContext::isLegalMaskedLoad(), and llvm::VFSelectionContext::isLegalMaskedStore().

◆ ForceTargetSupportsScalableVectors

cl::opt< bool > ForceTargetSupportsScalableVectors("force-target-supports-scalable-vectors", cl::init(false), cl::Hidden, cl::desc( "Pretend that scalable vectors are supported, even if the target does " "not support them. This flag should only be used for testing.")) ( "force-target-supports-scalable-vectors" ,
cl::init(false) ,
cl::Hidden ,
cl::desc( "Pretend that scalable vectors are supported, even if the target does " "not support them. This flag should only be used for testing.")  )
static

◆ MaximizeBandwidth

cl::opt< bool > MaximizeBandwidth("vectorizer-maximize-bandwidth", cl::init(false), cl::Hidden, cl::desc("Maximize bandwidth when selecting vectorization factor which " "will be determined by the smallest type in loop.")) ( "vectorizer-maximize-bandwidth" ,
cl::init(false) ,
cl::Hidden ,
cl::desc("Maximize bandwidth when selecting vectorization factor which " "will be determined by the smallest type in loop.")  )
static

◆ UseWiderVFIfCallVariantsPresent

cl::opt< bool > UseWiderVFIfCallVariantsPresent("vectorizer-maximize-bandwidth-for-vector-calls", cl::init(true), cl::Hidden, cl::desc("Try wider VFs if they enable the use of vector variants")) ( "vectorizer-maximize-bandwidth-for-vector-calls" ,
cl::init(true) ,
cl::Hidden ,
cl::desc("Try wider VFs if they enable the use of vector variants")  )
static