summaryrefslogtreecommitdiffstats
path: root/content/zettel/3c3f.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/zettel/3c3f.md')
-rw-r--r--content/zettel/3c3f.md24
1 files changed, 24 insertions, 0 deletions
diff --git a/content/zettel/3c3f.md b/content/zettel/3c3f.md
new file mode 100644
index 0000000..ee05072
--- /dev/null
+++ b/content/zettel/3c3f.md
@@ -0,0 +1,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