Displaying 4 results from an estimated 4 matches for "virtual_read".
Did you mean:
virtual_readme
2011 Jul 19
2
[LLVMdev] speculative parallelization in LLVM
...with some parametric linear functions.
For instance:
while (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 linearit...
2011 Jul 20
0
[LLVMdev] speculative parallelization in LLVM
...; For instance:
>
> while (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...
2011 Jul 19
0
[LLVMdev] speculative parallelization in LLVM
...parse some kind of virtual
accesses, were the details 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 defin...
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