[llvm-commits] Updated pointer-vector patch

Hal Finkel hfinkel at anl.gov
Tue Nov 29 14:47:53 PST 2011


On Tue, 2011-11-29 at 14:31 -0800, Nick Lewycky wrote:
> On 29 November 2011 01:37, Duncan Sands <baldrick at free.fr> wrote:
>         Hi Nick,
>         
>         > To elaborate, the comment was that the only pointer types we
>         should
>         > allow are those which would let us load the vector and
>         produce a legal
>         > vector type.
>         
>         
>         presumably i8** would be a valid vector element type.  This
>         means that
>         vector GEP may need more than one index.
> 
> 
> No, only single-pointers for now but if there's a use case for them
> they can be added. It means that someone who wants to use gather
> operations to pointer-chase through multiple linked list nodes in
> parallel will need to use a inttoptr between each load. Somehow I'm
> okay with that. :)

As I've discussed with Nadav, I feel that these multi-index vector GEPs
should be supported for completeness, and scalarized, just like we do
with other vector instructions without target support. Specifically,
this means adding code to SelectionDAGBuilder::visitGetElementPtr that
is similar to the code in SelectionDAG::UnrollVectorOp (or suitably
extending UnrollVectorOp and then calling it from visitGetElementPtr). I
am planning to do the work for this addition once the basic
pointer-vector infrastructure is in place.

 -Hal

> 
> 
> Nick
> 
> 
>         Ciao, Duncan.
>         _______________________________________________
>         llvm-commits mailing list
>         llvm-commits at cs.uiuc.edu
>         http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory




More information about the llvm-commits mailing list