aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorManuelJBrito <59119670+ManuelJBrito@users.noreply.github.com>2024-07-12 11:17:45 +0100
committerGitHub <noreply@github.com>2024-07-12 11:17:45 +0100
commit5b0dba13a5632d944d1eac8b39f44f65ec524e86 (patch)
treea745365165d0344796b4a6d3161040a7854e1bdb /clang/lib/CodeGen/CodeGenModule.cpp
parent70f57d25743ca7230bcad3cae7e3072f0aded6f7 (diff)
downloadllvm-5b0dba13a5632d944d1eac8b39f44f65ec524e86.zip
llvm-5b0dba13a5632d944d1eac8b39f44f65ec524e86.tar.gz
llvm-5b0dba13a5632d944d1eac8b39f44f65ec524e86.tar.bz2
[NewGVN] Fix caching for OpIsSafeForPhiOfOps (#98340)
The caching mechanism for 'OpIsSafeForPhiOfOps' is unsound. An operand is deemed unsafe for PhiOfOps if it depends on a phi that resides in the same block as the Phi block, i.e., where we are performing the PhiOfOps. This is to avoid having to materialize the translated subexpressions. To avoid redundant code walking, a cache is used to store these results. Note, however, that since the safety is specific to the Phi block, we cannot, in general, use the cached results for other blocks. This patch addresses this by having a cache per block instead of a single one for the entire function. closes #63335
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions