[llvm-commits] Updated pointer-vector patch

Nick Lewycky nicholas at mxc.ca
Sun Dec 4 20:43:45 PST 2011


Rotem, Nadav wrote:
>
>
> Hi Nick,
>
> Thank you for the detailed code review. I went over it carefully and
> made the corrections you requested. I added all of the testcases that
> you mentioned, as well as a few other tests. I added basic unit tests
> for the functions you requested. I fixed several optimizations which
> assumed that the GEP pointer operand is a pointer (go figure). I fixed
> getPointerOperandType, and added Type::getNumElements. I checked the cpp
> backend and it works. I don’t plan to add vector-load as part of this
> patch because I think that it will require lots of codegen work.

Yes, thanks. It would also require re-verifying all of llvm for places 
that assume loads can only operate on pointers. That is going to be a 
very time-consuming cleanup.

> GetPointerBaseWithConstantOffset does not crash, but also does not
> implement the vector offset functionality. I prefer to improve
> vector-gep optimizations in future patches. There are a few users who
> are looking forward to start using this feature, and I am sure that they
> will help in ironing out the last few bugs.

Yep! I don't want to spend time working on optimizations for the new 
type until after it's landed, but I do want to make sure that the 
existing code will work with it.


+  PointerType *PtrTy = dyn_cast<PointerType>(Ops[0]->getType());
+  // The GEP pointer operand is not a pointer, its a vector of pointers.
+  if (!PtrTy)
+    return 0;

Typo: "its" -> "it's".

LGTM, please commit!

Nick



More information about the llvm-commits mailing list