3 ms·
Cool, thanks for the details. So... what do you do about cycles? By "change" I didn't mean code change, I meant change in the information about the procedure
by cactusface 11y ago
Cool, thanks for the details. So... what do you do about cycles?
By "change" I didn't mean code change, I meant change in the information about the procedure collected during an iteration of the fixed point computation. But from the sounds of things you aren't computing a fixed point.
For example: A calls B and B calls A. You have information A0 and B0 about A and B. Analyze B, you have information B1 about B. Then you go and analyze A using B1. This gives you A1. Now you have to redo B, and compute B2. Use this to compute A2. This carries on until the information is not changing, i.e. An = An + 1 and Bn = Bn + 1.
- theblatte 11y agoInfer computes fixpoints whenever there is a cycle in the call graph, until it reaches stable procedure summaries or timeouts.
- cactusface 11y agoOk, thanks for indulging my curiosity guys!