Displaying 4 results from an estimated 4 matches for "virtual_write".
2011 Jul 19
2
[LLVMdev] speculative parallelization in LLVM
...e (cond1){
while(cond2){
p=p->next;
}
}
to introduce virtual iterators of the enclosing loops, i and j , and replace the
accesses inside the loop with virtual accesses that have the form a*i + b*j + c
%1 = polly.virtual_read() !polly !" {a1*i + b1*j + c1}"
polly.virtual_write(%ptr) !polly !" {a2*i + b2*j + c2}"
Next at runtime it will be easier to change the virtual accesses to the original
pointers, and to compute the values to the coefficients a1, b1 ... to check if
they follow the linearity. I perform dynamic instrumentation to compute the
coefficie...
2011 Jul 20
0
[LLVMdev] speculative parallelization in LLVM
...=p->next;
> }
> }
>
>
> to introduce virtual iterators of the enclosing loops, i and j , and
> replace the accesses inside the loop with virtual accesses that have the
> form a*i + b*j + c
>
> %1 = polly.virtual_read() !polly !" {a1*i + b1*j + c1}"
> polly.virtual_write(%ptr) !polly !" {a2*i + b2*j + c2}"
> Next at runtime it will be easier to change the virtual accesses to the
> original pointers, and to compute the values to the coefficients a1, b1
> ... to check if they follow the linearity. I perform dynamic
> instrumentation to compute t...
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
...of the accesses are hidden and Polly only
gets the information, that this access acts like an access to a virtual
array.
Describing this virtual accesses by using some kind of intrinsics
combined with meta data may be possible.
%1 = polly.virtual_read() !polly !"{A[i][2j][3k]}"
polly.virtual_write(%ptr) !polly !"{A[i][2j][3k]}"
Like this you can simply transform your linked list into virtual
accesses, and Polly generates the code that executes these accesses,
and at the end you replace them with the actual code.
(The definition of this is far from complete and the example above...
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