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 LoadInst *LI, const bool IsKernelFn) |
static void | markLoadsAsInvariant (LoadInst *LI) |
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 87 of file NVPTXTagInvariantLoads.cpp.
References F, and tagInvariantLoads().
Definition at line 30 of file NVPTXTagInvariantLoads.cpp.
References A, llvm::NVPTXAS::ADDRESS_SPACE_GLOBAL, llvm::all_of(), llvm::Instruction::getMetadata(), llvm::LoadInst::getPointerAddressSpace(), llvm::LoadInst::getPointerOperand(), llvm::getUnderlyingObjects(), and llvm::isParamGridConstant().
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), and tagInvariantLoads().
|
static |
Definition at line 56 of file NVPTXTagInvariantLoads.cpp.
References llvm::MDNode::get(), llvm::Value::getContext(), and llvm::Instruction::setMetadata().
Referenced by tagInvariantLoads().
Definition at line 61 of file NVPTXTagInvariantLoads.cpp.
References F, I, instructions, isInvariantLoad(), llvm::isKernelFunction(), and markLoadsAsInvariant().
Referenced by INITIALIZE_PASS(), and llvm::NVPTXTagInvariantLoadsPass::run().