diff options
Diffstat (limited to 'content/zettel/1b8.md')
-rw-r--r-- | content/zettel/1b8.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/content/zettel/1b8.md b/content/zettel/1b8.md new file mode 100644 index 0000000..ea81d1a --- /dev/null +++ b/content/zettel/1b8.md @@ -0,0 +1,47 @@ ++++ +title = "Hyperblocks" +author = "Yann Herklotz" +tags = [] +categories = [] +backlinks = ["3c3g", "3c3b", "3a7d", "2b1e", "1c8", "1c6a2", "1b9c", "1b7"] +forwardlinks = ["2b1", "1c8", "1b9"] +zettelid = "1b8" ++++ + +A hyperblock \[1\] is a generalisation on superblocks which can be used +if there is predicated execution supported in the target processor (or +in HLS where there is no restriction really). It can therefore represent +any control-flow that does not contain back-edges, and can therefore +represent strictly more blocks than a superblock. + +The benefit of this is that if predicated execution ([\#2b1]) is +supported, one can get large blocks that can be optimised and scheduled, +leading to a more optimised schedule. However, the problem with multiple +control paths is that these have to be analysed to ensure that two +instructions are independent, meaning there is no control dependency +between them. This can be done by taking the predicates of both +instructions, anding them together, and seeing if the formula can be +reduced to `false`. If that is the case, then the instructions are +independent and can be executed in parallel as there is no control +dependency between them. + +These hyperblocks can be created using if-conversion ([\#1c8]). + +<div id="refs" class="references csl-bib-body" markdown="1"> + +<div id="ref-mahlke92_effec_compil_suppor_predic_execut_using_hyper" +class="csl-entry" markdown="1"> + +<span class="csl-left-margin">\[1\] +</span><span class="csl-right-inline">S. A. Mahlke, D. C. Lin, W. Y. +Chen, R. E. Hank, and R. A. Bringmann, “Effective compiler support for +predicated execution using the hyperblock,” *SIGMICRO Newsl.*, vol. 23, +no. 1–2, pp. 45–54, Dec. 1992, doi: [10.1145/144965.144998].</span> + +</div> + +</div> + + [\#2b1]: /zettel/2b1 + [\#1c8]: /zettel/1c8 + [10.1145/144965.144998]: https://doi.org/10.1145/144965.144998 |