Polly 22.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 to 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.
References I.
Referenced by cast(), cast(), cast_or_null(), cast_or_null(), dyn_cast(), dyn_cast(), MemAccInst(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), and operator=().
|
inline |
Definition at line 146 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 147 of file ScopHelper.h.
References I.
|
inline |
Definition at line 148 of file ScopHelper.h.
References I.
|
inline |
Definition at line 149 of file ScopHelper.h.
References I.
|
inline |
Definition at line 150 of file ScopHelper.h.
References I.
|
inline |
Definition at line 151 of file ScopHelper.h.
References I.
|
inline |
Definition at line 152 of file ScopHelper.h.
References I.
|
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(), dyn_cast(), MemAccInst(), 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, and MemAccInst().
|
inline |
Definition at line 218 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 222 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 194 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 198 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 210 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 214 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 202 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 206 of file ScopHelper.h.
References I, and MemAccInst().
|
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(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), MemAccInst(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), operator=(), and operator=().