[PATCH] [Stage1] Refactor tree-ssa-operands.c
Richard Biener
richard.guenther@gmail.com
Thu Apr 23 09:17:45 GMT 2020
On Wed, Apr 22, 2020 at 8:40 PM Giuliano Belinassi
<giuliano.belinassi@usp.br> wrote:
>
> This patch refactors tree-ssa-operands.c by wrapping the global
> variables into a class, and also removes unused code.
>
> Just sending this for when Stage1 is back again.
>
> I ran the testsuite and bootstraped in a x86_64 linux machine and
> found no issues.
First of all thanks for doing this. I have a few editorial suggestions
about the class setup - first the name build_virtual_operands is
badly chosen, I prefer operand_scanner. Second I suggest to
have the CTOR take the invariants as arguments which is the
stmt we operate on and its containing function. Thus,
operand_scanner (function *, gimple *);
which makes passing those down functions unnecessary.
Since build_vuses is now a member and allocated for each stmt
which would be a regression I'd suggest to use an auto_vec
with some pre-allocated storage, thus change it to
auto_vec<tree *, 16> build_uses;
that also makes the destructor trivial (please simply remove
cleanup_build_arrays). I guess there's further possibilities
for streamlining the initialization/teardown process but that's
better done as followup.
Otherwise the change looks OK to me.
Thanks,
Richard.
> gcc/ChangeLog:
> 2020-04-22 Giuliano Belinassi <giuliano.belinassi@usp.br>
>
> * tree-ssa-operands.c (build_virtual_operands): New class.
> (operands_bitmap_obstack): Remove.
> (n_initialized): Remove.
> (build_uses): Move to build_virtual_operands class.
> (build_vuse): Same as above.
> (build_vdef): Same as above.
> (verify_ssa_operands): Same as above.
> (finalize_ssa_uses): Same as above.
> (cleanup_build_arrays): Same as above.
> (finalize_ssa_stmt_operands): Same as above.
> (start_ssa_stmt_operands): Same as above.
> (append_use): Same as above.
> (append_vdef): Same as above.
> (add_virtual_operand): Same as above.
> (add_stmt_operand): Same as above.
> (get_mem_ref_operands): Same as above.
> (get_tmr_operands): Same as above.
> (maybe_add_call_vops): Same as above.
> (get_asm_stmt_operands): Same as above.
> (get_expr_operands): Same as above.
> (parse_ssa_operands): Same as above.
> (finalize_ssa_defs): Same as above.
> (build_ssa_operands): Same as above, plus create a C-like wrapper.
> (update_stmt_operands): Create an instance of build_virtual_operands.
More information about the Gcc-patches
mailing list