• Tobias Tebbi's avatar
    [turbofan] eagerly prune None types and deadness from the graph · e1cdda25
    Tobias Tebbi authored
    In addition to using the {Dead} node to prune dead control nodes and nodes that 
    depend on them, we introduce a {DeadValue} node representing an impossible value 
    that can occur at any position in the graph. The extended {DeadCodeElimination}
    prunes {DeadValue} and its uses, inserting a crashing {Unreachable} node into
    the effect chain when possible. The remaining uses of {DeadValue} are handled
    in {EffectControlLinearizer}, where we always have access to the effect chain.
    In addition to explicitly introduced {DeadValue} nodes, we consider any value use
    of a node with type {None} as dead.
    
    Bug: chromium:741225
    Change-Id: Icc4b636d1d018c452ba1a2fa7cd3e00e522f1655
    Reviewed-on: https://chromium-review.googlesource.com/641250
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48208}
    e1cdda25
dead-code-elimination.h 2.21 KB