LLVM 19.0.0git
Classes | Macros | Functions | Variables
StackSafetyAnalysis.cpp File Reference
#include "llvm/Analysis/StackSafetyAnalysis.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/StackLifetime.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <memory>
#include <tuple>

Go to the source code of this file.

Classes

struct  llvm::StackSafetyInfo::InfoTy
 
struct  llvm::StackSafetyGlobalInfo::InfoTy
 

Macros

#define DEBUG_TYPE   "stack-safety"
 

Functions

 STATISTIC (NumAllocaStackSafe, "Number of safe allocas")
 
 STATISTIC (NumAllocaTotal, "Number of total allocas")
 
 STATISTIC (NumCombinedCalleeLookupTotal, "Number of total callee lookups on combined index.")
 
 STATISTIC (NumCombinedCalleeLookupFailed, "Number of failed callee lookups on combined index.")
 
 STATISTIC (NumModuleCalleeLookupTotal, "Number of total callee lookups on module index.")
 
 STATISTIC (NumModuleCalleeLookupFailed, "Number of failed callee lookups on module index.")
 
 STATISTIC (NumCombinedParamAccessesBefore, "Number of total param accesses before generateParamAccessSummary.")
 
 STATISTIC (NumCombinedParamAccessesAfter, "Number of total param accesses after generateParamAccessSummary.")
 
 STATISTIC (NumCombinedDataFlowNodes, "Number of total nodes in combined index for dataflow processing.")
 
 STATISTIC (NumIndexCalleeUnhandled, "Number of index callee which are unhandled.")
 
 STATISTIC (NumIndexCalleeMultipleWeak, "Number of index callee non-unique weak.")
 
 STATISTIC (NumIndexCalleeMultipleExternal, "Number of index callee non-unique external.")
 
 INITIALIZE_PASS_BEGIN (StackSafetyInfoWrapperPass, LocalPassArg, LocalPassName, false, true) INITIALIZE_PASS_END(StackSafetyInfoWrapperPass
 
 INITIALIZE_PASS_BEGIN (StackSafetyGlobalInfoWrapperPass, DEBUG_TYPE, GlobalPassName, false, true) INITIALIZE_PASS_END(StackSafetyGlobalInfoWrapperPass
 

Variables

static cl::opt< int > StackSafetyMaxIterations ("stack-safety-max-iterations", cl::init(20), cl::Hidden)
 
static cl::opt< boolStackSafetyPrint ("stack-safety-print", cl::init(false), cl::Hidden)
 
static cl::opt< boolStackSafetyRun ("stack-safety-run", cl::init(false), cl::Hidden)
 
static const char LocalPassArg [] = "stack-safety-local"
 
static const char LocalPassName [] = "Stack Safety Local Analysis"
 
 false
 
static true const char GlobalPassName [] = "Stack Safety Analysis"
 
 DEBUG_TYPE
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "stack-safety"

Definition at line 38 of file StackSafetyAnalysis.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN() [1/2]

INITIALIZE_PASS_BEGIN ( StackSafetyGlobalInfoWrapperPass  ,
DEBUG_TYPE  ,
GlobalPassName  ,
false  ,
true   
)

◆ INITIALIZE_PASS_BEGIN() [2/2]

INITIALIZE_PASS_BEGIN ( StackSafetyInfoWrapperPass  ,
LocalPassArg  ,
LocalPassName  ,
false  ,
true   
)

◆ STATISTIC() [1/12]

STATISTIC ( NumAllocaStackSafe  ,
"Number of safe allocas"   
)

◆ STATISTIC() [2/12]

STATISTIC ( NumAllocaTotal  ,
"Number of total allocas"   
)

◆ STATISTIC() [3/12]

STATISTIC ( NumCombinedCalleeLookupFailed  ,
"Number of failed callee lookups on combined index."   
)

◆ STATISTIC() [4/12]

STATISTIC ( NumCombinedCalleeLookupTotal  ,
"Number of total callee lookups on combined index."   
)

◆ STATISTIC() [5/12]

STATISTIC ( NumCombinedDataFlowNodes  ,
"Number of total nodes in combined index for dataflow processing."   
)

◆ STATISTIC() [6/12]

STATISTIC ( NumCombinedParamAccessesAfter  ,
"Number of total param accesses after generateParamAccessSummary."   
)

◆ STATISTIC() [7/12]

STATISTIC ( NumCombinedParamAccessesBefore  ,
"Number of total param accesses before generateParamAccessSummary."   
)

◆ STATISTIC() [8/12]

STATISTIC ( NumIndexCalleeMultipleExternal  ,
"Number of index callee non-unique external."   
)

◆ STATISTIC() [9/12]

STATISTIC ( NumIndexCalleeMultipleWeak  ,
"Number of index callee non-unique weak."   
)

◆ STATISTIC() [10/12]

STATISTIC ( NumIndexCalleeUnhandled  ,
"Number of index callee which are unhandled."   
)

◆ STATISTIC() [11/12]

STATISTIC ( NumModuleCalleeLookupFailed  ,
"Number of failed callee lookups on module index."   
)

◆ STATISTIC() [12/12]

STATISTIC ( NumModuleCalleeLookupTotal  ,
"Number of total callee lookups on module index."   
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 1226 of file StackSafetyAnalysis.cpp.

◆ false

false

Definition at line 1219 of file StackSafetyAnalysis.cpp.

◆ GlobalPassName

GlobalPassName = "Stack Safety Analysis"
static

Definition at line 1221 of file StackSafetyAnalysis.cpp.

◆ LocalPassArg

LocalPassArg = "stack-safety-local"
static

Definition at line 1213 of file StackSafetyAnalysis.cpp.

◆ LocalPassName

LocalPassName = "Stack Safety Local Analysis"
static

Definition at line 1214 of file StackSafetyAnalysis.cpp.

◆ StackSafetyMaxIterations

cl::opt< int > StackSafetyMaxIterations("stack-safety-max-iterations", cl::init(20), cl::Hidden) ( "stack-safety-max-iterations"  ,
cl::init(20)  ,
cl::Hidden   
)
static

◆ StackSafetyPrint

cl::opt< bool > StackSafetyPrint("stack-safety-print", cl::init(false), cl::Hidden) ( "stack-safety-print"  ,
cl::init(false)  ,
cl::Hidden   
)
static

◆ StackSafetyRun

cl::opt< bool > StackSafetyRun("stack-safety-run", cl::init(false), cl::Hidden) ( "stack-safety-run"  ,
cl::init(false)  ,
cl::Hidden   
)
static