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

Luke Dalessandro luked at cs.rochester.edu
Mon Mar 30 09:54:45 PDT 2009


someguy wrote:
> The reason for my suggestion is that adding intrinsics is also 
> considered to be a breaking change.
> 
> This is the third question/suggestion in the last week or so where the 
> intrinsics/pseudo-function idea has been raised. Perhaps what llvm 
> really needs is a 'generic' pseudo-intrinsic of some kind?

I think part of the reason this happens is because the docs on extending 
LLVM suggest intrinsics as the first approach. It might make sense to 
clarify that intrinsics are only recommended where special code 
generation is required, and suggest just using a library interface for 
anything that can be removed before code generation through IR->IR lowering.

Luke

> 
> 2009/3/30 Milos Puzovic <milos.puzovic at gmail.com 
> <mailto:milos.puzovic at gmail.com>>
> 
>     2009/3/30 someguy <just.s0m3.guy+llvmdev at gmail.com
>     <mailto: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.
> 
>     _______________________________________________
>     LLVM Developers mailing list
>     LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>        
>     http://llvm.cs.uiuc.edu
>     http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list