struct DOTGraphTraitsPrinter

Declaration

template <typename AnalysisT,
          bool IsSimple,
          typename GraphT = typename AnalysisT::Result*,
          typename AnalysisGraphTraitsT =
              DefaultAnalysisGraphTraits<typename AnalysisT::Result&,
                                         GraphT>>
struct DOTGraphTraitsPrinter { /* full declaration omitted */ };

Declared at: llvm/include/llvm/Analysis/DOTGraphTraitsPass.h:109

Templates

AnalysisT
bool IsSimple
GraphT = typename AnalysisT::Result *
AnalysisGraphTraitsT = DefaultAnalysisGraphTraits<typename AnalysisT::Result &, GraphT>

Member Variables

private llvm::StringRef Name

Method Overview

Methods

DOTGraphTraitsPrinter<AnalysisT,
                      IsSimple,
                      GraphT,
                      AnalysisGraphTraitsT>(
    llvm::StringRef GraphName)

Declared at: llvm/include/llvm/Analysis/DOTGraphTraitsPass.h:112

Parameters

llvm::StringRef GraphName

virtual bool processFunction(
    llvm::Function& F,
    const typename AnalysisT::Result& Result)

Description

Return true if this function should be processed. An implementation of this class my override this function to indicate that only certain functions should be viewed.

Declared at: llvm/include/llvm/Analysis/DOTGraphTraitsPass.h:120

Parameters

llvm::Function& F
const typename AnalysisT::Result& Result

llvm::PreservedAnalyses run(
    llvm::Function& F,
    llvm::FunctionAnalysisManager& FAM)

Declared at: llvm/include/llvm/Analysis/DOTGraphTraitsPass.h:125

Parameters

llvm::Function& F
llvm::FunctionAnalysisManager& FAM

~DOTGraphTraitsPrinter<AnalysisT,
                       IsSimple,
                       GraphT,
                       AnalysisGraphTraitsT>()

Description

Avoid compiler warning "has virtual functions but non-virtual destructor [-Wnon-virtual-dtor]" in derived classes. DOTGraphTraitsPrinter is also used as a mixin for avoiding repeated implementation of printer passes, ie there should be no runtime-polymorphisms/downcasting involving this class and hence no virtual destructor needed. Making this dtor protected stops accidental invocation when the derived class destructor should have been called. Those derived classes sould be marked final to avoid the warning.

Declared at: llvm/include/llvm/Analysis/DOTGraphTraitsPass.h:147