• Michael Starzinger's avatar
    [turbofan] Elide redundant {IfSuccess} control projections. · 6fca2cfa
    Michael Starzinger authored
    This changes the IR to no longer require single {IfSuccess} projection
    nodes unless there is a corresponding {IfException} node that links the
    potentially throwing call to an exception handler. This reduces graph
    size as well as compilation time when exception handlers aren't present.
    
    The new invariant for potentially throwing nodes is: Nodes that can
    potentially throw either have both IfSuccess/IfException projections as
    the only control uses and no direct control uses, or no projections at
    all and solely direct control uses.
    
    R=jarin@chromium.org
    
    Change-Id: I3d9cd816d74ad5af13e0673da7ec7a98f1ecdc7e
    Reviewed-on: https://chromium-review.googlesource.com/449715
    Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#43814}
    6fca2cfa
tail-call-optimization.cc 2.93 KB