diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-29 15:47:54 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-29 15:47:54 +0000 |
commit | 81bdf64f2035b8979549fc533915ea17d429dc9f (patch) | |
tree | 69e2b47b22500339535d6f5f37e3fca2350d4f3a /gcc/expr.c | |
parent | 7f1c23c2e7981438c251121d85cf5d807b9a4f5d (diff) | |
download | gcc-81bdf64f2035b8979549fc533915ea17d429dc9f.tar.gz |
2008-07-29 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r138226 [after tuple merge into trunk]
some compiler probe stuff are missing
* gcc/compiler-probe.h: more gimple, less tree
* gcc/compiler-probe.c: incomplete merge.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@138247 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 47 |
1 files changed, 8 insertions, 39 deletions
diff --git a/gcc/expr.c b/gcc/expr.c index e7c24e2b838..4984780fe32 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -6539,9 +6539,6 @@ safe_from_p (const_rtx x, tree exp, int top_p) case tcc_type: /* Should never get a type here. */ gcc_unreachable (); - - case tcc_gimple_stmt: - gcc_unreachable (); } /* If we have an rtl, find any enclosed object. Then see if we conflict @@ -7048,8 +7045,7 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode, /* Handle ERROR_MARK before anybody tries to access its type. */ if (TREE_CODE (exp) == ERROR_MARK - || TREE_CODE (exp) == PREDICT_EXPR - || (!GIMPLE_TUPLE_P (exp) && TREE_CODE (TREE_TYPE (exp)) == ERROR_MARK)) + || (TREE_CODE (TREE_TYPE (exp)) == ERROR_MARK)) { ret = CONST0_RTX (tmode); return ret ? ret : const0_rtx; @@ -7057,7 +7053,8 @@ expand_expr_real (tree exp, rtx target, enum machine_mode tmode, if (flag_non_call_exceptions) { - rn = lookup_stmt_eh_region (exp); + rn = lookup_expr_eh_region (exp); + /* If rn < 0, then either (1) tree-ssa not used or (2) doesn't throw. */ if (rn >= 0) last = get_last_insn (); @@ -7131,18 +7128,9 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, type) \ : (expr)) - if (GIMPLE_STMT_P (exp)) - { - type = void_type_node; - mode = VOIDmode; - unsignedp = 0; - } - else - { - type = TREE_TYPE (exp); - mode = TYPE_MODE (type); - unsignedp = TYPE_UNSIGNED (type); - } + type = TREE_TYPE (exp); + mode = TYPE_MODE (type); + unsignedp = TYPE_UNSIGNED (type); ignore = (target == const0_rtx || ((code == NOP_EXPR || code == CONVERT_EXPR @@ -9090,16 +9078,6 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, tree lhs = TREE_OPERAND (exp, 0); tree rhs = TREE_OPERAND (exp, 1); gcc_assert (ignore); - expand_assignment (lhs, rhs, false); - return const0_rtx; - } - - case GIMPLE_MODIFY_STMT: - { - tree lhs = GIMPLE_STMT_OPERAND (exp, 0); - tree rhs = GIMPLE_STMT_OPERAND (exp, 1); - - gcc_assert (ignore); /* Check for |= or &= of a bitfield of size one into another bitfield of size 1. In this case, (unless we need the result of the @@ -9358,17 +9336,8 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode, case VEC_PACK_TRUNC_EXPR: case VEC_PACK_SAT_EXPR: case VEC_PACK_FIX_TRUNC_EXPR: - { - mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))); - goto binop; - } - - case OMP_ATOMIC_LOAD: - case OMP_ATOMIC_STORE: - /* OMP expansion is not run when there were errors, so these codes - can get here. */ - gcc_assert (errorcount != 0); - return NULL_RTX; + mode = TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))); + goto binop; default: return lang_hooks.expand_expr (exp, original_target, tmode, |