Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] speculative parallelization in LLVM"
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
On 07/18/2011 07:03 PM, Jimborean Alexandra wrote:
> Hi,
>
> I plan to do some speculative parallelization in LLVM using Polly and I
> target loops that contain pointers and indirect references. As far as I
> know, Polly generates optimized code starting from the SCoPs, therefore
> I plan to replace all pointer accesses with array accesses, such that
> Polly will accept the
2011 Jul 19
4
[LLVMdev] speculative parallelization in LLVM
Hi Tobi,
Thank you for your reply :).
I know that array accesses are handled as pointers in LLVM, but as I understood
Polly is focused on statically analysable code. As you mentioned: proving that
pointer accesses actually represent virtual array accesses.
In the case of a linked list for example, parsed with a pointer p = p->next, I
expect that Polly will not handle this code. So I
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
On 19 July 2011 10:12, Jimborean Alexandra <xinfinity_a at yahoo.com> wrote:
> %curr_array = alloca [10 x %struct.linked], align 8
>
> while..
> %tmp16 = getelementptr inbounds [10 x %struct.linked]* %curr_array, i32 0,
> i32 1
Hi Alexandra,
Can you guarantee that the linked list will be allocated in contiguous memory?
cheers,
--renato
2011 Jul 19
3
[LLVMdev] speculative parallelization in LLVM
Hi Renato,
No, I cannot, but in case it is, I want to take advantage of this. In case it is
not, the instrumentation code will detect this at runtime and simply roll back
to the original version. I will always keep an original version available, in
addition to the ones I modify with Polly. However, initially I will speculate
that it is allocated contiguously.
Thanks,
Alexandra
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
On 07/19/2011 11:46 AM, Jimborean Alexandra wrote:
> Hi Renato,
>
> No, I cannot, but in case it is, I want to take advantage of this. In
> case it is not, the instrumentation code will detect this at runtime and
> simply roll back to the original version. I will always keep an original
> version available, in addition to the ones I modify with Polly. However,
> initially I
2011 Sep 08
4
[LLVMdev] multi-threading in llvm
Hi,
I want to execute the iterations of a loop in parallel, by inserting calls either to pthreads or to the gomp library at the LLVM IR level. As a first step, I inserted an omp pragma in a C file and compiled it with llvm-gcc to check the generated LLVM code. If I understand correctly, to parallelize the loop in LLVM IR, I have to separate the loop in a new function, put all required parameters
2011 Sep 12
4
[LLVMdev] multi-threading in llvm
On 09/12/2011 04:28 PM, Sebastian Pop wrote:
> Hi Alexandra,
>
> On Thu, Sep 8, 2011 at 13:53, Jimborean Alexandra<xinfinity_a at yahoo.com> wrote:
>> I had a look at the CodeGeneration from Polly. Is it possible to use it
>> without creating the Scops, by transforming it into a LoopPass?
>
> Yes. If you don't want to use the autopar of Polly and just rely on
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
On 07/19/2011 11:12 AM, Jimborean Alexandra wrote:
> Hi Tobi,
>
> Thank you for your reply :).
>
> I know that array accesses are handled as pointers in LLVM, but as I
> understood Polly is focused on statically analysable code. As you
> mentioned: proving that pointer accesses actually represent virtual
> array accesses.
>
[...]
>
> Is this approach going to work
2011 Sep 12
0
[LLVMdev] multi-threading in llvm
Hi Alexandra,
On Thu, Sep 8, 2011 at 13:53, Jimborean Alexandra <xinfinity_a at yahoo.com> wrote:
> I had a look at the CodeGeneration from Polly. Is it possible to use it
> without creating the Scops, by transforming it into a LoopPass?
Yes. If you don't want to use the autopar of Polly and just rely on
the pragmas inserted by the programmer, you don't need SCoPs.
You can
2011 Sep 12
0
[LLVMdev] multi-threading in llvm
Hi Alexandra,
I don't know much, maybe this topic should be bridged with polly-dev
(adding it to CC) to bring it more attention.
Indeed, polly uses ScopPass, that creates serious limitations in
compatibility with other passes. To my understanding, scops are used
because ISL loop analysis tool uses scops. In fact, just for handling
OpenMP directives scops are not required, unless one need to
2011 Jul 19
2
[LLVMdev] speculative parallelization in LLVM
This is exactly want I need to achieve with Polly actually. I think a good idea
would be to define intrinsics / metadata, as you mentioned, to notify Polly that
even though it cannot analyse these accesses, to ignore them and perform the
code transformations. We can go even further and maybe describe these accesses
with some parametric linear functions.
For instance:
while (cond1){
2011 Sep 12
0
[LLVMdev] multi-threading in llvm
Thanks for your ideas.
Polly looked interesting as it seems it has already introduced the basic support for OpenMP that I need. But indeed, it seems difficult to apply the same code on a regular LLVM loop, instead of a SCoP.
What I am working on is speculative parallelism, so I cannot provide the SCoPs required by Polly. I analyze the loops and try to parallelize them speculatively at the LLVM
2012 Jul 04
3
[LLVMdev] OpenMP/autopar support in LLVM
Hi
I wanted to know the status of OpenMP (or in general auto parallelization) support in
LLVM.
I read some threads discussing about possible effort in that direction in 3.1 onwards,
but did not see any further discussion on that.
If someone in the list knows the updated info or can point me to any useful info,
that would be useful.
Thanks
Regards
Prakash Raghavendra
-------------- next part
2011 Sep 12
2
[LLVMdev] multi-threading in llvm
On 09/12/2011 05:28 PM, Jimborean Alexandra wrote:
> Thanks for your ideas.
>
> Polly looked interesting as it seems it has already introduced the basic
> support for OpenMP that I need. But indeed, it seems difficult to apply
> the same code on a regular LLVM loop, instead of a SCoP.
>
> What I am working on is speculative parallelism, so I cannot provide the
> SCoPs
2011 Jul 20
3
[LLVMdev] print the memory address computed by getelementptr
Hi,
I want to print the memory locations computed by getelementptr. As I understood,
getelementptr does not access the memory, but it contains the address it
computes. I want to print these addresses at runtime (or process them). So, I
try to build a function that takes as argument a pointer and prints its value.
And to call this function, by sending the gep instruction as a parameter.
2011 Jul 27
3
[LLVMdev] scalar evolution to determine access functions in arays
Hello,
How can I compute the functions on the loop iterators used as array indices?
For example:
for i = 0, N
for j = 0, M
A[2*i + j - 10] = ...
Can I obtain that this instruction A[2*i + j - 10]= .. always accesses memory using a function f(i,j) = 2*i + j - 10 + base_address_of_A
If I run the scalar evolution pass on this code I obtain:
%arrayidx =
2011 Aug 03
2
[LLVMdev] scalar evolution to determine access functions in arays
Only because in my next passes I change the CFG significantly and it is very hard to maintain the values of the Phi nodes.
Alexandra
________________________________
From: Tobias Grosser <tobias at grosser.es>
To: Jimborean Alexandra <xinfinity_a at yahoo.com>
Cc: "llvmdev at cs.uiuc.edu" <llvmdev at cs.uiuc.edu>; "luismastrangelo at gmail.com"
2012 Jul 04
0
[LLVMdev] OpenMP/autopar support in LLVM
On 07/04/2012 10:35 AM, Raghavendra, Prakash wrote:
> Hi
>
> I wanted to know the status of OpenMP (or in general auto
> parallelization) support in
>
> LLVM.
>
> I read some threads discussing about possible effort in that direction
> in 3.1 onwards,
>
> but did not see any further discussion on that.
>
> If someone in the list knows the updated info or can
2011 Aug 03
0
[LLVMdev] scalar evolution to determine access functions in arays
On 07/27/2011 03:11 PM, Jimborean Alexandra wrote:
> Hello,
>
> How can I compute the functions on the loop iterators used as array
> indices?
>
> For example:
>
> for i = 0, N
> for j = 0, M
> A[2*i + j - 10] = ...
>
> Can I obtain that this instruction A[2*i + j - 10]= .. always accesses
> memory using a function f(i,j) = 2*i + j - 10 + base_address_of_A
2011 Jul 20
0
[LLVMdev] print the memory address computed by getelementptr
On 7/20/11 10:02 AM, Jimborean Alexandra wrote:
> Hi,
>
> I want to print the memory locations computed by getelementptr. As I
> understood, getelementptr does not access the memory, but it contains
> the address it computes. I want to print these addresses at runtime
> (or process them). So, I try to build a function that takes as
> argument a pointer and prints its