Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] RFC: Loop distribution/Partial vectorization"
2015 Jun 12
4
[LLVMdev] Loop Vectorization and Store-Load Forwarding issue
I have been looking into this small test case (Part A) where loop vectorization is disabled due to possible store-load forwarding conflict (Part B). As you can see, due to the presence of dependence distance 2 the loop is vectorizable only for a width of 2. However, the presence of dependence distance 15 (due to y[j-15]) results in store-load forwarding issue as store packet of y[16:17] (iteration
2017 Oct 23
3
Jacobi 5 Point Stencil Code not Vectorizing
<div> </div><div> </div><div>Hello,</div><div> </div><div>To me this is an issue in llvm loop vectorizer (if N is large enough to prevent complete unrolling of j-loop).</div><div> </div><div>Woud you mind to share stencil.ll than I would say more definitely what the issue
2017 Oct 24
3
Jacobi 5 Point Stencil Code not Vectorizing
Your problem is due to GVN partial reduction elimination (PRE) which
introduces a PHI node the current loop vectorizer cannot handle:
opt -O3 stencil.ll -pass-remarks=loop-vectorize
-pass-remarks-missed=loop-vectorize
-pass-remarks-analysis=loop-vectorize
remark: <unknown>:0:0: loop not vectorized: value that could not be
identified as reduction is used outside the loop
remark:
2015 Mar 11
2
[LLVMdev] RFC: Loop versioning for LICM
> On Mar 5, 2015, at 10:33 PM, Nema, Ashutosh <Ashutosh.Nema at amd.com> wrote:
>
>
> I am about to post the patches to make LAA suitable for Loop Distribution. As you will hopefully find this will make the LAA more generic. I will cc you on the patches.
>
> Sure Adam.
>
> RuntimeCheckEmitter
> “RuntimeCheckEmitter::addRuntimeCheck”
> While creating
2017 Jul 01
3
Jacobi 5 Point Stencil Code not Vectorizing
Does it happen due to loop carried dependence? if yes what is the solution
to vectorize such codes?
please reply. i m waiting.
On Jul 1, 2017 12:30 PM, "hameeza ahmed" <hahmed2305 at gmail.com> wrote:
> I even tried polly but still my llvm IR does not contain vector
> instructions. i used the following command;
>
> clang -S -emit-llvm stencil.c -march=knl -O3
2015 Mar 04
2
[LLVMdev] RFC: Loop versioning for LICM
> On Mar 3, 2015, at 1:29 AM, Nema, Ashutosh <Ashutosh.Nema at amd.com <mailto:Ashutosh.Nema at amd.com>> wrote:
>
> Hi Adam,
>
> Thanks for looking into LoopVersioning work.
>
> I have gone through recent LoopAccessAnalysis changes and found some of the stuff
> overlaps (i.e. runtime memory check, loop access analysis etc.). LoopVersioning can
> use
2015 Mar 19
2
[LLVMdev] RFC: Loop versioning for LICM
Hi Ashutosh,
> On Mar 16, 2015, at 9:06 PM, Nema, Ashutosh <Ashutosh.Nema at amd.com> wrote:
>
> Hi Adam,
>
> From: Adam Nemet [mailto:anemet at apple.com <mailto:anemet at apple.com>]
> Sent: Wednesday, March 11, 2015 10:48 AM
> To: Nema, Ashutosh
> Cc: llvmdev at cs.uiuc.edu <mailto:llvmdev at cs.uiuc.edu>
> Subject: Re: [LLVMdev] RFC: Loop
2013 Dec 27
4
[LLVMdev] Using DependenceAnalysis::depends
Hi Preston,
Thank you for the prompt response.
You can use DependenceAnalysis to get the info you want by expensively
> testing all pairs of memory references.
Isn't all pairs testing incorrect in the sense that a pair may only exist
for a certain path? Consider the following example.
A[i] = 42; // S1
if( condition ) // C1
{
A[i] = 20; // S2
}
B[i] = A[i];
2012 Mar 15
2
[LLVMdev] Problem with LoopDependenceAnalysis
Hi,
I am using LLVM for implementing LoopFission pass.
I am using LoopPass.
I know that for checking circular dependency in loop I have to use
LoopDependenceAnalysis
This is what i want to do.
for(int i = 0; i< n ; i++){
s1 : a[i] = a[i] + x[i];
s2 : x[i] = x[i+1] + i*2 ;
}
/**there is no dependence from s2 to s1/
so after distribution(it
2015 May 09
2
[LLVMdev] about MemoryDependenceAnalysis usage
Hi,
I try to use MemoryDependenceAnalysis in a pass to analyse a simple function:
void fct (int *restrict*restrict M, int *restrict*restrict L) {
S1: M[1][1] = 1;
S2: L[2][2] = 2;
}
When I iterate over MemoryDependenceAnalysis on the S2 statement, I get the load instruction for the first depth of the array, that’s ok. But I get also the load and store for the S1 statement.
I assume the
2015 Mar 20
2
[LLVMdev] RFC: Loop versioning for LICM
> On Mar 19, 2015, at 9:46 PM, Nema, Ashutosh <Ashutosh.Nema at amd.com> wrote:
>
> Thanks Adam for your reply.
>
> From: Adam Nemet [mailto:anemet at apple.com <mailto:anemet at apple.com>]
> Sent: Friday, March 20, 2015 3:23 AM
> To: Nema, Ashutosh
> Cc: Hal Finkel; Philip Reames; llvmdev at cs.uiuc.edu <mailto:llvmdev at cs.uiuc.edu>
> Subject:
2012 Mar 15
2
[LLVMdev] Problem with LoopDependenceAnalysis
Shanmukha Rao wrote:
> I am using LLVM for implementing LoopFission pass.
> I am using LoopPass.
> I know that for checking circular dependency in loop I have to use LoopDependenceAnalysis
>
> This is what i want to do.
> for(int i = 0; i< n ; i++){
> s1 : a[i] = a[i] + x[i];
> s2 : x[i] = x[i+1] + i*2 ;
> }
>
>
2012 Oct 16
4
[LLVMdev] Loop vectorizer
----- Original Message -----
> Hi Preston!
>
> >
> > I'd start by making a plan (a design!) with goals and stuff.
> > Publish it so we can see what you mean by "vectorization".
>
> I will send a separate email later, but here is a quick overview. I
> see the vectorizer having four main components:
>
> 1. Preparation passes: If-conversion,
2012 Oct 16
2
[LLVMdev] Loop vectorizer
Nadav Rotem <nrotem at apple.com> wrote:
> I sent a patch to llvm-commit with a new loop vectorizer.
> This is a very simple loop vectorizer, but we have to start somewhere.
> With this new loop vectorizer we can already vectorize a good number of loops.
> I know that we can improve the new loop vectorizer in a number of ways.
> We can implement a precise dependence test,
>
2012 Mar 20
1
[LLVMdev] Problem with LoopDependenceAnalysis
Shanmuhka wrote:
> I looked at the sanjoys patch for SIV Test. And i figured out that this is exactly what i need.
> as the comments said, check if subscript A can possibly have the same value as B in analyseSIV(A,B)
> but i didn't get How to use this information ?
>
> lets just say in the above program
> When i use depends function it shows the dependency from load of x to
2014 Aug 12
7
[LLVMdev] Proposal for ""llvm.mem.vectorize.safelen"
Julia and OpenMP 4.0 have features where the user can bless a loop as
having no memory dependences that prevent vectorization, thus enabling
vectorization of loops not amenable to compile-time or run-time
dependence analysis. LLVM currently has no metadata to express such,
as explained further below.
I'd like to propose new metadata that enables front-ends to tell the
vectorizer that
2013 Apr 19
2
[LLVMdev] Help:- Memory dependence profiling in LLVM
-----------------
Hello,
I want to do a memory dependence profiling. Is there any freely available
implementation of memory dependence profiling implementations in LLVM
which I can modify for my own use?
Unnikrishnan C
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
2015 May 25
0
[LLVMdev] Alias-based Loop Versioning
It’s a good thought in general Adam, but I worried about following scenarios:
1) As Dibyendu already mentioned Check1 + Check2 is not very clear. If your intent is superset/union
of check1 & check2 then I’m not sure it will always help passes those needs smaller checks (i.e. loop distribution)
Every pass has a different need of runtime check, i.e. vectorizer checks each memory against all
2015 Mar 24
3
[LLVMdev] RFC: Loop versioning for LICM
> On Mar 20, 2015, at 8:02 PM, Nema, Ashutosh <Ashutosh.Nema at amd.com> wrote:
>
> > Yes, this is what I was proposing above and here ;):
> Thanks Adam it’s for confirming J
NP :).
>
> > No, not hasLoopInvariantStore but hasAccessToLoopInvariantAddress.
> Its only for invariant stores[not loads], Using ‘hasLoopInvariantStore’ (or a name with invariant store)
2015 May 11
2
[LLVMdev] about MemoryDependenceAnalysis usage
add -basicaa to your command line :)
On Mon, May 11, 2015 at 7:15 AM, Willy WOLFF <willy.mh.wolff at gmail.com> wrote:
> I play a bit more with MemoryDependenceAnalysis by wrapping my pass, and
> call explicitely BasicAliasAnalysis. Its still using No Alias Analysis.
>
> How can I let MemoryDependenceAnalysis use BasicAliasAnalysis?
>
> Please, find attached my pass.
>