On Wed, Jul 05, 2017 at 01:19:27PM +0300, Maxim Ostapenko wrote:
> But won't we need to replace all alloca uses manually in this case? E.g. to
> change str.1_18 value to _27?
> 
>   str.1_18 = __builtin_alloca_with_align (_16, 256);
>   *str.1_18[index_19(D)] ={v} 49;
> 
> to
> 
>   _26 = __builtin_alloca_with_align (_25, 256);
>   _27 = _26 + 32;
>   __builtin___asan_alloca_poison (_27, _16);
>   last_alloca_addr.4_32 = _26;
>   str.1_18 = _27;
>   *str.1_18[index_19(D)] ={v} 49;

You could do that, e.g. using replace_uses_by.

Or you could save the lhs from the old __builtin_alloca*,
gimple_call_set_lhs to a new SSA_NAME, use that in the following stmt and
use the old lhs as the lhs of that.  If needed update SSA_NAME_DEF_STMT
(lhs) if the functions don't do it for you (but I think they should).

Anyway, this is not a strong requirement, the most important is to
fix the comments, then move the replace_call_with_value call, the rest
is just try if it works and if it doesn't, keep what you have.

        Jakub

Reply via email to