LLVM 20.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. | |
const LegalityResult & | canVectorize (ArrayRef< Value * > Bndl, bool SkipScheduling=false) |
Checks if it's legal to vectorize the instructions in Bndl . | |
void | clear () |
Performs the legality analysis and returns a LegalityResult object.
Definition at line 311 of file Legality.h.
|
inline |
Definition at line 330 of file Legality.h.
References DL.
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 209 of file Legality.cpp.
References llvm::any_of(), llvm::sandboxir::CantSchedule, llvm::dbgs(), llvm::sandboxir::DiffBBs, llvm::drop_begin(), llvm::sandboxir::dumpBndl(), LLVM_DEBUG, llvm::sandboxir::NotInstructions, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::ArrayRef< T >::size(), and llvm::sandboxir::Scheduler::trySchedule().
void llvm::sandboxir::LegalityAnalysis::clear | ( | ) |
Definition at line 251 of file Legality.cpp.
References llvm::sandboxir::InstrMaps::clear(), and llvm::sandboxir::Scheduler::clear().
|
inline |
A LegalityResult factory.
Definition at line 335 of file Legality.h.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().