This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][MIDDLE-END] Tuplification of matrix-reorg.c


On Tue, Jul 29, 2008 at 13:58, Doug Kwan (關振紱) <dougkwan@google.com> wrote:

> 2008-07-28  Doug Kwan  <dougkwan@google.com>
>
>        * gcc/matrix-reorg.c (File): Re-enable all code.
>        (struct malloc_call_data): Change CALL_STMT to gimple type.
>        (collect_data_for_malloc_call): Tuplify.
>        (struct access_site_info): Change STMT to gimple type.
>        (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
>        and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
>        (struct free_info): Change STMT to gimple type.
>        (struct matrix_access_phi_node):  Change PHI to gimple type.
>        (get_inner_of_cast_expr): Remove.
>        (may_flatten_matrices_1): Tuplify.
>        (may_flatten_matrices): Ditto.
>        (mark_min_matrix_escape_level): Ditto.
>        (ssa_accessed_in_tree): Refactor statement RHS related code into ...
>        (ssa_accessed_in_call_rhs): New
>        (ssa_accessed_in_assign_rhs): New
>        (record_access_alloc_site_info): Tuplify.
>        (add_allocation_site): Ditto.
>        (analyze_matrix_allocation_site): Ditto.
>        (analyze_transpose): Ditto.
>        (get_index_from_offset): Ditto.
>        (update_type_size): Ditto.
>        (analyze_accesses_for_call_expr): Tuplify and renamed into ...
>        (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
>        (analyze_accesses_for_phi_node): Tuplify.
>        (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
>        (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
>        (analyze_matrix_accesses): Tuplify.
>        (check_var_data): New call-back type for check_var_notmodified_p.
>        (check_var_notmodified_p): Tuplify and use call-back struct to
>        return statement found.
>        (can_calculate_expr_before_stmt): Factor out statement related code
>        into ...
>        (can_calculate_stmt_before_stmt): New.
>        (check_allocation_function): Tuplify.
>        (find_sites_in_func): Ditto.
>        (record_all_accesses_in_func): Ditto.
>        (transform_access_sites): Ditto.
>        (transform_allocation_sites): Ditto.
>        (matrix_reorg): Re-enable.
>        (gate_matrix_reorg): Re-enable.

It looks OK.  When I worked on it briefly, the only stumbling
block had been the walk_tree callback that needs the additional
structure to return a gimple statement and the removal of
get_inner_of_cast_expr.  The rest was fairly mechanical.

Only a couple of formatting nits.

> +
> +static void
> +ssa_accessed_in_assign_rhs (gimple stmt, struct ssa_acc_in_tree *a)
> +{

Needs comment.

> +/* Go backwards in the use-def chains and find out the expression
> +   represented by the possible SSA name in EXPR, until it is composed
> +   of only VAR_DECL, PARM_DECL and INT_CST.  In case of phi nodes
> +   we make sure that all the arguments represent the same subexpression,
> +   otherwise we fail.  */
> +static tree

Blank line after comment.

If Razya has other issues to address, we can do it once the patch
is committed.  For now, I'd rather get those failures fixed.


Thanks.  Diego.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]