=?utf-8?q?Donát?= Nagy <donat.n...@ericsson.com>,
=?utf-8?q?Donát?= Nagy <donat.n...@ericsson.com>,
=?utf-8?q?Donát?= Nagy <donat.n...@ericsson.com>,
=?utf-8?q?Donát?= Nagy <donat.n...@ericsson.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/112...@github.com>


================
@@ -299,13 +299,12 @@ ANALYZER_OPTION(
 
 ANALYZER_OPTION(
     bool, ShouldEagerlyAssume, "eagerly-assume",
-    "Whether we should eagerly assume evaluations of conditionals, thus, "
-    "bifurcating the path. This indicates how the engine should handle "
-    "expressions such as: 'x = (y != 0)'. When this is true then the "
-    "subexpression 'y != 0' will be eagerly assumed to be true or false, thus "
-    "evaluating it to the integers 0 or 1 respectively. The upside is that "
-    "this can increase analysis precision until we have a better way to lazily 
"
-    "evaluate such logic. The downside is that it eagerly bifurcates paths.",
+    "If this is enabled (the default behavior), when the analyzer encounters "
+    "a comparison operator or logical negation, it immediately splits the "
+    "state to separate the case when the expression is true and the case when "
+    "it's false. The upside is that this can increase analysis precision until 
"
+    "we have a better way to lazily evaluate such logic; the downside is that "
+    "it eagerly bifurcates paths.",
----------------
whisperity wrote:

> I think in this case it's more like _"the downside [of eagerly assuming the 
> value of a bool expression] is that it eagerly bifurcates paths"_

I do not think there is a significant difference here, because the help text, 
as it stands now, immediately tries to explain what a "bifurcation" is (which 
one may or may not understand that this is actually the definition of that 
term) by saying _"splits the state to separate […] true and […] false"_.

So we say that turning this option on will cause bifurcation…

> I think in this case the **why** is that _"it eagerly bifurcates paths"_.

…and then go on and say that the bifurcation (which is the only immediate 
effect of turning this option on) is a downside.

That still does not explain to me why this would be a problem, and what 
trade-offs I am making when the benefit is the increased precision. Will it 
cause more CPU use? Will it make the analysis run longer? Or, conversely, will 
it actually make it run shorter? There is this claim about a behavioural change 
with no mentions of the actual observeable difference.

And, remember, these documentation tidbits exist for the user, as it is dumped 
with the `--help` flags and similar. Users will not know the intimacies of the 
analyser's implementation!

https://github.com/llvm/llvm-project/pull/112209
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to