• Darius M's avatar
    Reland^2 [compiler] Simplify "==0" branches in MachineOperatorReducer · 0719ace6
    Darius M authored
    This is a reland of 6b690a6b.
    
    The previous version of this CL was a bit too aggressive in the
    duplication of branch conditions. This caused an increase in
    register pressure in some cases, thus reducing performance.
    
    In fact, duplicating branch conditions that require an "== 0" to be
    added provides no benefits. We are thus now a bit less aggressive, and
    only duplicate comparisons.
    
    Original change's description:
    > Reland [compiler] Simplify "==0" branches in MachineOperatorReducer
    >
    > This is a reland of 48b443f6.
    >
    > While fixing the initial CL, we stumbled upon a few bugs that
    > we had to fix:
    >
    >  - CommonOperatorReducer and SimplifiedOperatorReducer were applied
    >    before and after SimplifiedLowering, but always assumed that it
    >    was before SimplifiedLowering, and thus had the wrong semantics
    >    for branches in some cases. They now have an added parameter to
    >    know which semantics of branch they should use.
    >
    >  - The lowering of StaticAssert was wrong and could leave kHeapConstant
    >    in the assert (instead of machine Booleans).
    >
    > Original change's description:
    > > [compiler] Simplify "==0" branches in MachineOperatorReducer
    > >
    > > Bug: v8:12484
    > > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
    > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
    > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > > Owners-Override: Tobias Tebbi <tebbi@chromium.org>
    > > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
    > > Cr-Commit-Position: refs/heads/main@{#79379}
    >
    > Bug: v8:12484
    > Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869
    > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#79528}
    
    Bug: v8:12484
    Change-Id: I31f575a59811a83c7c1acb4c14bf5ded63a8f536
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540102Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79560}
    0719ace6
common-operator-reducer-unittest.cc 20.9 KB