aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Interpreter/Interpreter.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2021-10-21 09:15:08 -0700
committerPhilip Reames <listmail@philipreames.com>2021-10-21 09:16:21 -0700
commitbaea663a6e9bc52f80995d02bb8149934c825612 (patch)
treeee0179ca604c9a86b24244e7cd800e6b9d36e15c /clang/lib/Interpreter/Interpreter.cpp
parentacfe7d895d2f0897fe8f79151a491e75a7a99a25 (diff)
downloadllvm-baea663a6e9bc52f80995d02bb8149934c825612.zip
llvm-baea663a6e9bc52f80995d02bb8149934c825612.tar.gz
llvm-baea663a6e9bc52f80995d02bb8149934c825612.tar.bz2
[IPT] Restructure cache to allow lazy update following invalidation [NFC]
This change restructures the cache used in IPT to point not to the first special instruction, but to the first instruction which *could* be special. That is, the cached reference is always equal to the first special, or comes before it in the block. This avoids expensive block scans when we are removing special instructions from the beginning of the block. At the moment, this case is not heavily used, though it does trigger in GVN when doing CSE of calls. The main motivation was a change I'm no longer planning to move forward with, but the cache optimization seemed worthwhile as a minor perf win at low cost. Differential Revision: https://reviews.llvm.org/D111768
Diffstat (limited to 'clang/lib/Interpreter/Interpreter.cpp')
0 files changed, 0 insertions, 0 deletions