[clang] [clang][dataflow] Factor out built-in boolean model into an explicit module. (PR #82950)

via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 26 00:57:43 PST 2024


martinboehme wrote:

> Draft to demo how we can pull out the boolean model. Let's discuss specifics of namings, location, etc.

Not sure -- do you mean let's wordsmith names now, or do you mean we should discuss naming and location, but that should happen after we've talked about the general approach?

> The purpose of this refactoring is to enable us to compare the performance of different boolean models. In particular, we're interested in investigating a very simple semantic domain of just the booleans (and Top).

Can you expand on how we would swap in a different boolean model?

*  Just put `#ifdef`s in the various functions in `bool_model`?

*  Provide different namespaces containing different boolean models, then in `namespace bool_model`, do `using namespace my_desired_bool_model`?

*  Something else?

I would favour a model that's as simple as possible -- I don't think we want to use template parameters, for example -- and what you have here looks like it's intended to be simple. I'm just not sure exactly where this is intended to go?

> In the process, the PR drastically simplifies the handling of terminators. This cleanup can be pulled out into its own PR, to precede the refactoring work.

I like the cleanup, and I think pulling it out into a separate patch is a good idea because a) it's unrelated to the rest of this patch, and b) it can land today, without further discussion needed (IMO).

https://github.com/llvm/llvm-project/pull/82950


More information about the cfe-commits mailing list