[mlir][llvm] Add structured loop metadata
authorChristian Ulmann <christian.ulmann@nextsilicon.com>
Fri, 3 Feb 2023 07:33:37 +0000 (08:33 +0100)
committerChristian Ulmann <christian.ulmann@nextsilicon.com>
Fri, 3 Feb 2023 07:57:30 +0000 (08:57 +0100)
commit889a11783ec0751be6766341936f688f4afd37df
treeefe0d4036f802bd0f63604eaf4e3214a2b7d1907
parent78f17b2a98e9c7ce4a28c48955ef312157099a69
[mlir][llvm] Add structured loop metadata

This commit introduces a structured representation of loop metadata to
the LLVM dialect. This attribute explicitly models all known `!llvm.loop`
metadata fields and groups them by introducing nested attributes for each
namespace.

The new attribute replaces the LoopOptionAttr that could only model a
limited subset of loop metadata.

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D143064
17 files changed:
mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
mlir/include/mlir/Dialect/LLVMIR/LLVMAttrs.h
mlir/include/mlir/Dialect/LLVMIR/LLVMEnums.td
mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/lib/Target/LLVMIR/CMakeLists.txt
mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
mlir/lib/Target/LLVMIR/LoopAnnotationTranslation.cpp [new file with mode: 0644]
mlir/lib/Target/LLVMIR/LoopAnnotationTranslation.h [new file with mode: 0644]
mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
mlir/test/Dialect/LLVMIR/invalid.mlir
mlir/test/Dialect/LLVMIR/loop-metadata.mlir [new file with mode: 0644]
mlir/test/Dialect/LLVMIR/roundtrip.mlir
mlir/test/Target/LLVMIR/llvmir.mlir
mlir/test/Target/LLVMIR/loop-metadata.mlir [new file with mode: 0644]