Author: Alexey Bader Date: 2022-10-19T03:50:47-07:00 New Revision: 66bd6074c133402e45075b591c062c22f308ef26
URL: https://github.com/llvm/llvm-project/commit/66bd6074c133402e45075b591c062c22f308ef26 DIFF: https://github.com/llvm/llvm-project/commit/66bd6074c133402e45075b591c062c22f308ef26.diff LOG: [Attr][Doc] Fix pragma unroll documentation. There is a contradiction in the #pragma unroll behavior documentation. It says that specifying `#pragma unroll` without a parameter directs the loop unroller to attempt to partially unroll the loop if the trip count is not known at compile time. At the same time later it states that `#pragma unroll` has identical semantics to `#pragma clang loop unroll(full)`, which doesn't attempt to unroll partially if the trip count is not known at compile time. pragma clang loop unroll(enable): If unroll(enable) is specified the unroller will attempt to fully unroll the loop if the trip count is known at compile time. If the fully unrolled code size is greater than an internal limit the loop will be partially unrolled up to this limit. If the trip count is not known at compile time the loop will be partially unrolled with a heuristically chosen unroll factor. pragma clang loop unroll(full): If unroll(full) is specified the unroller will attempt to fully unroll the loop if the trip count is known at compile time identically to unroll(enable). However, with unroll(full) the loop will not be unrolled if the loop count is not known at compile time. Differential Revision: https://reviews.llvm.org/D136160 Added: Modified: clang/include/clang/Basic/AttrDocs.td Removed: ################################################################################ diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index 33a18ac033252..484052f4db8ad 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -3569,7 +3569,7 @@ Specifying ``#pragma nounroll`` indicates that the loop should not be unrolled: } ``#pragma unroll`` and ``#pragma unroll _value_`` have identical semantics to -``#pragma clang loop unroll(full)`` and +``#pragma clang loop unroll(enable)`` and ``#pragma clang loop unroll_count(_value_)`` respectively. ``#pragma nounroll`` is equivalent to ``#pragma clang loop unroll(disable)``. See `language extensions _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits