1#ifndef LLVM_CODEGEN_ASSIGNMENTTRACKINGANALYSIS_H
2#define LLVM_CODEGEN_ASSIGNMENTTRACKINGANALYSIS_H
40 unsigned SingleVarLocEnd = 0;
58 return Variables[
static_cast<unsigned>(
ID)];
67 const auto *It = VarLocRecords.
begin();
68 std::advance(It, SingleVarLocEnd);
73 auto Span = VarLocsBeforeInst.
lookup(Before);
74 const auto *It = VarLocRecords.
begin();
75 std::advance(It, Span.first);
81 auto Span = VarLocsBeforeInst.
lookup(Before);
82 const auto *It = VarLocRecords.
begin();
83 std::advance(It, Span.second);
99 std::unique_ptr<FunctionVarLocs> Results;
Function Alias Analysis Results
Helper class to build FunctionVarLocs, since that class isn't easy to modify.
Represent the analysis usage information of a pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
AssignmentTrackingAnalysis()
const FunctionVarLocs * getResults()
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
Identifies a unique instance of a variable.
const DILocalVariable * getVariable() const
ValueT lookup(const_arg_type_t< KeyT > Val) const
lookup - Return the entry for the specified key, or a default constructed value if no such entry exis...
FunctionPass class - This class is used to implement most global optimizations.
Data structure describing the variable locations in a function.
void print(raw_ostream &OS, const Function &Fn) const
const VarLocInfo * locs_begin(const Instruction *Before) const
First variable location definition that comes before Before.
const VarLocInfo * single_locs_begin() const
DILocalVariable * getDILocalVariable(const VarLocInfo *Loc) const
Return the DILocalVariable for the location definition represented by ID.
DILocalVariable * getDILocalVariable(VariableID ID) const
Return the DILocalVariable of the variable represented by ID.
const DebugVariable & getVariable(VariableID ID) const
Return the DebugVariable represented by ID.
const VarLocInfo * locs_end(const Instruction *Before) const
One past the last variable location definition that comes before Before.
const VarLocInfo * single_locs_end() const
One past the last single-location variable location definition.
void init(FunctionVarLocsBuilder &Builder)
Lightweight class that wraps the location operand metadata of a debug intrinsic.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This class implements an extremely fast bulk output stream that can only output to a stream.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
VariableID
Type wrapper for integer ID for Variables. 0 is reserved.
Variable location definition used by FunctionVarLocs.
RawLocationWrapper Values
llvm::VariableID VariableID