xazax.hun added a comment. Interesting. So clients can affect how the environment is being merged. As a result, we potentially cannot run multiple clients in the same fixed-point iteration, each of them will require separate passes.
I think this is OK, just wanted to to be explicit. ================ Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h:67 + /// `Val1` and `Val2` must be distinct. + virtual void merge(QualType Type, const Value &Val1, const Value &Val2, + Value &MergedVal, Environment &Env) {} ---------------- Previously, when the values were distinct, we did not include anything in the merged environment. With the new model, we will end up creating "default" values for every one of them. I wonder if this is wasteful. We could potentially also defer this until we have some real world data and can benchmark this. But I think we could consider changing the return type to bool to specify if the merged value should be included in the resulting environment at all and this could return false by default. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D118038/new/ https://reviews.llvm.org/D118038 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits