|
LLVM 22.0.0git
|
#include "NVPTXUtilities.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/Metadata.h"#include "llvm/Support/NVPTXAddrSpace.h"Go to the source code of this file.
Functions | |
| static bool | isInvariantLoad (const Instruction *I, const Value *Ptr, const bool IsKernelFn) |
| static void | markLoadsAsInvariant (Instruction *I) |
| static bool | tagInvariantLoads (Function &F) |
| INITIALIZE_PASS (NVPTXTagInvariantLoadLegacyPass, "nvptx-tag-invariant-loads", "NVPTX Tag Invariant Loads", false, false) bool NVPTXTagInvariantLoadLegacyPass | |
| INITIALIZE_PASS | ( | NVPTXTagInvariantLoadLegacyPass | , |
| "nvptx-tag-invariant-loads" | , | ||
| "NVPTX Tag Invariant Loads" | , | ||
| false | , | ||
| false | ) |
Definition at line 93 of file NVPTXTagInvariantLoads.cpp.
References F, runOnFunction(), and tagInvariantLoads().
Definition at line 30 of file NVPTXTagInvariantLoads.cpp.
References A(), llvm::NVPTXAS::ADDRESS_SPACE_GLOBAL, llvm::all_of(), llvm::dyn_cast(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), llvm::getUnderlyingObjects(), I, and llvm::isParamGridConstant().
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), and tagInvariantLoads().
|
static |
Definition at line 57 of file NVPTXTagInvariantLoads.cpp.
References llvm::MDNode::get(), and I.
Referenced by tagInvariantLoads().
Definition at line 62 of file NVPTXTagInvariantLoads.cpp.
References Changed, llvm::dyn_cast(), F, I, II, instructions, isInvariantLoad(), llvm::isKernelFunction(), and markLoadsAsInvariant().
Referenced by INITIALIZE_PASS(), and llvm::NVPTXTagInvariantLoadsPass::run().