Richard Kenner wrote:
So I am not sure I understand Richard's points above, so let me be clear
about what ASIS is.
It is a set of libraries, and a well defined API, that allows generic
tools to be written that have full access to the semantic information
discovered by the compiler. This API is fully documented and defined
in a compiler-neutral form.
I am not at all clear that we have ANYTHING like that for GCC, so I
am completely puzzled by Richard's last remark.
The discussion here is competely different. The issue isn't the interface,
but the mechanism of how it's called.
A "plugin" here means a module that would be dynamically loaded by GCC, as
opposed to being linked in to the compiler statically. In other words,
once a plugin mechanism exists, it's possible to add passes to GCC without
having to change the compiler at all. The analogy are the plugins to Mozilla.
Sure, that's the *mechanism* but the usage of such a plug-in will be
varied. As is clear from this long thread, people have many ideas of
what might be done with such a plugin
a) separate (propietary?) back end .. could conceivably be done using
ASIS.
b) separate analysis tool (e.g. Mozilla style rules) could most
certainly be done with ASIS.
c) new optimization pass -- out of range for ASIS.