[all-commits] [llvm/llvm-project] 81d3ac: [IROutliner] Adding outlining for single entry/sin...

Andrew Litteken via All-commits all-commits at lists.llvm.org
Tue Sep 7 08:52:28 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 81d3ac0cf2cb4b356843c74ccf5641fb5eb362fe
      https://github.com/llvm/llvm-project/commit/81d3ac0cf2cb4b356843c74ccf5641fb5eb362fe
  Author: Andrew Litteken <andrew_litteken at apple.com>
  Date:   2021-09-07 (Tue, 07 Sep 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
    M llvm/include/llvm/Transforms/IPO/IROutliner.h
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/test/Transforms/IROutliner/opt-remarks.ll
    A llvm/test/Transforms/IROutliner/outlining-across-branch.ll
    A llvm/test/Transforms/IROutliner/outlining-basic-branches.ll
    A llvm/test/Transforms/IROutliner/outlining-multiple-exits.ll
    M llvm/test/Transforms/IROutliner/region-end-of-module.ll

  Log Message:
  -----------
  [IROutliner] Adding outlining for single entry/single exit multiblock regions

Using the similarity found from the IRSimilarity Identifier, we take regions with structural similarity, and deduplicate them into a separate function. The Code Extractor is able to provide most of this functionality.

For simplicity, we start by only outlining regions with a single entry and single exit branch, this reduces the complexity in handling phi nodes outside the region, and handling many sets of outputs for each of the different exit blocks.

Reviewer: paquette

Differential Revision: https://reviews.llvm.org/D106990




More information about the All-commits mailing list