[PATCH] D153655: [LTO][GlobalDCE] Use pass parameter instead of module flag for LTO phase

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 23 11:43:17 PDT 2023


tejohnson created this revision.
tejohnson added reviewers: arsenm, Pierre-vh.
Herald added subscribers: hoy, ormris, kerbowa, steven_wu, hiraditya, kristof.beyls, inglorion, jvesely.
Herald added a project: All.
tejohnson requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.

D63932 <https://reviews.llvm.org/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 <https://reviews.llvm.org/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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D153655

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153655.534034.patch
Type: text/x-patch
Size: 13291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230623/4d3e7654/attachment.bin>


More information about the llvm-commits mailing list