+++ 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