Draft
Conversation
d326c25 to
f560d7d
Compare
cf0964d to
53bb6a2
Compare
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
Signed-off-by: fruffy <fruffy@nyu.edu>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Not ready yet for review. Currently intended to check CI.
This PR adds a utility to export P4HIR generated by the translate pass back to P4. The purpose is threefold. First, check that the current P4HIR representation is semantically equivalent to the original P4 source program and retains all the information needed for a valid P4 program. Second, provide a utility similar to ToP4, which can export P4 code for manual inspection and as reference. Third, once more front ends are available, serve as a transpiler back end to convert a particular source language (C/Python...) to P4.
The current approach to the exporter is as follows.
For each block that corresponds to a P4 block we hoist all variable declarations. All other Ops are handled in order.
We currently use two checks to ensure that this pass works. First, we use references files for each test P4 program and we compare against these references. That also makes reviewing changes easier. Second, we feed the generated program to p4test to make sure it compiles. This ensures that we always generate a valid P4 program with this exporter.
Tasks left.