diff options
author | Richard Henderson <rth@redhat.com> | 2004-08-10 21:16:07 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-08-10 21:16:07 -0700 |
commit | 1a186ec5586436555a30227776d75c2516fd5911 (patch) | |
tree | e57fc8a325147e3d2f9c065e1b28d63cdcb6c70a /gcc/tree-nested.c | |
parent | 89f1a7022ee2b62d67948797837c2a683bfa4995 (diff) | |
download | gcc-1a186ec5586436555a30227776d75c2516fd5911.zip gcc-1a186ec5586436555a30227776d75c2516fd5911.tar.gz gcc-1a186ec5586436555a30227776d75c2516fd5911.tar.bz2 |
builtins.def (BUILT_IN_STACK_ALLOC): Remove.
* builtins.def (BUILT_IN_STACK_ALLOC): Remove.
* builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
* dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
(add_location_or_const_value_attribute): ... not here. Use
loc_descriptor_from_tree if possible.
(loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
values specially.
(loc_descriptor_from_tree): New. Update callers.
* expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
* gimplify.c (gimplify_decl_expr): Lower variable sized types to
pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
(gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
and BUILT_IN_STACK_RESTORE.
(gimplify_expr): Lower DECL_VALUE_EXPR decls.
* stmt.c (expand_stack_alloc): Remove.
* tree-mudflap.c (mx_register_decls): Don't look for
BUILT_IN_STACK_ALLOC.
* tree-nested.c (convert_local_reference): Likewise.
* tree.h (DECL_VALUE_EXPR): New.
ada/
* utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
add __builtin_alloca.
fortran/
* f95-lang.c (gfc_init_builtin_functions): Remove
__builtin_stack_alloc, add __builtin_alloca.
* trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
* trans-decl.c (gfc_trans_auto_character_variable): Likewise.
From-SVN: r85794
Diffstat (limited to 'gcc/tree-nested.c')
-rw-r--r-- | gcc/tree-nested.c | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index e884260..7ae506e 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -855,7 +855,7 @@ convert_local_reference (tree *tp, int *walk_subtrees, void *data) { struct walk_stmt_info *wi = data; struct nesting_info *info = wi->info; - tree t = *tp, field, x, y; + tree t = *tp, field, x; switch (TREE_CODE (t)) { @@ -909,40 +909,6 @@ convert_local_reference (tree *tp, int *walk_subtrees, void *data) } break; - case CALL_EXPR: - *walk_subtrees = 1; - - /* Ready for some fun? We need to recognize - __builtin_stack_alloc (&x, n) - and insert - FRAME.x = &x - after that. X should have use_pointer_in_frame set. We can't - do this any earlier, since we can't meaningfully evaluate &x. */ - - x = get_callee_fndecl (t); - if (!x || DECL_BUILT_IN_CLASS (x) != BUILT_IN_NORMAL) - break; - if (DECL_FUNCTION_CODE (x) != BUILT_IN_STACK_ALLOC) - break; - t = TREE_VALUE (TREE_OPERAND (t, 1)); - if (TREE_CODE (t) != ADDR_EXPR) - abort (); - t = TREE_OPERAND (t, 0); - if (TREE_CODE (t) != VAR_DECL) - abort (); - field = lookup_field_for_decl (info, t, NO_INSERT); - if (!field) - break; - if (!use_pointer_in_frame (t)) - abort (); - - x = build_addr (t); - y = get_frame_field (info, info->context, field, &wi->tsi); - x = build (MODIFY_EXPR, void_type_node, y, x); - SET_EXPR_LOCUS (x, EXPR_LOCUS (tsi_stmt (wi->tsi))); - tsi_link_after (&wi->tsi, x, TSI_SAME_STMT); - break; - case REALPART_EXPR: case IMAGPART_EXPR: case COMPONENT_REF: |