search for: venkataramanan

Displaying 20 results from an estimated 20 matches for "venkataramanan".

2020 Sep 01
3
Vectorization of math function failed?
Hi, > On Sep 1, 2020, at 10:26, Venkataramanan Kumar via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi Alexandre, > > On Tue, 1 Sep, 2020, 2:21 pm Alexandre Bique, <bique.alexandre at gmail.com <mailto:bique.alexandre at gmail.com>> wrote: > On Tue, Sep 1, 2020 at 9:07 AM Venkataramanan Kumar > <ve...
2020 Sep 15
2
Vectorization of math function failed?
Hi Venkat., Did you make progress with libmvec? Is there a chance that it lands into clang 11? Regards, Alexandre Bique On Tue, Sep 1, 2020 at 11:50 AM Venkataramanan Kumar <venkataramanan.kumar.llvm at gmail.com> wrote: > > Hi Florian, > > On Tue, 1 Sep, 2020, 3:11 pm Florian Hahn, <florian_hahn at apple.com> wrote: >> >> Hi, >> >> On Sep 1, 2020, at 10:26, Venkataramanan Kumar via llvm-dev <llvm-dev at lists.l...
2020 Sep 01
2
Vectorization of math function failed?
On Tue, Sep 1, 2020 at 9:07 AM Venkataramanan Kumar <venkataramanan.kumar.llvm at gmail.com> wrote: > Hi Alexandre, Hi Venkataramanan, > I am not sure if we can generate vector calls to GlibC libmvec. Is the support for libmvec on the roadmap? If not how to add it? > ./clang --autocomplete=-fveclib= This is amazing, thank y...
2018 Sep 19
2
Regarding Dependence distance dump
On Wed, Sep 19, 2018 at 4:58 AM Venkataramanan Kumar < venkataramanan.kumar.llvm at gmail.com> wrote: > Hi, > > I tired to see when this behavior changed in LLVM. > It seems to start from. > --snip-- > commit 95e5d37d5868ebde2302bc302c1e0af407c5646d > Author: Sebastian Pop <sebpop at gmail.com> > Date: Tue...
2019 Nov 15
2
TBAA question
What are you querying the alias analysis on in the above example - between the load and store? How are you creating your MemoryLocation for those too? On Fri, Nov 15, 2019 at 6:03 AM Venkataramanan Kumar via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Can someone please clarify me on this? > > > > On Wed, 13 Nov 2019 at 22:25, Venkataramanan Kumar < > venkataramanan.kumar.llvm at gmail.com> wrote: > >> Hi, >> >> I have the following LLV...
2018 Sep 18
2
Regarding Dependence distance dump
Hi, For the below test case, I need the dependence distance between the array references "a[j][i]" and "a[j-1][i-2]". --Snip-- int a[5][5]; int b[10]; void test() { for (int j=1;j<5;j++) for (int i=2;i<5;i++) { a[j][i] = 3.0; b[i]= a[j-1][i-2] ; } } --Snip-
2019 Nov 13
2
TBAA question
Hi, I have the following LLVM IR. ----Snip--- %1 = getelementptr inbounds %struct._X, %struct._X* %0, i64 0, i32 3 %2 = load %struct._X*, %struct._X** %1, align 8, !tbaa !10 .... ..... ....... %3 = bitcast %struct._Y** %1 to i8** store i8* null, i8** %3, align 8, !tbaa !9 !9 = !{!7, !7, i64 0} !7 = !{!"omnipotent char", !8, i64 0} !8 = !{!"Simple C/C++ TBAA"} ----Snip----
2019 Nov 28
2
Question on TBAA and optimization
TBAA Question. Please consider the following test case. ---Snip-- struct B { int b1; int b2; }; struct C { int b1; }; struct A { int a1; struct C SC; int a2; }; int foo1(struct A * Aptr, struct B* Bptr) { int *a = &Aptr->SC.b1; *a=10; Bptr->b1 = 11; return *a; } int foo2(struct A * Aptr, struct B* Bptr) { Aptr->SC.b1=10; Bptr->b1 = 11; return
2019 Jul 08
4
Question on Aliasing and invariant load hoisting
Hi, I have the below test case. --snip-- struct st { int a; int b; }; int * ptr; int x,y; void bar(int *x); void foo() { struct st obj; bar(&obj.b); if(x) obj.a =x; else obj.a =y; for (int i=0; i<obj.a;i++) ptr[i]=i; } --snip-- LLVM IR produced at -O3 is shown below. ref: https://godbolt.org/z/WPlmfr --Snip-- %8 = getelementptr inbounds %struct.st,
2019 Apr 04
3
EuroLLVM Numerics info
Hi Micheal, Thanks for the blog post. Just like to point out few things that I thought is related to FP Numerics. LLVM could do some additional transformation with "sqrt" and "division" under fast math on X86 like 1/sqrt(x)* 1/sqrt(x) to 1/x. These are long latency instructions and could get benefit if enabled under unsafe math. Also are we considering doing such FP
2020 Sep 01
2
Vectorization of math function failed?
I've tried to do: clang++ -O3 -march=native -mtune=native \ -Rpass=loop-vectorize,slp-vectorize -Rpass-missed=loop-vectorize,slp-vectorize -Rpass-analysis=loop-vectorize,slp-vectorize \ -ffast-math -ffp-model=fast -ffp-exception-behavior=ignore -ffp-contract=fast \ -c -o vec.o vec.cc But I've got no feedback. -- Alexandre Bique
2018 Jul 02
8
[RFC][VECLIB] how should we legalize VECLIB calls?
...hat question needs to be answered by someone else. > >   > > Adding Michael and Hal. > >   > >   > > *From:*Sanjay Patel [mailto:spatel at rotateright.com] > *Sent:* Monday, July 02, 2018 11:49 AM > *To:* Saito, Hideki <hideki.saito at intel.com> > *Cc:* Venkataramanan Kumar <venkataramanan.kumar.llvm at gmail.com>; > llvm-dev at lists.llvm.org; Masten, Matt <matt.masten at intel.com>; > dccitaliano at gmail.com > *Subject:* Re: [llvm-dev] [RFC][VECLIB] how should we legalize VECLIB > calls? > >   > > It may not be a full solut...
2018 Jul 02
2
[RFC][VECLIB] how should we legalize VECLIB calls?
...at *a, int i); > > > > … > > > > #pragma omp simd > > for(i) { // this loop could be vectorized with VF that’s > wider than widest available vector function for foo(). > … > foo(a, i) > … > > } > > > > *From:* Venkataramanan Kumar [mailto:venkataramanan.kumar.llvm at gmail.com] > *Sent:* Sunday, July 01, 2018 11:38 PM > *To:* Sanjay Patel <spatel at rotateright.com> > *Cc:* Saito, Hideki <hideki.saito at intel.com>; llvm-dev at lists.llvm.org; > Masten, Matt <matt.masten at intel.com>; dcc...
2018 May 30
0
Help on finding Base GEP
You can run SCEV which will see through bitcasts and GEPs, so it should give an expression of the form (base + offset) on the pointer of the load. Cheers siddharth On Wed 30 May, 2018, 16:30 Venkataramanan Kumar via llvm-dev, < llvm-dev at lists.llvm.org> wrote: > Hi, > > Below is the snippet of LLVM IR code generated by Flang > > ---snip-- > %3 = getelementptr i64, i64* %"a$sd", i64 11, !dbg !16 > %4 = bitcast i64* %3 to i32*, !dbg !16 > %5 = load i32,...
2018 May 30
2
Help on finding Base GEP
Hi, Below is the snippet of LLVM IR code generated by Flang ---snip-- %3 = getelementptr i64, i64* %"a$sd", i64 11, !dbg !16 %4 = bitcast i64* %3 to i32*, !dbg !16 %5 = load i32, i32* %4, align 4, !dbg !16, !tbaa !22 ---snip-- My requirement is for any such LoadInst (example: %5), I want to check if its base GEP (i.e. %3) loads at particular offset (11) from its corresponding
2018 May 30
1
Help on finding Base GEP
...ion to subtract the expression for the base descriptor from the expression for the loaded pointer and see if the result is a SCEVConstant. Also, you might find GetPointerBaseWithConstantOffset (in ValueTracking.h) useful.  -Hal > > Cheers > siddharth > > On Wed 30 May, 2018, 16:30 Venkataramanan Kumar via llvm-dev, > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > Hi,  > > Below is the snippet of  LLVM IR code generated by Flang   > > ---snip-- >   %3 = getelementptr i64, i64* %"a$sd", i64 11, !dbg !1...
2020 Jun 19
2
Aliasing and forwarding optimization
----Snip-- struct st1{ int a; }; struct st2{ int b; }; struct st { struct st1 obj1; struct st2 obj2; }Obj; int test1(struct st1 * ptr1 , struct st2 * ptr2, struct st2 *ptr3) { ptr1->a = 10; *ptr3 = *ptr2; return ptr1->a; } --Snip--- For the above case GCC is able to store forward the value 10 to the return place. LLVM is not doing this. GCC https://godbolt.org/z/FCjCXy LLVM
2018 Apr 25
0
Help on understanding assume shape array processing and array descriptors in LLVM IR
Hello, I believe these descriptors are specific to flang, not to LLVM. You should probably ask your question on flang-dev list. Thank you, --Eugene From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Venkataramanan Kumar via llvm-dev Sent: Wednesday, April 25, 2018 8:44 AM To: llvm-dev at lists.llvm.org Subject: [llvm-dev] Help on understanding assume shape array processing and array descriptors in LLVM IR Hi, I am trying to understand how assume shaped arrays are received and processed in LLVM IR. I am us...
2018 Apr 25
2
Help on understanding assume shape array processing and array descriptors in LLVM IR
Hi, I am trying to understand how assume shaped arrays are received and processed in LLVM IR. I am using "flang" for my front end. There seems to be an array descriptor received as implicit argument for every assume shaped array. For my test routine: ---snip-- SUBROUTINE test(a,b,Li,Lj,Istr,Iend,Jstr,Jend) INTEGER, INTENT(IN) :: Li,Lj INTEGER, INTENT(IN) :: Istr, Iend,
2018 Jul 02
2
[RFC][VECLIB] how should we legalize VECLIB calls?
Adding to Ashutosh's comments, We are also interested in making LLVM generate vector math library calls that are available with glibc (version > 2.22). reference: https://sourceware.org/glibc/wiki/libmvec Using the example case given in the reference, we found there are 2 vector versions for "sin" (4 X double) with same VF namely _ZGVcN4v_sin (avx) version and _ZGVdN4v_sin