• Jakob Gruber's avatar
    [compiler] Concurrent JSObjectRef::GetOwnConstantElement · 21a23587
    Jakob Gruber authored
    This CL implements the above in a concurrent setting without relying
    on serialization (except existing serialization to read a consistent
    JSObject state, which should be addressed in future work).
    
    There are three main cases in which GetOwnConstantElement can succeed:
    
    - Frozen elements are always constant. The backing store is immutable
    after initialization and can be accessed through relaxed reads.
    - String wrapper elements are always constant. The JSPrimitiveWrapper
    is immutable after initialization, and internalized Strings are
    protected by a mutex (other string kinds are currently not handled).
    - Dictionary elements may be constant. Since this case is not
    particularly important for the optimization, we leave it unimplemented
    for now.
    
    Bug: v8:7790
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_no_cm_rel_ng
    Change-Id: If2fbced50218ebd3930da8157cd2ae5eb83a8e02
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2717308Reviewed-by: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#73442}
    21a23587
lookup.cc 54.4 KB