[all-commits] [llvm/llvm-project] f1d8e4: Clarify invariants of software pipelining hooks

RoboTux via All-commits all-commits at lists.llvm.org
Tue Mar 29 03:44:24 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f1d8e46258c6a08ca1a375dc9670dd5581d6cf65
      https://github.com/llvm/llvm-project/commit/f1d8e46258c6a08ca1a375dc9670dd5581d6cf65
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2022-03-29 (Tue, 29 Mar 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h

  Log Message:
  -----------
  Clarify invariants of software pipelining hooks

PowerPC backend relies on each pair of prologue/epilogue of a software
pipelined loop to correspond to a single iteration a the loop through
its use of the BDZ instruction to skip inner prologues/epilogues and
loop kernel. However the interface does not make it clear that it is a
valid way to check that the trip count is big enough to execute inner
prologues/epilogues and kernel loop.

The API also does not specify in which order of prologues the
createTripCountGreaterCondition() hook is being called. Knowing that it
starts with the last/innermost prologues can help recording some
information when createTripCountGreaterCondition() is first executed and
reuse it in setPreheader() or adjustTripCount().

This commit documents both aspects.

Reviewed By: jmolloy

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




More information about the All-commits mailing list