[all-commits] [llvm/llvm-project] 8cfa96: [SimplifyCFG] If provided, preserve Dominator Tree

Roman Lebedev via All-commits all-commits at lists.llvm.org
Thu Jan 28 03:12:20 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8cfa963463d09cd4213a647f3587389612e3dd16
      https://github.com/llvm/llvm-project/commit/8cfa963463d09cd4213a647f3587389612e3dd16
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-01-28 (Thu, 28 Jan 2021)

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

  Log Message:
  -----------
  [SimplifyCFG] If provided, preserve Dominator Tree

SimplifyCFG is an utility pass, and the fact that it does not
preserve DomTree's, forces it's users to somehow workaround that,
likely by not preserving DomTrees's themselves.

Indeed, simplifycfg pass didn't know how to preserve dominator tree,
it took me just under a month (starting with e1133179587dd895962a2fe4d6eb0cb1e63b5ee2)
do rectify that, now it fully knows how to,
there's likely some problems with that still,
but i've dealt with everything i can spot so far.

I think we now can flip the switch.

Note that this is functionally an NFC change,
since this doesn't change the users to pass in the DomTree,
that is a separate question.

Reviewed By: kuhar, nikic

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


  Commit: 6617529a1dfe6605bd2b4064c7832ace4b0eb564
      https://github.com/llvm/llvm-project/commit/6617529a1dfe6605bd2b4064c7832ace4b0eb564
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-01-28 (Thu, 28 Jan 2021)

  Changed paths:
    M llvm/lib/CodeGen/DwarfEHPrepare.cpp
    M llvm/test/CodeGen/ARM/O3-pipeline.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll

  Log Message:
  -----------
  [CodeGen][DwarfEHPrepare] Preserve Dominator Tree

Now that D94827 has flipped the switch, and SimplifyCFG is officially marked
as production-ready regarding Dominator Tree preservation,
we can update this user pass to also preserve Dominator Tree.

This is a geomean compile-time win of `-0.05%`..`-0.08%`.
https://llvm-compile-time-tracker.com/compare.php?from=51a25846c198cff00abad0936f975167357afa6f&to=082499aac236a5c141e50a9e77870d5be2de5f0b&stat=instructions

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


Compare: https://github.com/llvm/llvm-project/compare/d0c9fb1b8ebf...6617529a1dfe


More information about the All-commits mailing list