Displaying 2 results from an estimated 2 matches for "phi_ind".
Did you mean:
hi_in
2013 Oct 21
0
[LLVMdev] First attempt at recognizing pointer reduction
...3>
I think the right approach to get examples like this is that we need to recognize strided pointer inductions (we only support strides by one currently).
Basically we need to be able to see
phi_ptr = phi double*
phi_ptr = gep phi_ptr, 2
and make a canonical induction variable out of this
phi_ind = phi 0, phi_ind
ptr = gep ptr_val_from_outside_loop, 2*phi_ind
phi_ind = add, phi_ind, 1
(of course virtually).
Or in other words:
for (i++)
*ptr++ =
*ptr++ =
has to look like
for (i++)
ptr[2*i] =
ptr[2*i+1] =
to us when we are vectorizing this.
Thanks,
Arnold
On Oct 21, 2013, at 10:23 AM...
2013 Oct 21
5
[LLVMdev] First attempt at recognizing pointer reduction
Hi Nadav, Arnold,
I managed to find some time to work on the pointer reduction, and I got a
patch that can make "canVectorize()" pass.
Basically what I do is to teach AddReductionVar() about pointers, saying
they don't really have an exit instructions, and that (maybe) the final
store is a good candidate (is it?).
This makes it recognize the writes and reads, but then