search for: virtual_writ

Displaying 4 results from an estimated 4 matches for "virtual_writ".

Did you mean: 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 coeffici...
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...
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