> >> > In final value replacement, expression "&a + D.xxxx" can be > figured > >> out, > >> > while "&a[i_xxx]" failed to be CHRECed, so I'm wondering if we > should > >> > lower > >> > &a[i_xxx] to "&a + unitsize(a) * i_xxx" first? It seems GCC > intends > >> to > >> > keep > >> > &a[i_xxx] until cfgexpand pass.
Richard, Thanks a lot for your explanation! Any comments for this question as well? Does GCC intends to keep &a[i] until expand pass? Any special reason? If I change CHREC algorithm, I see ivopt would have done this lowering, so we wouldn't see &a[i] in expand pass. Any hurt? Thanks, -Jiangning