P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::SpecializationMap Class Reference

Maintains a map from invocation to a SpecializationInfo object. More...

#include <specialize.h>

Public Member Functions

void addSpecialization (const IR::ConstructorCallExpression *invocation, const IR::IContainer *container, const IR::Node *insertion, DeclarationLookup *declLookup, NameGenerator *nameGen)
 
void addSpecialization (const IR::Declaration_Instance *invocation, const IR::IContainer *container, const IR::Node *insertion, DeclarationLookup *declLookup, NameGenerator *nameGen)
 
void clear ()
 
cstring getName (const IR::Node *insertion) const
 
IR::Vector< IR::Node > * getSpecializations (const IR::Node *insertion, const Visitor::Context *ctxt) const
 

Public Attributes

TypeMaptypeMap = nullptr
 

Detailed Description

Maintains a map from invocation to a SpecializationInfo object.

Member Function Documentation

◆ addSpecialization() [1/2]

void P4::SpecializationMap::addSpecialization ( const IR::ConstructorCallExpression * invocation,
const IR::IContainer * container,
const IR::Node * insertion,
DeclarationLookup * declLookup,
NameGenerator * nameGen )

Add a specialization instance.

Parameters
invocationThe constructor invocation.
containerThe object (eg. parser or control) being specialized.
insertionWhere the specialization should be inserted.

◆ addSpecialization() [2/2]

void P4::SpecializationMap::addSpecialization ( const IR::Declaration_Instance * invocation,
const IR::IContainer * container,
const IR::Node * insertion,
DeclarationLookup * declLookup,
NameGenerator * nameGen )

Add a specialization instance.

Parameters
invocationThe constructor invocation.
containerThe object (eg. parser or control) being specialized.
insertionWhere the specialization should be inserted.