This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Cleaning up the pass manager


Quoting Diego Novillo <dnovillo@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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]