|
Polly 23.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 141 of file ScopHelper.h.
|
inline |
Definition at line 146 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 147 of file ScopHelper.h.
References I, and MemAccInst().
|
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.
|
inline |
Definition at line 153 of file ScopHelper.h.
References I.
|
inlineexplicit |
Definition at line 154 of file ScopHelper.h.
|
inlineexplicit |
Definition at line 155 of file ScopHelper.h.
|
inline |
Definition at line 322 of file ScopHelper.h.
References I.
|
inline |
Definition at line 309 of file ScopHelper.h.
References I.
Referenced by llvm::simplify_type< polly::MemAccInst >::getSimplifiedValue(), and operator llvm::Instruction *().
|
inline |
Definition at line 320 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 323 of file ScopHelper.h.
References I.
Referenced by getPointerOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 326 of file ScopHelper.h.
References I.
|
inline |
Definition at line 329 of file ScopHelper.h.
References I.
|
inline |
Definition at line 321 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inlinestatic |
Definition at line 165 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 168 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 171 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 174 of file ScopHelper.h.
References MemAccInst().
|
inlinestatic |
Definition at line 179 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 184 of file ScopHelper.h.
References assert, isa(), and MemAccInst().
|
inline |
|
inline |
Definition at line 282 of file ScopHelper.h.
References asLoad(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 249 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 238 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 157 of file ScopHelper.h.
Referenced by dyn_cast(), dyn_cast(), MemAccInst(), and MemAccInst().
|
inlinestatic |
Definition at line 161 of file ScopHelper.h.
|
inline |
Definition at line 313 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
|
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 314 of file ScopHelper.h.
References I.
Referenced by getOrdering(), getPointerOperand(), getValueOperand(), isSimple(), isUnordered(), and isVolatile().
|
inline |
Definition at line 315 of file ScopHelper.h.
References I.
|
inline |
Definition at line 316 of file ScopHelper.h.
References I.
|
inline |
Definition at line 306 of file ScopHelper.h.
References I.
Referenced by polly::BlockGenerator::generateLocationAccessed(), and operator!().
|
inline |
Definition at line 271 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 312 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 293 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inline |
Definition at line 260 of file ScopHelper.h.
References asLoad(), asMemIntrinsic(), asStore(), isCallInst(), isLoad(), isMemIntrinsic(), and isStore().
|
inlineexplicit |
Definition at line 235 of file ScopHelper.h.
References isInstruction().
|
inline |
Definition at line 232 of file ScopHelper.h.
References asInstruction().
|
inline |
Definition at line 236 of file ScopHelper.h.
References isNull().
|
inline |
Definition at line 233 of file ScopHelper.h.
References get().
|
inline |
Definition at line 191 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 219 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 223 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 195 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 199 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 211 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 215 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 203 of file ScopHelper.h.
References I, and MemAccInst().
|
inline |
Definition at line 207 of file ScopHelper.h.
References I, and MemAccInst().
|
private |
Definition at line 143 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=().