This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Fix a couple of VEC_reserve uses, speed up update_ssa a bit
On Fri, Aug 10, 2012 at 12:20 AM, Steven Bosscher <stevenb.gcc@gmail.com> wrote:
> On Fri, Aug 10, 2012 at 12:15 AM, Richard Henderson <rth@redhat.com> wrote:
>> On 08/09/2012 03:06 PM, Steven Bosscher wrote:
>>> + unsigned old_len = name_to_id ? VEC_length (unsigned, name_to_id) : 0;
>>> + VEC_reserve (unsigned, heap, name_to_id, num_ssa_names - old_len);
>>
>> VEC_length already handles NULL input.
>
> I didn't know that. Consider that hunk changed to this:
>
> Index: tree-ssa-pre.c
> ===================================================================
> --- tree-ssa-pre.c (revision 190267)
> +++ tree-ssa-pre.c (working copy)
> @@ -249,7 +249,8 @@ alloc_expression_id (pre_expr expr)
> /* VEC_safe_grow_cleared allocates no headroom. Avoid frequent
> re-allocations by using VEC_reserve upfront. There is no
> VEC_quick_grow_cleared unfortunately. */
> - VEC_reserve (unsigned, heap, name_to_id, num_ssa_names);
> + unsigned old_len = VEC_length (unsigned, name_to_id);
> + VEC_reserve (unsigned, heap, name_to_id, num_ssa_names - old_len);
> VEC_safe_grow_cleared (unsigned, heap, name_to_id, num_ssa_names);
> gcc_assert (VEC_index (unsigned, name_to_id, version) == 0);
> VEC_replace (unsigned, name_to_id, version, expr->id);
Ok with that change.
Thanks,
Richard.