• Mythri A's avatar
    [turboprop] Fix an incorrect DCHECK · a7857d44
    Mythri A authored
    When setting optimized code on feedback vector we had a DCHECK that
    ensured the optimization tier is kNone or it is kMidTier and we are
    installing TurboFan code. While this holds usually, this fails in
    few corner cases like:
    
    1. Trigger a TF concurrent compilation
    2. Create a new closure with --always-opt, which triggers a TF
    concurrent compilation and installs optimized code. We set
    OptimizationTier to kTopTier
    3. Optimized code gets deoptimized / GC clears the optimized code, but
    we haven't healed the optimized code slot / optimization tier yet.
    4. Concurrent compilation finishes and tries to install optimized code
    but the optimization tier is still set to kTopTier.
    
    This cl fixes the DCHECK by actually checking we are not overwriting
    valid optimized code except for tiering up.
    
    Drive by fixes: Also print optimization tier with feedback vector and
    print when marking a function for optimization with --always-opt.
    
    Bug: v8:11101, v8:9684
    Change-Id: Icad673ea01bb225f8b05e727a56f890af7e86514
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2520900
    Commit-Queue: Mythri Alle <mythria@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#71047}
    a7857d44
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
ast Loading commit data...
base Loading commit data...
builtins Loading commit data...
codegen Loading commit data...
common Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
d8 Loading commit data...
date Loading commit data...
debug Loading commit data...
deoptimizer Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
extensions Loading commit data...
flags Loading commit data...
handles Loading commit data...
heap Loading commit data...
ic Loading commit data...
init Loading commit data...
inspector Loading commit data...
interpreter Loading commit data...
json Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
logging Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parsing Loading commit data...
profiler Loading commit data...
protobuf Loading commit data...
regexp Loading commit data...
roots Loading commit data...
runtime Loading commit data...
sanitizer Loading commit data...
snapshot Loading commit data...
strings Loading commit data...
tasks Loading commit data...
third_party Loading commit data...
torque Loading commit data...
tracing Loading commit data...
trap-handler Loading commit data...
utils Loading commit data...
wasm Loading commit data...
zone Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...