Hi,

On Tue, Jun 21, 2011 at 05:12:40PM +0200, Richard Guenther wrote:
> 
> This is the middle-end pieces, without the C/C++ frontend changes.
> Enough to work on the Fortran parts.
> 
> Doesn't even break bootstrap.
> 
> Richard.
> 
> 2008-04-11  Richard Guenther  <rguent...@suse.de>
> 
>       * builtin-attrs.def (ATTR_COVARIANTRETURN): Add.
>       (ATTR_NOTHROW_TYPEGENERIC): Likewise.
>       (ATTR_NOTHROW_TYPEGENERIC_COVARIANTRETURN): Likewise.
>       * builtins.def (BUILT_IN_ARRAY_SELECT): New builtin function.
>       (BUILT_IN_ARRAY_STORE): Likewise.
>       (BUILT_IN_ARRAY_IDX): Likewise.
>       (BUILT_IN_ARRAY_RIDX): Likewise.
>       (BUILT_IN_ARRAY_DELTA): Likewise.
>       * gimplify.c (internal_get_tmp_var): Mark array temporaries
>       as gimple register.
>       (gimple_add_tmp_var): Do not require constant size for array
>       temporaries.
>       (maybe_with_size_expr): Do not wrap VLA_VIEW_EXPR or VLA_RIDX_EXPR
>       inside WITH_SIZE_EXPR.
>       (get_array_arg_type): New helper function.
>       (vla_to_vla_view_expr): Likewise.
>       (lower_builtin_array_expr): Helper for gimplifying array builtins
>       to VLA tree expressions.
>       (gimplify_call_expr): Call it.
>       (gimplify_modify_expr): Do not wrap copies of array temporaries
>       inside WITH_SIZE_EXPR.  Do not lower copies of array temporaries
>       to memcpy calls.
>       (gimplify_expr): Handle VLA_VIEW_EXPR, VLA_IDX_EXPR, VLA_RIDX_EXPR
>       and VLA_DELTA_EXPR.
>       * tree-gimple.c (is_gimple_formal_tmp_rhs): Allow VLA_IDX_EXPR,
>       VLA_RIDX_EXPR and VLA_DELTA_EXPR.
>       (is_gimple_lvalue): Allow VLA_VIEW_EXPR.
>       (is_gimple_reg_type): Allow arrays.
>       (is_gimple_reg): Likewise.
>       * cfgexpand.c (estimated_stack_frame_size): Gimple registers do
>       not consume stack space.
>       * tree-cfg.c (verify_gimple_expr): Handle WITH_SIZE_EXPR,
>       VLA_VIEW_EXPR, VLA_IDX_EXPR, VLA_RIDX_EXPR and VLA_DELTA_EXPR.
>       * tree-inline.c (estimate_num_insns_1): Handle VLA_IDX_EXPR
>       and VLA_RIDX_EXPR.  Treat VLA_VIEW_EXPR and VLA_DELTA_EXPR
>       as expensive as OMP stuff.
>       * tree-pretty-print.c (dump_generic_node): Handle VLA_VIEW_EXPR,
>       VLA_IDX_EXPR, VLA_RIDX_EXPR and VLA_DELTA_EXPR.
>       * tree.def (VLA_VIEW_EXPR): New tree code.
>       (VLA_IDX_EXPR): Likewise.
>       (VLA_RIDX_EXPR): Likewise.
>       (VLA_DELTA_EXPR): Likewise.
>       * tree-ssa-operands.c (get_expr_operands): Handle them all.
>       * tree-ssa-sccvn.c (visit_use): Handle only calls like calls.
>       * tree-ssa-sink.c (is_hidden_global_store): VLA_VIEW_EXPR is one.
>       * ipa-pure-const.c (check_tree): Look int VLA_VIEW_EXPRs VLA
>       argument.
>       * tree-dfa.c (refs_may_alias_p): Allow VLA_VIEW_EXPR.
>       * tree-sra.c (maybe_lookup_element_for_expr): Make sure to
>       not scalarize arrays used in VLA_VIEW_EXPR.
>       (sra_walk_expr): Likewise.

It probably does not matter but the tree-sra hunks were not included
in the patch.

Martin

Reply via email to