[LLVMdev] how to define INTRINSIC_W_CHAIN

Tom Stellard tom at stellard.net
Fri Jul 18 13:26:24 PDT 2014


On Fri, Jul 18, 2014 at 04:15:45PM -0400, kewuzhang wrote:
> sure!
> 
> class TEST_INTINSIC_FM< string asmstr> : Intrinsic
> 	 <llvm_i32_ty], [llvm_i32_ty, llvm_ptr_ty],
> 	[IntrReadWriteArgMem],
> 	!strconcat(“llvm.test”, asmstr),”.float”)
> 	>;

Have a look at the SelectionDAGBuilder::visitTargetIntrinsic()
function in lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp.  That is
where intrinsics are lowered to SelectionDAG nodes, so you can start
your debugging there to try to figure out why it is INSTRINSIC_WO_CHAIN.

-Tom

> 
> tks
> On Jul 18, 2014, at 4:06 PM, Tom Stellard <tom at stellard.net> wrote:
> 
> > On Fri, Jul 18, 2014 at 03:19:47PM -0400, kewuzhang wrote:
> >> en!
> >> 
> >> my test is : %r1 = call<float> @test.adddiv( <float> %r0, <float>* %p0).
> >> since 
> >> 
> > 
> > Can you show us the code from your .td file where you define the intrinsic?
> > 
> > -Tom
> > 
> >>>>  but somehow it always fall into INTRINSIC_WO_CHAIN category.  
> >> (caught it in lowering..)
> >> 
> >> I think it doesn’t have chain in initial DAG.
> >> 
> >> unfortunately the intrinsic “test.adddiv” is defined by me for now.  not sure how to make it has a chain.
> >> 
> >> kevin
> >> 
> >> 
> >> On Jul 18, 2014, at 3:06 PM, Krzysztof Parzyszek <kparzysz at codeaurora.org> wrote:
> >> 
> >>> On 7/18/2014 2:00 PM, kewuzhang wrote:
> >>>> 
> >>>> I am working on an intrinsic function, which will write to a pointer argument.
> >>>> So I am lowering it and think I need to catch it in lowerINTRINSIC_W_CHAIN,  but somehow it always fall into INTRINSIC_WO_CHAIN category.
> >>>> 
> >>>> I put [IntrReadwriteArgMem] into my Intrinsic  class definition, it did not help.
> >>>> tried put [SDNPHasChain] into  intrinsic class definition, cause errors” Element type mismatch for list”.
> >>>> 
> >>>> wondering how to flag it  to INTRINSIC_W_CHAIN?
> >>> 
> >>> 
> >>> Does it have chain in the initial DAG?
> >>> 
> >>> -Krzysztof
> >>> 
> >>> 
> >>> -- 
> >>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
> >>> _______________________________________________
> >>> LLVM Developers mailing list
> >>> 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