LLVM  8.0.1
Namespaces | Macros | Functions | Variables
LLVMContextImpl.cpp File Reference
#include "LLVMContextImpl.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/OptBisect.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/ManagedStatic.h"
#include <cassert>
#include <utility>
#include "llvm/IR/Metadata.def"
Include dependency graph for LLVMContextImpl.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Macros

#define HANDLE_MDNODE_LEAF_UNIQUABLE(CLASS)
 
#define HANDLE_MDNODE_LEAF_UNIQUABLE(CLASS)
 

Functions

static const Metadatallvm::get_hashable_data (const MDOperand &X)
 Make MDOperand transparent for hashing. More...
 

Variables

static ManagedStatic< OptBisectOptBisector
 Singleton instance of the OptBisect class. More...
 

Macro Definition Documentation

◆ HANDLE_MDNODE_LEAF_UNIQUABLE [1/2]

#define HANDLE_MDNODE_LEAF_UNIQUABLE (   CLASS)
Value:
for (auto *I : CLASS##s) \
I->dropAllReferences();
#define I(x, y, z)
Definition: MD5.cpp:58

◆ HANDLE_MDNODE_LEAF_UNIQUABLE [2/2]

#define HANDLE_MDNODE_LEAF_UNIQUABLE (   CLASS)
Value:
for (CLASS * I : CLASS##s) \
delete I;
#define I(x, y, z)
Definition: MD5.cpp:58

Variable Documentation

◆ OptBisector

ManagedStatic<OptBisect> OptBisector
static

Singleton instance of the OptBisect class.

This singleton is accessed via the LLVMContext::getOptPassGate() function. It provides a mechanism to disable passes and individual optimizations at compile time based on a command line option (-opt-bisect-limit) in order to perform a bisecting search for optimization-related problems.

Even if multiple LLVMContext objects are created, they will all return the same instance of OptBisect in order to provide a single bisect count. Any code that uses the OptBisect object should be serialized when bisection is enabled in order to enable a consistent bisect count.

Definition at line 242 of file LLVMContextImpl.cpp.