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

Mehdi AMINI via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 11:33:39 PDT 2015


joker.eph created this revision.
joker.eph added a reviewer: chandlerc.
joker.eph added subscribers: llvm-commits, dexonsmith.

It seems that the LTO pipeline didn't receive as much attention as the
regular O2/O3 pipeline the last few years. This patch attempts to
refactor the pass pipeline initialization to align LTO with the
regular pipeline.

The proposed change exit the compile phase before the inliner is ran
during the compile phase. The link phase will run the usuall pipeline,
extended with some specific passes that leverage the augmented
knowledge we have from full program visibility.

The LTO addition over the regular pipeline consists mainly of re-doing
the peephole a second after the inliner is done, but prepended with a
run of GlobalDCE/GlobalOpt.

The measurement on the public test suite as well as on our internal
suite show an overall net improvement. With some regression that I
am still tracking. Consider this patch as a work in progress that I
submit now for feedback.

http://reviews.llvm.org/D13443

Files:
  include/llvm/Transforms/IPO/PassManagerBuilder.h
  lib/Transforms/IPO/PassManagerBuilder.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13443.36537.patch
Type: text/x-patch
Size: 8977 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151005/34202138/attachment.bin>


More information about the llvm-commits mailing list