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