LLVM: llvm::sandboxir::LegalityAnalysis Class Reference (original) (raw)

Performs the legality analysis and returns a LegalityResult object. More...

#include "[llvm/Transforms/Vectorize/SandboxVectorizer/Legality.h](Legality%5F8h%5Fsource.html)"

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.

canVectorize()

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().

clear()

void llvm::sandboxir::LegalityAnalysis::clear ( )

createLegalityResult()

template<typename ResultT, typename... ArgsT>

ResultT & llvm::sandboxir::LegalityAnalysis::createLegalityResult ( ArgsT &&... Args) inline

getForcedPackForDebugging()


The documentation for this class was generated from the following files: