Polly 22.0.0git
ScopHelper.cpp File Reference
#include "polly/Support/ScopHelper.h"
#include "polly/Options.h"
#include "polly/ScopInfo.h"
#include "polly/Support/SCEVValidator.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/RegionInfo.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/LoopUtils.h"
#include "llvm/Transforms/Utils/ScalarEvolutionExpander.h"
#include <optional>

Go to the source code of this file.

Classes

struct  ScopExpander
 ScopExpander generates IR the the value of a SCEV that represents a value from a SCoP. More...

Macros

#define DEBUG_TYPE   "polly-scop-helper"

Functions

static cl::list< std::string > DebugFunctions ("polly-debug-func", cl::desc("Allow calls to the specified functions in SCoPs even if their " "side-effects are unknown. This can be used to do debug output in " "Polly-transformed code."), cl::Hidden, cl::CommaSeparated, cl::cat(PollyCategory))
static void simplifyRegionEntry (Region *R, DominatorTree *DT, LoopInfo *LI, RegionInfo *RI)
static void simplifyRegionExit (Region *R, DominatorTree *DT, LoopInfo *LI, RegionInfo *RI)
static BasicBlock * splitBlock (BasicBlock *Old, BasicBlock::iterator SplitPt, DominatorTree *DT, llvm::LoopInfo *LI, RegionInfo *RI)
static bool hasVariantIndex (GetElementPtrInst *Gep, Loop *L, Region &R, ScalarEvolution &SE)
static bool hasDebugCall (BasicBlock *BB)
static MDNode * findNamedMetadataNode (MDNode *LoopMD, StringRef Name)
 Find a property in a LoopID.
static std::optional< const MDOperand * > findNamedMetadataArg (MDNode *LoopID, StringRef Name)
static std::optional< bool > getOptionalBoolLoopAttribute (MDNode *LoopID, StringRef Name)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "polly-scop-helper"

Definition at line 29 of file ScopHelper.cpp.

Function Documentation

◆ DebugFunctions()

cl::list< std::string > DebugFunctions ( "polly-debug-func" ,
cl::desc("Allow calls to the specified functions in SCoPs even if their " "side-effects are unknown. This can be used to do debug output in " "Polly-transformed code.") ,
cl::Hidden ,
cl::CommaSeparated ,
cl::cat(PollyCategory)  )
static

References PollyCategory.

Referenced by polly::hasDebugCall().

◆ findNamedMetadataArg()

std::optional< const MDOperand * > findNamedMetadataArg ( MDNode * LoopID,
StringRef Name )
static

Definition at line 764 of file ScopHelper.cpp.

References findNamedMetadataNode().

◆ findNamedMetadataNode()

MDNode * findNamedMetadataNode ( MDNode * LoopMD,
StringRef Name )
static

Find a property in a LoopID.

Definition at line 747 of file ScopHelper.cpp.

References X().

Referenced by findNamedMetadataArg(), and getOptionalBoolLoopAttribute().

◆ getOptionalBoolLoopAttribute()

std::optional< bool > getOptionalBoolLoopAttribute ( MDNode * LoopID,
StringRef Name )
static

Definition at line 794 of file ScopHelper.cpp.

References findNamedMetadataNode().

◆ hasDebugCall()

bool hasDebugCall ( BasicBlock * BB)
static

Definition at line 717 of file ScopHelper.cpp.

References polly::isDebugCall().

◆ hasVariantIndex()

bool hasVariantIndex ( GetElementPtrInst * Gep,
Loop * L,
Region & R,
ScalarEvolution & SE )
static

Definition at line 563 of file ScopHelper.cpp.

◆ simplifyRegionEntry()

void simplifyRegionEntry ( Region * R,
DominatorTree * DT,
LoopInfo * LI,
RegionInfo * RI )
static

Definition at line 41 of file ScopHelper.cpp.

References assert, and polly::Entry.

◆ simplifyRegionExit()

void simplifyRegionExit ( Region * R,
DominatorTree * DT,
LoopInfo * LI,
RegionInfo * RI )
static

Definition at line 105 of file ScopHelper.cpp.

References assert.

◆ splitBlock()

BasicBlock * splitBlock ( BasicBlock * Old,
BasicBlock::iterator SplitPt,
DominatorTree * DT,
llvm::LoopInfo * LI,
RegionInfo * RI )
static

Definition at line 168 of file ScopHelper.cpp.

References assert.