Skip to content

Add VisibilityAnnotator to dump IR with visibility information.#4293

Draft
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_918654496
Draft

Add VisibilityAnnotator to dump IR with visibility information.#4293
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_918654496

Conversation

@copybara-service
Copy link
Copy Markdown

Add VisibilityAnnotator to dump IR with visibility information.

This change introduces a new class, VisibilityAnnotator, which is an IrAnnotator that can be used to dump the IR with annotations showing the visibility BDD for each node. The VisibilityAnalysis class now provides an annotator() method to create an instance of this annotator. A test case is updated to demonstrate the use of the annotator by recording the annotated IR.

This creates output like:

fn MutuallyExclusivePrioritySelectCases(op: bits[1] id=1 visible[1], x: bits[4] id=2 visible[1], y: bits[4] id=3 visible[1]) -> bits[4] {
  add.4: bits[4] = add(x, y, id=4) visible[x0]
  sub.5: bits[4] = sub(x, y, id=5) visible[!x0]
  ret priority_sel.6: bits[4] = priority_sel(op, cases=[add.4], default=sub.5, id=6) visible[1]
}

This change introduces a new class, `VisibilityAnnotator`, which is an `IrAnnotator` that can be used to dump the IR with annotations showing the visibility BDD for each node. The `VisibilityAnalysis` class now provides an `annotator()` method to create an instance of this annotator. A test case is updated to demonstrate the use of the annotator by recording the annotated IR.

This creates output like:

```
fn MutuallyExclusivePrioritySelectCases(op: bits[1] id=1 visible[1], x: bits[4] id=2 visible[1], y: bits[4] id=3 visible[1]) -> bits[4] {
  add.4: bits[4] = add(x, y, id=4) visible[x0]
  sub.5: bits[4] = sub(x, y, id=5) visible[!x0]
  ret priority_sel.6: bits[4] = priority_sel(op, cases=[add.4], default=sub.5, id=6) visible[1]
}
```

PiperOrigin-RevId: 918654496
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant