diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-24 20:31:13 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-17 18:44:38 +0200 |
commit | f715eda60403194bf844a169587726744d0e9cd7 (patch) | |
tree | d5952c9dc957c0c296aa2bb5cdaf9f307bb5a160 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 24cae17c283e1b4f4672b987d5b978b8fb997f75 (diff) | |
download | llvm-f715eda60403194bf844a169587726744d0e9cd7.zip llvm-f715eda60403194bf844a169587726744d0e9cd7.tar.gz llvm-f715eda60403194bf844a169587726744d0e9cd7.tar.bz2 |
[LVI] Cleanup/unify cache access
This patch combines the "has" and "get" parts of the cache access.
getCachedValueInfo() now both sets the BBLV return argument, and
returns whether the value was found.
Additionally, the management of the work stack is now integrated
into getBlockValue(). If the value is not cached yet, we try to
push to the stack (and return false, indicating that we need to
solve first), or return overdefined in case of a cycle.
These changes a) avoid a duplicate cache lookup for has & get and
b) ensure that the logic is uniform everywhere. For this reason
this change is also not quite NFC, because previously overdefined
values from the cache, and overdefined values from a cycle received
different treatment when it came to assumption intersection.
Differential Revision: https://reviews.llvm.org/D76788
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions