[LLVMdev] Writing LLVM front-end

David Jones djones at xtreme-eda.com
Wed Feb 18 10:10:42 PST 2015


Ahmed,

You do not have to write code for each target architecture. Rather, when
you invoke LLVM to generate your code, you specify the requested target.
The best way to proceed here is to look at the sources for llc and opt.
There is no well-defined API for ahead-of-time code generation, so you'll
need to use llc/opt as examples. Be aware that the API will change from
release to release. In particular, the change from 3.5.1 to 3.6.0 is
significant.


For my project I call out to my own runtime to perform tasks such as memory
allocation. You can't really use C++ smart pointers in your generated code.
What you are generating most closely resembles assembly language - you have
nothing high-level. Here, I would recommend that you define the interface
between your generated code and runtime library in terms of plain C
functions using the standard C calling convention. You would then implement
your own garbage collector in your runtime. If you don't want to do that,
then consider using the Boehm-Demers-Weiser conservative collector. It
requires no special support from LLVM.


On Wed, Feb 18, 2015 at 11:34 AM, Ahmed Taj elsir <meedo456123 at gmail.com>
wrote:

> Hi,
>
> I'm new in LLVM project , I have to write a compiler frond-end (based
> on LLVM) in C++ to support my programming language .Am I have to
> implement support for each architecture or LLVM has libraries  that
> can do this for me ? (btw I don't want to support architecture that
> LLVM don't) .
>
> does LLVM has helper functions to create objects in heap ? if not is
> it good idea to use C++11 smart pointer to do memory management
> operations (at least in the first versions of my language ) ?
>
> Sorry,if some questions are silly , but I'm still beginner in compiler's
> world .
>
> Thanks.
> _______________________________________________
> 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/20150218/d7cd55a9/attachment.html>


More information about the llvm-dev mailing list