ymandel added a comment.

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

> In D121694#3382587 <https://reviews.llvm.org/D121694#3382587>, @ymandel wrote:
>
>> In D121694#3382473 <https://reviews.llvm.org/D121694#3382473>, @xazax.hun 
>> wrote:
>>
>>> The change itself looks good. But out of curiosity, could you give me an 
>>> example when we do not want to use the builtin transfer functions?
>>
>> Sure! Pretty much any plain-vanilla dataflow analysis that sticks to its own 
>> lattice and doesn't care about the environment. The demo 
>> constant-propagation analyses are like this, but we have additional real 
>> analyses using the framework in this way. Examples include an analysis to 
>> detect raw pointers that could be unique pointers and one that detects 
>> missed opportunies to use `std::move`.
>
> Makes sense! Although, I wonder if we would want an alternative API where the 
> transfer function would not even get Env as an argument. So users could pick 
> the right class to derive from for their needs and the decision whether use 
> the built-in transfer functions would be compile time.

That would make sense. We definitely don't want to stick w/ the current setup. 
But, we've been thinking that we can split out `Env` and its transfer functions 
as a standalone "model" that users can choose to compose with their own (more 
specialized) model. I'm planning to send a patch shortly with an initial API 
for "models" (basically, a virtual API corresponding to `DataflowAnalysis` as 
of now).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121694

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

Reply via email to