[all-commits] [llvm/llvm-project] 3060ee: [Pipelines] Don't skip GlobalDCE in ThinLTO pre-link

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon May 15 05:58:41 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3060ee0c6adaf3015e39c90a0929029b8d368522
      https://github.com/llvm/llvm-project/commit/3060ee0c6adaf3015e39c90a0929029b8d368522
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll

  Log Message:
  -----------
  [Pipelines] Don't skip GlobalDCE in ThinLTO pre-link

GlobalDCE will only remove functions with available externally
linkage if they are unreferenced. As such, I don't believe there
is any problem with running this pass as part of the ThinLTO pre-link
pipeline. It will only remove functions that are completely dead in
that module, and I don't think there is any benefit to keeping them
around for the post-link phase.

There is no compile-time impact from the additional pass.

This is a followup to one of the side discussions in D146776.

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




More information about the All-commits mailing list