LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
StandardInstrumentations.cpp File Reference
#include "llvm/Passes/StandardInstrumentations.h"
#include "llvm/ADT/Any.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/CallGraphSCCPass.h"
#include "llvm/Analysis/LazyCallGraph.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassInstrumentation.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/PrintPasses.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/GraphWriter.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/raw_ostream.h"
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
Include dependency graph for StandardInstrumentations.cpp:

Go to the source code of this file.

Classes

struct  PreservedCFGCheckerAnalysis
 
struct  llvm::GraphTraits< DotCfgDiffDisplayGraph * >
 
struct  llvm::DOTGraphTraits< DotCfgDiffDisplayGraph * >
 

Namespaces

 llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Enumerations

enum  ChangePrinter {
  ChangePrinter::NoChangePrinter, ChangePrinter::PrintChangedVerbose, ChangePrinter::PrintChangedQuiet, ChangePrinter::PrintChangedDiffVerbose,
  ChangePrinter::PrintChangedDiffQuiet, ChangePrinter::PrintChangedColourDiffVerbose, ChangePrinter::PrintChangedColourDiffQuiet, ChangePrinter::PrintChangedDotCfgVerbose,
  ChangePrinter::PrintChangedDotCfgQuiet
}
 

Functions

static void printBBName (raw_ostream &out, const BasicBlock *BB)
 

Variables

static cl::opt< ChangePrinterPrintChanged ("print-changed", cl::desc("Print changed IRs"), cl::Hidden, cl::ValueOptional, cl::init(ChangePrinter::NoChangePrinter), cl::values(clEnumValN(ChangePrinter::PrintChangedQuiet, "quiet", "Run in quiet mode"), clEnumValN(ChangePrinter::PrintChangedDiffVerbose, "diff", "Display patch-like changes"), clEnumValN(ChangePrinter::PrintChangedDiffQuiet, "diff-quiet", "Display patch-like changes in quiet mode"), clEnumValN(ChangePrinter::PrintChangedColourDiffVerbose, "cdiff", "Display patch-like changes with color"), clEnumValN(ChangePrinter::PrintChangedColourDiffQuiet, "cdiff-quiet", "Display patch-like changes in quiet mode with color"), clEnumValN(ChangePrinter::PrintChangedDotCfgVerbose, "dot-cfg", "Create a website with graphical changes"), clEnumValN(ChangePrinter::PrintChangedDotCfgQuiet, "dot-cfg-quiet", "Create a website with graphical changes in quiet mode"), clEnumValN(ChangePrinter::PrintChangedVerbose, "", "")))
 
static cl::list< std::string > PrintPassesList ("filter-passes", cl::value_desc("pass names"), cl::desc("Only consider IR changes for passes whose names " "match for the print-changed option"), cl::CommaSeparated, cl::Hidden)
 
static cl::opt< bool > PrintChangedBefore ("print-before-changed", cl::desc("Print before passes that change them"), cl::init(false), cl::Hidden)
 
static cl::opt< std::string > DiffBinary ("print-changed-diff-path", cl::Hidden, cl::init("diff"), cl::desc("system diff used by change reporters"))
 
static cl::opt< std::string > DotBinary ("print-changed-dot-path", cl::Hidden, cl::init("dot"), cl::desc("system dot used by change reporters"))
 
cl::opt< std::string > BeforeColour ("dot-cfg-before-color", cl::desc("Color for dot-cfg before elements."), cl::Hidden, cl::init("red"))
 
cl::opt< std::string > AfterColour ("dot-cfg-after-color", cl::desc("Color for dot-cfg after elements."), cl::Hidden, cl::init("forestgreen"))
 
cl::opt< std::string > CommonColour ("dot-cfg-common-color", cl::desc("Color for dot-cfg common elements."), cl::Hidden, cl::init("black"))
 
static cl::opt< std::string > DotCfgDir ("dot-cfg-dir", cl::desc("Generate dot files into specified directory for changed IRs"), cl::Hidden, cl::init("./"))
 

Detailed Description

This file defines IR-printing pass instrumentation callbacks as well as StandardInstrumentations class that manages standard pass instrumentations.

Definition in file StandardInstrumentations.cpp.

Enumeration Type Documentation

◆ ChangePrinter

enum ChangePrinter
strong
Enumerator
NoChangePrinter 
PrintChangedVerbose 
PrintChangedQuiet 
PrintChangedDiffVerbose 
PrintChangedDiffQuiet 
PrintChangedColourDiffVerbose 
PrintChangedColourDiffQuiet 
PrintChangedDotCfgVerbose 
PrintChangedDotCfgQuiet 

Definition at line 80 of file StandardInstrumentations.cpp.

Function Documentation

◆ printBBName()

static void printBBName ( raw_ostream out,
const BasicBlock BB 
)
static

Variable Documentation

◆ AfterColour

cl::opt<std::string> AfterColour("dot-cfg-after-color", cl::desc("Color for dot-cfg after elements."), cl::Hidden, cl::init("forestgreen"))

◆ BeforeColour

cl::opt<std::string> BeforeColour("dot-cfg-before-color", cl::desc("Color for dot-cfg before elements."), cl::Hidden, cl::init("red"))

◆ CommonColour

cl::opt<std::string> CommonColour("dot-cfg-common-color", cl::desc("Color for dot-cfg common elements."), cl::Hidden, cl::init("black"))

◆ DiffBinary

cl::opt<std::string> DiffBinary("print-changed-diff-path", cl::Hidden, cl::init("diff"), cl::desc("system diff used by change reporters"))
static

◆ DotBinary

cl::opt<std::string> DotBinary("print-changed-dot-path", cl::Hidden, cl::init("dot"), cl::desc("system dot used by change reporters"))
static

◆ DotCfgDir

cl::opt<std::string> DotCfgDir("dot-cfg-dir", cl::desc("Generate dot files into specified directory for changed IRs"), cl::Hidden, cl::init("./"))
static

◆ PrintChanged

cl::opt<ChangePrinter> PrintChanged("print-changed", cl::desc("Print changed IRs"), cl::Hidden, cl::ValueOptional, cl::init(ChangePrinter::NoChangePrinter), cl::values( clEnumValN(ChangePrinter::PrintChangedQuiet, "quiet", "Run in quiet mode"), clEnumValN(ChangePrinter::PrintChangedDiffVerbose, "diff", "Display patch-like changes"), clEnumValN(ChangePrinter::PrintChangedDiffQuiet, "diff-quiet", "Display patch-like changes in quiet mode"), clEnumValN(ChangePrinter::PrintChangedColourDiffVerbose, "cdiff", "Display patch-like changes with color"), clEnumValN(ChangePrinter::PrintChangedColourDiffQuiet, "cdiff-quiet", "Display patch-like changes in quiet mode with color"), clEnumValN(ChangePrinter::PrintChangedDotCfgVerbose, "dot-cfg", "Create a website with graphical changes"), clEnumValN(ChangePrinter::PrintChangedDotCfgQuiet, "dot-cfg-quiet", "Create a website with graphical changes in quiet mode"), clEnumValN(ChangePrinter::PrintChangedVerbose, "", "")))
static

◆ PrintChangedBefore

cl::opt<bool> PrintChangedBefore("print-before-changed", cl::desc("Print before passes that change them"), cl::init(false), cl::Hidden)
static

◆ PrintPassesList

cl::list<std::string> PrintPassesList("filter-passes", cl::value_desc("pass names"), cl::desc("Only consider IR changes for passes whose names " "match for the print-changed option"), cl::CommaSeparated, cl::Hidden)
static