• Jakob Gruber's avatar
    Improve usability of GraphAssembler's Unreachable() · e02e5107
    Jakob Gruber authored
    Prior to this CL, one had to artificially insert a
    basic-block-terminating node after Unreachable. The common pattern was
    
     Unreachable();
     Goto(&some_label);  // Never reached but generates useless code.
    
    This CL improves usability by automatically merging Unreachable nodes
    to the end node, and terminating current effect/control. The updated
    pattern is just
    
     Unreachable();
    
    or in cases where Turboprop must maintain a schedule:
    
     Unreachable(&some_label);
    
    Bug: v8:8888
    Change-Id: I26a0b11b5e67252a6dc3584ae09ed06370f1eacc
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362690
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Auto-Submit: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69531}
    e02e5107
graph-assembler.cc 32.2 KB