• Tobias Tebbi's avatar
    [torque] use LocationReference for local bindings · 1a639cf0
    Tobias Tebbi authored
    This is a first step towards allowing expressions for array sizes.
    
    So far, local variable bindings used a VisitResult and a const flag.
    This doesn't allow for local bindings to alias other things, like
    heap references. While this is not generally a feature we need,
    it will be helpful to create bindings when evaluating array sizes,
    since we want to grant access to the preceding already initialized
    object fields, but not to the whole object, which is not completely
    initialized yet.
    
    LocationReference already captures the notion of any readable and
    assignable location, so it is a good fit to be used for local bindings.
    The const attribute is no longer needed, since LocationReference already
    has a notion of constness for stack ranges (that is,
    LocationReference::Temporary vs LocationReference::VariableAccess).
    
    Bug: v8:10004 v8:7793
    Change-Id: Ibe0a43e898e5c2c10d6739e2496d92dda542e6cc
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1928852Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#65117}
    1a639cf0
implementation-visitor.h 24.1 KB