|
Polly 23.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 140 of file ScopDetection.h.
|
inline |
Initialize a DetectionContext from scratch.
Definition at line 189 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 157 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 143 of file ScopDetection.h.
Referenced by DetectionContext(), polly::ScopDetection::isValidAccess(), and polly::ScopDetection::isValidCallInst().
| BatchAAResults polly::ScopDetection::DetectionContext::BAA |
Definition at line 142 of file ScopDetection.h.
Referenced by DetectionContext().
| BoxedLoopsSetTy polly::ScopDetection::DetectionContext::BoxedLoopsSet |
The set of loops contained in non-affine regions.
Definition at line 179 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 141 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 164 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 167 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 170 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 173 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 186 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 148 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 151 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 163 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 176 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 182 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 144 of file ScopDetection.h.
Referenced by DetectionContext(), and polly::ScopDetection::invalid().