Variable DECL_SIZE
Richard Guenther
richard.guenther@gmail.com
Fri Oct 5 09:41:00 GMT 2012
On Fri, Oct 5, 2012 at 10:28 AM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
> 2012/10/4 Richard Guenther <richard.guenther@gmail.com>:
>> On Wed, Oct 3, 2012 at 7:05 PM, Ilya Enkovich <enkovich.gnu@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
More information about the Gcc
mailing list