LLVM  10.0.0svn
Public Member Functions | List of all members
llvm::ModuleSanitizerCoveragePass Class Reference

This is the ModuleSanitizerCoverage pass used in the new pass manager. More...

#include "llvm/Transforms/Instrumentation/SanitizerCoverage.h"

Inheritance diagram for llvm::ModuleSanitizerCoveragePass:
Inheritance graph
[legend]
Collaboration diagram for llvm::ModuleSanitizerCoveragePass:
Collaboration graph
[legend]

Public Member Functions

 ModuleSanitizerCoveragePass (SanitizerCoverageOptions Options=SanitizerCoverageOptions())
 
PreservedAnalyses run (Module &M, ModuleAnalysisManager &AM)
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::PassInfoMixin< ModuleSanitizerCoveragePass >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...
 

Detailed Description

This is the ModuleSanitizerCoverage pass used in the new pass manager.

The pass instruments functions for coverage, adds initialization calls to the module for trace PC guards and 8bit counters if they are requested, and appends globals to llvm.compiler.used.

Definition at line 29 of file SanitizerCoverage.h.

Constructor & Destructor Documentation

◆ ModuleSanitizerCoveragePass()

llvm::ModuleSanitizerCoveragePass::ModuleSanitizerCoveragePass ( SanitizerCoverageOptions  Options = SanitizerCoverageOptions())
inlineexplicit

Member Function Documentation

◆ run()

PreservedAnalyses ModuleSanitizerCoveragePass::run ( Module M,
ModuleAnalysisManager AM 
)

Definition at line 287 of file SanitizerCoverage.cpp.

References llvm::AttributeList::addParamAttribute(), llvm::AArch64CC::AL, llvm::PreservedAnalyses::all(), llvm::appendToCompilerUsed(), llvm::appendToGlobalCtors(), llvm::appendToUsed(), assert(), C, llvm::SanitizerCoverageOptions::CoverageType, llvm::IRBuilder< T, Inserter >::CreateCall(), llvm::createSanitizerCtorAndInitFunctions(), llvm::declareSanitizerInitFunction(), llvm::dyn_cast(), llvm::GlobalValue::ExternalLinkage, F(), GEP, llvm::InlineAsm::get(), llvm::ConstantInt::get(), llvm::FunctionType::get(), llvm::Constant::getAllOnesValue(), llvm::Module::getContext(), llvm::Module::getDataLayout(), llvm::Function::getEntryBlock(), llvm::IRBuilderBase::getInt16Ty(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt64Ty(), llvm::IRBuilderBase::getInt8Ty(), llvm::Type::getIntNTy(), llvm::Value::getName(), llvm::Module::getOrInsertComdat(), llvm::Module::getOrInsertFunction(), llvm::Module::getOrInsertGlobal(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::Module::getTargetTriple(), llvm::BasicBlock::getTerminator(), llvm::getUniqueModuleId(), llvm::PointerType::getUnqual(), llvm::Type::getVoidTy(), llvm::IRBuilderBase::getVoidTy(), llvm::GlobalValue::HiddenVisibility, Int32Ty, llvm::PreservedAnalyses::none(), llvm::SanitizerCoverageOptions::PCTable, SanCtorAndDtorPriority, llvm::SanitizerCoverageOptions::SCK_None, llvm::ARMBuildAttrs::Section, llvm::GlobalObject::setComdat(), llvm::GlobalValue::setLinkage(), llvm::GlobalValue::setVisibility(), llvm::SanitizerCoverageOptions::StackDepth, llvm::GlobalValue::WeakODRLinkage, and llvm::Triple::x86_64.

Referenced by ModuleSanitizerCoveragePass().


The documentation for this class was generated from the following files: