[all-commits] [llvm/llvm-project] e1c4a7: [llvm][NFC] Inliner: simplify inlining decision logic

Mircea Trofin via All-commits all-commits at lists.llvm.org
Fri May 1 16:19:23 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e1c4a7cb16c470ebb0eadd24223082817a90ca0c
      https://github.com/llvm/llvm-project/commit/e1c4a7cb16c470ebb0eadd24223082817a90ca0c
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2020-05-01 (Fri, 01 May 2020)

  Changed paths:
    M llvm/lib/Transforms/IPO/Inliner.cpp

  Log Message:
  -----------
  [llvm][NFC] Inliner: simplify inlining decision logic

Summary:
shouldInline makes a decision based on the InlineCost of a call site, as
well as an evaluation on whether the site should be deferred. This means
it's possible for the decision to be not to inline, even for an
InlineCost that would otherwise allow it.

Both uses of shouldInline performed the exact same logic after calling
it. In addition, the decision on whether to inline or not was
communicated through two values of the Option<InlineCost> return value:
None, or an InlineCost evaluating to false.

Simplified by:
- encapsulating the decision in the return object. The bool it evaluates
to communicates unambiguously the decision. The InlineCost is also
available.
- encapsulated the common post-shouldInline code into shouldInline.

Reviewers: davidxl, echristo, eraman

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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




More information about the All-commits mailing list