[LLVMdev] Adapting created intrinsics to PowerPC backend

Evan Cheng evan.cheng at apple.com
Tue Mar 18 10:08:45 PDT 2008

On Mar 17, 2008, at 9:30 AM, aditya vishnubhotla wrote:

> Hi,
> I have implemented intrinsics which are placeholders
> for instructions executed elsewhere (e.g. in HW).
> So i have two types of intrinsics migrate_begin and
> migrate_end. Now i would like to make these intrinsics
> known to the PowerPC backend. Since the hardware
> initialization can not be implemented by one
> instruction it has to be expanded to a library call or
> lowered to something the ppc backend can understand?
> If it is possible to add the functionality of these
> functions to a library:
> Where is this library and how can these functions be
> added?
> Is it correct that entries in IntrinsicsPowerPC.td
> and
> PPCInstrInfo.td files have to be done to make these
> new intrinsics known?

You would add the definition to IntrinsicsPowerPC.td to let it be  
known. Then you can add a instruction selection pattern to  
PPCInstrInfo.td so it would be translated to the right PPC  
instruction(s). Alternatively, you can add C++ code to  
PPCISelDAGToDAG.cpp to do the translation.

> "migrate_begin" is an instruction with a variable
> argument list. Is there some
> special handling necessary to add variable argument
> functions?

In theory, you just need to specify the matching instruction input  
operands "variable_ops".


> I would be thankful for any hints regarding this
> PowerPC backend adaptation.
> Thank You
> Aditya
> ____________________________________________________________________________________
> Never miss a thing.  Make Yahoo your home page.
> http://www.yahoo.com/r/hs
> _______________________________________________
> 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