13#ifndef LLVM_IR_TYPEFINDER_H
14#define LLVM_IR_TYPEFINDER_H
39 std::vector<StructType*> StructTypes;
40 bool OnlyNamed =
false;
45 void run(
const Module &M,
bool onlyNamed);
48 using iterator = std::vector<StructType*>::iterator;
57 bool empty()
const {
return StructTypes.empty(); }
58 size_t size()
const {
return StructTypes.size(); }
68 void incorporateType(
Type *Ty);
74 void incorporateValue(
const Value *V);
78 void incorporateMDNode(
const MDNode *V);
This file contains the simple types necessary to represent the attributes associated with functions a...
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
This file defines the DenseSet and SmallDenseSet classes.
Machine Check Debug Module
Implements a dense probed hash-table based set.
A Module instance is used to store all the information related to an LLVM module.
Class to represent struct types.
TypeFinder - Walk over a module, identifying all of the types that are used by the module.
DenseSet< const MDNode * > & getVisitedMetadata()
void run(const Module &M, bool onlyNamed)
iterator erase(iterator I, iterator E)
const_iterator end() const
const_iterator begin() const
std::vector< StructType * >::const_iterator const_iterator
StructType *& operator[](unsigned Idx)
std::vector< StructType * >::iterator iterator
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.