[LLVMdev] Updated RFC: ThinLTO Implementation Plan

Teresa Johnson tejohnson at google.com
Wed Jun 10 10:06:29 PDT 2015


On Thu, May 28, 2015 at 2:10 PM, Teresa Johnson <tejohnson at google.com> wrote:

>
> 1. Stage 1: Preparation
> ------------------------------------
>
>
> The first planned sets of patches are enablers for ThinLTO work:
>
>
> a. LTO directory structure
>
>
> Restructure the LTO directory to remove circular dependence when
> ThinLTO pass added. Because ThinLTO is being implemented as a SCC pass
> within Transforms/IPO, and leverages the LTOModule class for linking
> in functions from modules, IPO then requires the LTO library. This
> creates a circular dependence between LTO and IPO. To break that, we
> need to split the lib/LTO directory/library into lib/LTO/CodeGen and
> lib/LTO/Module, containing LTOCodeGenerator and LTOModule,
> respectively. Only LTOCodeGenerator has a dependence on IPO, removing
> the circular dependence.
>
>
> Note that libLTO and llvm-lto use LTOModule/LTOCodeGenerator, whereas
> the gold plugin uses lib/Object/IRObject and lib/Linker directly. The
> use of LTOModule in the ThinLTO pass is a convenience, but could be
> avoided by using the IRObject/Linker methods directly if that is
> preferred.
>

FYI, I no longer need this change as I decided it was cleaner to use
the gold plugin approach of interacting directly with libObject. I've
made that change locally and reverted my LTO restructuring.

Thanks,
Teresa

-- 
Teresa Johnson | Software Engineer | tejohnson at google.com | 408-460-2413



More information about the llvm-dev mailing list