[PATCH] D13443: Rework the LTO Pipeline, aligning closer to the O2/O3 pipeline.

Teresa Johnson via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 6 10:29:38 PDT 2015


On Tue, Oct 6, 2015 at 9:57 AM, Pete Cooper <peter_cooper at apple.com> wrote:
>
> On Oct 5, 2015, at 12:43 PM, Teresa Johnson via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>
> I'm not sure why inlining should be able to end up with smaller files,
> except in the case where an "internal linkage" function can end up with no
> call site. Do you see any other cases?
>
>
> That's one of the cases I had in mind. The other is when inlining some
> of the callsites can result in some nice clean up optimizations in the
> caller (which is related to the comment about running the other
> optimization passes that are currently after this early return).
>
> I wonder if the first inliner in LTO builds should be -Os (regardless of
> whether the user specified -O2/3).
>
> That way, assuming the heuristics are working well, the first inliner pass
> should actually reduce code size (by inlining internal methods, and those
> methods with branches which can be simplified)
>
> Just a thought, shouldn’t block the new pipeline or anything, but
> determining how many times, and how aggressively, to run the inliner is
> certainly something which warrants more investigation.

I agree, cleaning up the pipeline shouldn't be blocked by these
investigations, and the initial performance looks reasonable overall.

Thanks,
Teresa

>
> Cheers,
> Pete



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


More information about the llvm-commits mailing list