ΒΆvoid setProfileInfoAfterUnrolling(
llvm::Loop* OrigLoop,
llvm::Loop* UnrolledLoop,
llvm::Loop* RemainderLoop,
uint64_t UF)
void setProfileInfoAfterUnrolling(
llvm::Loop* OrigLoop,
llvm::Loop* UnrolledLoop,
llvm::Loop* RemainderLoop,
uint64_t UF)
Description
Set weights for \p UnrolledLoop and \p RemainderLoop based on weights for\p OrigLoop and the following distribution of \p OrigLoop iteration among \p UnrolledLoop and \p RemainderLoop. \p UnrolledLoop receives weights that reflect TC/UF iterations, and \p RemainderLoop receives weights that reflect the remaining TC%UF iterations. Note that \p OrigLoop may be equal to either \p UnrolledLoop or \p RemainderLoop in which case weights for \p OrigLoop are updated accordingly. Note also behavior is undefined if \p UnrolledLoop and \p RemainderLoop are equal. \p UF must be greater than zero. If \p OrigLoop has no profile info associated nothing happens. This utility may be useful for such optimizations as unroller and vectorizer as it's typical transformation for them.
Declared at: llvm/include/llvm/Transforms/Utils/LoopUtils.h:471
Parameters
- llvm::Loop* OrigLoop
- llvm::Loop* UnrolledLoop
- llvm::Loop* RemainderLoop
- uint64_t UF