summaryrefslogtreecommitdiffstats
path: root/content/zettel/1b8.md
blob: ea81d1acbabcf252fe005699e03934d339db7555 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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. 12, pp. 4554, 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