Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix rfactor adding too many pure loops #8086

Merged
merged 1 commit into from
Feb 12, 2024
Merged

Fix rfactor adding too many pure loops #8086

merged 1 commit into from
Feb 12, 2024

Commits on Feb 9, 2024

  1. Fix rfactor adding too many pure loops

    When you rfactor an update definition, the new update definition must
    use all the pure vars of the Func, even though the one you're rfactoring
    may not have used them all.
    
    We also want to preserve any scheduling already done to the pure vars,
    so we want to preserve the dims list and splits list from the original
    definition.
    
    The code accounted for this by checking the dims list for any missing
    pure vars and adding them at the end (just before Var::outermost()), but
    this didn't account for the fact that they may no longer exist in the
    dims list due to splits that didn't reuse the outer name. In these
    circumstances we could end up with too many pure loops. E.g. if x has
    been split into xo and xi, then the code was adding a loop for x even
    though there were already loops for xo and xi, which of course produces
    garbage output.
    
    This PR instead just checks which pure vars are actually used in the
    update definition up front, and then uses that to tell which ones should
    be added.
    
    Fixes #7890
    abadams committed Feb 9, 2024
    Configuration menu
    Copy the full SHA
    10687b5 View commit details
    Browse the repository at this point in the history