[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, 8 Feb 2024 21:48:18 +0000 (22:48 +0100)
commit0018745991a2c3c7e44c38e538a6c9ddc000d64b
treefc830c12c7d17d097c2969723caa71553f497405
parent8261502e9919133c4d3af4109b2dc872f78e1eca
[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