17#ifndef LLVM_TRANSFORMS_IPO_GLOBALDCE_H
18#define LLVM_TRANSFORMS_IPO_GLOBALDCE_H
26#include <unordered_map>
41 GlobalDCEPass(
bool InLTOPostLink =
false) : InLTOPostLink(InLTOPostLink) {}
50 bool InLTOPostLink =
false;
74 std::unordered_multimap<Comdat *, GlobalValue *> ComdatMembers;
89 void AddVirtualFunctionDependencies(
Module &M);
90 void ScanVTables(
Module &M);
91 void ScanTypeCheckedLoadIntrinsics(
Module &M);
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
This file implements a set that has insertion order iteration characteristics.
This file defines the SmallSet class.
This is an important base class in LLVM.
LLVM_ABI void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
GlobalDCEPass(bool InLTOPostLink=false)
LLVM_ABI PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
A SetVector that performs no allocations if smaller than a certain size.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Represent a constant reference to a string, i.e.
LLVM Value Representation.
An efficient, type-erasing, non-owning reference to a callable.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI ModulePass * createGlobalDCEPass()
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
A CRTP mix-in for passes that can be skipped.