Displaying 20 results from an estimated 24 matches for "visitintrinsiccall".
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
...gettype(a), &a);
bpf_output(gettype(b), &b);
return 0;
}
BPF backend can't (and 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 "V...
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
2019 Sep 10
2
Question on llvm.mem* intrinsics
Hi there lowering experts,
Can the llvm.mem* intrinsics ever turn into a library call? Or do
they invariably turn into inline code?
This comes up because there was a patch to StackProtector to use
CaptureTracking instead of a home-grown analysis, which changes
the treatment of calls to intrinsics. (The old code treated them
as normal calls, the new code decides intrinsics can never capture.)
2016 Mar 09
3
PGO question
.../lib/Support/Unix/Signals.inc:380:0
#2 0x00000000815eb33e llvm::sys::RunSignalHandlers
() /home/suganuma/tools/llvm_new/llvm/lib/Support/Signals.cpp:44:0
...
#7
0x0000000081577202 /home/suganuma/tools/llvm_new/llvm/lib/Support/ErrorHandling.cpp:117:0
#8 0x000000008139792a llvm::SelectionDAGBuilder::visitIntrinsicCall
(llvm::CallInst const&, unsigned
int) /home/suganuma/tools/llvm_new/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:5247:0
#9 0x000000008139b11c llvm::SelectionDAGBuilder::visitCall(llvm::CallInst
const&) /home/suganuma/tools/llvm_new/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder....
2010 Jan 22
0
[LLVMdev] Exception handling question
2010/1/22 Garrison Venn <gvenn.cfe.dev at gmail.com>
> Yes. The issue here, as you pointed out, is that your personality function
> is not called at all.
> Even if you did nothing in the personality function, associated with the
> setup caused by
> llvm.eh.selector, but returned _URC_CONTINUE_UNWIND (8), it should still be
> called.
> Your results are acting like either
2013 Dec 17
3
[LLVMdev] Trying to use patchpoint in MCJIT
...llvm-src/include/llvm/Support/Casting.h,
line 232.
With this stack (I only give the relevant part):
frame #5: 0x000000010092ed44
libjvm.dylib`llvm::SelectionDAGBuilder::visitPatchpoint() + 3780 at
SelectionDAGNodes.h:610
frame #6: 0x000000010091f511
libjvm.dylib`llvm::SelectionDAGBuilder::visitIntrinsicCall(this=0x0000000106ff4d20,
I=0x0000000106fea460) + 10961 at SelectionDAGBuilder.cpp:5349
frame #7: 0x0000000100904c4a
libjvm.dylib`llvm::SelectionDAGBuilder::visitCall(this=0x0000000106ff4d20,
I=0x0000000106fea460) + 234 at SelectionDAGBuilder.cpp:5870
frame #8: 0x00000001008fc9ea
libjvm.dyli...
2013 Dec 18
0
[LLVMdev] Trying to use patchpoint in MCJIT
...t; line 232.
>
> With this stack (I only give the relevant part):
>
> frame #5: 0x000000010092ed44
> libjvm.dylib`llvm::SelectionDAGBuilder::visitPatchpoint() + 3780 at
> SelectionDAGNodes.h:610
> frame #6: 0x000000010091f511
> libjvm.dylib`llvm::SelectionDAGBuilder::visitIntrinsicCall(this=0x0000000106ff4d20,
> I=0x0000000106fea460) + 10961 at SelectionDAGBuilder.cpp:5349
> frame #7: 0x0000000100904c4a
> libjvm.dylib`llvm::SelectionDAGBuilder::visitCall(this=0x0000000106ff4d20,
> I=0x0000000106fea460) + 234 at SelectionDAGBuilder.cpp:5870
> frame #8: 0x00000...
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
...t; return 0;
>> }
>>
>> BPF backend can't (and 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 S...
2016 Jul 29
3
IR @llvm.dbg.value entries for variables when a phi node has been created
...generated debug information, and the value of the variable c is still incorrectly reported to be 2 when on the return statement.
So my question is whether:
- The above addition to the IR is the correct thing to do [but if so then there is possibly a further issue in SelectionDAGBuilder::visitIntrinsicCall()'s handling of this additional line (where it is currently being discarded)]
- Some other @lldm.dbg.value entry should be produced to generate the correct debug information.
Keith
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.o...
2011 Apr 15
2
[LLVMdev] Valid debug information being deleted by DAGCombiner
...think I have found the problem to why the debug information is getting destroyed. The problem is in SelectionDAG and how it interacts with the SDDbgValue nodes and custom SDNodes.
When the dbg_value intrinsic is encountered, it adds the debug value to a specific SD Node in SelectionDAGBuilder.cpp::visitIntrinsicCall(). In one of my cases, it is vector_extract_elt.
During ISelLowering, the vector_extract_elt instruction is lowered to a custom backend SDNode and all of the operands are transferred over. The SDNode that stored vector_extract_elt is then deleted as it has no more uses. This then invalidates the d...
2013 Dec 18
2
[LLVMdev] Trying to use patchpoint in MCJIT
...line 232.
>
> With this stack (I only give the relevant part):
>
> frame #5: 0x000000010092ed44
> libjvm.dylib`llvm::SelectionDAGBuilder::visitPatchpoint() + 3780 at
> SelectionDAGNodes.h:610
> frame #6: 0x000000010091f511
>
> libjvm.dylib`llvm::SelectionDAGBuilder::visitIntrinsicCall(this=0x0000000106ff4d20,
> I=0x0000000106fea460) + 10961 at SelectionDAGBuilder.cpp:5349
> frame #7: 0x0000000100904c4a
> libjvm.dylib`llvm::SelectionDAGBuilder::visitCall(this=0x0000000106ff4d20,
> I=0x0000000106fea460) + 234 at SelectionDAGBuilder.cpp:5870
> frame #8: 0x00000...
2013 Nov 04
0
[LLVMdev] Implementing an llvm.setreturnaddress intrinsic
...)));
The problem I'm facing is that for some reason, my following line inside
X86TargetLowering::LowerOperation is never getting called:
case ISD::SETRETURNADDR: return LowerSETRETURNADDR(Op, DAG);
This is despite the fact that I can confirm the following line inside
SelectionDAGBuilder::visitIntrinsicCall *is* getting called:
case Intrinsic::setreturnaddress:
setValue(&I, DAG.getNode(ISD::SETRETURNADDR, sdl, TLI->getPointerTy(),
getValue(I.getArgOperand(0)),
getValue(I.getArgOperand(1))));
return 0;
My best guess is that my co...
2010 Jan 22
6
[LLVMdev] Exception handling question
Yes. The issue here, as you pointed out, is that your personality function is not called at all.
Even if you did nothing in the personality function, associated with the setup caused by
llvm.eh.selector, but returned _URC_CONTINUE_UNWIND (8), it should still be called.
Your results are acting like either dwarf exception header info is not emitted (llvm::DwarfExceptionHandling = true;
not executed
2011 Apr 15
0
[LLVMdev] Valid debug information being deleted by DAGCombiner
...e found the problem to why the debug information is getting destroyed. The problem is in SelectionDAG and how it interacts with the SDDbgValue nodes and custom SDNodes.
>
> When the dbg_value intrinsic is encountered, it adds the debug value to a specific SD Node in SelectionDAGBuilder.cpp::visitIntrinsicCall(). In one of my cases, it is vector_extract_elt.
>
> During ISelLowering, the vector_extract_elt instruction is lowered to a custom backend SDNode and all of the operands are transferred over. The SDNode that stored vector_extract_elt is then deleted as it has no more uses. This then invali...
2007 Mar 31
0
[LLVMdev] About implementing new intrinsic
...dd for the specific target the one that
> takes part in generating the target specific code (native) from the
> llvm bytecode?
There are two parts to this. First, you must lower the intrinsic from
its IR form (a Function*) into a SelectionDAG node. This is done in
SelectionDAGISel.cpp in the visitIntrinsicCall method. You might need to
change DAGCombiner.cpp and LegalizeDAG.cpp depending on the intrinsic
and its lowering. The second part is to modify the targets or generic
code gen to handle the lowered intrinsic call. This part is target
specific.
> 3. Can I introduce an intrinsic that is actually...
2016 Jul 31
0
IR @llvm.dbg.value entries for variables when a phi node has been created
...of the variable c is still
> incorrectly reported to be 2 when on the return statement.
>
>
>
> So my question is whether:
>
> - The above addition to the IR is the correct thing to do [but
> if so then there is possibly a further issue in
> SelectionDAGBuilder::visitIntrinsicCall()’s handling of this additional
> line (where it is currently being discarded)]
>
> - Some other @lldm.dbg.value entry should be produced to
> generate the correct debug information.
>
>
>
> Keith
> _______________________________________________
> LLVM Develo...
2007 Mar 31
6
[LLVMdev] About implementing new intrinsic
Hi,
I want to implement a new intrinsic in llvm that will denote a
parallel section within a function. I followed the documentation for
extending llvm (http://llvm.org/docs/ExtendingLLVM.html) but there is
something about the working mechanism that is not clear for me.
1. Why do we have to add support for the C backend? Is this only
necessary to transform the llvm assembly (bytecode) into C code
2011 Apr 15
1
[LLVMdev] Valid debug information being deleted by DAGCombiner
...think I have found the problem to why the debug information is getting destroyed. The problem is in SelectionDAG and how it interacts with the SDDbgValue nodes and custom SDNodes.
When the dbg_value intrinsic is encountered, it adds the debug value to a specific SD Node in SelectionDAGBuilder.cpp::visitIntrinsicCall(). In one of my cases, it is vector_extract_elt.
During ISelLowering, the vector_extract_elt instruction is lowered to a custom backend SDNode and all of the operands are transferred over. The SDNode that stored vector_extract_elt is then deleted as it has no more uses. This then invalidates the d...
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
...vm-gcc's any more, but
it will map to dragonegg's (i.e. GCC's); since llvm-gcc is deprecated I think
that it is OK.
> --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> @@ -4947,12 +4947,16 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
> Ops[4] = DAG.getSrcValue(I.getArgOperand(0));
> Ops[5] = DAG.getSrcValue(F);
>
> - Res = DAG.getNode(ISD::TRAMPOLINE, dl,
> - DAG.getVTList(TLI.getPointerTy(), MVT::Other),
> - Op...
2011 Apr 15
0
[LLVMdev] Valid debug information being deleted by DAGCombiner
John,
Mem2reg actually modifies debug information in a way that at least suggests it's trying to maintain debugability. Specifically, it changes llvm.dbg.declare() calls (appropriate for variables that permanently reside in a single place) to llvm.dbg.value() calls (specifying that at this instant, this variable is in this register).
In fact, the .bc after inlining and mem2reg