[all-commits] [llvm/llvm-project] 3e6c38: [SimplifyCFG] Rerun PHI deduplication after common...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Thu Jul 15 06:35:37 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3e6c383dc63685a6248fd6f1ffabad0b42af99a0
      https://github.com/llvm/llvm-project/commit/3e6c383dc63685a6248fd6f1ffabad0b42af99a0
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-07-15 (Thu, 15 Jul 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/PGOProfile/cspgo_profile_summary.ll
    M llvm/test/Transforms/PhaseOrdering/X86/earlycse-after-simplifycfg-two-entry-phi-node-folding.ll
    M llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll

  Log Message:
  -----------
  [SimplifyCFG] Rerun PHI deduplication after common code sinkinkg (PR51092)

`SinkCommonCodeFromPredecessors()` doesn't itself ensure that duplicate PHI nodes aren't created.
I suppose, we could teach it to do that on-the-fly (& account for the already-existing PHI nodes,
& adjust costmodel), the diff will be bigger than this.

The alternative is to schedule a new EarlyCSE pass invocation somewhere later in the pipeline.
Clearly, we don't have any EarlyCSE runs in module optimization passline, so this pattern isn't cleaned up...
That would perhaps better, but it will again have some compile time impact.

Reviewed By: RKSimon

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




More information about the All-commits mailing list