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

Public Member Functions

 RemoveComplexExpressions (P4::ReferenceMap *refMap, P4::TypeMap *typeMap, RemoveComplexExpressionsPolicy *policy=nullptr)
 
 RemoveComplexExpressions (P4::ReferenceMap *refMap, P4::TypeMap *typeMap, RemoveComplexExpressionsPolicy *policy=nullptr)
 
const IR::PathExpression * createTemporary (const IR::Expression *expression)
 
const IR::Node * postorder (IR::MethodCallExpression *expression) override
 
const IR::Node * postorder (IR::MethodCallExpression *expression) override
 
const IR::Node * postorder (IR::MethodCallStatement *statement) override
 
const IR::Node * postorder (IR::MethodCallStatement *statement) override
 
const IR::Node * postorder (IR::P4Control *control) override
 
const IR::Node * postorder (IR::P4Control *control) override
 
const IR::Node * postorder (IR::P4Parser *parser) override
 
const IR::Node * postorder (IR::P4Parser *parser) override
 
const IR::Node * postorder (IR::ParserState *state) override
 
const IR::Node * postorder (IR::ParserState *state) override
 
const IR::Node * postorder (IR::SelectExpression *expression) override
 
const IR::Node * postorder (IR::SelectExpression *expression) override
 
const IR::Node * postorder (IR::Statement *statement) override
 
const IR::Node * postorder (IR::Statement *statement) override
 
const IR::Node * preorder (IR::P4Control *control) override
 
const IR::Node * preorder (IR::P4Control *control) override
 
const IR::Node * preorder (IR::P4Parser *parser) override
 
const IR::Node * preorder (IR::P4Parser *parser) override
 
const IR::Node * preorder (IR::ParserState *state) override
 
const IR::Node * preorder (IR::ParserState *state) override
 
const IR::Node * simpleStatement (IR::Statement *statement)
 
const IR::Expression * simplifyExpression (const IR::Expression *expression, bool force)
 
const IR::IndexedVector< IR::NamedExpression > * simplifyExpressions (const IR::IndexedVector< IR::NamedExpression > *vec)
 
const IR::Vector< IR::Argument > * simplifyExpressions (const IR::Vector< IR::Argument > *vec)
 
const IR::Vector< IR::Expression > * simplifyExpressions (const IR::Vector< IR::Expression > *vec, bool force=false)
 

Public Attributes

IR::IndexedVector< IR::StatOrDecl > assignments
 
IR::IndexedVector< IR::Declaration > newDecls
 
RemoveComplexExpressionsPolicypolicy
 
P4::ReferenceMaprefMap
 
P4::TypeMaptypeMap
 

Detailed Description

Lift complex expressions from a select or as arguments to external functions into temporaries. Convert a statement like lookahead<T>() into tmp = lookahead<T>();