search for: computevaluevt

Displaying 20 results from an estimated 23 matches for "computevaluevt".

Did you mean: computevaluevts
2015 Aug 12
2
llvm bpf debug info. Re: [RFC PATCH v4 3/3] bpf: Introduce function for outputing data to perf event
...rA a; struct strB b; a.a = 1; b.b = 2; bpf_output(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&...
2012 Oct 23
4
[LLVMdev] ABI: how to let the backend know that an aggregate should be allocated on stack
...ether it is necessary to add onstack flag and is there any issue related to that? Another option, suggested by Daniel, is to convert HA to a convenient similar type the backend won't pass in registers. I tried to pass a struct with vector types, but the backend will expand the struct See llvm::ComputeValueVTs // Given a struct type, recursively traverse the elements. I tried to use indirect in Clang, it does not work out as I wish. Any suggestion on how to fix this is highly appreciated! Thanks, Manman -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.l...
2010 Jan 06
2
[LLVMdev] something wrong with .ll file?
...ounwind 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 while processing .bc file? Thanks. -- Fima
2018 Mar 08
1
how to discriminate pointers in calling conventions
...se calling conventions specify that pointer-typed arguments are passed in different registers than same-sized integers. It appears that in the SelectionDAGBuilder, arguments/formals with pointer type are lowered to the corresponding integer MVT (via this path: SelectionDAGISel::LowerArguments llvm::ComputeValueVTs TargetLoweringBase::getValueType TargetLoweringBase::getPointerType ) and from then on there is no way to discriminate them, for example in the CallingConv.td file and so on. None of the functions in the above list are virtual and anyway it seems like a Bad Idea to just have getPointerType return...
2010 Jan 06
0
[LLVMdev] something wrong with .ll file?
...=============================== > > 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 while processing .bc fi...
2012 Oct 23
0
[LLVMdev] ABI: how to let the backend know that an aggregate should be allocated on stack
...ck flag and is there > any issue related to that? > > Another option, suggested by Daniel, is to convert HA to a convenient > similar type the backend won't pass in registers. > I tried to pass a struct with vector types, but the backend will expand the > struct > See llvm::ComputeValueVTs > // Given a struct type, recursively traverse the elements. > > I tried to use indirect in Clang, it does not work out as I wish. See MipsABIInfo::getPaddingType; a similar sort of approach should work here. (Granted, onstack would be more convenient, but it doesn't exist at the mo...
2012 Oct 24
0
[LLVMdev] [llvm-commits] ABI: how to let the backend know that an aggregate should be allocated on stack
...y to add onstack flag and is there any issue related to that? > > Another option, suggested by Daniel, is to convert HA to a convenient similar type the backend won't pass in registers. > I tried to pass a struct with vector types, but the backend will expand the struct > See llvm::ComputeValueVTs > // Given a struct type, recursively traverse the elements. > > I tried to use indirect in Clang, it does not work out as I wish. > > Any suggestion on how to fix this is highly appreciated! > > Thanks, > Manman > _______________________________________________ >...
2012 Oct 24
5
[LLVMdev] [llvm-commits] ABI: how to let the backend know that an aggregate should be allocated on stack
...flag and is there any issue related to that? >> >> Another option, suggested by Daniel, is to convert HA to a convenient similar type the backend won't pass in registers. >> I tried to pass a struct with vector types, but the backend will expand the struct >> See llvm::ComputeValueVTs >> // Given a struct type, recursively traverse the elements. >> >> I tried to use indirect in Clang, it does not work out as I wish. >> >> Any suggestion on how to fix this is highly appreciated! >> >> Thanks, >> Manman >> _________________...
2012 Oct 24
0
[LLVMdev] [llvm-commits] ABI: how to let the backend know that an aggregate should be allocated on stack
...re any issue related to that? >>> >>> Another option, suggested by Daniel, is to convert HA to a convenient similar type the backend won't pass in registers. >>> I tried to pass a struct with vector types, but the backend will expand the struct >>> See llvm::ComputeValueVTs >>> // Given a struct type, recursively traverse the elements. >>> >>> I tried to use indirect in Clang, it does not work out as I wish. >>> >>> Any suggestion on how to fix this is highly appreciated! >>> >>> Thanks, >>> M...
2016 Jan 15
2
[GlobalISel][RFC] Value to vreg during IR to MachineInstr translation for aggregate type
...th a single EVT. Therefore, values with aggregate types need to be break apart to be represented by a SDValue. * Implications * - Instructions that may accept aggregate type, e.g., load, store, and select, must be split to handle the different component that compose a Value. (Look for the use of ComputeValueVTs in the SelecionDAGBuilder and the related loops this implies). - Use of aggregate type generates a bunch of MERGE_VALUE nodes, which sole purpose is to glue all the components that make the aggregate type together. Therefore, in practice, values with aggregate types are mapped to several SDValue...
2016 Jan 15
2
[GlobalISel][RFC] Value to vreg during IR to MachineInstr translation for aggregate type
...be >> represented by a SDValue. >> >> >> * Implications * >> >> >> - Instructions that may accept aggregate type, e.g., load, store, and >> select, must be split to handle the different component that compose >> a Value. (Look for the use of ComputeValueVTs in the >> SelecionDAGBuilder and the related loops this implies). >> - Use of aggregate type generates a bunch of MERGE_VALUE nodes, which >> sole purpose is to glue all the components that make the aggregate >> type together. >> >> >> Therefore, in prac...
2015 Aug 12
3
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 >>...
2019 May 24
2
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...2. Size Queries > =============== > > This is a proposal for how to deal with querying the size of scalable types. > While it has not been implemented in full, the general approach works well > for calculating offsets into structures with scalable types in a modified > version of ComputeValueVTs in our downstream compiler. > > Current IR types that have a known size all return a single integer constant. > For scalable types a second integer is needed to indicate the number of bytes > which need to be scaled by the runtime multiple to obtain the actual length. > > For pri...
2017 Jul 06
3
[RFC][SVE] Supporting Scalable Vector Architectures in LLVM IR (take 2)
On 6 July 2017 at 23:13, Chris Lattner <clattner at nondot.org> wrote: >> Yes, as an extension to VectorType they can be manipulated and passed >> around like normal vectors, load/stored directly, phis, put in llvm >> structs etc. Address computation generates expressions in terms vscale >> and it seems to work well. > > Right, that works out through
2018 Jul 30
5
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...; =============== > > This is a proposal for how to deal with querying the size of scalable types for > analysis of IR. While it has not been implemented in full, the general approach > works well for calculating offsets into structures with scalable types in a > modified version of ComputeValueVTs in our downstream compiler. > > For current IR types that have a known size, all query functions return a single > integer constant. For scalable types a second integer is needed to indicate the > number of bytes/bits which need to be scaled by the runtime multiple to obtain > the...
2018 Jun 05
14
[RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...of elements. =============== 2. Size Queries =============== This is a proposal for how to deal with querying the size of scalable types. While it has not been implemented in full, the general approach works well for calculating offsets into structures with scalable types in a modified version of ComputeValueVTs in our downstream compiler. Current IR types that have a known size all return a single integer constant. For scalable types a second integer is needed to indicate the number of bytes which need to be scaled by the runtime multiple to obtain the actual length. For primitive types, getPrimitiveSi...
2019 May 24
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...of elements. =============== 2. Size Queries =============== This is a proposal for how to deal with querying the size of scalable types. While it has not been implemented in full, the general approach works well for calculating offsets into structures with scalable types in a modified version of ComputeValueVTs in our downstream compiler. Current IR types that have a known size all return a single integer constant. For scalable types a second integer is needed to indicate the number of bytes which need to be scaled by the runtime multiple to obtain the actual length. For primitive types, getPrimitiveSi...
2016 Nov 30
2
RFC: Adding Support For Vectorcall Calling Convention
Adding Support For Vectorcall Calling Convention ===================================================== Vectorcall Calling Convention for x64 ---------------------------------------------------- The __vectorcall calling convention specifies that arguments to functions are to be passed in registers, when possible. __vectorcall uses more registers for arguments than __fastcall or the default x64
2019 May 27
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...of elements. =============== 2. Size Queries =============== This is a proposal for how to deal with querying the size of scalable types. While it has not been implemented in full, the general approach works well for calculating offsets into structures with scalable types in a modified version of ComputeValueVTs in our downstream compiler. Current IR types that have a known size all return a single integer constant. For scalable types a second integer is needed to indicate the number of bytes which need to be scaled by the runtime multiple to obtain the actual length. For primitive types, getPrimitiveSi...
2019 Jun 03
2
[EXT] Re: [RFC][SVE] Supporting SIMD instruction sets with variable vector lengths
...2. Size Queries > =============== > > This is a proposal for how to deal with querying the size of scalable types. > While it has not been implemented in full, the general approach works well > for calculating offsets into structures with scalable types in a modified > version of ComputeValueVTs in our downstream compiler. > > Current IR types that have a known size all return a single integer constant. > For scalable types a second integer is needed to indicate the number of bytes > which need to be scaled by the runtime multiple to obtain the actual length. > > For pri...