summaryrefslogtreecommitdiffstats
path: root/content/zettel/3c2.md
blob: ad9070fcf637af20e8a860c76360645f609f2063 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
+++
title = "The need for duplicate loops"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["3c1"]
forwardlinks = ["2b1", "1c6c", "1c6b", "2b2", "3c3"]
zettelid = "3c2"
+++

One problem with loop pipelining is that it may require duplicate loops,
because if the loop iteration number is dynamic, the loop might only be
executed once, which would not work in the pipelined loop version if a
prologue and an epilogue are used. However, maybe with predicated
execution ([\#2b1]) and not generating a prologue and an epilogue
([\#1c6c]), this might actually still be possible. However, the loop
cannot be unrolled, which means that rotating registers ([\#1c6b],
[\#2b2]) would also have to be supported.

  [\#2b1]: /zettel/2b1
  [\#1c6c]: /zettel/1c6c
  [\#1c6b]: /zettel/1c6b
  [\#2b2]: /zettel/2b2