Quoting Diego Novillo <dnovi...@google.com>:

- Fields properties_required, properties_provided and
properties_destroyed should Mean Something other than asserting
whether they exist.
- Whatever doesn't exist before a pass, needs to be computed.
- Pass scheduling can be done by simply declaring a pass and
presenting it to the pass manager.  The property sets should be enough
for the PM to know where to schedule a pass.

That might be possible for some passes, but if you have a very generic transformation pass that doesn't require or produce any properties,
you really have to tell the pass manager where you want it to go.

Also, for pass reordering driven by machine learning, the idea is that
you create a pass ordering and present it to the pass manager.
So here it seems useful to have query capabilities to check pass orderings. I.e.: - generate a list pass and ask the pass manager if the
        properties are consistent.
      - ask if a single pass addition / removal at a specific place is valid.
        for addition, might optionally allow other passes to be inserted to
        generate / regenerate properties, and have an option to install
        the fixed change.
      - For more sophisticated search algorithms, I suppose it is best if
        the plugin can look at the properties in the passes directly, so the
        necessary definitions should continue to be in the plugin include
        directory.

Reply via email to