Skip to content
  • Chandler Carruth's avatar
    [PM] Split the analysis manager into a function-specific interface and · ed1ffe01
    Chandler Carruth authored
    a module-specific interface. This is the first of many steps necessary
    to generalize the infrastructure such that we can support both
    a Module-to-Function and Module-to-SCC-to-Function pass manager
    nestings.
    
    After a *lot* of attempts that never worked and didn't even make it to
    a committable state, it became clear that I had gotten the layering
    design of analyses flat out wrong. Four days later, I think I have most
    of the plan for how to correct this, and I'm starting to reshape the
    code into it. This is just a baby step I'm afraid, but starts separating
    the fundamentally distinct concepts of function analysis passes and
    module analysis passes so that in subsequent steps we can effectively
    layer them, and have a consistent design for the eventual SCC layer.
    
    As part of this, I've started some interface changes to make passes more
    regular. The module pass accepts the module in the run method, and some
    of the constructor parameters are gone. I'm still working out exactly
    where constructor parameters vs. method parameters will be used, so
    I expect this to fluctuate a bit.
    
    This actually makes the invalidation less "correct" at this phase,
    because now function passes don't invalidate module analysis passes, but
    that was actually somewhat of a misfeature. It will return in a better
    factored form which can scale to other units of IR. The documentation
    has gotten less verbose and helpful.
    
    llvm-svn: 195189
    ed1ffe01
Loading