[all-commits] [llvm/llvm-project] 5cdc4f: [IROutliner] Deduplicating functions that only req...

Andrew Litteken via All-commits all-commits at lists.llvm.org
Sat Dec 19 15:30:47 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5cdc4f57e50bbe0d211c109517c17defe78e0b73
      https://github.com/llvm/llvm-project/commit/5cdc4f57e50bbe0d211c109517c17defe78e0b73
  Author: Andrew Litteken <andrew.litteken at gmail.com>
  Date:   2020-12-19 (Sat, 19 Dec 2020)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/IROutliner.h
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/test/Transforms/IROutliner/extraction.ll
    M llvm/test/Transforms/IROutliner/illegal-assumes.ll
    M llvm/test/Transforms/IROutliner/illegal-branches.ll
    M llvm/test/Transforms/IROutliner/illegal-callbr.ll
    M llvm/test/Transforms/IROutliner/illegal-calls.ll
    M llvm/test/Transforms/IROutliner/illegal-catchpad.ll
    M llvm/test/Transforms/IROutliner/illegal-cleanup.ll
    M llvm/test/Transforms/IROutliner/illegal-frozen.ll
    M llvm/test/Transforms/IROutliner/illegal-gep.ll
    M llvm/test/Transforms/IROutliner/illegal-invoke.ll
    M llvm/test/Transforms/IROutliner/illegal-landingpad.ll
    M llvm/test/Transforms/IROutliner/illegal-memset.ll
    M llvm/test/Transforms/IROutliner/illegal-phi-nodes.ll
    M llvm/test/Transforms/IROutliner/legal-debug.ll
    M llvm/test/Transforms/IROutliner/outlining-address-taken.ll
    M llvm/test/Transforms/IROutliner/outlining-different-constants.ll
    M llvm/test/Transforms/IROutliner/outlining-different-structure.ll
    M llvm/test/Transforms/IROutliner/outlining-same-constants.ll
    M llvm/test/Transforms/IROutliner/outlining-same-globals.ll

  Log Message:
  -----------
  [IROutliner] Deduplicating functions that only require inputs.

Extracted regions can have both inputs and outputs.  In addition, the
CodeExtractor removes inputs that are only used in llvm.assumes, and
sunken allocas (values are used entirely in the extracted region as
denoted by lifetime intrinsics).  We also cannot combine sections that
have different constants in the same structural location, and these
constants will have to elevated to argument. This patch deduplicates
extracted functions that only have inputs and non of the special cases.

We test that correctly deduplicate in:
test/Transforms/IROutliner/outlining-same-globals.ll
test/Transforms/IROutliner/outlining-same-constants.ll
test/Transforms/IROutliner/outlining-different-structure.ll




More information about the All-commits mailing list