summaryrefslogtreecommitdiffstats
path: root/content/zettel/3c3f.md
blob: ee05072312e46afb985c2f237c69379724219603 (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
+++
title = "Using if-conversion on other CompCert languages"
author = "Yann Herklotz"
tags = []
categories = []
backlinks = ["3c3e", "3a7d", "2b1e"]
forwardlinks = ["2b1e", "3c3g", "3c3f1"]
zettelid = "3c3f"
+++

If-conversion would also be natively supported by the intermediate
language implemented in Vericert. However, the problem is that RTL
itself does not support if-conversion, so it would therefore require a
reverse if-conversion pass to get rid of the predicated instructions
([\#2b1e]). This should be possible, as predicated instructions can just
be placed into conditional statements again.

I am not yet sure if this would actually improve the performance of the
generated code though, but it does seem intuitive that this should be
possible. If the scheduler is aware of the if-conversion and the reverse
if-conversion pass, then it should be possible to guide it so that it
converts the code in a favourable way for reverse if-conversion.

  [\#2b1e]: /zettel/2b1e