The main change is the switch to function instead of region passes. However, due to the changed interface and the fact that analysis now run on multiple SCoPs before their results are queried, other adjustments were needed. These additional changes include: - Allow passes to handle multiple SCoPs at once, e.g., map the SCoPs to the information formerly stored as members in the pass. - Parametrize functions with the SCoP in question as there is not only one at a time anymore. - Update the tests not to look for the region pass manager output - Add a explicit ScopPass initialization function that is called once per function. This way analysis passes do not need to be queried for each SCoP. - Remap values between SCoPs in a function correctly.
There is a unit test failing because we split the region and that causes dominance problems for other SCoPs. However, I'll wait till we fix the two open dominance bugs (including the region splitting one) before I fix this.