[all-commits] [llvm/llvm-project] e52364: [NewPM] Remove SpeculateAroundPHIs pass

Roman Lebedev via All-commits all-commits at lists.llvm.org
Tue Jun 15 10:36:32 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e52364532afb2748c324f360bc1cc12605d314f3
      https://github.com/llvm/llvm-project/commit/e52364532afb2748c324f360bc1cc12605d314f3
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-06-15 (Tue, 15 Jun 2021)

  Changed paths:
    M clang/test/CodeGen/thinlto-distributed-newpm.ll
    R llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Scalar/CMakeLists.txt
    R llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/test/Other/new-pm-thinlto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Transforms/LoopUnroll/AArch64/runtime-unroll-generic.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/hoisting-sinking-required-for-vectorization.ll
    M llvm/test/Transforms/PhaseOrdering/loop-rotation-vs-common-code-hoisting.ll
    R llvm/test/Transforms/SpeculateAroundPHIs/basic-x86.ll
    R llvm/test/Transforms/SpeculateAroundPHIs/convergent.ll
    R llvm/test/Transforms/SpeculateAroundPHIs/pr42991.ll
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Scalar/BUILD.gn

  Log Message:
  -----------
  [NewPM] Remove SpeculateAroundPHIs pass

Addition of this pass has been botched.
There is no particular reason why it had to be sold as an inseparable part
of new-pm transition. It was added when old-pm was still the default,
and very *very* few users were actually tracking new-pm,
so it's effects weren't measured.

Which means, some of the turnoil of the new-pm transition
are actually likely regressions due to this pass.

Likewise, there has been a number of post-commit feedback
(post new-pm switch), namely
* https://reviews.llvm.org/D37467#2787157 (regresses HW-loops)
* https://reviews.llvm.org/D37467#2787259 (should not be in middle-end, should run after LSR, not before)
* https://reviews.llvm.org/D95789 (an attempt to fix bad loop backedge metadata)
and in the half year past, the pass authors (google) still haven't found time to respond to any of that.

Hereby it is proposed to backout the pass from the pipeline,
until someone who cares about it can address the issues reported,
and properly start the process of adding a new pass into the pipeline,
with proper performance evaluation.

Furthermore, neither google nor facebook reports any perf changes
from this change, so i'm dropping the pass completely.
It can always be re-reverted should/if anyone want to pick it up again.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D104099




More information about the All-commits mailing list