[LLVMdev] GSoC 2009: Extending LLVM IR to aid multi-core code generation

Milos Puzovic milos.puzovic at gmail.com
Mon Mar 30 06:19:20 PDT 2009


2009/3/30 someguy
<just.s0m3.guy+llvmdev at gmail.com<just.s0m3.guy%2Bllvmdev at gmail.com>
>

> Can you not achieve the same effect without adding intrinsics? Insert
> function calls to a __spawn and __join pseudo-function instead?
>
It would make LLVM code generation more difficult because instead of
building a new instruction (in this case intrinsic) you will be building
complex function calls and therefore making much more changes to the
existing front-end of your existing language if you want it to support
parallel programing. Analysis of generated LLVM code will become more
difficult because now instead of simply looking at the instructions you will
also need to look at the function calls and see if they are calling any
pseudo-functions which might require changes to the LLVM API as well.
Finally, the same goes when writting a back-end for the processor of your
choice -- you would really like to just add new code for building threads
not to modify the existing one for function calls. In summary, adding
intrinsics gives you a structure and nice code :)

Ideally, I would really like to see these intrinsic as instructions. Because
adding new instructions to LLVM language requires changing all of the
transformation of LLVM and I really want to have working version of code and
useful results by the end of GSoC I have decided to go this way. Once it (if
:) is demonstrated that this extension does aid multi-core code generation
and LLVM community is happy with it I would be happy to add them as
instructions.

Thanks,
Milos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090330/c60e5885/attachment.html>


More information about the llvm-dev mailing list