|
Polly 22.0.0git
|
#include "llvm/ADT/SetVector.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/ValueHandle.h"#include "isl/isl-noexceptions.h"#include <optional>Go to the source code of this file.
Classes | |
| struct | polly::Assumption |
| Helper struct to remember assumptions. More... | |
| class | polly::MemAccInst |
| Utility proxy to wrap the common members of LoadInst and StoreInst. More... | |
| struct | llvm::simplify_type< polly::MemAccInst > |
| Specialize simplify_type for MemAccInst to enable dyn_cast and cast from a MemAccInst object. More... | |
| struct | polly::BandAttr |
| Represent the attributes of a loop. More... | |
Namespaces | |
| namespace | llvm |
| namespace | polly |
Typedefs | |
| using | polly::LoopToScevMapT = llvm::DenseMap<const llvm::Loop *, const llvm::SCEV *> |
| Same as llvm/Analysis/ScalarEvolutionExpressions.h. | |
| using | polly::RecordedAssumptionsTy = llvm::SmallVector<Assumption, 8> |
| using | polly::ValueMapT |
| Type to remap values. | |
| using | polly::InvariantLoadsSetTy = llvm::SetVector<llvm::AssertingVH<llvm::LoadInst>> |
| Type for a set of invariant loads. | |
| using | polly::ParameterSetTy = llvm::SetVector<const llvm::SCEV *> |
| Set type for parameters. | |
| using | polly::BoxedLoopsSetTy = llvm::SetVector<const llvm::Loop *> |
| Set of loops (used to remember loops in non-affine subregions). | |
Enumerations | |
| enum | polly::AssumptionKind { polly::ALIASING , polly::INBOUNDS , polly::WRAPPING , polly::UNSIGNED , polly::PROFITABLE , polly::ERRORBLOCK , polly::COMPLEXITY , polly::INFINITELOOP , polly::INVARIANTLOAD , polly::DELINEARIZATION } |
| Enumeration of assumptions Polly can take. More... | |
| enum | polly::AssumptionSign { polly::AS_ASSUMPTION , polly::AS_RESTRICTION } |
| Enum to distinguish between assumptions and restrictions. More... | |
Functions | |
| void | polly::recordAssumption (RecordedAssumptionsTy *RecordedAssumptions, AssumptionKind Kind, isl::set Set, llvm::DebugLoc Loc, AssumptionSign Sign, llvm::BasicBlock *BB=nullptr, bool RTC=true) |
| Record an assumption for later addition to the assumed context. | |
| void | polly::simplifyRegion (llvm::Region *R, llvm::DominatorTree *DT, llvm::LoopInfo *LI, llvm::RegionInfo *RI) |
| Simplify the region to have a single unconditional entry edge and a single exit edge. | |
| void | polly::splitEntryBlockForAlloca (llvm::BasicBlock *EntryBlock, llvm::Pass *P) |
| Split the entry block of a function to store the newly inserted allocations outside of all Scops. | |
| void | polly::splitEntryBlockForAlloca (llvm::BasicBlock *EntryBlock, llvm::DominatorTree *DT, llvm::LoopInfo *LI, llvm::RegionInfo *RI) |
| Split the entry block of a function to store the newly inserted allocations outside of all Scops. | |
| llvm::Value * | polly::expandCodeFor (Scop &S, llvm::ScalarEvolution &SE, llvm::Function *GenFn, llvm::ScalarEvolution &GenSE, const llvm::DataLayout &DL, const char *Name, const llvm::SCEV *E, llvm::Type *Ty, llvm::BasicBlock::iterator IP, ValueMapT *VMap, LoopToScevMapT *LoopMap, llvm::BasicBlock *RTCBB) |
| Wrapper for SCEVExpander extended to all Polly features. | |
| llvm::Value * | polly::getConditionFromTerminator (llvm::Instruction *TI) |
Return the condition for the terminator TI. | |
| llvm::Loop * | polly::getLoopSurroundingScop (Scop &S, llvm::LoopInfo &LI) |
Get the smallest loop that contains S but is not in S. | |
| unsigned | polly::getNumBlocksInLoop (llvm::Loop *L) |
Get the number of blocks in L. | |
| unsigned | polly::getNumBlocksInRegionNode (llvm::RegionNode *RN) |
Get the number of blocks in RN. | |
| llvm::Loop * | polly::getRegionNodeLoop (llvm::RegionNode *RN, llvm::LoopInfo &LI) |
Return the smallest loop surrounding RN. | |
| bool | polly::isHoistableLoad (llvm::LoadInst *LInst, llvm::Region &R, llvm::LoopInfo &LI, llvm::ScalarEvolution &SE, const llvm::DominatorTree &DT, const InvariantLoadsSetTy &KnownInvariantLoads) |
Check if LInst can be hoisted in R. | |
| bool | polly::isIgnoredIntrinsic (const llvm::Value *V) |
Return true iff V is an intrinsic that we ignore during code generation. | |
| bool | polly::canSynthesize (const llvm::Value *V, const Scop &S, llvm::ScalarEvolution *SE, llvm::Loop *Scope) |
| Check whether a value an be synthesized by the code generator. | |
| llvm::BasicBlock * | polly::getUseBlock (const llvm::Use &U) |
| Return the block in which a value is used. | |
| llvm::Loop * | polly::getFirstNonBoxedLoopFor (llvm::Loop *L, llvm::LoopInfo &LI, const BoxedLoopsSetTy &BoxedLoops) |
| llvm::Loop * | polly::getFirstNonBoxedLoopFor (llvm::BasicBlock *BB, llvm::LoopInfo &LI, const BoxedLoopsSetTy &BoxedLoops) |
| bool | polly::isDebugCall (llvm::Instruction *Inst) |
| Is the given instruction a call to a debug function? | |
| bool | polly::hasDebugCall (ScopStmt *Stmt) |
| Does the statement contain a call to a debug function? | |
| std::optional< llvm::Metadata * > | polly::findMetadataOperand (llvm::MDNode *LoopMD, llvm::StringRef Name) |
| Find a property value in a LoopID. | |
| bool | polly::getBooleanLoopAttribute (llvm::MDNode *LoopID, llvm::StringRef Name) |
| Find a boolean property value in a LoopID. | |
| std::optional< int > | polly::getOptionalIntLoopAttribute (llvm::MDNode *LoopID, llvm::StringRef Name) |
| Find an integers property value in a LoopID. | |
| bool | polly::hasDisableAllTransformsHint (llvm::Loop *L) |
| Does the loop's LoopID contain a 'llvm.loop.disable_heuristics' property? | |
| bool | polly::hasDisableAllTransformsHint (llvm::MDNode *LoopID) |
| isl::id | polly::getIslLoopAttr (isl::ctx Ctx, BandAttr *Attr) |
| Get an isl::id representing a loop. | |
| isl::id | polly::createIslLoopAttr (isl::ctx Ctx, llvm::Loop *L) |
| Create an isl::id that identifies an original loop. | |
| bool | polly::isLoopAttr (const isl::id &Id) |
Is Id representing a loop? | |
| BandAttr * | polly::getLoopAttr (const isl::id &Id) |
| Return the BandAttr of a loop's isl::id. | |