|
Polly 22.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 139 of file ScopDetection.h.
|
inline |
Initialize a DetectionContext from scratch.
Definition at line 188 of file ScopDetection.h.
References polly::ScopDetection::AA, AST, BAA, CurRegion, Log, Verify(), and Verifying.
| 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 156 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 142 of file ScopDetection.h.
Referenced by DetectionContext(), polly::ScopDetection::isValidAccess(), and polly::ScopDetection::isValidCallInst().
| BatchAAResults polly::ScopDetection::DetectionContext::BAA |
Definition at line 141 of file ScopDetection.h.
Referenced by DetectionContext().
| BoxedLoopsSetTy polly::ScopDetection::DetectionContext::BoxedLoopsSet |
The set of loops contained in non-affine regions.
Definition at line 178 of file ScopDetection.h.
Referenced by polly::ScopDetection::addOverApproximatedRegion(), polly::ScopDetection::hasPossiblyDistributableLoop(), polly::ScopDetection::isProfitableRegion(), and polly::ScopDetection::isValidAccess().
| Region& polly::ScopDetection::DetectionContext::CurRegion |
Definition at line 140 of file ScopDetection.h.
Referenced by polly::ScopDetection::allBlocksValid(), polly::ScopDetection::detect(), DetectionContext(), 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 163 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 166 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 169 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 172 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 185 of file ScopDetection.h.
Referenced by polly::ScopDetection::computeAccessFunctions().
| bool polly::ScopDetection::DetectionContext::IsInvalid = false |
If this flag is set, the SCoP must eventually be rejected, even with KeepGoing.
Definition at line 147 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 150 of file ScopDetection.h.
Referenced by polly::ScopDetection::canUseISLTripCount(), polly::ScopDetection::detect(), DetectionContext(), 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 162 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 175 of file ScopDetection.h.
Referenced by polly::ScopDetection::addOverApproximatedRegion(), and polly::ScopDetection::onlyValidRequiredInvariantLoads().
| InvariantLoadsSetTy polly::ScopDetection::DetectionContext::RequiredILS |
Loads that need to be invariant during execution.
Definition at line 181 of file ScopDetection.h.
Referenced by polly::ScopDetection::hasValidArraySizes(), polly::ScopDetection::isValidAccess(), polly::ScopDetection::isValidBranch(), and polly::ScopDetection::onlyValidRequiredInvariantLoads().
| bool polly::ScopDetection::DetectionContext::Verifying |
Definition at line 143 of file ScopDetection.h.
Referenced by DetectionContext(), and polly::ScopDetection::invalid().