[all-commits] [llvm/llvm-project] 200cc9: [LTO][GlobalDCE] Use pass parameter instead of mod...

Teresa Johnson via All-commits all-commits at lists.llvm.org
Fri Jun 23 17:05:37 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 200cc952a28a73687ba24d5334415df6332f2d5b
      https://github.com/llvm/llvm-project/commit/200cc952a28a73687ba24d5334415df6332f2d5b
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2023-06-23 (Fri, 23 Jun 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/GlobalDCE.h
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/GlobalDCE.cpp
    M llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
    M llvm/test/DebugInfo/MIR/X86/ldv_unreachable_blocks.mir
    M llvm/test/DebugInfo/MIR/X86/ldv_unreachable_blocks2.mir
    M llvm/test/DebugInfo/X86/subprogram-across-cus.ll
    R llvm/test/LTO/ARM/lto-linking-metadata.ll
    M llvm/test/Other/new-pm-print-pipeline.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-visibility-post-lto.ll
    M llvm/test/Transforms/GlobalDCE/vtable-rtti.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl2.ll
    M llvm/test/tools/llvm-reduce/reduce-module-flags.ll

  Log Message:
  -----------
  [LTO][GlobalDCE] Use pass parameter instead of module flag for LTO phase

D63932 added a module flag to indicate that we are executing the regular
LTO post merge pipeline, so that GlobalDCE could perform more aggressive
optimization for Dead Virtual Function Elimination. This caused issues
trying to reuse bitcode that had already been through the LTO pipeline
(see context in D139816).

Instead support this by passing down a parameter flag to the
GlobalDCEPass constructor, which is the more usual way for indicating
this information.

Most test changes are to remove incidental uses of this flag. Of the 2
real uses, llvm/test/LTO/ARM/lto-linking-metadata.ll is now obsolete and
removed in this patch, and the virtual-functions-visibility-post-lto.ll
test is updated to use the regular LTO default pipeline where this
parameter is set to true.

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




More information about the All-commits mailing list