[PATCH] D121694: [clang][dataflow] Allow disabling built-in transfer functions for CFG terminators

Gábor Horváth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 15 08:23:23 PDT 2022


xazax.hun added a comment.

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.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D121694



More information about the cfe-commits mailing list