• Junliang Yan's avatar
    PPC/s390: [SFI] Add support for flushing old Bytecode from SharedFunctionInfos. · 3136b4f5
    Junliang Yan authored
    Port a55803a1
    
    Original Commit Message:
    
        This change makes the SFI to bytecode link pseudo-weak. The marking visitors
        check whether the bytecode is old, and if so, don't mark it and instead
        push the SFI onto a bytecode_flushing_candidates worklist. Once marking
        is complete, this list is walked, and for any of the candidates who's bytecode
        has not been marked (i.e., is only referenced by the shared function info),
        the bytecode is flushed and the SFI has the function data replaced with
        an UncompiledData (which overwrites the flushed bytecode array).
    
        Since we don't track JSFunctions, these can still think the underlying
        function is compiled, and so calling them will invoke
        InterpreterEntryTrampoline. As such, logic is added to
        InterpreterEntryTrampoline to detect flushed functions, and enter
        CompileLazy instead.
    
    R=rmcilroy@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
    BUG=v8:8395
    LOG=N
    
    Change-Id: I4a913d318363a584d79aa6d7f4ee09f04a89bbbe
    Reviewed-on: https://chromium-review.googlesource.com/c/1393824Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
    Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
    Cr-Commit-Position: refs/heads/master@{#58508}
    3136b4f5
builtins-ppc.cc 119 KB