Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
KernelArgPtrUseVisitor.h File Reference
#include "Helpers.h"
#include "proteus/CompilerInterfaceTypes.h"
#include "proteus/impl/Logger.h"
#include "proteus/impl/RuntimeConstantTypeHelpers.h"
#include <llvm/Analysis/PtrUseVisitor.h>
#include <llvm/Analysis/ValueTracking.h>
#include <llvm/ADT/DenseMap.h>
#include <llvm/ADT/DenseSet.h>
#include <llvm/ADT/Hashing.h>
#include <llvm/ADT/SmallPtrSet.h>
#include <llvm/ADT/SmallVector.h>
#include <llvm/Analysis/AssumptionCache.h>
#include <llvm/Analysis/BasicAliasAnalysis.h>
#include <llvm/Analysis/MemoryLocation.h>
#include <llvm/Analysis/MemorySSA.h>
#include <llvm/Analysis/TargetLibraryInfo.h>
#include <llvm/IR/Constants.h>
#include <llvm/IR/DataLayout.h>
#include <llvm/IR/DebugInfo.h>
#include <llvm/IR/Dominators.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/InstrTypes.h>
#include <llvm/IR/Instruction.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Metadata.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/PassManager.h>
#include <llvm/IR/Type.h>
#include <llvm/IR/Value.h>
#include <llvm/TargetParser/Triple.h>
#include <memory>
#include <optional>
Include dependency graph for KernelArgPtrUseVisitor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  proteus::LambdaPtrUseAnalysis
 
struct  proteus::CallerFrame
 
struct  proteus::UseEdge
 
class  proteus::LambdaInstUseVisitor
 

Namespaces

namespace  proteus
 

Functions

bool proteus::needsDefUseAnalysis (Value *Val)
 
bool proteus::offsetCoveredByRange (int64_t TargetOffset, int64_t RangeOffset, uint64_t RangeSize)
 
std::optional< uint64_t > proteus::getTypeStoreSize (const DataLayout &DL, Type *Ty)
 
std::optional< MemoryLocation > proteus::getTrackedPointerLocation (const DataLayout &DL, Value *Ptr)
 
std::optional< LambdaPtrUseAnalysis > proteus::getPreviousCoveringStore (const DataLayout &DL, Value *Ptr, Value *UseBoundary, int64_t TargetOffset)
 
std::optional< LambdaPtrUseAnalysis > proteus::getDominatingUse (const DataLayout &DL, Value *ValueNeedingAnalysis, Value *SeenUse, int64_t TargetOffset, CallBase *LambdaCB=nullptr)