[all-commits] [llvm/llvm-project] 4c27ca: [NFC][SimplifyCFG] SinkCommonCodeFromPredecessors(...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Wed Apr 28 15:01:36 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4c27ca21d9e5a99d49b7791795ff9dd7d312f760
      https://github.com/llvm/llvm-project/commit/4c27ca21d9e5a99d49b7791795ff9dd7d312f760
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  Log Message:
  -----------
  [NFC][SimplifyCFG] SinkCommonCodeFromPredecessors(): reword comment about PR30244


  Commit: 12c8027ce39f776a5cc1e322b0f125362384b8aa
      https://github.com/llvm/llvm-project/commit/12c8027ce39f776a5cc1e322b0f125362384b8aa
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  Log Message:
  -----------
  [NFC][SimplifyCFG] Common code sinking: check profitability once

We can just eagerly pre-check all the instructions that we *could*
sink that we'd actually want to sink them, clamping the number of
instructions that we'll sink to stop just before the first unprofitable one.


  Commit: a8e273f2ed769a3bf1207a02bf609518bb3ae5be
      https://github.com/llvm/llvm-project/commit/a8e273f2ed769a3bf1207a02bf609518bb3ae5be
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll

  Log Message:
  -----------
  [NFC][SimplifyCFG] Add test showing that profitability check for sinking is broken

Essentially, we can't promise that the instruction is sinkable without
introducing PHI's until we know that it is profitable to sink.


  Commit: 410d03aabf725abcd6e3c5d11f4c2f4c9604627b
      https://github.com/llvm/llvm-project/commit/410d03aabf725abcd6e3c5d11f4c2f4c9604627b
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll

  Log Message:
  -----------
  [NFC][SimplifyCFG] Add test for sinking common code with multuple cond predecessors


  Commit: 1886aad9d03b95c35260d6d8013d746bd39dc94a
      https://github.com/llvm/llvm-project/commit/1886aad9d03b95c35260d6d8013d746bd39dc94a
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/X86/sink-common-code.ll

  Log Message:
  -----------
  [SimplifyCFG] Common code sinking: relax restriction on non-uncond predecessors

While we have a known profitability issue for sinking in presence of
non-unconditional predecessors, there isn't any known issues
for having multiple such non-unconditional predecessors,
so said restriction appears to be artificial. Lift it.


Compare: https://github.com/llvm/llvm-project/compare/f7164c77144a...1886aad9d03b


More information about the All-commits mailing list