search for: coerce0

Displaying 13 results from an estimated 13 matches for "coerce0".

Did you mean: coerce
2015 Mar 25
2
[LLVMdev] Optimization puzzle...
...9; > target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" > target triple = "x86_64-apple-macosx10.10.0" > > ; Function Attrs: nounwind readnone ssp uwtable > define { <2 x float>, float } @_Z18sampleNullOperator5PointS_(i64 %pmin.coerce0, i32 %pmin.coerce1, i64 %pmax.coerce0, i32 %pmax.coerce1) #0 { > _ZN15SamplingClosureD1Ev.exit: > %0 = icmp sgt i32 %pmin.coerce1, %pmax.coerce1 > ret { <2 x float>, float } zeroinitializer > } > > attributes #0 = { nounwind readnone ssp uwtable &quo...
2015 Mar 25
3
[LLVMdev] Optimization puzzle...
...i64:64-f80:128-n8:16:32:64-S128" >> > target triple = "x86_64-apple-macosx10.10.0" >> > >> > ; Function Attrs: nounwind readnone ssp uwtable >> > define { <2 x float>, float } @_Z18sampleNullOperator5PointS_(i64 >> %pmin.coerce0, i32 %pmin.coerce1, i64 %pmax.coerce0, i32 %pmax.coerce1) #0 >> { >> > _ZN15SamplingClosureD1Ev.exit: >> > %0 = icmp sgt i32 %pmin.coerce1, %pmax.coerce1 >> > ret { <2 x float>, float } zeroinitializer >> > } >> > >>...
2012 Jun 13
2
[LLVMdev] Structs passed by value
...e byval %in) nounwind readonly { entry: %val = getelementptr inbounds %struct.myType* %in, i64 0, i32 0 %0 = load i64* %val, align 8, !tbaa !0 %conv = trunc i64 %0 to i32 ret i32 %conv } [ABIArgInfo::getExtend(), ABIArgInfo::getDirect(), ABIArgInfo::getExpand()] define i32 @convert(i64 %in.coerce0) nounwind readnone { entry: %conv = trunc i64 %in.coerce0 to i32 ret i32 %conv } -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120613/70b200dc/attachment.html>
2017 May 09
3
RFC: SROA for method argument
...i64, i32, i32 } define signext i32 @ppc64le_func([2 x i64] %r.coerce) #0 { entry: %r = alloca %struct.record, align 8 %0 = bitcast %struct.record* %r to [2 x i64]* store [2 x i64] %r.coerce, [2 x i64]* %0, align 8 .... for x86_64 define i32 @x86_64_func(i64 %r.coerce0, i64 %r.coerce1) #0 { entry: %r = alloca %struct.record, align 8 %0 = bitcast %struct.record* %r to { i64, i64 }* %1 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 0 store i64 %r.coerce0, i64* %1, align 8 %2 = getelementptr inbounds { i64, i64...
2016 Dec 12
0
RFC: Adding argument allocas
...markers in the right places, or byval, or any of that > sort of stuff it has to do today. > Clang's ABI lowering is part of why I don't want to pattern match alloca+store in LLVM. Today here is how we pass 'struct P { double x, y; }' on x86_64-linux: define void @f(double %p.coerce0, double %p.coerce1) #0 { entry: %p = alloca %struct.P, align 8 %0 = bitcast %struct.P* %p to { double, double }* %1 = getelementptr inbounds { double, double }, { double, double }* %0, i32 0, i32 0 store double %p.coerce0, double* %1, align 8 %2 = getelementptr inbounds { double, double }...
2012 Jun 14
0
[LLVMdev] Structs passed by value
...**** > > %0 = load i64* %val, align 8, !tbaa !0**** > > %conv = trunc i64 %0 to i32**** > > ret i32 %conv**** > > }**** > > ** ** > > [ABIArgInfo::getExtend(), ABIArgInfo::getDirect(), ABIArgInfo::getExpand()] > **** > > define i32 @convert(i64 %in.coerce0) nounwind readnone {**** > > entry:**** > > %conv = trunc i64 %in.coerce0 to i32**** > > ret i32 %conv**** > > }**** > > ** ** > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llv...
2017 Dec 05
2
[AMDGPU] Strange results with different address spaces
...rkitem.id.x() #0, !range !11 > %7 = tail call i32 @llvm.amdgcn.workgroup.id.x() #0 > %mul.i.i.i.i.i = mul nsw i32 %7, %3 > %add.i.i.i.i.i = add nsw i32 %mul.i.i.i.i.i, %6 > %idxprom.i.i.i = sext i32 %add.i.i.i.i.i to i64 > %8 = getelementptr i32, i32 addrspace(1)* %callable.coerce0, i64 %idxprom.i.i.i, !amdgpu.uniform !12, !amdgpu.noclobber !12 > > However since this depends on workitem.id <http://workitem.id/>.x, it certainly is not > > -Matt Actually you have the amdgpu.uniform annotation already here, and it isn’t added by the backend optimization pass...
2017 Dec 06
2
[AMDGPU] Strange results with different address spaces
...nelIZL12test_barrieriPPcE3$_0EEvT_': DIVERGENT: %6 = tail call i32 @llvm.amdgcn.workitem.id.x() #0, !range !11 DIVERGENT: %add.i.i.i.i.i = add nsw i32 %mul.i.i.i.i.i, %6 DIVERGENT: %idxprom.i.i.i = sext i32 %add.i.i.i.i.i to i64 DIVERGENT: %8 = getelementptr i32, i32 addrspace(1)* %callable.coerce0, i64 %idxprom.i.i.i DIVERGENT: %9 = load i32, i32 addrspace(1)* %8, align 4 DIVERGENT: %10 = getelementptr [16 x i32], [16 x i32] addrspace(3)* @"_ZN5pacxx2v213genericKernelIZL12test_barrieriPPcE3$_0EEvT__sm0", i32 0, i32 %6 DIVERGENT: store i32 %9, i32 addrspace(3)* %10, align 4 DIVER...
2016 Dec 10
3
RFC: Adding argument allocas
On Fri, Dec 9, 2016 at 1:30 PM, Friedman, Eli via llvm-dev < llvm-dev at lists.llvm.org> wrote: > On 12/9/2016 8:45 AM, Reid Kleckner wrote: > > On Thu, Dec 8, 2016 at 5:37 PM, Mehdi Amini <mehdi.amini at apple.com> wrote: > >> So IIUC basically the *only* reason for this IR change is that we don’t >> want to pattern match in debug build? >> I don't
2018 Apr 14
0
Creating a C-ABI compatible function signature with a struct
...target-specific C-ABI compatible function signature using LLVM? For example, this C-Code:     typedef struct vpt_data {         char x;         int a;         char c;         float b;     } vpt_data;         void vpt_test( vpt_data vd ) { Generates a function:     define void @vpt_test(i64 %vd.coerce0, i64 %vd.coerce1) #0 { And also packs/unpacks the structure values when calling/being called. If I create the function signature `vpt_test( vpt_data vd)` in LLVM however, it will just pass the structure as is to the function (push on stack I presume). This means I can't call any C functions t...
2017 Dec 05
3
[AMDGPU] Strange results with different address spaces
Hi dev list, I am currently exploring the integration of AMDGPU/ROCm into the PACXX project and observing some strange behavior of the AMDGPU backend. The following IR is generated for a simple address space test that copies from global to shared memory and back to global after a barrier synchronization. Here is the IR is attached as as1.ll The output is as follows: 0 0 0 0 0 0 0 0 0 0 0 0 0
2013 Apr 23
0
[LLVMdev] LLVM JIT Questions
Hi Dmitri, Regarding your first question, if you can use the MCJIT engine a caching mechanism will be available very soon. I'm preparing to commit a patch today to add this capability. I'm not sure what it would take to get something similar working with the older JIT engine. I expect it would take a fair amount of work because the older JIT engine isn't designed around object
2013 Apr 23
3
[LLVMdev] LLVM JIT Questions
Hi all, For my current project I need a couple of informations about JIT. I seen similar questions already, but the answers are a bit older and I hope somebody can provide me a recent information. 1. In my project I frequently construct LLVM IR, compile it and execute with JIT. Because the constructed IR is often the same (but can vary depending on input data) I would like to cache produced