• Ross McIlroy's avatar
    [Compiler] Introduce IsCompiledScope which prevents flushing of compiled code · 10ea3f8a
    Ross McIlroy authored
    Introduces a IsCompiledScope object which can be used to check whether a
    function is compiled, and ensure it remains compiled for the lifetime
    of the scope without being uncompiled by bytecode flushing. The Compile
    functions are modified to take a scope so that calling code can ensure
    the function remains compiled for the lifetime they require.
    
    Also, don't allocate a feedback vector for asm-wasm code as this
    is never used, and will be reallocated if the asm-wasm code fails to
    instantiate the module and we fallback to regular JavaScript.
    
    Also restructure Compiler::PostInstantiation() to allocate the feedback
    vector once, and do the optimized code check before optimizing for
    always opt.
    
    BUG=v8:8395
    
    Change-Id: I3f1a71143fcae3d1a0c01eefe91ebb4b8594221a
    Reviewed-on: https://chromium-review.googlesource.com/c/1352295Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#57971}
    10ea3f8a
compiler.cc 82.6 KB