[all-commits] [llvm/llvm-project] c52bcf: [IRSim][IROutliner] Limit to extracting regions th...

Andrew Litteken via All-commits all-commits at lists.llvm.org
Sat Dec 19 11:34:27 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c52bcf3a9b2d3cd60e62f38218979b781ccc9d8a
      https://github.com/llvm/llvm-project/commit/c52bcf3a9b2d3cd60e62f38218979b781ccc9d8a
  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-memcpy.ll
    M llvm/test/Transforms/IROutliner/illegal-memmove.ll
    M llvm/test/Transforms/IROutliner/illegal-vaarg.ll
    A llvm/test/Transforms/IROutliner/outlining-constants-vs-registers.ll
    A llvm/test/Transforms/IROutliner/outlining-different-constants.ll
    A llvm/test/Transforms/IROutliner/outlining-different-globals.ll
    M llvm/test/Transforms/IROutliner/outlining-different-structure.ll
    M llvm/test/Transforms/IROutliner/outlining-same-constants.ll

  Log Message:
  -----------
  [IRSim][IROutliner] Limit to extracting regions 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 limits the
extracted regions to those that only require inputs, and do not have any
 other special cases.

We test that we do not outline the wrong constants in:
test/Transforms/IROutliner/outliner-different-constants.ll
test/Transforms/IROutliner/outliner-different-globals.ll
test/Transforms/IROutliner/outliner-constant-vs-registers.ll

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

Reviewers: paquette, plofti

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




More information about the All-commits mailing list