li.zhe.hua added a comment.

In D131645#3716464 <https://reviews.llvm.org/D131645#3716464>, @xazax.hun wrote:

> probably you are already aware of most of this

Actually, more likely than not I don't! I don't have a strong background in PL 
(or, really any background), so I'm really just learning as I go, mostly from 
talking to @ymandel and reading through Introduction to Static Analysis 
<https://mitpress.mit.edu/9780262043410/> (I'm still struggling through Chapter 
3!).

> - Some frameworks have the option to delay widening. I.e., only invoke the 
> widening operator when the analysis of a loop did not converge after a 
> certain number of iterations.

There's a `FIXME` in D131646 <https://reviews.llvm.org/D131646> that talks 
about unrolling, which sounds like this.

> - Some frameworks implement narrowing. In the narrowing phase, we would do a 
> couple more iterations but using the regular join instead of the widening 
> operator. Sometimes doing multiple narrow/widen phases can be beneficial.

Good to know. I'll keep this in mind and try to dig up some more about this.

> - Writing a widening operator can be tricky. It would be nice to add some 
> guidance to the documentation. E.g., listing some of the algebraic properties 
> that we expect a widening operator to have can be a lot of help for 
> newcommers (like `bottom.widen(lat) == lat`).

Agreed. FWIW, I'm still struggling to grok this in the abstract, and don't have 
a concrete example readily available that makes sense to me.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131645/new/

https://reviews.llvm.org/D131645

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to