• Victor Gomes's avatar
    [maglev] Remove unnecessary CheckedSmiTag and CheckedSmiUntag · e96b8564
    Victor Gomes authored
    We track untagged values through the InterpreterFrameState, that allows
    us to re-use already emitted CheckedSmiUntag and elide CheckedSmiTag
    whenever the next node wants the untagged value as input.
    
    It uses LoadRegisterTaggedValue, LoadRegisterSmiUntaggedValue and
    accumulator variants as helper in the graph builder.
    
    Spilled values can now be untagged, since we currently do not
    support stack slot re-use, we use a ZoneVector to keep track of
    the stack slot representation.
    
    We tag (lazily) any value that will be passed as input to a Phi node.
    
    Bug: v8:7700
    
    Change-Id: I34cb69c8f1fbeb6a8158a251a4dd2e114e894ea0
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574559Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Commit-Queue: Victor Gomes <victorgomes@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79939}
    e96b8564
maglev-code-generator.cc 23.1 KB