[all-commits] [llvm/llvm-project] 32808c: [IR] Track users of comdats

Nikita Popov via All-commits all-commits at lists.llvm.org
Thu Jan 6 00:14:16 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 32808cfb24b8d83a99223b7f797be1dbe5573c10
      https://github.com/llvm/llvm-project/commit/32808cfb24b8d83a99223b7f797be1dbe5573c10
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-01-06 (Thu, 06 Jan 2022)

  Changed paths:
    M llvm/include/llvm/IR/Comdat.h
    M llvm/include/llvm/IR/GlobalObject.h
    M llvm/lib/IR/Comdat.cpp
    M llvm/lib/IR/Globals.cpp
    M llvm/lib/Transforms/Utils/ModuleUtils.cpp
    M llvm/unittests/IR/ConstantsTest.cpp

  Log Message:
  -----------
  [IR] Track users of comdats

Track all GlobalObjects that reference a given comdat, which allows
determining whether a function in a comdat is dead without scanning
the whole module.

In particular, this makes filterDeadComdatFunctions() have complexity
O(#DeadFunctions) rather than O(#SymbolsInModule), which addresses
half of the compile-time issue exposed by D115545.

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




More information about the All-commits mailing list