[PATCH] D94487: [LTO] Use lto::backend for code generation (WIP).

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 12 03:25:59 PST 2021


fhahn created this revision.
fhahn added reviewers: steven_wu, tejohnson, dexonsmith, probinson.
Herald added subscribers: pengfei, hiraditya, inglorion.
fhahn requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: jdoerfert.
Herald added a reviewer: sstefan1.
Herald added a subscriber: sstefan1.
Herald added a reviewer: baziotis.
Herald added a project: LLVM.

This patch updates LTOCodeGenerator to use the utilities provided by
LTOBackend to run middle-end optimizations and backend code generation.

This is a first step towards unifying the code used by libLTO's C API
and the newer, C++ interface (see PR41541).

The immediate motivation is to allow using the new pass manager when
doing LTO using libLTO's C API, which is used on Darwin, among others.

This is still WIP, as some of the error handling still needs to be
updated/improved, but I wanted to share it early, to get some more
high-level feedback.

Also, some options are not yet supported via lto::Config.

With the changes, there are no codegen/stats differences when building
MultiSource/SPEC2000/SPEC2006 on X86 with LTO, compared to without the
patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D94487

Files:
  llvm/include/llvm/LTO/LTO.h
  llvm/lib/LTO/Caching.cpp
  llvm/lib/LTO/LTOCodeGenerator.cpp
  llvm/test/LTO/X86/disable-verify.ll
  llvm/test/tools/lto/print-stats.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94487.316044.patch
Type: text/x-patch
Size: 6967 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210112/dddc9da9/attachment.bin>


More information about the llvm-commits mailing list