Hi Philipp,<br><br>Let me provide you with an example back from September 2011. Attached is original Fortran source, optimized LLVM IR and what we regenerated back into C from LLVM IR by means of C backend. As you can see, the C code closely resembles LLVM IR.<br>
<br>I don't know what you intend to use it for (maybe some source-to-source compiler or DSL?), but to our experience, we had a system using C backend, but dropped it in favor of native LLVM backend for the target architecture (NVPTX in our case). Source-to-sourcing is generally very painful, there is a great chance to spend 90% of resources on stupid technical problems and only 10% - for ideas/innovation.<br>
<br>Note we were only users of C backend, and only had to make minor fixes to a working system. Developers are Chris, Duncan (replied on this thread too) and others. They may have more insight, if you would need implementation details.<br>
<br>Best,<br>- D.<br><br><div class="gmail_quote">2013/3/2 Philipp Schwaha <span dir="ltr"><<a href="mailto:philipp@schwaha.net" target="_blank">philipp@schwaha.net</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you for your reply Dmitry!<br>
<br>
It would not be too great a deal, if I need to use previous versions as<br>
long as it would get the desired results :)<br>
Would the code from the IR be portable to different C compilers? I<br>
guess the resulting C code will not have too much resemblance to the input?<br>
<br>
cheers<br>
        Philipp<br>
<div class="im"><br>
On 03/01/2013 05:02 PM, Dmitry Mikushin wrote:<br>
> DragonEgg only converts GCC's IR to LLVM IR. And -march=c is C backend.<br>
> We used it for a while last year, but its support has been dropped<br>
> several months ago. There are people, who are still using it privately,<br>
> as far as I know.<br>
><br>
> - D.<br>
><br>
</div>> 2013/3/1 Philipp Schwaha <<a href="mailto:philipp@schwaha.net">philipp@schwaha.net</a> <mailto:<a href="mailto:philipp@schwaha.net">philipp@schwaha.net</a>>><br>
<div class="im">><br>
>     hi!<br>
><br>
>     I would like to know if it is feasible to use the dragon egg gcc<br>
>     plugin to automatically convert fortran code to c. Having found that<br>
>     it is possible to output llvm byte code back to c (at least<br>
>     something like this gave me this impression/hope: llc -march=c -o<br>
>     test.c) I am hoping to use dragon egg to generate the byte code from<br>
>     fortran 90 which than output to c.<br>
>     Does this seem feasible at all? How much in terms of variable names<br>
>     etc. could be retained in this manner?<br>
><br>
>     thanks for any suggestions or comments<br>
>        Philipp<br>
</div>>     _________________________________________________<br>
>     LLVM Developers mailing list<br>
>     <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <mailto:<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>><br>
>     <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>     <a href="http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev</a><br>
>     <<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>><br>
><br>
><br>
<br>
</blockquote></div><br>