17#ifndef LLVM_TRANSFORMS_IPO_GLOBALDCE_H
18#define LLVM_TRANSFORMS_IPO_GLOBALDCE_H
24#include <unordered_map>
38 GlobalDCEPass(
bool InLTOPostLink =
false) : InLTOPostLink(InLTOPostLink) {}
46 bool InLTOPostLink =
false;
54 std::unordered_map<Constant *, SmallPtrSet<GlobalValue *, 8>>
55 ConstantDependenciesCache;
58 std::unordered_multimap<Comdat *, GlobalValue *> ComdatMembers;
73 void AddVirtualFunctionDependencies(
Module &M);
74 void ScanVTables(
Module &M);
75 void ScanTypeCheckedLoadIntrinsics(
Module &M);
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
Machine Check Debug Module
This file defines the SmallSet class.
A container for analyses that lazily runs them and caches their results.
Pass to remove unused function declarations.
void printPipeline(raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
GlobalDCEPass(bool InLTOPostLink=false)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
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.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
StringRef - 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.
A CRTP mix-in to automatically provide informational APIs needed for passes.