-
Notifications
You must be signed in to change notification settings - Fork 35
Description
Hello,
Under the same circumstances as my previous issue (self ported llvm 15), I'm running into an issue in the computeGepOffset function in DsaLocal.cc. Perlbench from the SPEC 2006 benchmarking suite contains some vectors (e.g. <2 x %struct.xrv*>) which are passed to the computeGepOffset function. Here an assert triggers as the operand is a vector and not a pointer.
I see there is support for handling pointers to vectors as the operand of a gep instruction. However executing a gep on a vector has a different effect, the gep is executed on each individual element of the vector.
I assume that to correctly handle these the vector should effectively be split into their separate elements and then handled individually.
Perhaps a branch can be inserted in the visitGetElementInstruction(...) function that handles vectors separately from the regular geps?
However, supporting this would necessitate the support of both extractelement and insertelement.
Are there plans to support vectors in the future? Or do you know of a workaround?
Is there perhaps a way to simply drop these pointers and claim they may point to anything? (just to get rolling again)
Thanks!