This repository has been archived by the owner on Aug 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 177
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prevent extra re-lowerings via "actual targets"
Add a member to DependencyManager that returns the "actual targets" of what this DependencyManager solves. This exposes an API to query not just the targets, but the actual state that results from running the transform. The actual targets are a superset of the targets that can prevent unnecessary re-lowering. Consider the situation of a dependency manager that has one transform target, foo, and no current state. The flattened transform order that results pulls in hundreds of other transforms that foo requires. However, from the perspective of a user looking at the dependency manager, it's "effect" is only running foo. This matters when using a DependencyManager to solve a sub-problem. If the sub-problem is too narrow, e.g., one transform foo, then the hundreds of other transforms that may be run will be repeatedly run over and over again because there's no API to query the effect of solving a (targets, currentState) tuple. This commit includes a small test that shows this issue. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
- Loading branch information
Showing
2 changed files
with
67 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters