search for: innerloop

Displaying 20 results from an estimated 24 matches for "innerloop".

2011 Feb 28
2
[LLVMdev] LoopInfo of a basic block
...tion? I know I can get the basic block of an instruction using inst.getParent() which returns a BasicBlock*. Now I want to use the getLoopFor(BasicBlock) method of the class LoopInfo. But I dont know how to get the LoopInfo. BasicBlock* bb = inst.getParent(); (... what should I add here?) Loop* innerloop = LI -> getLoopFor(bb): Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110228/b28f27b7/attachment.html>
2009 Dec 14
2
[LLVMdev] clang and static functions
Hi, I am trying to compile a single module (dgemm.c) using clang and generate dgemm.ll. Command: clang -emit-llvm dgemm.c -S -o dgemm.ll Some of the functions are declared as static and clang ignores these functions: One of the functions is: static void innerloop(double a, const double* b, double* c, double beta) { *b = a*beta; return; } Is there any way to make clang generate llvm code for the static functions? Thanks Sincerely Arvind -- Arvind Sudarsanam Utah State University Phone: (435) 512-7769 E-mail: theonemorpheus at gmail.com Web-site: htt...
2011 Feb 28
2
[LLVMdev] LoopInfo of a basic block
...etParent() which returns a BasicBlock*. Now I want to use the >> getLoopFor(BasicBlock) method of the class LoopInfo. >> But I dont know how to get the LoopInfo. >> >> BasicBlock* bb = inst.getParent(); >> >> (... what should I add here?) >> >> Loop* innerloop = LI -> getLoopFor(bb): >> > > Two steps: > 1) In your pass's getAnalysisUsage(), request LoopInfo. > > virtual void getAnalysisUsage(AnalysisUsage &AU) const { > AU.addRequired<LoopInfo>(); > } > > 2) In your runOnLoop() method get the analysis....
2011 Feb 28
0
[LLVMdev] LoopInfo of a basic block
...lock of an instruction using inst.getParent() which returns a BasicBlock*. Now I want to use the getLoopFor(BasicBlock) method of the class LoopInfo. > But I dont know how to get the LoopInfo. > > BasicBlock* bb = inst.getParent(); > > (... what should I add here?) > > Loop* innerloop = LI -> getLoopFor(bb): > Two steps: 1) In your pass's getAnalysisUsage(), request LoopInfo. virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<LoopInfo>(); } 2) In your runOnLoop() method get the analysis. LoopPass *LI = &getAnalysis<LoopI...
2013 Sep 27
2
[LLVMdev] Trip count and Loop Vectorizer
...n for such cases, and found that LLVM LoopVectorizer successfully vectorizes and unrolls the inner loop. However, in order to take the fast path (vmovups) it must copy at least 32 ints, where as in this case we only do an 8int copy. ** Upon closer look, LoopVectorizer obtains the TripCount for the innerloop using getSmallConstantTripCount(Loop,...). This value is 0 for the loop with unknown trip count. Loop unrolling is disabled when TC > 0. Should this be changed to TC >= 0 (which does the job for this testcase)? Or is there a better way to disable loop unrolling for such trivial loops, at leas...
2009 Dec 14
3
[LLVMdev] clang and static functions
...o compile a single module (dgemm.c) using clang and >> generate dgemm.ll. >> Command: clang -emit-llvm dgemm.c -S -o dgemm.ll >> Some of the functions are declared as static and clang ignores these >> functions: >> >> One of the functions is: >> static void innerloop(double a, const double* b, double* c, double beta) >> { >>  *b = a*beta; >>   return; >> } >> >> Is there any way to make clang generate llvm code for the static >> functions? >> >> Thanks >> Sincerely >> Arvind >> >> --...
2011 Feb 28
0
[LLVMdev] LoopInfo of a basic block
...an instruction using inst.getParent() > which returns a BasicBlock*. Now I want to use the getLoopFor(BasicBlock) > method of the class LoopInfo. > But I dont know how to get the LoopInfo. > > BasicBlock* bb = inst.getParent(); > > (... what should I add here?) > > Loop* innerloop = LI -> getLoopFor(bb): > > > Two steps: > 1) In your pass's getAnalysisUsage(), request LoopInfo. > > virtual void getAnalysisUsage(AnalysisUsage &AU) const { > AU.addRequired<LoopInfo>(); > } > > 2) In your runOnLoop() method get the analysis...
2009 Dec 14
0
[LLVMdev] clang and static functions
...Hi, > > I am trying to compile a single module (dgemm.c) using clang and > generate dgemm.ll. > Command: clang -emit-llvm dgemm.c -S -o dgemm.ll > Some of the functions are declared as static and clang ignores these > functions: > > One of the functions is: > static void innerloop(double a, const double* b, double* c, double beta) > { > *b = a*beta; > return; > } > > Is there any way to make clang generate llvm code for the static functions? > > Thanks > Sincerely > Arvind > > -- > Arvind Sudarsanam > Utah State University > Ph...
2011 Feb 28
1
[LLVMdev] LoopInfo of a basic block
...() >> which returns a BasicBlock*. Now I want to use the getLoopFor(BasicBlock) >> method of the class LoopInfo. >> But I dont know how to get the LoopInfo. >> >> BasicBlock* bb = inst.getParent(); >> >> (... what should I add here?) >> >> Loop* innerloop = LI -> getLoopFor(bb): >> >> >> Two steps: >> 1) In your pass's getAnalysisUsage(), request LoopInfo. >> >> virtual void getAnalysisUsage(AnalysisUsage &AU) const { >> AU.addRequired<LoopInfo>(); >> } >> >> 2) In...
2009 Dec 14
0
[LLVMdev] clang and static functions
...using clang and > >> generate dgemm.ll. > >> Command: clang -emit-llvm dgemm.c -S -o dgemm.ll > >> Some of the functions are declared as static and clang ignores these > >> functions: > >> > >> One of the functions is: > >> static void innerloop(double a, const double* b, double* c, double beta) > >> { > >> *b = a*beta; > >> return; > >> } > >> > >> Is there any way to make clang generate llvm code for the static > >> functions? > >> > >> Thanks > >&g...
2020 Jul 01
6
[RFC] Compiled regression tests.
...particular MDNodes with specific functions. > > > Ideally the regression test would be robust and understandable, > achievable with two asserts in a unittest: > >     Loop &OuterLoop = *LI->begin(); >     ASSERT_TRUE(OuterLoop.isAnnotatedParallel()); >     Loop &InnerLoop = *OuterLoop.begin(); >     ASSERT_TRUE(InnerLoop.isAnnotatedParallel()); I definitely agree that we should not be trying to do this kind of checking using textual metadata-node matching in FileCheck. The alternative already available is to add an analysis pass with some kind of verifier ou...
2013 Sep 27
0
[LLVMdev] Trip count and Loop Vectorizer
...such cases, and found that LLVM LoopVectorizer successfully vectorizes and unrolls the inner loop. However, in order to take the fast path (vmovups) it must copy at least 32 ints, where as in this case we only do an 8int copy. > ** Upon closer look, LoopVectorizer obtains the TripCount for the innerloop using getSmallConstantTripCount(Loop,…). This value is 0 for the loop with unknown trip count. Loop unrolling is disabled when TC > 0. Should this be changed to TC >= 0 (which does the job for this testcase)? Or is there a better way to disable loop unrolling for such trivial loops, at least...
2020 Jun 24
6
[RFC] Compiled regression tests.
Am Mi., 24. Juni 2020 um 10:12 Uhr schrieb David Blaikie <dblaikie at gmail.com>: > > As mentioned in the Differential, generating the tests automatically > > will lose information about what actually is intended to be tested, > > Agreed - and I didn't mean to suggest tests should be automatically > generated. I work pretty hard in code reviews to encourage tests to
2009 Dec 16
4
[LLVMdev] Help adding the Bullet physics sdk benchmark to the LLVM test suite?
The linux builds are not using SSE right now, but the vector data is 16-byte aligned on all platforms. So if you port this SSE code to another platform (Linux, Altivec, NEON), you could contribute it back to Bullet? The most interesting SSE part is the innerloop of the constraint solver: http://tinyurl.com/ydoapct Some developers replaced some linear algebra functions (in Bullet/LinearMath) with VFP/Neon optimizations, but haven't contributed this back. This NEON/VFP, part of the an open source iPhone project, could be a starting point for this: http:...
2013 Sep 27
2
[LLVMdev] Trip count and Loop Vectorizer
...n for such cases, and found that LLVM LoopVectorizer successfully vectorizes and unrolls the inner loop. However, in order to take the fast path (vmovups) it must copy at least 32 ints, where as in this case we only do an 8int copy. ** Upon closer look, LoopVectorizer obtains the TripCount for the innerloop using getSmallConstantTripCount(Loop,...). This value is 0 for the loop with unknown trip count. Loop unrolling is disabled when TC > 0. Should this be changed to TC >= 0 (which does the job for this testcase)? Or is there a better way to disable loop unrolling for such trivial loops, at leas...
2016 Sep 21
5
RFC: Extending LV to vectorize outerloops
...erently designed to contain a *single* basic block. This poses an issue today, as innermost loops may benefit from retaining some internal branches when vectorized. For outerloops this clearly cannot hold - the resulting vectorized loop will contain more than a single basic block as it will contain innerloops. 2. There is inherently a single vectorization candidate with a single dimension of optimization - namely the Vectorization Factor and/or Unrolling Factor of the innermost loop. When dealing with outerloops it is important to evaluate multiple vectorization candidates - including both outer and...
2016 Aug 18
2
Cost model is missing in InstCombiner
----- Original Message ----- > From: "Mehdi Amini via llvm-dev" <llvm-dev at lists.llvm.org> > To: "Shixiong Xu" <shixiong at cadence.com> > Cc: llvm-dev at lists.llvm.org > Sent: Thursday, August 18, 2016 11:05:35 AM > Subject: Re: [llvm-dev] Cost model is missing in InstCombiner > +David M. > > On Aug 17, 2016, at 3:48 AM, Shixiong Xu
2009 Dec 18
0
[LLVMdev] Help adding the Bullet physics sdk benchmark to the LLVM test suite?
...Erwin Coumans wrote: > The linux builds are not using SSE right now, but the vector data is > 16-byte aligned on all platforms. > So if you port this SSE code to another platform (Linux, Altivec, > NEON), you could contribute it back to Bullet? > The most interesting SSE part is the innerloop of the constraint > solver: http://tinyurl.com/ydoapct Sounds like a very interesting SSE test. > > Some developers replaced some linear algebra functions (in > Bullet/LinearMath) with VFP/Neon > optimizations, but haven't contributed this back. > This NEON/VFP, part of the...
2015 Sep 11
5
[RFC] New pass: LoopExitValues
Hi Steve it seems the general consensus is that the patch feels like a work-around for a problem with LSR (and possibly other loop transformations) that introduces redundant instructions. It is probably best to file a bug and a few of your test cases. Thanks Gerolf > On Sep 10, 2015, at 4:37 PM, Steve King via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > On Thu, Sep 10, 2015
2009 Dec 16
0
[LLVMdev] Help adding the Bullet physics sdk benchmark to the LLVM test suite?
Hello, Erwin > Although most of this is plain portable C++ perhaps LLVM can auto-vectorize > some of this? Well, I doubt so, unfortunately - LLVM does not have any autopar these days > There is a little bit of hand optimized x86 SSE code. This is only enabled > on 32bit Windows and Mac OSX Intel builds. Ok. What's about Linux builds? Are there any other implementations e.g.