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.

Reply via email to