[llvm-dev] getelementptr

Anastasiya Ruzhanskaya via llvm-dev llvm-dev at lists.llvm.org
Sat Sep 2 03:53:58 PDT 2017


Is there a way to set always a defined behavior here - for example that we
will always one getelemntptr with complex index?

2017-09-02 12:53 GMT+02:00 Anastasiya Ruzhanskaya <
anastasiya.ruzhanskaya at frtk.ru>:

> Ok, thank you. I have also one question about getelementptr. In different
> versions of clang I see that sometimes array[i][i] is preceded by two
> getelementptr instructions and sometimes only by one - with an already
> complex index.
>
> 2017-09-01 12:50 GMT+02:00 David Chisnall <David.Chisnall at cl.cam.ac.uk>:
>
>> On 1 Sep 2017, at 11:44, Anastasiya Ruzhanskaya via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>> >
>> > Hello,
>> > I wonder if the getelementptr can have other successors than load,
>> store in some other cases when I directly print or directly return the
>> result. every time I would like to assign the result - it will have a
>> load/store successor?
>> > So, basically the overall question is to clarify the possible
>> successors of getelementptr.
>>
>> Any instruction that may take a pointer operand might be a user of a
>> GEP.  For example, consider this C function:
>>
>> int x(struct S *s)
>> {
>>         y(&s->field);
>> }
>>
>> Here, there will be a GEP to get the address of the field and then the
>> user will be a call (or possibly invoke) instruction.
>>
>> David
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170902/5f21ef1a/attachment.html>


More information about the llvm-dev mailing list