diff options
Diffstat (limited to 'content/zettel/3c3e.md')
-rw-r--r-- | content/zettel/3c3e.md | 28 |
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. |