Removes unused declarations. More...

Public Member Functions | |
| cstring | ifSystemFile (const IR::Node *node) |
| Visitor::profile_t | init_apply (const IR::Node *root) override |
| const IR::Node * | preorder (IR::Declaration *decl) override |
| const IR::Node * | preorder (IR::Declaration_Instance *decl) override |
| const IR::Node * | preorder (IR::Declaration_MatchKind *decl) override |
| const IR::Node * | preorder (IR::Declaration_Variable *decl) override |
| const IR::Node * | preorder (IR::Method *decl) override |
| const IR::Node * | preorder (IR::NamedExpression *ne) override |
| const IR::Node * | preorder (IR::P4Control *cont) override |
| const IR::Node * | preorder (IR::P4Parser *cont) override |
| const IR::Node * | preorder (IR::P4Table *cont) override |
| const IR::Node * | preorder (IR::Parameter *param) override |
| const IR::Node * | preorder (IR::ParserState *state) override |
| const IR::Node * | preorder (IR::Type_Declaration *decl) override |
| const IR::Node * | preorder (IR::Type_Enum *type) override |
| const IR::Node * | preorder (IR::Type_Error *type) override |
| const IR::Node * | preorder (IR::Type_Extern *type) override |
| const IR::Node * | preorder (IR::Type_Method *type) override |
| const IR::Node * | preorder (IR::Type_SerEnum *type) override |
| const IR::Node * | preorder (IR::Type_StructLike *type) override |
| const IR::Node * | preorder (IR::Type_Var *p) override |
Protected Member Functions | |
| RemoveUnusedDeclarations (const ReferenceMap *refMap, bool warn) | |
Friends | |
| class | RemoveUnusedPolicy |
Removes unused declarations.
The following kinds of nodes are not removed even if they are unreferenced:
Additionally, IR::Declaration_Instance nodes for extern instances are not removed but still trigger warnings.
If @warned is non-null, unused IR::P4Table and IR::Declaration_Instance nodes are stored in @warned if they are unused and removed by this pass. A compilation warning is emitted when a new node is added to @warned, preventing duplicate warnings per node.