LLVM  13.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
Attributor.h File Reference
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/AssumeBundleQueries.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/CGSCCPassManager.h"
#include "llvm/Analysis/LazyCallGraph.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/MustExecute.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/IR/AbstractCallSite.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Transforms/Utils/CallGraphUpdater.h"
Include dependency graph for Attributor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::AADepGraphNode
 } More...
 
struct  llvm::AADepGraph
 The data structure for the dependency graph. More...
 
struct  llvm::IRPosition
 Helper to describe and deal with positions in the LLVM-IR. More...
 
struct  llvm::DenseMapInfo< IRPosition >
 Helper that allows IRPosition as a key in a DenseMap. More...
 
class  llvm::SubsumingPositionIterator
 A visitor class for IR positions. More...
 
struct  llvm::AnalysisGetter
 Wrapper for FunctoinAnalysisManager. More...
 
struct  llvm::InformationCache
 Data structure to hold cached (LLVM-IR) information. More...
 
struct  llvm::Attributor
 The fixpoint analysis framework that orchestrates the attribute deduction. More...
 
struct  llvm::Attributor::ArgumentReplacementInfo
 Helper struct used in the communication between an abstract attribute (AA) that wants to change the signature of a function and the Attributor which applies the changes. More...
 
struct  llvm::AbstractState
 An interface to query the internal state of an abstract attribute. More...
 
struct  llvm::IntegerStateBase< base_ty, BestState, WorstState >
 Simple state with integers encoding. More...
 
struct  llvm::BitIntegerState< base_ty, BestState, WorstState >
 Specialization of the integer state for a bit-wise encoding. More...
 
struct  llvm::IncIntegerState< base_ty, BestState, WorstState >
 Specialization of the integer state for an increasing value, hence ~0u is the best state and 0 the worst. More...
 
struct  llvm::DecIntegerState< base_ty >
 Specialization of the integer state for a decreasing value, hence 0 is the best state and ~0u the worst. More...
 
struct  llvm::BooleanState
 Simple wrapper for a single bit (boolean) state. More...
 
struct  llvm::IntegerRangeState
 State for an integer range. More...
 
struct  llvm::IRAttributeManifest
 Helper struct necessary as the modular build fails if the virtual method IRAttribute::manifest is defined in the Attributor.cpp. More...
 
struct  llvm::StateWrapper< StateTy, BaseType, Ts >
 Helper to tie a abstract state implementation to an abstract attribute. More...
 
struct  llvm::IRAttribute< AK, BaseType >
 Helper class that provides common functionality to manifest IR attributes. More...
 
struct  llvm::AbstractAttribute
 Base struct for all "concrete attribute" deductions. More...
 
struct  llvm::AttributorPass
 } More...
 
struct  llvm::AttributorCGSCCPass
 
struct  llvm::AAReturnedValues
 An abstract attribute for the returned values of a function. More...
 
struct  llvm::AANoUnwind
 
struct  llvm::AANoSync
 
struct  llvm::AANonNull
 An abstract interface for all nonnull attributes. More...
 
struct  llvm::AANoRecurse
 An abstract attribute for norecurse. More...
 
struct  llvm::AAWillReturn
 An abstract attribute for willreturn. More...
 
struct  llvm::AAUndefinedBehavior
 An abstract attribute for undefined behavior. More...
 
struct  llvm::AAReachability
 An abstract interface to determine reachability of point A to B. More...
 
struct  llvm::AANoAlias
 An abstract interface for all noalias attributes. More...
 
struct  llvm::AANoFree
 An AbstractAttribute for nofree. More...
 
struct  llvm::AANoReturn
 An AbstractAttribute for noreturn. More...
 
struct  llvm::AAIsDead
 An abstract interface for liveness abstract attribute. More...
 
struct  llvm::DerefState
 State for dereferenceable attribute. More...
 
struct  llvm::AADereferenceable
 An abstract interface for all dereferenceable attribute. More...
 
struct  llvm::AAAlign
 An abstract interface for all align attributes. More...
 
struct  llvm::AANoCapture
 An abstract interface for all nocapture attributes. More...
 
struct  llvm::AAValueSimplify
 An abstract interface for value simplify abstract attribute. More...
 
struct  llvm::AAHeapToStack
 
struct  llvm::AAPrivatizablePtr
 An abstract interface for privatizability. More...
 
struct  llvm::AAMemoryBehavior
 An abstract interface for memory access kind related attributes (readnone/readonly/writeonly). More...
 
struct  llvm::AAMemoryLocation
 An abstract interface for all memory location attributes (readnone/argmemonly/inaccessiblememonly/inaccessibleorargmemonly). More...
 
struct  llvm::AAValueConstantRange
 An abstract interface for range value analysis. More...
 
struct  llvm::PotentialValuesState< MemberTy, KeyInfo >
 A class for a set state. More...
 
struct  llvm::AAPotentialValues
 An abstract interface for potential values analysis. More...
 
struct  llvm::AANoUndef
 An abstract interface for all noundef attributes. More...
 

Namespaces

 llvm
 

Typedefs

using llvm::AAAlignmentStateType = IncIntegerState< uint32_t, Value::MaximumAlignment, 1 >
 
using llvm::PotentialConstantIntValuesState = PotentialValuesState< APInt >
 

Enumerations

enum  llvm::ChangeStatus { llvm::ChangeStatus::CHANGED, llvm::ChangeStatus::UNCHANGED }
 { More...
 
enum  llvm::DepClassTy { llvm::DepClassTy::REQUIRED, llvm::DepClassTy::OPTIONAL, llvm::NONE }
 
enum  llvm::AttributorRunOption {
  llvm::NONE = 0, llvm::NONE, llvm::MODULE = 1 << 0, llvm::CGSCC = 1 << 1,
  llvm::ALL = MODULE | CGSCC
}
 Run options, used by the pass manager. More...
 

Functions

ChangeStatus llvm::operator| (ChangeStatus l, ChangeStatus r)
 Logic operators for the change status enum class. More...
 
ChangeStatus llvm::operator& (ChangeStatus l, ChangeStatus r)
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const AbstractAttribute &AA)
 Forward declarations of output streams for debug purposes. More...
 
raw_ostreamllvm::operator<< (raw_ostream &OS, ChangeStatus S)
 Helpers to ease debugging through output streams and print calls. More...
 
raw_ostreamllvm::operator<< (raw_ostream &OS, IRPosition::Kind)
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const IRPosition &)
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const AbstractState &State)
 
template<typename base_ty , base_ty BestState, base_ty WorstState>
raw_ostream & llvm::operator<< (raw_ostream &OS, const IntegerStateBase< base_ty, BestState, WorstState > &S)
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const IntegerRangeState &State)
 
Passllvm::createAttributorLegacyPass ()
 
Passllvm::createAttributorCGSCCLegacyPass ()
 
raw_ostreamllvm::operator<< (raw_ostream &OS, const PotentialConstantIntValuesState &R)
 

Variables

unsigned llvm::MaxInitializationChainLength
 The value passed to the line option that defines the maximal initialization chain length. More...