• Tobias Tebbi's avatar
    Revert "Reland^4 "[turbofan] eagerly prune None types and deadness from the graph"" · 2bf01995
    Tobias Tebbi authored
    This revert is manual, but almost completely automatic. 
    It was just blocked by a single-line irrelevant refactoring change.
    This reverts commit 1cee0e01.
    
    Reason for revert: chromium:776256
    
    Original change's description:
    > Reland^4 "[turbofan] eagerly prune None types and deadness from the graph"
    >
    > This fixes https://bugs.chromium.org/p/chromium/issues/detail?id=773954.
    > The issue was that in the EffectControlLinearizer, the effect input of an
    > {Unreachable} node was not updated, leaving a {Checkpoint} behind.
    >
    > This is a reland of 4cf47645
    > Original change's description:
    > > Reland^3 "[turbofan] eagerly prune None types and deadness from the graph"
    > >
    > > This fixes the issues
    > > https://bugs.chromium.org/p/chromium/issues/detail?id=772873
    > > and https://bugs.chromium.org/p/chromium/issues/detail?id=772872.
    > >
    > > One problem was that mutating an effect node into Unreachable confused
    > > the LoadElimination sidetables, so I just always create a new node now.
    > >
    > > The other problem was that UpdateBlockControl() was executed after
    > > UpdateEffectPhi() in the lazy case. This reverted the update to the Merge input.
    > > So now I make sure that UpdateEffectPhi() is always executed last.
    > >
    > > This is a reland of 6ddb5e7d
    > > Original change's description:
    > > > Reland^2 "[turbofan] eagerly prune None types and deadness from the graph"
    > > >
    > > > Now, the EffectControlLinearizer connects all occurrences of Unreachable to the
    > > > graph end. This fixes issues with later phases running DeadCodeElimination and
    > > > introducing new DeadValue nodes when processing uses of Unreachable.
    > > >
    > > > This is a reland of 3c4bc27f
    > > > Original change's description:
    > > > > Reland "[turbofan] eagerly prune None types and deadness from the graph"
    > > > >
    > > > > This is a reland of e1cdda25
    > > > > Original change's description:
    > > > > > [turbofan] eagerly prune None types and deadness from the graph
    > > > > >
    > > > > > 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: Jaroslav Sevcik <jarin@chromium.org>
    > > > > > Cr-Commit-Position: refs/heads/master@{#48208}
    > > > >
    > > > > Bug: chromium:741225
    > > > > Change-Id: I21316913dae02864f7a6d7c9269405a79f054138
    > > > > Reviewed-on: https://chromium-review.googlesource.com/692034
    > > > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
    > > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    > > > > Cr-Commit-Position: refs/heads/master@{#48232}
    > > >
    > > > Bug: chromium:741225
    > > > Change-Id: I5702ec34856c075717162153adc765774453c45f
    > > > Reviewed-on: https://chromium-review.googlesource.com/702264
    > > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
    > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    > > > Cr-Commit-Position: refs/heads/master@{#48366}
    > >
    > > Bug: chromium:741225
    > > Change-Id: I4054a694d2521c2e1f0c4a3ad0f3cf100b5c536f
    > > Reviewed-on: https://chromium-review.googlesource.com/709214
    > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
    > > Cr-Commit-Position: refs/heads/master@{#48469}
    >
    > Bug: chromium:741225
    > Change-Id: Id9d4f3a3ae36cb3e38f80edcdba88efa7922ca24
    > Reviewed-on: https://chromium-review.googlesource.com/715716
    > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
    > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
    > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#48660}
    
    TBR=jarin@chromium.org,tebbi@chromium.org,bmeurer@chromium.org
    
    
    Bug: chromium:741225 chromium:776256
    Change-Id: Iaf2af3cb6dea5fdece43297cb9d987e7decc726d
    Reviewed-on: https://chromium-review.googlesource.com/727804
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48749}
    2bf01995
instruction-selector.h 18.9 KB