llvm-project/mlir/lib/Target/LLVMIR
Michael Kruse b1de32d6dd [OMPIRBuilder] Clarify CanonicalLoopInfo. NFC.
Add in-source documentation on how CanonicalLoopInfo is intended to be used. In particular, clarify what parts of a CanonicalLoopInfo is considered part of the loop, that those parts must be side-effect free, and that InsertPoints to instructions outside those parts can be expected to be preserved after method calls implementing loop-associated directives.

CanonicalLoopInfo are now invalidated after it does not describe canonical loop anymore and asserts when trying to use it afterwards.

In addition, rename `createXYZWorkshareLoop` to `applyXYZWorkshareLoop` and remove the update location to avoid that the impression that they insert something from scratch at that location where in reality its InsertPoint is ignored. createStaticWorkshareLoop does not return a CanonicalLoopInfo anymore. First, it was not a canonical loop in the clarified sense (containing side-effects in form of calls to the OpenMP runtime). Second, it is ambiguous which of the two possible canonical loops it should actually return. It will not be needed before a feature expected to be introduced in OpenMP 6.0

Also see discussion in D105706.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D107540
2021-08-12 21:02:19 -05:00
..
Dialect [OMPIRBuilder] Clarify CanonicalLoopInfo. NFC. 2021-08-12 21:02:19 -05:00
CMakeLists.txt [mlir] remove repeated use of TypeToLLVM.cpp in cmake targets 2021-06-24 18:34:49 +02:00
ConvertFromLLVMIR.cpp [MLIR][LLVM] Expose type translator from LLVM to MLIR Type 2021-06-24 12:06:34 -04:00
ConvertToLLVMIR.cpp [mlir] make implementations of translation to LLVM IR interfaces private 2021-03-04 09:16:32 +01:00
DebugTranslation.cpp [mlir][IR][NFC] Define the Location classes in ODS instead of C++ 2021-03-08 14:32:40 -08:00
DebugTranslation.h [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
ModuleTranslation.cpp [Attributes] Replace doesAttrKindHaveArgument() (NFC) 2021-07-12 21:57:26 +02:00
TypeFromLLVM.cpp [MLIR][LLVM] Expose type translator from LLVM to MLIR Type 2021-06-24 12:06:34 -04:00
TypeToLLVM.cpp [MLIR][LLVM] Expose type translator from LLVM to MLIR Type 2021-06-24 12:06:34 -04:00