aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authormartinboehme <mboehme@google.com>2023-11-27 14:55:49 +0100
committerGitHub <noreply@github.com>2023-11-27 14:55:49 +0100
commit5bd643e1456bd2acc53ac0bf594d285be89a44fe (patch)
treebd625622b52d61582c1cfd2bb44fbdde9025fc89 /flang/lib/Frontend/CompilerInvocation.cpp
parentedf645616f8734b0dbf08e15cc5209e6cf553c12 (diff)
downloadllvm-5bd643e1456bd2acc53ac0bf594d285be89a44fe.zip
llvm-5bd643e1456bd2acc53ac0bf594d285be89a44fe.tar.gz
llvm-5bd643e1456bd2acc53ac0bf594d285be89a44fe.tar.bz2
[clang][dataflow] Strengthen widening of boolean values. (#73484)
Before we widen to top, we now check if both values can be proved either true or false in their respective environments; if so, widening returns a true or false literal. The idea is that we avoid losing information if posssible. This patch includes a test that fails without this change to widening. This change does mean that we call the SAT solver in more places, but this seems acceptable given the additional precision we gain. In tests on an internal codebase, the number of SAT solver timeouts we observe with Crubit's nullability checker does increase by about 25%. They can be brought back to the previous level by doubling the SAT solver work limit.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions