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