[LLVMdev] Python Backend
Wojciech DaniĆo
wojtek.danilo.ml at gmail.com
Tue Nov 20 16:10:10 PST 2012
I will take a look into NVPTX.
I don't want to deconstruct C++ classes to generate Python code - I want to
generate Python backend :)
Its purpose is to be able to generate Python code from LLVM IR code (not
C++ code! - C++ code is needed for me only to get a sample IR code).
I want to write my custom compiler in the future and I want to be able to
output Python code from it (of course not only Python code - I want to be
able to output IR or bytecode also), so I though that writing Python
Backend (as a function pass) is the best solution. Am I wrong?
2012/11/21 Eli Bendersky <eliben at google.com>
> >
> ----------------------------------------------------------------------------------
> > 2)
> > Maybe this question I will answer myself by analising some examples
> you'll
> > provide as answer to the first question, but maybe it will worth asking
> it
> > now.
> > So I want to know when to generate a class in Python. So far I know,
> that in
> > LLVM there are no classes, only functions, but when using the online LLVM
> > generator I can see, that when generating IR from C++ code, the "class"
> > keyword is stored inside of name (or something like name) of function:
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > class X{
> > public:
> > void f();
> > };
> > void X::f() { printf("inside f");}
> > int main() { X x; x.f();}
> >
> > translates into:
> >
> > [...]
> >
> > define void @_ZN1X1fEv(%class.X* nocapture %this) nounwind uwtable align
> 2 {
> > %1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([9 x
> > i8]* @.str, i64 0, i64 0))
> > ret void
> > }
> >
> > [...]
> >
> >
> > How can I access it inside of my function Pass to get know if it was
> class
> > or not?
>
> Why do you need to deconstruct C++ classes to generate Python code
> from LLVM IR? What will you gain from that?
>
> > 3)
> >
> > Is there any manual that will help me discover all these advanced LLVM
> > features needed to write such backend? I have read LLVM Kaleidoscope
> > tutorials, some LLVM tutorials from IBM and lot of articles, but I still
> > feel that I have not knowledge enough.
>
> I hope you ran into http://llvm.org/docs/WritingAnLLVMBackend.html
>
> Eli
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121121/b6b2bda0/attachment.html>
More information about the llvm-dev
mailing list