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...
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
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
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
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
>>...