[llvm-dev] Indices for extractvalue and insertvalue
Xin Tong via llvm-dev
llvm-dev at lists.llvm.org
Tue Jan 3 09:18:14 PST 2017
That makes sense.
Then it seems to me that there is some unclearness about what the
language ref says, i.e.
extractvalue indices work in a similar manner as indices for
getelementptr, and what the the compiler supports (extractvalue
indices are unsigned or smaller while getelementptr indices can be
What would be the problem if we make extractvalue and insertvalue use
uint64_t indices, other than the compiler potentially uses a bit more
On Tue, Jan 3, 2017 at 8:45 AM, Reid Kleckner <rnk at google.com> wrote:
> I think originally insertvalue / extractvalue were only intended to work on
> struct values. LLVM struct types can have up to 2**32 element types, and the
> insertvalue/extractvalue indices match that.
> I hope people aren't actually trying to load a >4GB array and hoping to do
> something good with it.
> On Mon, Jan 2, 2017 at 2:01 PM, Xin Tong via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Can someone explain to me why we cant use uint64_t for extractvalue
>> and insertvalue indices, while GEP on arrays can have indices of any
>> integer type. Basically if I load an array with UINT_MAX+O (O>=2)
>> elements, I can not extract its last element.
>> Given this restriction I feel we have a bug here (uint64_t is passed
>> as a unsigned). This cant happen because of the if (NumElements >
>> 1024) guard, but its a bug anyways.
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
More information about the llvm-dev