[LLVMdev] runtime library for jitted code

Victor Zverovich victor.zverovich at googlemail.com
Tue Jun 16 09:57:54 PDT 2009

The question about the name mangling gave me an idea that it can be used to
automate registration of DLL functions. Instead of manually creating
Function objects specifying a return type and argument types which is
error-prone and time-consuming one can get a list of functions exported from
a DLL using Windows API, demangle each name and construct a Function object
from it. Is there any support for Visual C++ style (de)mangling in LLVM or
related project? In any case I think it won't be difficult for me to write
such a converter from mangled names to LLVM function declarations.

Best regards,

2009/6/15 Óscar Fuentes <ofv at wanadoo.es>

> Albert Graef <Dr.Graef at t-online.de> writes:
> > Victor Zverovich wrote:
> >> I am considering a possibility of using LLVM JIT for an algebraic
> >> modelling language. I have already done some prototyping following the
> >> Kaleidoscope tutorial and currently thinking of how to connect the
> >> jitted code to a runtime library (for this language) which I would like
> >> to code in C++. If it was *NIX I would use g++ possibly with '-rdynamic'
> >> option as suggested in the tutorial to resolve required functions at
> >> runtime. However it is not an option, I am stuck to Windows and Visual
> >> C++.
> >
> > Well, backlinking doesn't work on Windows, but you can create a dll for
> > your runtime and use LLVM's dynamic library interface to load that dll.
> > I'm doing it that way in my project (http://pure-lang.googlecode.com/,
> > search for 'sys::DynamicLibrary::' in interpreter.cc) and it works fine
> > on Windows.
> The OP says that he wants to link to a dll coded in C++. Isn't name
> mangling the main problem here?
> --
> Óscar
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090616/06c8d420/attachment.html>

More information about the llvm-dev mailing list