[all-commits] [llvm/llvm-project] 9d476e: [clang][FatLTO] Avoid UnifiedLTO until it can supp...

Paul Kirth via All-commits all-commits at lists.llvm.org
Tue Jan 23 14:05:04 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9d476e1e1a18af390e3455a6622ee67a69c64103
      https://github.com/llvm/llvm-project/commit/9d476e1e1a18af390e3455a6622ee67a69c64103
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/test/CodeGen/fat-lto-objects.c
    M clang/test/Driver/fat-lto-objects.c
    M llvm/docs/FatLTO.rst
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/IPO/EmbedBitcodePass.cpp
    M llvm/test/CodeGen/X86/fat-lto-section.ll
    M llvm/test/Transforms/EmbedBitcode/embed.ll

  Log Message:
  -----------
  [clang][FatLTO] Avoid UnifiedLTO until it can support WPD/CFI (#79061)

Currently, the UnifiedLTO pipeline seems to have trouble with several
LTO features, like SplitLTO units, which means we cannot use important
optimizations like Whole Program Devirtualization or security hardening
instrumentation like CFI.

This patch reverts FatLTO to using distinct pipelines for Full LTO and
ThinLTO. It still avoids module cloning, since that was error prone.




More information about the All-commits mailing list