[LLVMdev] Writing LLVM front-end

David Blaikie dblaikie at gmail.com
Wed Feb 18 08:57:17 PST 2015


On Wed, Feb 18, 2015 at 8: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) .
>

Most of the architecture-specific code is in LLVM, away from anything
you'll have to worry about. Some stuff ends up leaking up into your
front-end, but not much if you're starting with a simple language and don't
need to interoperate with existing C libraries, for example. (if your
language needs to be able to call into existing C (or, worse, C++)
libraries then you'll need to worry about the ABI, and that's a fair amount
of work/code/knowledge that needs to reside in your frontend)


> does LLVM has helper functions to create objects in heap ?


In your target program? No, there's not much/any help there - you just call
malloc/free (or op new/delete) in your LLVM IR like you would in a simple C
program.


> 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 ) ?
>

Inside your target program? You won't, presumably, have access to the C++
standard library in your language so you won't be able to use its
convenient smart pointers. You can make your own in your new programming
language, depending on what language features you have to work with.

The LLVM Kaleidoscope tutorials might give you some idea of how to get
started writing a compiler using LLVM.

- David


>
> 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/a0e1bf25/attachment.html>


More information about the llvm-dev mailing list