P4C
The P4 Compiler
 
Loading...
Searching...
No Matches
TC::ConvertToBackendIR Class Reference
Inheritance diagram for TC::ConvertToBackendIR:

Public Member Functions

 ConvertToBackendIR (const IR::ToplevelBlock *tlb, IR::TCPipeline *pipe, P4::ReferenceMap *refMap, P4::TypeMap *typeMap, TCOptions &options)
 
cstring externalName (const IR::IDeclaration *declaration) const
 
const IR::Expression * ExtractExpFromCast (const IR::Expression *exp)
 
unsigned int findMappedKernelMeta (const IR::Member *mem)
 
unsigned getActionId (cstring actionName) const
 
cstring getPipelineName ()
 
unsigned getTableId (cstring tableName) const
 
unsigned getTableKeysize (unsigned tableId) const
 
unsigned getTcType (const IR::StringLiteral *sl)
 
bool isDuplicateOrNoAction (const IR::P4Action *action)
 
bool isPnaMainInputMeta (const IR::Member *mem)
 
bool isPnaMainOutputMeta (const IR::Member *mem)
 
bool isPnaParserMeta (const IR::Member *mem)
 
void postorder (const IR::P4Action *a) override
 
void postorder (const IR::P4Program *p) override
 
void postorder (const IR::P4Table *t) override
 
bool preorder (const IR::P4Program *p) override
 
void setPipelineName ()
 
void updateAddOnMissTable (cstring tblname) const
 
void updateConstEntries (const IR::P4Table *t, IR::TCTable *tdef)
 
void updateDefaultHitAction (const IR::P4Table *t, IR::TCTable *tdef)
 
void updateDefaultMissAction (const IR::P4Table *t, IR::TCTable *tdef)
 
void updateMatchType (const IR::P4Table *t, IR::TCTable *tabledef)
 
void updateTimerProfiles (IR::TCTable *tabledef)
 

Public Attributes

unsigned int actionCount = 0
 
ordered_map< unsigned, cstringactionIDList
 
ordered_map< cstring, const IR::P4Action * > actions
 
unsigned int labelCount = 0
 
cstring mainParserName = nullptr
 
unsigned int metadataCount = 0
 
TCOptionsoptions
 
cstring pipelineName = nullptr
 
P4::ReferenceMaprefMap
 
unsigned int tableCount = 0
 
ordered_map< unsigned, cstringtableIDList
 
ordered_map< unsigned, unsigned > tableKeysizeList
 
IR::TCPipeline * tcPipeline
 
const IR::ToplevelBlock * tlb
 
P4::TypeMaptypeMap
 

Detailed Description

Backend code generation from midend IR

Member Function Documentation

◆ isPnaParserMeta()

bool TC::ConvertToBackendIR::isPnaParserMeta ( const IR::Member * mem)

This function is used for checking whether given member is PNA Parser metadata