Polly 20.0.0git
Public Member Functions | Public Attributes | List of all members
polly::ScopDetection::DetectionContext Struct Reference

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.
 

Detailed Description

Context variables for SCoP detection.

Definition at line 141 of file ScopDetection.h.

Constructor & Destructor Documentation

◆ DetectionContext()

polly::ScopDetection::DetectionContext::DetectionContext ( Region &  R,
AAResults &  AA,
bool  Verify 
)
inline

Initialize a DetectionContext from scratch.

Definition at line 190 of file ScopDetection.h.

Member Data Documentation

◆ Accesses

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

◆ AST

AliasSetTracker polly::ScopDetection::DetectionContext::AST

◆ BAA

BatchAAResults polly::ScopDetection::DetectionContext::BAA

Definition at line 143 of file ScopDetection.h.

◆ BoxedLoopsSet

BoxedLoopsSetTy polly::ScopDetection::DetectionContext::BoxedLoopsSet

◆ CurRegion

Region& polly::ScopDetection::DetectionContext::CurRegion

◆ ElementSize

BaseToElSize polly::ScopDetection::DetectionContext::ElementSize

◆ hasLoads

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

◆ hasStores

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

◆ HasUnknownAccess

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

◆ InsnToMemAcc

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

◆ IsInvalid

bool polly::ScopDetection::DetectionContext::IsInvalid = false

◆ Log

RejectLog polly::ScopDetection::DetectionContext::Log

◆ NonAffineAccesses

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

◆ NonAffineSubRegionSet

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

◆ RequiredILS

InvariantLoadsSetTy polly::ScopDetection::DetectionContext::RequiredILS

◆ Verifying

bool polly::ScopDetection::DetectionContext::Verifying

Definition at line 145 of file ScopDetection.h.

Referenced by polly::ScopDetection::invalid().


The documentation for this struct was generated from the following file: