Skip to content

Conversation

@copybara-service
Copy link

Change how new FSM generates next state values.

  • Reduce build times, fixing many timeouts
  • Reduce the size of generated IR by orders of magnitude when there are many states, as with deeply nested loops
  • Improve QoR
  1. Caching of phi conditions in GeneratePhiCondition() reduces the size of the IR considerably.

  2. The caching from Build failure on Ubuntu 20.04 #1 helps to enable the consolidation of entries added to extra_next_state_values, which ultimately feed into a priority select for the next value of the state element. The XLS back-end does much better with this reduced form, with fewer bits in the priority select, fed by ORs over multiple conditions.

- Reduce build times, fixing many timeouts
- Reduce the size of generated IR by orders of magnitude when there are many states, as with deeply nested loops
- Improve QoR

1. Caching of phi conditions in GeneratePhiCondition() reduces the size of the IR considerably.

2. The caching from #1 helps to enable the consolidation of entries added to extra_next_state_values, which ultimately feed into a priority select for the next value of the state element. The XLS back-end does much better with this reduced form, with fewer bits in the priority select, fed by ORs over multiple conditions.

PiperOrigin-RevId: 859139373
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.

0 participants