summaryrefslogtreecommitdiffstats
path: root/content/zettel/3c3e.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/3c3e.md')
-rw-r--r--content/zettel/3c3e.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/content/zettel/3c3e.md b/content/zettel/3c3e.md
new file mode 100644
index 0000000..ecea682
--- /dev/null
+++ b/content/zettel/3c3e.md
@@ -0,0 +1,28 @@
++++
+title = "Benefits of explicit basic blocks for scheduling"
+author = "Yann Herklotz"
+tags = []
+categories = []
+backlinks = ["3c3d"]
+forwardlinks = ["3c3f", "3c3e1"]
+zettelid = "3c3e"
++++
+
+Explicit basic blocks for scheduling means that there is a much more
+structured approach to the scheduling algorithm. But it also means that
+the intermediate languages cannot be directly translated to RTL again,
+as that language is unaware of basic blocks.
+
+The benefit of having support of parallel execution in the target
+language is that the scheduling can be much more powerful as well, as it
+can express the parallel execution of instructions directly. This means
+that any back end that can take advantage of these parallel instructions
+can directly use their parallel nature, without having to do that in a
+post-scheduling step.
+
+In the worst case, this can then be translated back into a sequential
+language anyways, if the goal was just to schedule instructions for a
+sequential processor, which would have gotten rid of any inefficiencies
+due to a back end specific scheduling algorithm. This would mean that
+the back end can be taken advantage of for all the following back ends
+that compcert has.