• 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
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
backend Loading commit data...
ia32 Loading commit data...
loong64 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
regalloc Loading commit data...
riscv64 Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
branch-elimination-unittest.cc Loading commit data...
bytecode-analysis-unittest.cc Loading commit data...
checkpoint-elimination-unittest.cc Loading commit data...
common-operator-reducer-unittest.cc Loading commit data...
common-operator-unittest.cc Loading commit data...
compiler-test-utils.h Loading commit data...
constant-folding-reducer-unittest.cc Loading commit data...
control-equivalence-unittest.cc Loading commit data...
control-flow-optimizer-unittest.cc Loading commit data...
csa-load-elimination-unittest.cc Loading commit data...
dead-code-elimination-unittest.cc Loading commit data...
decompression-optimizer-unittest.cc Loading commit data...
diamond-unittest.cc Loading commit data...
effect-control-linearizer-unittest.cc Loading commit data...
frame-unittest.cc Loading commit data...
graph-reducer-unittest.cc Loading commit data...
graph-reducer-unittest.h Loading commit data...
graph-trimmer-unittest.cc Loading commit data...
graph-unittest.cc Loading commit data...
graph-unittest.h Loading commit data...
int64-lowering-unittest.cc Loading commit data...
js-call-reducer-unittest.cc Loading commit data...
js-create-lowering-unittest.cc Loading commit data...
js-intrinsic-lowering-unittest.cc Loading commit data...
js-native-context-specialization-unittest.cc Loading commit data...
js-operator-unittest.cc Loading commit data...
js-typed-lowering-unittest.cc Loading commit data...
linkage-tail-call-unittest.cc Loading commit data...
load-elimination-unittest.cc Loading commit data...
loop-peeling-unittest.cc Loading commit data...
machine-operator-reducer-unittest.cc Loading commit data...
machine-operator-unittest.cc Loading commit data...
node-cache-unittest.cc Loading commit data...
node-matchers-unittest.cc Loading commit data...
node-properties-unittest.cc Loading commit data...
node-test-utils.cc Loading commit data...
node-test-utils.h Loading commit data...
node-unittest.cc Loading commit data...
opcodes-unittest.cc Loading commit data...
persistent-unittest.cc Loading commit data...
redundancy-elimination-unittest.cc Loading commit data...
schedule-unittest.cc Loading commit data...
scheduler-rpo-unittest.cc Loading commit data...
scheduler-unittest.cc Loading commit data...
simplified-lowering-unittest.cc Loading commit data...
simplified-operator-reducer-unittest.cc Loading commit data...
simplified-operator-unittest.cc Loading commit data...
state-values-utils-unittest.cc Loading commit data...
typed-optimization-unittest.cc Loading commit data...
typer-unittest.cc Loading commit data...
value-numbering-reducer-unittest.cc Loading commit data...
zone-stats-unittest.cc Loading commit data...