• Benedikt Meurer's avatar
    [turbofan] Lower FastNew*Elements operators to inline allocations. · d9057b55
    Benedikt Meurer authored
    Further optimize the
    
      new Array(n)
    
    expressions by also inlining the backing store allocation into TurboFan
    optimized code. Currently these backing store allocations cannot be
    eliminated by escape analysis and can also not be optimized further by
    the memory optimizer (i.e. no allocation folding and not write barrier
    elimination) yet, but this can be done in follow-up CLs.
    
    This yields another ~5% improvement on the ARES6 ML benchmark (steady
    state).
    
    Drive-by-fix: Add support for loops to the GraphAssembler. This was
    necessary to implement the initialization loops in for the backing
    store allocations in the EffectControlLinearizer.
    
    Bug: v8:6399, v8:6901
    Change-Id: I759d6802db01eb797e78c7d82d82caaee3463e16
    Reviewed-on: https://chromium-review.googlesource.com/705934Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48352}
    d9057b55
builtins-internal-gen.cc 21.5 KB