• Eric Holk's avatar
    [wasm] Make BuildCCall variadic to avoid buffer space and copies · 8c88dd04
    Eric Holk authored
    The typical pattern for using BuildCCall was to create a stack-allocated array
    of arguments, which was passed to BuildCCall. BuildCCall then would allocate
    scratch space using WasmGraphBuilder::Buffer and copy the arguments into the
    scratch space. This copy is unnecessary and also the use of Buffer can lead to
    silently overwriting scratch space that may be used higher up the stack.
    
    Now BuildCCall takes all of the functions parameters as arguments and stores
    this directly in a stack-allocated buffer, avoiding the use of Buffer at all and
    all its associated pitfalls.
    
    Change-Id: Ia0de9a90350d7fcbbb1b05d28e735d790a5f9143
    Reviewed-on: https://chromium-review.googlesource.com/701638Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Commit-Queue: Eric Holk <eholk@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48350}
    8c88dd04
wasm-compiler.cc 179 KB