LexSchedule and Map Creation
requested to merge jdsteve2/loopy:lexschedule-and-map-creation into new-dependency-and-nest-constraint-semantics-development
Creation of LexSchedule (and corresponding islpy maps) for a pair of statements. A schedule is a mapping from statement instances to points in a lexicographic ordering. This can be done for any pair of statements, but the intended use involves pairs of statements connected by a dependency.
Other notes about this MR:
- This is a subset of the work done in WIP: Adding linearization checker, and also contains some improvements I made while extracting this functionality from the rest of the larger MR:
- improved encapsulation approach for LexSchedule and map creation (i.e., more modular, less one-huge-long-function) and added new docstrings,
- improved algorithm for LexSchedule creation so that integer lex dims are not incremented unnecessarily when a block of code didn't contain any statements,
- fixed minor bugs in LexSchedule/item str methods,
- added independent test for schedule+map creation
Edited by James Stevens