Hi,
Does the analysis framework available in GCC 10 is an instance of an
IFDS or an IDE framework? The Analyzer Internals [0] refers to the IFDS
paper [1], but I am not sure if this is only to provide a reference to
the definition of exploded supergraph.
Also, if I want to implement my own IPA-LTO typestate analysis [2], what
classes would I need to implement in order to take advantage of this
framework? I see that I need to implement a
* `state_machine` class (if it is IFDS, are nodes in the state machine
part of the domain of the transfer functions? I imagine something like
(variable, state) being the domain of the transfer functions.)
* `on_stmt` function. Are these the transfer functions? (I can see that
you are calling on_transition with variable, current state, next state
or similarly).
* where's the meet operator? I see functions on_transition and on_edge,
but it is not clear where the meet operator is defined.
[0]
https://gcc.gnu.org/onlinedocs/gccint/Analyzer-Internals.html#Analyzer-Internals
[1] https://dl.acm.org/doi/10.1145/199448.199462
[2] Yes, I read the documentation and see that there are still bugs
regarding the analysis framework working during LTO and it is C only.