Over time this compiler is going to evolve its own passes. We want to put the basic infrastructure in place for managing these passes—including dependency tracking and invalidation—to ensure that we do not get stuck with many passes and no management infrastructure.
It should account for the basics, including dependencies between passes, invalidation of pass results, and automatic re-running of passes based on a manually-specified order. It does not, at this stage, need to support configurable pass sets.
Description
Over time this compiler is going to evolve its own passes. We want to put the basic infrastructure in place for managing these passes—including dependency tracking and invalidation—to ensure that we do not get stuck with many passes and no management infrastructure.
It should account for the basics, including dependencies between passes, invalidation of pass results, and automatic re-running of passes based on a manually-specified order. It does not, at this stage, need to support configurable pass sets.