![]() |
P4C
The P4 Compiler
|
| Assembly output | Generate assembly output |
| Backend | Overview of backend passes |
| Backtracking in PHV allocation and table placement | Description of PHV allocation and table placement phases of compilation |
| Control Plane API Generation | |
| MAU/PPU resource allocation | Content related to resource allocation inside MAU/PPU |
| ▼Midend | Overview of midend passes |
| BFN::AlpmImplementation | Set of passes that implement ALPM |
| BFN::AnnotateWithInHash | Set of passes that annotate specific assignment statements with the @in_hash annotation |
| ▼BFN::ArchTranslation | Set of passes that normalize variations in the architectures |
| BFN::PortableSwitchTranslation | Set of passes that translate PSA architecture |
| BFN::SimpleSwitchTranslation | Set of passes that translate v1model architecture |
| BFN::T2naArchTranslation | Set of passes that translate T2NA architecture |
| BFN::TnaArchTranslation | Set of passes that translate TNA architecture |
| BFN::CheckDesignPattern | Set of passes that check for design patterns |
| BFN::ElimCasts | Set of passes that simplify the complex expressions with multiple casts into simpler expressions |
| BFN::RemoveActionParameters | Set of passes that specialize the p4c/frontends/RemoveActionParameters class |
| BFN::RemoveSelectBooleans | Set of passes that convert boolean values in select statements to bit<1> values. The node is also transformed to IR:BFN:ReinterpretCasts |
| BFN::RewriteFlexibleStruct | Set of passes that moves flexible annotation from structure to its fields |
| BFN::SimplifyEmitArgs | Set of passes that simplify headers and emits |
| DesugarVarbitExtract | Set of passes that rewrite usage of varbit |
| P4::SimplifyIfStatement | Set of passes that simplify if statements |
| P4::SimplifyNestedIf | Set of passes that simplify nested if statements in the deparser control block |
| Overview of bf-p4c | Overview of passes performed by the bf-p4c binary |
| PHV allocation | Content related to PHV allocation |
| ▼Parser & deparser | Content related to parser and deparser |
| DeparserCopyOpt | Decaf : a deparser optimization of copy assigned fields |
| DesugarVarbitExtract | Set of passes that rewrite usage of varbit |
| ExtractChecksum | Extracts checksum from translated checksum extern |
| ▼LowerParser | Replace field-based parser and deparser IR with container-based parser and deparser IR |
| LowerDeparserIR | Replace deparser IR with lowered version that references containers instead of fields |
| ▼LowerParserIR | Generates a lowered version of the parser IR in this program and swaps it in for the existing representation |
| AllocateParserChecksums | Allocates parser checksums |
| ParserCopyProp | PassManager that governs parser copy propagation |
| P4::SimplifyNestedIf | Set of passes that simplify nested if statements in the deparser control block |
| ParserCopyProp | PassManager that governs parser copy propagation |
| ResetInvalidatedChecksumHeaders | Reset fields that are used in deparser checksum operations and were invalidated |
| ▼Post-midend | Overview of post-midend passes |
| Packing of bridged and fixed-size headers | Overview of passes that adjust packing of bridged headers |
| Stateful ALU Overview | Content related to stateful ALU |
| Table placement | Content related to table placement |