Polly 20.0.0git
|
Utility proxy to wrap the common members of LoadInst and StoreInst. More...
#include <ScopHelper.h>
Public Member Functions | |
MemAccInst () | |
MemAccInst (const MemAccInst &Inst) | |
MemAccInst (llvm::LoadInst &LI) | |
MemAccInst (llvm::LoadInst *LI) | |
MemAccInst (llvm::StoreInst &SI) | |
MemAccInst (llvm::StoreInst *SI) | |
MemAccInst (llvm::MemIntrinsic *MI) | |
MemAccInst (llvm::CallInst *CI) | |
MemAccInst (llvm::Instruction &I) | |
MemAccInst (llvm::Instruction *I) | |
MemAccInst & | operator= (const MemAccInst &Inst) |
MemAccInst & | operator= (llvm::LoadInst &LI) |
MemAccInst & | operator= (llvm::LoadInst *LI) |
MemAccInst & | operator= (llvm::StoreInst &SI) |
MemAccInst & | operator= (llvm::StoreInst *SI) |
MemAccInst & | operator= (llvm::MemIntrinsic &MI) |
MemAccInst & | operator= (llvm::MemIntrinsic *MI) |
MemAccInst & | operator= (llvm::CallInst &CI) |
MemAccInst & | operator= (llvm::CallInst *CI) |
llvm::Instruction * | get () const |
operator llvm::Instruction * () const | |
llvm::Instruction * | operator-> () const |
operator bool () const | |
bool | operator! () const |
llvm::Value * | getValueOperand () const |
llvm::Value * | getPointerOperand () const |
bool | isVolatile () const |
bool | isSimple () const |
llvm::AtomicOrdering | getOrdering () const |
bool | isUnordered () const |
bool | isNull () const |
bool | isInstruction () const |
llvm::Instruction * | asInstruction () const |
bool | isLoad () const |
bool | isStore () const |
bool | isCallInst () const |
bool | isMemIntrinsic () const |
bool | isMemSetInst () const |
bool | isMemTransferInst () const |
llvm::LoadInst * | asLoad () const |
llvm::StoreInst * | asStore () const |
llvm::CallInst * | asCallInst () const |
llvm::MemIntrinsic * | asMemIntrinsic () const |
llvm::MemSetInst * | asMemSetInst () const |
llvm::MemTransferInst * | asMemTransferInst () const |
Static Public Member Functions | |
static bool | isa (const llvm::Value &V) |
static bool | isa (const llvm::Value *V) |
static MemAccInst | cast (llvm::Value &V) |
static MemAccInst | cast (llvm::Value *V) |
static MemAccInst | cast_or_null (llvm::Value &V) |
static MemAccInst | cast_or_null (llvm::Value *V) |
static MemAccInst | dyn_cast (llvm::Value &V) |
static MemAccInst | dyn_cast (llvm::Value *V) |
Private Attributes | |
llvm::Instruction * | I |
Utility proxy to wrap the common members of LoadInst and StoreInst.
This works like the LLVM utility class CallSite, ie. it forwards all calls to either a LoadInst, StoreInst, MemIntrinsic or MemTransferInst. It is similar to LLVM's utility classes IntrinsicInst, MemIntrinsic, MemTransferInst, etc. in that it offers a common interface, but does not act as a fake base class. It is similar to StringRef and ArrayRef in that it holds a pointer to the referenced object and should be passed by-value as it is small enough.
This proxy can either represent a LoadInst instance, a StoreInst instance, a MemIntrinsic instance (memset, memmove, memcpy), a CallInst instance or a nullptr (only creatable using the default constructor); never an Instruction that is neither of the above mentioned. When representing a nullptr, only the following methods are defined: isNull(), isInstruction(), isLoad(), isStore(), ..., isMemTransferInst(), operator bool(), operator!()
The functions isa, cast, cast_or_null, dyn_cast are modeled te resemble those from llvm/Support/Casting.h. Partial template function specialization is currently not supported in C++ such that those cannot be used directly. (llvm::isa could, but then llvm:cast etc. would not have the expected behavior)
Definition at line 140 of file ScopHelper.h.
|
inline |
Definition at line 145 of file ScopHelper.h.
Referenced by cast(), cast_or_null(), and dyn_cast().
|
inline |
Definition at line 146 of file ScopHelper.h.
|
inline |
Definition at line 147 of file ScopHelper.h.
|
inline |
Definition at line 148 of file ScopHelper.h.
|
inline |
Definition at line 149 of file ScopHelper.h.
|
inline |
Definition at line 150 of file ScopHelper.h.
|
inline |
Definition at line 151 of file ScopHelper.h.
|
inline |
Definition at line 152 of file ScopHelper.h.
|
inlineexplicit |
Definition at line 153 of file ScopHelper.h.
|
inlineexplicit |
Definition at line 154 of file ScopHelper.h.
|
inline |
Definition at line 321 of file ScopHelper.h.
References I.
|
inline |
Definition at line 308 of file ScopHelper.h.
References I.
Referenced by llvm::simplify_type< polly::MemAccInst >::getSimplifiedValue(), and operator llvm::Instruction *().
|
inline |
Definition at line 319 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 322 of file ScopHelper.h.
References I.
Referenced by getPointerOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 325 of file ScopHelper.h.
References I.
|
inline |
Definition at line 328 of file ScopHelper.h.
References I.
|
inline |
Definition at line 320 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inlinestatic |
Definition at line 164 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 167 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 170 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 173 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 178 of file ScopHelper.h.
References isa(), and MemAccInst().
Referenced by polly::ScopBuilder::buildAccessFunctions(), getMemAccInstPointerOperand(), polly::ScopDetection::isValidInstruction(), and polly::IslNodeBuilder::materializeValue().
|
inlinestatic |
Definition at line 183 of file ScopHelper.h.
References assert, isa(), and MemAccInst().
|
inline |
|
inline |
Definition at line 281 of file ScopHelper.h.
References asLoad(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 248 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
Referenced by polly::ScopBuilder::buildAccessMultiDimFixed(), polly::ScopBuilder::buildAccessMultiDimParam(), polly::ScopBuilder::buildAccessSingleDim(), polly::ScopBuilder::buildAliasGroupsForAccesses(), polly::BlockGenerator::generateLocationAccessed(), and polly::ScopDetection::isValidMemoryAccess().
|
inline |
Definition at line 237 of file ScopHelper.h.
References asLoad(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
Referenced by polly::ScopBuilder::buildAccessMemIntrinsic(), polly::ScopBuilder::buildAccessMultiDimFixed(), polly::ScopBuilder::buildAccessMultiDimParam(), and polly::ScopBuilder::buildAccessSingleDim().
|
inlinestatic |
Definition at line 156 of file ScopHelper.h.
Referenced by dyn_cast(), and MemAccInst().
|
inlinestatic |
Definition at line 160 of file ScopHelper.h.
|
inline |
Definition at line 312 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
|
inline |
Definition at line 310 of file ScopHelper.h.
References I.
Referenced by polly::ScopBuilder::buildAccessMultiDimFixed(), polly::ScopBuilder::buildAccessMultiDimParam(), polly::ScopBuilder::buildAccessSingleDim(), getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 313 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 314 of file ScopHelper.h.
References I.
|
inline |
Definition at line 315 of file ScopHelper.h.
References I.
|
inline |
Definition at line 305 of file ScopHelper.h.
References I.
Referenced by polly::BlockGenerator::generateLocationAccessed(), and operator!().
|
inline |
Definition at line 270 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 311 of file ScopHelper.h.
References I.
Referenced by polly::ScopBuilder::buildAccessMultiDimFixed(), polly::ScopBuilder::buildAccessMultiDimParam(), polly::ScopBuilder::buildAccessSingleDim(), getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 292 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 259 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inlineexplicit |
Definition at line 234 of file ScopHelper.h.
References isInstruction().
|
inline |
Definition at line 231 of file ScopHelper.h.
References asInstruction().
|
inline |
Definition at line 235 of file ScopHelper.h.
References isNull().
|
inline |
Definition at line 232 of file ScopHelper.h.
References get().
|
inline |
Definition at line 190 of file ScopHelper.h.
References I.
|
inline |
Definition at line 218 of file ScopHelper.h.
References I.
|
inline |
Definition at line 222 of file ScopHelper.h.
References I.
|
inline |
Definition at line 194 of file ScopHelper.h.
References I.
|
inline |
Definition at line 198 of file ScopHelper.h.
References I.
|
inline |
Definition at line 210 of file ScopHelper.h.
References I.
|
inline |
Definition at line 214 of file ScopHelper.h.
References I.
|
inline |
Definition at line 202 of file ScopHelper.h.
References I.
|
inline |
Definition at line 206 of file ScopHelper.h.
References I.
|
private |
Definition at line 142 of file ScopHelper.h.
Referenced by asCallInst(), asInstruction(), asLoad(), asMemIntrinsic(), asMemSetInst(), asMemTransferInst(), asStore(), get(), isCallInst(), isInstruction(), isLoad(), isMemIntrinsic(), isMemSetInst(), isMemTransferInst(), isNull(), isStore(), MemAccInst(), and operator=().