[LLVMdev] dragon egg + llvm for fortran to c translation
Philipp Schwaha
philipp at schwaha.net
Wed Mar 6 04:20:37 PST 2013
Hi Dmitry,
thank you very much for the very illuminating example!
On 2013-03-02 16:31, Dmitry Mikushin wrote:
> Hi Philipp,
>
> 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.
yes, the resemblance is quite remarkable.
>
> 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.
source to source is exactly what would be the goal. I realize it is a
quite painful process and thus would like to use as much existing
infrastructure as possible before reinventing already excellent
solutions.
>
> 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.
thank you very much for all your help, it is very much appreciated!
best regards
Philipp
>
> Best,
> - D.
>
> 2013/3/2 Philipp Schwaha <philipp at schwaha.net>
>
>> Thank you for your reply Dmitry!
>>
>> It would not be too great a deal, if I need to use previous versions
>> as
>> long as it would get the desired results :)
>> Would the code from the IR be portable to different C compilers? I
>> guess the resulting C code will not have too much resemblance to the
>> input?
>>
>> cheers
>> Philipp
>>
>> On 03/01/2013 05:02 PM, Dmitry Mikushin wrote:
>>> DragonEgg only converts GCC's IR to LLVM IR. And -march=c is C
>>> backend.
>>> We used it for a while last year, but its support has been dropped
>>> several months ago. There are people, who are still using it
>>> privately,
>>> as far as I know.
>>>
>>> - D.
>>>
>>> 2013/3/1 Philipp Schwaha <philipp at schwaha.net
>>> <mailto:philipp at schwaha.net>>
>>
>>>
>>> hi!
>>>
>>> I would like to know if it is feasible to use the dragon egg gcc
>>> plugin to automatically convert fortran code to c. Having found
>>> that
>>> it is possible to output llvm byte code back to c (at least
>>> something like this gave me this impression/hope: llc -march=c
>>> -o
>>> test.c) I am hoping to use dragon egg to generate the byte code
>>> from
>>> fortran 90 which than output to c.
>>> Does this seem feasible at all? How much in terms of variable
>>> names
>>> etc. could be retained in this manner?
>>>
>>> thanks for any suggestions or comments
>>> Philipp
>>> _________________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>
>>> http://llvm.cs.uiuc.edu [1]
>>> http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev [2]
>>> <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev [3]>
>>>
>>>
>
>
>
> Links:
> ------
> [1] http://llvm.cs.uiuc.edu
> [2] http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev
> [3] http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list