Reverse order of unchanged variables handling in updates conversion of data-based synthesis
For every linearized edge, all variables that are not assigned by the edge, require 'x+ := x' updates to ensure that those variables don't change value arbitrarily. Currently, we add such updates in the same order as the variable order. I propose to reverse this, adding them in the reverse variable order. This should improve performance:
- By adding updates in the reverse variable order, first the variables lowest in the BDD tree are added, and all subsequent ones are added 'on top' of this. This means the existing BDDs can be reused.
- If the updates are added in the non-reversed variable order, as they are added now, then adding more updates 'below' the existing ones will generally require recreating the BDD part on top of it, as to not change existing BDDs.
Hence, using the reverse order should prevent needless recreating of BDDs, and thus save memory and time effort.