[llvm-dev] Followup loop attribute

Yan Luo via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 8 14:31:55 PST 2020


Hello,

I hit a problem which seems related to followup loop attribute.
The testcase is like:

for (...) {
  #pragma clang loop vectorize(enable) unroll_count(4)
  for (...) {
...
  }
}

Before loop vectorization, the Metadata is like:
!7 = distinct !{!7, !8}     <== LOOP
!8 = distinct !{!8, !9, !10}
!9 = !{!"llvm.loop.isvectorized"}
!10 = !{!"llvm.loop.unroll.count", i32 4}
!11 = distinct !{!11, !12, !13}    <== LOOP
!12 = !{!"llvm.loop.vectorize.enable", i1 true}
!13 = !{!"llvm.loop.vectorize.followup_all", !8}

After loop vectorization, the Metadata is:
!7 = distinct !{!7, !8}
!8 = distinct !{!8, !9, !10}
!9 = !{!"llvm.loop.isvectorized"}
!10 = !{!"llvm.loop.unroll.count", i32 4}
!11 = distinct !{!11, !8, !12}
!12 = !{!"llvm.loop.isvectorized", i32 1}

During loop unrolling, the compiler cannot find the "llvm.loop.unroll.count" pragama value (either from !7 or !11) since the value is one level down. Is there any existing solution for this or it is a known issue?



Thanks,
Yan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200108/79c808ea/attachment.html>


More information about the llvm-dev mailing list