[PATCH 07/79] [Backport to 15] Translate llvm.loop.unroll.full metadata (#1673)
authorDmitry Sidorov <dmitry.sidorov@intel.com>
Tue, 8 Nov 2022 20:32:27 +0000 (21:32 +0100)
committerAndreas Beckmann <anbe@debian.org>
Thu, 14 Mar 2024 19:01:08 +0000 (20:01 +0100)
commitb59276b1b356dd16662c2aaea3828236abd43305
tree6e5df6ddd34a1deb0e4c2442cb704ddf522dd006
parentb194dd8bf9faadf1f060e712c41a118831f6f453
[PATCH 07/79] [Backport to 15] Translate llvm.loop.unroll.full metadata (#1673)

It can be generated via #pragma clang unroll(full) pragma.
llvm.loop.unroll.full means attempt to do full unroll of the
loop and disable the unrolling if the trip count is not known
at compile time.

Unroll mask to which it was previously mapped doesn't much the
description.

The way the patch represents it in SPIR-V is:
 Unroll mask + PartialCount mask with '1' parameter

This patch also removes some overtesting for unroll metadata.

This backports: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/pull/1664

Signed-off-by: Sidorov, Dmitry <dmitry.sidorov@intel.com>
Gbp-Pq: Name 0007-Backport-to-15-Translate-llvm.loop.unroll.full-metad.patch
lib/SPIRV/SPIRVReader.cpp
lib/SPIRV/SPIRVWriter.cpp
test/DebugInfo/DebugControlFlow.cl
test/DebugInfo/DebugUnstructuredControlFlow.cl
test/OpLoopMergeDontUnroll.spt [deleted file]
test/OpLoopMergeDontUnrollHint1.spt [deleted file]
test/OpLoopMergePartialUnroll.spt [deleted file]
test/OpLoopMergeUnroll.spt [deleted file]
test/transcoding/LoopUnroll.ll