OpenQL
OpenQL copied to clipboard
Upgrade mapper/router to new IR
A long journey through the mapper
- New IR in place of old IR
- New DDG is used in place of old scheduler
- Various code improvements (e.g. return result instead of modify reference parameter)
- Remove RC scheduling functionality
- FreeCycle stores its map as an association list mapping new IR references to uints
- Had to implement "remaining" path length in new DDG. Seems there is already some sort of implementation of criticality but those require scheduling to run first
- Random number generation is seeded with constant seed
Note: the code is still quite untested. I've done my best to check that the program works as expected, but given the number of options and complexity of the code, only proper unit testing for each part and class (e.g. AlterTest, PastTest) can give a good guarantee of functionality. This would take quite some time to implement.
I think we need to reduce the number of options and improve their description. A lot of options only apply to MinExtend with recursion, and this was not signaled in the docs, which was confusing for e.g. Medina.