search for: visittargetintrinsic

Displaying 15 results from an estimated 15 matches for "visittargetintrinsic".

2012 Nov 06
4
[LLVMdev] FW: Bug in SelectionDAG visitTargetIntrinsic
From: Villmow, Micah Sent: Tuesday, November 06, 2012 1:37 PM To: 'llvm-dev at cs.uiuc.edu' Cc: Guo, Xiaoyi Subject: Bug in SelectionDAG visitTargetIntrinsic We ran into a problem where specifying IntrNoMem was causing our instruction selection to fail with target specific intrinsics. After looking into the code and ISel debug it looks like tablegen and SelectionDAG are using different criteria to generate code for intrinsic_w_chain vs intrinsic_wo_cha...
2012 Nov 06
0
[LLVMdev] Bug in SelectionDAG visitTargetIntrinsic
void SelectionDAGBuilder::visitTargetIntrinsic(const CallInst &I, - unsigned Intrinsic) { - bool HasChain = !I.doesNotAccessMemory(); - bool OnlyLoad = HasChain && I.onlyReadsMemory(); + unsigned Intrinsic) { + // Info is set by getTgtMemIns...
2009 Mar 02
2
[LLVMdev] Intrinsic cannot use illegal type
Hello everybody, I use a target specific Intrinsic that returns an illegal type. The idea is that this returned value shall be eliminated when the Intrinsic node is lowered to a target node. I realize that this is a rather late stage, since (at least) SelectionDAGLowering::visitTargetIntrinsic() requires legal types, and type legalization in general is also done before ISelLowering. The background is that the intrinsic returns a boolean value which is evaluated by a branch instruction of a (special) loop. The branch targets of this kind of loop are actually controlled and generated by...
2009 Mar 03
0
[LLVMdev] Intrinsic cannot use illegal type
Hi Christian, > I use a target specific Intrinsic that returns an illegal type. > The idea is that this returned value shall be eliminated when the > Intrinsic node is lowered to a target node. > I realize that this is a rather late stage, since (at least) > SelectionDAGLowering::visitTargetIntrinsic() requires legal types, > and type legalization in general is also done before ISelLowering. no, type legalization is done after everything has been lowered to SelectionDAG nodes. I'm not sure why visitTargetIntrinsic insists that types must be legal. If there is an illegal type there the...
2015 Aug 12
2
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
...nd needn't) tell the difference between local variables a and b in theory. In LLVM implementation, it filters type information out using ComputeValueVTs(). Please have a look at SelectionDAGBuilder::visitIntrinsicCall in lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp and SelectionDAGBuilder::visitTargetIntrinsic in the same file. in visitTargetIntrinsic, ComputeValueVTs acts as a barrier which strips type information out from CallInst ("I"), and leave SDValue and SDVTList ("Ops" and "VTs") to target code. SDValue and SDVTList are wrappers of EVT and MVT, all information we con...
2014 Jul 18
2
[LLVMdev] how to define INTRINSIC_W_CHAIN
...>> 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...
2010 Jan 06
2
[LLVMdev] something wrong with .ll file?
...%0 } declare void @llvm.mymachine.su.route(i32, i32) nounwind readnone =========================================== As you can see, the intrinsic function takes two integer arguments and does not return anything. For some reason I am getting into trouble when I use llc to process my .bc file. In visitTargetIntrinsic() the second argument to function ComputeValueVTs() - I.getType() == llvm::Type::VoidTyID. This leads me to the exception: "Cannot have nodes without results!". Is there is something wrong with my byte code or I messed up somewhere in llc code? Are there any other dumps that I can use...
2010 Jan 06
0
[LLVMdev] something wrong with .ll file?
...su.route(i32, i32) nounwind readnone > > =========================================== > > As you can see, the intrinsic function takes two integer arguments and does not > return anything. > > For some reason I am getting into trouble when I use llc to process my .bc file. In visitTargetIntrinsic() > the second argument to function ComputeValueVTs() - I.getType() == llvm::Type::VoidTyID. This leads me to > the exception: "Cannot have nodes without results!". > > Is there is something wrong with my byte code or I messed up somewhere in llc code? > > Are there...
2014 Jul 23
2
[LLVMdev] LowerINTRINSIC_W_CHAIN in X86
Yeah. I agree that "Chain operand is needed if the intrinsic is reading / writing memory.”, Just don’t know where and how to set it up. like intrinsic “int_x86_xtest: “ def int_x86_xtest : GCCBuiltin<"__builtin_ia32_xtest">, Intrinsic<[llvm_i32_ty], [], []>; “ "def X86xtest: SDNode<"X86ISD::XTEST", SDTypeProfile<1, 0,
2011 Mar 16
1
[LLVMdev] LLVM 2.9 RC1 Pre-release Tarballs
...pcmpeqd-0.ll -mtriple=x86_64-apple-darwin | grep pcmpeqd | /media/dh0/llvm-2.9-build-O0/Release+Asserts/bin/count 1 > -- > Exit Code: 1 > Command Output (stderr): > -- > llc: /media/dh0/llvm-2.9rc1/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:3149: void llvm::SelectionDAGBuilder::visitTargetIntrinsic(const llvm::CallInst&, unsigned int): Assertion `TLI.isTypeLegal(Op.getValueType()) && "Intrinsic uses a non-legal type?"' failed. > Stack dump: > 0. Program arguments: /media/dh0/llvm-2.9-build-O0/Release+Asserts/bin/llc -mtriple=i386-apple-darwin > 1. Runn...
2014 Jul 18
2
[LLVMdev] how to define INTRINSIC_W_CHAIN
sure! class TEST_INTINSIC_FM< string asmstr> : Intrinsic <llvm_i32_ty], [llvm_i32_ty, llvm_ptr_ty], [IntrReadWriteArgMem], !strconcat(“llvm.test”, asmstr),”.float”) >; 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 =
2011 Mar 15
0
[LLVMdev] LLVM 2.9 RC1 Pre-release Tarballs
...c1/test/CodeGen/X86/fold-pcmpeqd-0.ll -mtriple=x86_64-apple-darwin | grep pcmpeqd | /media/dh0/llvm-2.9-build-O0/Release+Asserts/bin/count 1 -- Exit Code: 1 Command Output (stderr): -- llc: /media/dh0/llvm-2.9rc1/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:3149: void llvm::SelectionDAGBuilder::visitTargetIntrinsic(const llvm::CallInst&, unsigned int): Assertion `TLI.isTypeLegal(Op.getValueType()) && "Intrinsic uses a non-legal type?"' failed. Stack dump: 0. Program arguments: /media/dh0/llvm-2.9-build-O0/Release+Asserts/bin/llc -mtriple=i386-apple-darwin 1. Running pass 'F...
2011 Mar 14
3
[LLVMdev] LLVM 2.9 RC1 Pre-release Tarballs
Hello Xerxes, > llvm 2.9rc1 test on Dualcore ARM running Ubuntu Natty What is the gcc used for the compilation? Can you try to do the -O0 build and see whether this changed the stuff? -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
2016 Mar 21
1
define intrinsic function with pointer-typed parameter
Hi, If I define a intrinsic function with pointer-typed parameter, for example, def llvm_foo_ptr_ty : LLVMPointerType<llvm_i16_ty>; def int_foo_get : Intrinsic<[llvm_foo_ptr_ty], [llvm_foo_ptr_ty, llvm_i32_ty], [IntrReadArgMem]>; How to lower it for the backend? I'm not sure what kind of register (i16 or i32 or i32) is needed in this case? If the parameter is
2015 Aug 12
3
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
...ocal >> variables a and b in theory. In LLVM implementation, it filters type >> information out using ComputeValueVTs(). Please have a look at >> SelectionDAGBuilder::visitIntrinsicCall in >> lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp and >> SelectionDAGBuilder::visitTargetIntrinsic in the same file. in >> visitTargetIntrinsic, ComputeValueVTs acts as a barrier which strips >> type information out from CallInst ("I"), and leave SDValue and SDVTList >> ("Ops" and "VTs") to target code. SDValue and SDVTList are wrappers of >>...