unroll
unroll(times, _cache_op, insn, op, (addr) + (i++ * (lsize))); \
return &__dw_regs(dw)->type.unroll.ch[ch].wr;
return &__dw_regs(dw)->type.unroll.ch[ch].rd;
writel(value, &(__dw_regs(dw)->type.unroll.name))
__ch_regs = REGS_ADDR(dw, type.unroll.ch[_ch].rd); \
__ch_regs = REGS_ADDR(dw, type.unroll.ch[_ch].wr); \
{ dw, #name, REGS_ADDR(dw, type.unroll.wr_##name) }
{ dw, #name, REGS_ADDR(dw, type.unroll.rd_##name) }
struct dw_edma_v0_unroll unroll; /* 0x00f8..0x1120 */
goto unroll;
unroll:
unroll:
goto unroll;
goto unroll;
goto unroll;
goto unroll;
unroll:
goto unroll;
unroll:
__pick_unrolled(clang loop unroll(enable), /* nothing */)
__pick_unrolled(clang loop unroll_count(n), GCC unroll n)
__pick_unrolled(clang loop unroll(full), GCC unroll 65534)
__pick_unrolled(clang loop unroll(disable), GCC unroll 1)
u32 n, bool unroll, u64 priv,
if (!unroll)
static void iov_iter_folioq_revert(struct iov_iter *i, size_t unroll)
if (unroll <= fsize) {
i->iov_offset = fsize - unroll;
unroll -= fsize;
void iov_iter_revert(struct iov_iter *i, size_t unroll)
if (!unroll)
if (WARN_ON(unroll > MAX_RW_COUNT))
i->count += unroll;
if (unroll <= i->iov_offset) {
i->iov_offset -= unroll;
unroll -= i->iov_offset;
if (unroll <= n) {
i->iov_offset = n - unroll;
unroll -= n;
iov_iter_folioq_revert(i, unroll);
if (unroll <= n) {
i->iov_offset = n - unroll;
unroll -= n;
size_t const unroll = 2;
assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */
for (s = 0; s < (size_t)tableSize; s += unroll) {
for (u = 0; u < unroll; ++u) {
position = (position + (unroll * step)) & tableMask;
size_t const unroll = 2; /* Experimentally determined optimal unroll */
assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */
for (s = 0; s < (size_t)tableSize; s += unroll) {
for (u = 0; u < unroll; ++u) {
position = (position + (unroll * step)) & tableMask;
int const unroll = 4;
int const nLimit = (int)nbSymbols - unroll + 1;
for (n=0; n < nLimit; n += unroll) {
for (u=0; u < unroll; ++u) {
size_t const unroll = 2;
assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */
for (s = 0; s < (size_t)tableSize; s += unroll) {
for (u = 0; u < unroll; ++u) {
position = (position + (unroll * step)) & tableMask;
if (unroll && loop_end <= data_end) {
while (--unroll > 0) {
int loop_start, loop_end, loop_size, data_end, unroll;
unroll = 0;
unroll++;
#define __pragma_loop_unroll_count(N) DO_PRAGMA_(GCC unroll N)
#define __pragma_loop_unroll_full DO_PRAGMA_(clang loop unroll(full))
#define __pragma_loop_unroll_full DO_PRAGMA_(GCC unroll 65534)
#define __pragma_loop_no_unroll DO_PRAGMA_(clang loop unroll(disable))
#define __pragma_loop_no_unroll DO_PRAGMA_(GCC unroll 1)
#define __pragma_loop_unroll DO_PRAGMA_(clang loop unroll(enable))