Polly 20.0.0git
|
Context variables for SCoP detection. More...
#include <ScopDetection.h>
Public Member Functions | |
DetectionContext (Region &R, AAResults &AA, bool Verify) | |
Initialize a DetectionContext from scratch. | |
Public Attributes | |
Region & | CurRegion |
BatchAAResults | BAA |
AliasSetTracker | AST |
bool | Verifying |
bool | IsInvalid = false |
If this flag is set, the SCoP must eventually be rejected, even with KeepGoing. | |
RejectLog | Log |
Container to remember rejection reasons for this region. | |
BaseToAFs | Accesses |
Map a base pointer to all access functions accessing it. | |
llvm::SetVector< std::pair< const SCEVUnknown *, Loop * > > | NonAffineAccesses |
The set of base pointers with non-affine accesses. | |
BaseToElSize | ElementSize |
bool | hasLoads = false |
The region has at least one load instruction. | |
bool | hasStores = false |
The region has at least one store instruction. | |
bool | HasUnknownAccess = false |
Flag to indicate the region has at least one unknown access. | |
RegionSet | NonAffineSubRegionSet |
The set of non-affine subregions in the region we analyze. | |
BoxedLoopsSetTy | BoxedLoopsSet |
The set of loops contained in non-affine regions. | |
InvariantLoadsSetTy | RequiredILS |
Loads that need to be invariant during execution. | |
MapInsnToMemAcc | InsnToMemAcc |
Map to memory access description for the corresponding LLVM instructions. | |
Context variables for SCoP detection.
Definition at line 141 of file ScopDetection.h.
|
inline |
Initialize a DetectionContext from scratch.
Definition at line 190 of file ScopDetection.h.
BaseToAFs polly::ScopDetection::DetectionContext::Accesses |
Map a base pointer to all access functions accessing it.
This map is indexed by the base pointer. Each element of the map is a list of memory accesses that reference this base pointer.
Definition at line 158 of file ScopDetection.h.
Referenced by polly::ScopDetection::computeAccessFunctions(), polly::ScopDetection::getDelinearizationTerms(), polly::ScopDetection::hasValidArraySizes(), and polly::ScopDetection::isValidAccess().
AliasSetTracker polly::ScopDetection::DetectionContext::AST |
Definition at line 144 of file ScopDetection.h.
Referenced by polly::ScopDetection::isValidAccess(), and polly::ScopDetection::isValidCallInst().
BatchAAResults polly::ScopDetection::DetectionContext::BAA |
Definition at line 143 of file ScopDetection.h.
BoxedLoopsSetTy polly::ScopDetection::DetectionContext::BoxedLoopsSet |
The set of loops contained in non-affine regions.
Definition at line 180 of file ScopDetection.h.
Referenced by polly::ScopDetection::addOverApproximatedRegion(), polly::Scop::getBoxedLoops(), polly::ScopDetection::hasPossiblyDistributableLoop(), polly::ScopDetection::isProfitableRegion(), and polly::ScopDetection::isValidAccess().
Region& polly::ScopDetection::DetectionContext::CurRegion |
Definition at line 142 of file ScopDetection.h.
Referenced by polly::ScopDetection::allBlocksValid(), polly::ScopDetection::detect(), polly::ScopDetection::getDelinearizationTerms(), polly::ScopDetection::hasPossiblyDistributableLoop(), polly::ScopDetection::hasSufficientCompute(), polly::ScopDetection::hasValidArraySizes(), polly::ScopDetection::isAffine(), polly::ScopDetection::isProfitableRegion(), polly::ScopDetection::isValidAccess(), polly::ScopDetection::isValidBranch(), polly::ScopDetection::isValidCFG(), polly::ScopDetection::isValidInstruction(), polly::ScopDetection::isValidLoop(), polly::ScopDetection::isValidRegion(), and polly::ScopDetection::onlyValidRequiredInvariantLoads().
BaseToElSize polly::ScopDetection::DetectionContext::ElementSize |
Definition at line 165 of file ScopDetection.h.
Referenced by polly::ScopDetection::hasBaseAffineAccesses(), and polly::ScopDetection::isValidAccess().
bool polly::ScopDetection::DetectionContext::hasLoads = false |
The region has at least one load instruction.
Definition at line 168 of file ScopDetection.h.
Referenced by polly::ScopDetection::isProfitableRegion(), and polly::ScopDetection::isValidInstruction().
bool polly::ScopDetection::DetectionContext::hasStores = false |
The region has at least one store instruction.
Definition at line 171 of file ScopDetection.h.
Referenced by polly::ScopDetection::isProfitableRegion(), and polly::ScopDetection::isValidInstruction().
bool polly::ScopDetection::DetectionContext::HasUnknownAccess = false |
Flag to indicate the region has at least one unknown access.
Definition at line 174 of file ScopDetection.h.
Referenced by polly::ScopDetection::hasAffineMemoryAccesses(), and polly::ScopDetection::isValidCallInst().
MapInsnToMemAcc polly::ScopDetection::DetectionContext::InsnToMemAcc |
Map to memory access description for the corresponding LLVM instructions.
Definition at line 187 of file ScopDetection.h.
Referenced by polly::ScopDetection::computeAccessFunctions(), and polly::Scop::getInsnToMemAccMap().
bool polly::ScopDetection::DetectionContext::IsInvalid = false |
If this flag is set, the SCoP must eventually be rejected, even with KeepGoing.
Definition at line 149 of file ScopDetection.h.
Referenced by polly::ScopDetection::allBlocksValid(), polly::ScopDetection::canUseISLTripCount(), polly::ScopDetection::findScops(), polly::ScopDetection::hasAffineMemoryAccesses(), polly::ScopDetection::invalid(), and polly::ScopDetection::isValidRegion().
RejectLog polly::ScopDetection::DetectionContext::Log |
Container to remember rejection reasons for this region.
Definition at line 152 of file ScopDetection.h.
Referenced by polly::ScopDetection::canUseISLTripCount(), polly::ScopDetection::detect(), polly::ScopDetection::emitMissedRemarks(), polly::ScopDetection::expandRegion(), polly::ScopDetection::invalid(), and polly::ScopDetection::lookupRejectionLog().
llvm::SetVector<std::pair<const SCEVUnknown *, Loop *> > polly::ScopDetection::DetectionContext::NonAffineAccesses |
The set of base pointers with non-affine accesses.
This set contains all base pointers and the locations where they are used for memory accesses that can not be detected as affine accesses.
Definition at line 164 of file ScopDetection.h.
Referenced by polly::ScopDetection::hasAffineMemoryAccesses(), and polly::ScopDetection::isValidAccess().
RegionSet polly::ScopDetection::DetectionContext::NonAffineSubRegionSet |
The set of non-affine subregions in the region we analyze.
Definition at line 177 of file ScopDetection.h.
Referenced by polly::ScopDetection::addOverApproximatedRegion(), polly::Scop::isNonAffineSubRegion(), and polly::ScopDetection::onlyValidRequiredInvariantLoads().
InvariantLoadsSetTy polly::ScopDetection::DetectionContext::RequiredILS |
Loads that need to be invariant during execution.
Definition at line 183 of file ScopDetection.h.
Referenced by polly::Scop::addRequiredInvariantLoad(), polly::Scop::getRequiredInvariantLoads(), polly::ScopDetection::hasValidArraySizes(), polly::ScopDetection::isValidAccess(), polly::ScopDetection::isValidBranch(), and polly::ScopDetection::onlyValidRequiredInvariantLoads().
bool polly::ScopDetection::DetectionContext::Verifying |
Definition at line 145 of file ScopDetection.h.
Referenced by polly::ScopDetection::invalid().