aboutsummaryrefslogtreecommitdiff
path: root/gcc/stmt.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-11-16 02:26:42 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-11-15 21:26:42 -0500
commitd43e0b7d97d527f3913f692d19748e66f5b9ff22 (patch)
tree559b4a2b278854a13608de391b2050da30ac4881 /gcc/stmt.c
parentf50e7a2d92218d935970483c33c61c8566840f6b (diff)
downloadgcc-d43e0b7d97d527f3913f692d19748e66f5b9ff22.zip
gcc-d43e0b7d97d527f3913f692d19748e66f5b9ff22.tar.gz
gcc-d43e0b7d97d527f3913f692d19748e66f5b9ff22.tar.bz2
expr.c (store_field): Pass tree instead of max size; callers changed.
* expr.c (store_field): Pass tree instead of max size; callers changed. Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns. * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * expmed.c: Remove ALIGN arg from calls to compare_from_rtx, compare_rtx_and_jump, and emit_cmp_jump_insns. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes. * config/clipper/clipper.c, config/h8300/h8300.c: Likewise. * config/i386/i386.c,config/mips/mips.c: Likewise. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. * emit-rtl.c (change_address): Fix typo in default alignment. (adjust_address_1): Use mode of NEW, not MODE, when setting size. * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. * rtl.h (REGNO_PTR_FRAME_P): New macro. * expr.c (store_field): Pass tree instead of max size; callers changed. Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns. * explow.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/d30v/d30v.c: Reflect above changes. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * ada/trans.c, ada/utils2.c: Remove PALIGN parameter to get_inner_reference. From-SVN: r47078
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r--gcc/stmt.c48
1 files changed, 21 insertions, 27 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 3f940e3..52ae097 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2197,9 +2197,7 @@ expand_expr_stmt (exp)
emit_cmp_and_jump_insns (last_expr_value, last_expr_value, EQ,
expand_expr (TYPE_SIZE (last_expr_type),
NULL_RTX, VOIDmode, 0),
- BLKmode, 0,
- TYPE_ALIGN (last_expr_type) / BITS_PER_UNIT,
- lab);
+ BLKmode, 0, lab);
emit_label (lab);
}
}
@@ -5645,20 +5643,16 @@ do_jump_if_equal (op1, op2, label, unsignedp)
rtx op1, op2, label;
int unsignedp;
{
- if (GET_CODE (op1) == CONST_INT
- && GET_CODE (op2) == CONST_INT)
+ if (GET_CODE (op1) == CONST_INT && GET_CODE (op2) == CONST_INT)
{
if (INTVAL (op1) == INTVAL (op2))
emit_jump (label);
}
else
- {
- enum machine_mode mode = GET_MODE (op1);
- if (mode == VOIDmode)
- mode = GET_MODE (op2);
- emit_cmp_and_jump_insns (op1, op2, EQ, NULL_RTX, mode, unsignedp,
- 0, label);
- }
+ emit_cmp_and_jump_insns (op1, op2, EQ, NULL_RTX,
+ (GET_MODE (op1) == VOIDmode
+ ? GET_MODE (op2) : GET_MODE (op1)),
+ unsignedp, label);
}
/* Not all case values are encountered equally. This function
@@ -6101,7 +6095,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
label_rtx (node->right->code_label));
emit_case_nodes (index, node->left, default_label, index_type);
}
@@ -6114,7 +6108,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- LT, NULL_RTX, mode, unsignedp, 0,
+ LT, NULL_RTX, mode, unsignedp,
label_rtx (node->left->code_label));
emit_case_nodes (index, node->right, default_label, index_type);
}
@@ -6133,7 +6127,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
label_rtx (test_label));
/* Value must be on the left.
@@ -6168,7 +6162,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- LT, NULL_RTX, mode, unsignedp, 0,
+ LT, NULL_RTX, mode, unsignedp,
default_label);
}
@@ -6201,7 +6195,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
default_label);
}
@@ -6244,7 +6238,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
label_rtx (node->right->code_label));
else
{
@@ -6258,7 +6252,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
label_rtx (test_label));
}
@@ -6270,7 +6264,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->low, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GE, NULL_RTX, mode, unsignedp, 0,
+ GE, NULL_RTX, mode, unsignedp,
label_rtx (node->code_label));
/* Handle the left-hand subtree. */
@@ -6301,7 +6295,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->low, NULL_RTX,
VOIDmode, 0),
unsignedp),
- LT, NULL_RTX, mode, unsignedp, 0,
+ LT, NULL_RTX, mode, unsignedp,
default_label);
}
@@ -6313,7 +6307,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- LE, NULL_RTX, mode, unsignedp, 0,
+ LE, NULL_RTX, mode, unsignedp,
label_rtx (node->code_label));
emit_case_nodes (index, node->right, default_label, index_type);
@@ -6331,7 +6325,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
default_label);
}
@@ -6343,7 +6337,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->low, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GE, NULL_RTX, mode, unsignedp, 0,
+ GE, NULL_RTX, mode, unsignedp,
label_rtx (node->code_label));
emit_case_nodes (index, node->left, default_label, index_type);
@@ -6365,7 +6359,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->high, NULL_RTX,
VOIDmode, 0),
unsignedp),
- GT, NULL_RTX, mode, unsignedp, 0,
+ GT, NULL_RTX, mode, unsignedp,
default_label);
}
@@ -6377,7 +6371,7 @@ emit_case_nodes (index, node, default_label, index_type)
expand_expr (node->low, NULL_RTX,
VOIDmode, 0),
unsignedp),
- LT, NULL_RTX, mode, unsignedp, 0,
+ LT, NULL_RTX, mode, unsignedp,
default_label);
}
else if (!low_bound && !high_bound)
@@ -6399,7 +6393,7 @@ emit_case_nodes (index, node, default_label, index_type)
NULL_RTX, mode, 0);
emit_cmp_and_jump_insns (new_index, new_bound, GT, NULL_RTX,
- mode, 1, 0, default_label);
+ mode, 1, default_label);
}
emit_jump (label_rtx (node->code_label));