LLVM 19.0.0git
Classes | Namespaces
PtrUseVisitor.h File Reference

This file provides a collection of visitors which walk the (instruction) uses of a pointer. More...

#include "llvm/ADT/APInt.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/IntrinsicInst.h"
#include <cassert>
#include <type_traits>

Go to the source code of this file.

Classes

class  llvm::detail::PtrUseVisitorBase
 Implementation of non-dependent functionality for PtrUseVisitor. More...
 
class  llvm::detail::PtrUseVisitorBase::PtrInfo
 This class provides information about the result of a visit. More...
 
struct  llvm::detail::PtrUseVisitorBase::UseToVisit
 A struct of the data needed to visit a particular use. More...
 
class  llvm::PtrUseVisitor< DerivedT >
 A base class for visitors over the uses of a pointer value. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.
 

Detailed Description

This file provides a collection of visitors which walk the (instruction) uses of a pointer.

These visitors all provide the same essential behavior as an InstVisitor with similar template-based flexibility and implementation strategies.

These can be used, for example, to quickly analyze the uses of an alloca, global variable, or function argument.

FIXME: Provide a variant which doesn't track offsets and is cheaper.

Definition in file PtrUseVisitor.h.