On Fri, Oct 5, 2012 at 10:28 AM, Ilya Enkovich <enkovich....@gmail.com> wrote:
> 2012/10/4 Richard Guenther <richard.guent...@gmail.com>:
>> On Wed, Oct 3, 2012 at 7:05 PM, Ilya Enkovich <enkovich....@gmail.com> wrote:
>>> Hi,
>>>
>>> I fall into ssa verification failure when try to pass field's
>>> DECL_SIZE as an operand for CALL_EXPR. The fail occurs if field's size
>>> is not a constant. In such case DECL_SIZE holds a VAR_DECL and I need
>>> to find it's proper SSA_NAME. I thought it may be the default one but
>>> gimple_default_def returns NULL. What is the right way to obtain
>>> correct ssa_name in such case?
>>
>> There is no way.  You have to know that you need it's size at the point of
>> gimplification.  Later there is no way to recover it.
>
> Wow. It means I cannot also get an address of subsequent fields in the
> structure. It looks weird. Is there a way to somehow preserve this
> information during gimplification and use in later passes?

By using it ;)  See how gimplification of COMPONENT_REF works
for example.  The offset becomes an explicit operand and its
computation get put into explicit statements.  There is no 'reverse-mapping'
to lookup or even re-construct this information at later time.

Richard.

> Ilya
>
>>
>> Richard.
>>
>>>
>>> Thanks,
>>> Ilya

Reply via email to