[all-commits] [llvm/llvm-project] 322e7c: [docs] Update llvm.loop metadata documentation.

Michael Kruse via All-commits all-commits at lists.llvm.org
Tue Jul 14 09:04:40 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 322e7cfab53ea8079a04a4f562530aafe6148f0e
      https://github.com/llvm/llvm-project/commit/322e7cfab53ea8079a04a4f562530aafe6148f0e
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2020-07-14 (Tue, 14 Jul 2020)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [docs] Update llvm.loop metadata documentation.

Loop metadata nodes do not adhere to the documented property:

(a) LoopIDs are not unique: Any pass that duplicates IR will do it
    including its metadata (e.g. LoopVersioning) such that multiple
    loops are linked with the same LoopID. There is even a test case
    (Transforms/LoopUnroll/unroll-pragmas-disabled.ll) for multiple
    loops with the same LoopID.

(b) LoopIDs are not persistent: Adding or removing an item from a LoopID
    can only be done by creating a new MDNode and assigning it to the
    loop's branch(es). Passes such as LoopUnroll (llvm.loop.unroll.disable)
    and LoopVectorize (llvm.loop.isvectorized) use this to mark loops to
    not be transformed multiple times or to avoid that a LoopVersioned
    original loop is transformed.

Update the documentation according to how llvm.loop is used in practice.

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




More information about the All-commits mailing list