aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-07-16 14:13:08 -0700
committerRichard Henderson <rth@gcc.gnu.org>2004-07-16 14:13:08 -0700
commitd25cee4d2b1a7c4f387a47c4163d8f7c241f2a1c (patch)
treea6887d7a4c296d5e39f29a2367845311f7100e89 /gcc/tree-sra.c
parent4c86f32571913801c3e876d2621ef74adce3fdbc (diff)
downloadgcc-d25cee4d2b1a7c4f387a47c4163d8f7c241f2a1c.zip
gcc-d25cee4d2b1a7c4f387a47c4163d8f7c241f2a1c.tar.gz
gcc-d25cee4d2b1a7c4f387a47c4163d8f7c241f2a1c.tar.bz2
tree-def (WITH_SIZE_EXPR): New.
* tree-def (WITH_SIZE_EXPR): New. * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR. * expr.c (expand_expr_real_1): Likewise. * gimplify.c (maybe_with_size_expr): New. (gimplify_arg, gimplify_modify_expr): Use it. (gimplify_modify_expr_to_memcpy): Take size parameter. (gimplify_modify_expr_to_memset): Likewise. (gimplify_expr): Handle WITH_SIZE_EXPR. * tree-alias-common.c (find_func_aliases): Likewise. * tree-eh.c (tree_could_trap_p): Likewise. (tree_could_throw_p): Likewise. * tree-gimple.c (is_gimple_lvalue): Likewise. (get_call_expr_in): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. (expand_calls_inline): Likewise. * tree-nested.c (convert_call_expr): Likewise. * tree-pretty-print.c (dump_generic_node): Likewise. * tree-sra.c (sra_walk_expr): Likewise. * tree-ssa-alias.c (add_pointed_to_expr): Likewise. * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * tree-tailcall.c (find_tail_calls): Likewise. * calls.c (expand_call): Reset old_stack_allocated after calling emit_stack_restore. * gcc.c-torture/compile/20020210-1.c: Remove XFAIL. From-SVN: r84833
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 423ee3c..73866b4 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -731,6 +731,11 @@ sra_walk_expr (tree *expr_p, block_stmt_iterator *bsi, bool is_output,
type other than the one we've scalarized. */
goto use_all;
+ case WITH_SIZE_EXPR:
+ /* This is a transparent wrapper. The entire inner expression really
+ is being used. */
+ goto use_all;
+
use_all:
expr_p = &TREE_OPERAND (inner, 0);
inner = expr = *expr_p;