16#ifndef POLLY_POLYHEDRAL_INFO_H
17#define POLLY_POLYHEDRAL_INFO_H
32class DependenceInfoWrapperPass;
73 void print(llvm::raw_ostream &OS,
74 const llvm::Module *
M =
nullptr)
const override;
static RegisterPass< ScopPrinterWrapperPass > M("dot-scops", "Polly - Print Scops of function")
Construct a new DependenceInfoWrapper pass.
bool checkParallel(llvm::Loop *L, __isl_give isl_pw_aff **MinDepDistPtr=nullptr) const
Check if a given loop is parallel or vectorizable.
void getAnalysisUsage(llvm::AnalysisUsage &AU) const override
Register all analyses and transformation required.
bool isParallel(llvm::Loop *L) const
Check if a given loop is parallel.
DependenceInfoWrapperPass * DI
PolyhedralInfo()
Construct a new PolyhedralInfo pass.
const Scop * getScopContainingLoop(llvm::Loop *L) const
Return the SCoP containing the L loop.
void releaseMemory() override
Release the internal memory.
void print(llvm::raw_ostream &OS, const llvm::Module *M=nullptr) const override
Print to OS if each dimension of a loop nest is parallel or not.
__isl_give isl_union_map * getScheduleForLoop(const Scop *S, llvm::Loop *L) const
Computes the partial schedule for the given L loop.
bool runOnFunction(llvm::Function &F) override
Get the SCoP and dependence analysis information for F.
This file contains the declaration of the PolyhedralInfo class, which will provide an interface to ex...
void initializePolyhedralInfoPrinterLegacyPassPass(llvm::PassRegistry &)
void initializePolyhedralInfoPass(llvm::PassRegistry &)
llvm::Pass * createPolyhedralInfoPrinterLegacyPass(llvm::raw_ostream &OS)