summaryrefslogtreecommitdiffstats
path: root/content/zettel/1b8.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/1b8.md')
-rw-r--r--content/zettel/1b8.md47
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