LLVM 22.0.0git
|
Performs the legality analysis and returns a LegalityResult object. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h"
Public Member Functions | |
LegalityAnalysis (AAResults &AA, ScalarEvolution &SE, const DataLayout &DL, Context &Ctx, InstrMaps &IMaps) | |
template<typename ResultT, typename... ArgsT> | |
ResultT & | createLegalityResult (ArgsT &&...Args) |
A LegalityResult factory. | |
LLVM_ABI const LegalityResult & | canVectorize (ArrayRef< Value * > Bndl, bool SkipScheduling=false) |
Checks if it's legal to vectorize the instructions in Bndl . | |
const LegalityResult & | getForcedPackForDebugging () |
\Returns a Pack with reason 'ForcePackForDebugging'. | |
LLVM_ABI void | clear () |
Performs the legality analysis and returns a LegalityResult object.
Definition at line 318 of file Legality.h.
|
inline |
Definition at line 337 of file Legality.h.
const LegalityResult & llvm::sandboxir::LegalityAnalysis::canVectorize | ( | ArrayRef< Value * > | Bndl, |
bool | SkipScheduling = false ) |
Checks if it's legal to vectorize the instructions in Bndl
.
\Returns a LegalityResult object owned by LegalityAnalysis. SkipScheduling
skips the scheduler check and is only meant for testing.
Definition at line 212 of file Legality.cpp.
References llvm::any_of(), llvm::sandboxir::CantSchedule, llvm::cast(), createLegalityResult(), llvm::sandboxir::DiffBBs, llvm::drop_begin(), llvm::from_range, llvm::isa(), llvm::sandboxir::NotInstructions, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::sandboxir::RepeatedInstrs, llvm::SmallVectorImpl< T >::reserve(), llvm::ArrayRef< T >::size(), and llvm::SmallPtrSetImplBase::size().
void llvm::sandboxir::LegalityAnalysis::clear | ( | ) |
Definition at line 255 of file Legality.cpp.
|
inline |
A LegalityResult factory.
Definition at line 342 of file Legality.h.
References llvm::cast().
Referenced by canVectorize(), and getForcedPackForDebugging().
|
inline |
\Returns a Pack with reason 'ForcePackForDebugging'.
Definition at line 354 of file Legality.h.
References createLegalityResult(), and llvm::sandboxir::ForcePackForDebugging.