• Clemens Hammacher's avatar
    [compiler] Allow for interfaces without context · e9d728d0
    Clemens Hammacher authored
    Especially in wasm, many builtins don't actually need a context
    parameter. We currently pass Smi::kZero instead. This CL allows to
    generate a CallDescriptor for calling stubs without passing a context,
    resulting in reduced compile time and code size, and increased
    performance when executing these builtins.
    
    We were calling the ThrowWasm* functions without passing a context
    anyway (directly from code-generator-<arch>.h). With this change, we
    will also call the StackCheck builtin without passing a (null) context.
    This saves two bytes of code in each function plus each loop, and also
    slightly reduces compile time (very noisy, but statistically
    significant).
    
    Drive-by: Use NoContextConstant instead of SmiConstant(Smi::kZero).
    
    R=mstarzinger@chromium.org, ahaas@chromium.org
    
    Change-Id: If794cc4c262a9cca8d29a68010803c01a2eef4a3
    Reviewed-on: https://chromium-review.googlesource.com/541423Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46044}
    e9d728d0
builtins-wasm-gen.cc 1006 Bytes