diff options
author | Michael Matz <matz@gcc.gnu.org> | 2009-11-24 15:37:32 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2009-11-24 15:37:32 +0000 |
commit | a5883ba0de68efad36db145e75c86394d8bd44ea (patch) | |
tree | b906ae87996cd4f2fdf60f2a50c3cbf838d510f2 /gcc/expr.c | |
parent | 6e0b03f5855ae33c0e25d723c5cfc0f2dbc6698f (diff) | |
download | gcc-a5883ba0de68efad36db145e75c86394d8bd44ea.zip gcc-a5883ba0de68efad36db145e75c86394d8bd44ea.tar.gz gcc-a5883ba0de68efad36db145e75c86394d8bd44ea.tar.bz2 |
tree.h (union tree_ann_d): Don't declare.
* tree.h (union tree_ann_d): Don't declare.
(tree_base): Remove ann field.
(struct var_ann_d): Declare forward.
(tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
(DECL_VAR_ANN_PTR): New macro.
* tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
accept only VAR, PARM or RESULT decls.
(create_tree_common_ann): Remove.
(remove_referenced_var): Use DECL_VAR_ANN_PTR.
* tree-eh.c (lookup_expr_eh_lp): Remove.
* tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
DECL_VAR_ANN_PTR.
(ann_type, tree_common_ann, get_tree_common_ann): Remove.
* tree-flow.h (enum tree_ann_type): Remove.
(struct tree_ann_common_d): Remove.
(struct var_ann_d): Remove common field.
(union tree_ann_d): Remove.
(tree_ann_t, tree_ann_common_t): Remove typedefs.
(tree_common_ann, get_tree_common_ann, ann_type,
create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
* tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
* tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
* builtins.c (expand_builtin_memcpy): Use
currently_expanding_gimple_stmt instead of tree annotation.
(expand_builtin_memset_args): Ditto.
* cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
(expand_call_stmt): Don't set tree annotation.
(expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
* expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
* gimple.h (currently_expanding_gimple_stmt): Declare.
From-SVN: r154502
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 29 |
1 files changed, 1 insertions, 28 deletions
@@ -7157,8 +7157,7 @@ rtx expand_expr_real (tree exp, rtx target, enum machine_mode tmode, enum expand_modifier modifier, rtx *alt_rtl) { - int lp_nr = 0; - rtx ret, last = NULL; + rtx ret; /* Handle ERROR_MARK before anybody tries to access its type. */ if (TREE_CODE (exp) == ERROR_MARK @@ -7168,13 +7167,6 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode, return ret ? ret : const0_rtx; } - if (flag_non_call_exceptions) - { - lp_nr = lookup_expr_eh_lp (exp); - if (lp_nr) - last = get_last_insn (); - } - /* If this is an expression of some kind and it has an associated line number, then emit the line number before expanding the expression. @@ -7201,25 +7193,6 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode, ret = expand_expr_real_1 (exp, target, tmode, modifier, alt_rtl); } - /* If using non-call exceptions, mark all insns that may trap. - expand_call() will mark CALL_INSNs before we get to this code, - but it doesn't handle libcalls, and these may trap. */ - if (lp_nr) - { - rtx insn; - for (insn = next_real_insn (last); insn; - insn = next_real_insn (insn)) - { - if (! find_reg_note (insn, REG_EH_REGION, NULL_RTX) - /* If we want exceptions for non-call insns, any - may_trap_p instruction may throw. */ - && GET_CODE (PATTERN (insn)) != CLOBBER - && GET_CODE (PATTERN (insn)) != USE - && insn_could_throw_p (insn)) - make_reg_eh_region_note (insn, 0, lp_nr); - } - } - return ret; } |