This is an archive of the discontinued LLVM Phabricator instance.

[WIP] Add interprocedural IR outliner pass.
AbandonedPublic

Authored by rriddle on Jul 28 2017, 9:39 PM.

Details

Summary

This add the inter-procedural IR outliner described in RFC: http://lists.llvm.org/pipermail/llvm-dev/2017-July/115666.html
The outliner works off of semantic equivalency between instructions. The pass currently runs on sequential instruction chains but the (benefit and verification)analysis, outline function creation, and congruency classification logic can be expanded to support outlining from control flow regions.
The pass supports:

  • Opt remarks
  • Using profile to avoid outlining from hot blocks.
  • Parameterization/output creation.

Experimental performance: goo.gl/5k6wsP

Diff Detail