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

Public Member Functions

 DeparserHdrEmitTranslatorPNA (const EBPF::EBPFDeparser *deparser)
 
void emitField (EBPF::CodeBuilder *builder, cstring field, const IR::Expression *hdrExpr, unsigned alignment, EBPF::EBPFType *type, bool isMAC)
 
void processMethod (const P4::ExternMethod *method) override
 
- Public Member Functions inherited from EBPF::DeparserPrepareBufferTranslator
 DeparserPrepareBufferTranslator (const EBPFDeparser *deparser)
 
bool preorder (const IR::BlockStatement *s) override
 
bool preorder (const IR::MethodCallExpression *expression) override
 
- Public Member Functions inherited from EBPF::ControlBodyTranslator
 ControlBodyTranslator (const EBPFControl *control)
 
virtual void compileEmit (const IR::Vector< IR::Argument > *args)
 
virtual void compileEmitField (const IR::Expression *expr, cstring field, unsigned alignment, EBPFType *type)
 
bool preorder (const IR::ExitStatement *) override
 
bool preorder (const IR::IfStatement *statement) override
 
bool preorder (const IR::MethodCallExpression *expression) override
 
bool preorder (const IR::PathExpression *expression) override
 
bool preorder (const IR::ReturnStatement *) override
 
bool preorder (const IR::StructExpression *expr) override
 
bool preorder (const IR::SwitchStatement *statement) override
 
virtual void processApply (const P4::ApplyMethod *method)
 
void processCustomExternFunction (const P4::ExternFunction *function, EBPFTypeFactory *typeFactory)
 
virtual void processFunction (const P4::ExternFunction *function)
 
- Public Member Functions inherited from EBPF::CodeGenInspector
 CodeGenInspector (P4::ReferenceMap *refMap, P4::TypeMap *typeMap)
 precedence of current IR::Operation
 
bool comparison (const IR::Operation_Relation *comp)
 
void copyPointerVariables (CodeGenInspector *other)
 
void copySubstitutions (CodeGenInspector *other)
 
void emitAssignStatement (const IR::Type *ltype, const IR::Expression *lexpr, cstring lpath, const IR::Expression *rexpr)
 
bool isPointerVariable (cstring name)
 
bool notSupported (const IR::Expression *expression)
 
bool preorder (const IR::ArrayIndex *a) override
 
bool preorder (const IR::AssignmentStatement *s) override
 
bool preorder (const IR::BlockStatement *s) override
 
bool preorder (const IR::BoolLiteral *b) override
 
bool preorder (const IR::Cast *c) override
 
bool preorder (const IR::Constant *expression) override
 
bool preorder (const IR::Declaration_Variable *decl) override
 
bool preorder (const IR::EmptyStatement *s) override
 
bool preorder (const IR::Equ *e) override
 
bool preorder (const IR::ExitStatement *s) override
 
bool preorder (const IR::Expression *expression) override
 
bool preorder (const IR::IfStatement *s) override
 
bool preorder (const IR::ListExpression *expression) override
 
bool preorder (const IR::Mask *expression) override
 
bool preorder (const IR::Member *e) override
 
bool preorder (const IR::MethodCallExpression *expression) override
 
bool preorder (const IR::MethodCallStatement *s) override
 
bool preorder (const IR::Mux *a) override
 
bool preorder (const IR::Neq *e) override
 
bool preorder (const IR::Operation_Binary *b) override
 
bool preorder (const IR::Operation_Unary *u) override
 
bool preorder (const IR::Path *path) override
 
bool preorder (const IR::PathExpression *expression) override
 
bool preorder (const IR::Range *expression) override
 
bool preorder (const IR::ReturnStatement *s) override
 
bool preorder (const IR::Slice *expression) override
 
bool preorder (const IR::StringLiteral *expression) override
 
bool preorder (const IR::StructExpression *expr) override
 
bool preorder (const IR::Type_Enum *type) override
 
bool preorder (const IR::Type_Typedef *type) override
 
void setBuilder (CodeBuilder *builder)
 
void substitute (const IR::Parameter *p, const IR::Parameter *with)
 
void useAsPointerVariable (cstring name)
 
void widthCheck (const IR::Node *node) const
 

Protected Attributes

const EBPF::EBPFDeparserdeparser
 
- Protected Attributes inherited from EBPF::DeparserPrepareBufferTranslator
const EBPFDeparserdeparser
 
- Protected Attributes inherited from EBPF::ControlBodyTranslator
const EBPFControlcontrol
 
P4::P4CoreLibraryp4lib
 
std::vector< cstringsaveAction
 
std::set< const IR::Parameter * > toDereference
 
- Protected Attributes inherited from EBPF::CodeGenInspector
std::set< cstringasPointerVariables
 
CodeBuilderbuilder
 
int commentDescriptionDepth = 0
 
P4::ReferenceMaprefMap
 
std::map< const IR::Parameter *, const IR::Parameter * > substitution
 
P4::TypeMaptypeMap
 

Additional Inherited Members

- Public Attributes inherited from EBPF::CodeGenInspector
int expressionPrecedence
 

Member Function Documentation

◆ processMethod()

void TC::DeparserHdrEmitTranslatorPNA::processMethod ( const P4::ExternMethod * method)
overridevirtual