mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 05:10:27 +08:00
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
This commit is contained in:
parent
f50e7a2d92
commit
d43e0b7d97
@ -29,18 +29,21 @@ Thu Nov 15 17:57:48 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
* 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.
|
||||
* 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/d30v/d30v.c: Reflect above changes.
|
||||
* 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.
|
||||
|
||||
|
@ -1462,7 +1462,7 @@ expand_builtin_mathfn (exp, target, subtarget)
|
||||
/* Test the result; if it is NaN, set errno=EDOM because
|
||||
the argument was not in the domain. */
|
||||
emit_cmp_and_jump_insns (target, target, EQ, 0, GET_MODE (target),
|
||||
0, 0, lab1);
|
||||
0, lab1);
|
||||
|
||||
#ifdef TARGET_EDOM
|
||||
{
|
||||
|
@ -2538,8 +2538,7 @@ alpha_emit_floatuns (operands)
|
||||
i1 = gen_reg_rtx (DImode);
|
||||
f0 = gen_reg_rtx (mode);
|
||||
|
||||
emit_cmp_and_jump_insns (in, const0_rtx, LT, const0_rtx, DImode, 0,
|
||||
8, neglab);
|
||||
emit_cmp_and_jump_insns (in, const0_rtx, LT, const0_rtx, DImode, 0, neglab);
|
||||
|
||||
emit_insn (gen_rtx_SET (VOIDmode, out, gen_rtx_FLOAT (mode, in)));
|
||||
emit_jump_insn (gen_jump (donelab));
|
||||
|
@ -616,7 +616,7 @@ clipper_va_arg (valist, type)
|
||||
OPTAB_LIB_WIDEN),
|
||||
GEN_INT (2), GE, const0_rtx,
|
||||
TYPE_MODE (TREE_TYPE (num_field)),
|
||||
TREE_UNSIGNED (num_field), 0, false_label);
|
||||
TREE_UNSIGNED (num_field), false_label);
|
||||
|
||||
inreg = fold (build (MULT_EXPR, integer_type_node, num_field,
|
||||
build_int_2 (2, 0)));
|
||||
|
@ -2839,8 +2839,8 @@ expand_a_rotate (code, operands)
|
||||
|
||||
/* If the rotate amount is less than or equal to 0,
|
||||
we go out of the loop. */
|
||||
emit_cmp_and_jump_insns (rotate_amount, GEN_INT (0),
|
||||
LE, NULL_RTX, QImode, 0, 0, end_label);
|
||||
emit_cmp_and_jump_insns (rotate_amount, GEN_INT (0), LE, NULL_RTX,
|
||||
QImode, 0, end_label);
|
||||
|
||||
/* Initialize the loop counter. */
|
||||
emit_move_insn (counter, rotate_amount);
|
||||
@ -2857,8 +2857,8 @@ expand_a_rotate (code, operands)
|
||||
|
||||
/* If the loop counter is non-zero, we go back to the beginning
|
||||
of the loop. */
|
||||
emit_cmp_and_jump_insns (counter, GEN_INT (0),
|
||||
NE, NULL_RTX, QImode, 1, 0, start_label);
|
||||
emit_cmp_and_jump_insns (counter, GEN_INT (0), NE, NULL_RTX, QImode, 1,
|
||||
start_label);
|
||||
|
||||
emit_label (end_label);
|
||||
}
|
||||
|
@ -2444,7 +2444,7 @@ ix86_va_arg (valist, type)
|
||||
(gpr, NULL_RTX, SImode, EXPAND_NORMAL),
|
||||
GEN_INT ((REGPARM_MAX - needed_intregs +
|
||||
1) * 8), GE, const1_rtx, SImode,
|
||||
1, 1, lab_false);
|
||||
1, lab_false);
|
||||
}
|
||||
if (needed_sseregs)
|
||||
{
|
||||
@ -2453,7 +2453,7 @@ ix86_va_arg (valist, type)
|
||||
GEN_INT ((SSE_REGPARM_MAX -
|
||||
needed_sseregs + 1) * 16 +
|
||||
REGPARM_MAX * 8), GE, const1_rtx,
|
||||
SImode, 1, 1, lab_false);
|
||||
SImode, 1, lab_false);
|
||||
}
|
||||
|
||||
/* Compute index to start of area used for integer regs. */
|
||||
@ -8971,7 +8971,7 @@ ix86_expand_aligntest (variable, value)
|
||||
else
|
||||
emit_insn (gen_andsi3 (tmpcount, variable, GEN_INT (value)));
|
||||
emit_cmp_and_jump_insns (tmpcount, const0_rtx, EQ, 0, GET_MODE (variable),
|
||||
1, 0, label);
|
||||
1, label);
|
||||
return label;
|
||||
}
|
||||
|
||||
@ -9138,7 +9138,7 @@ ix86_expand_movstr (dst, src, count_exp, align_exp)
|
||||
{
|
||||
label = gen_label_rtx ();
|
||||
emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1),
|
||||
LEU, 0, counter_mode, 1, 0, label);
|
||||
LEU, 0, counter_mode, 1, label);
|
||||
}
|
||||
if (align <= 1)
|
||||
{
|
||||
@ -9334,7 +9334,7 @@ ix86_expand_clrstr (src, count_exp, align_exp)
|
||||
{
|
||||
label = gen_label_rtx ();
|
||||
emit_cmp_and_jump_insns (countreg, GEN_INT (UNITS_PER_WORD - 1),
|
||||
LEU, 0, counter_mode, 1, 0, label);
|
||||
LEU, 0, counter_mode, 1, label);
|
||||
}
|
||||
if (align <= 1)
|
||||
{
|
||||
@ -9540,11 +9540,11 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
NULL_RTX, 0, OPTAB_WIDEN);
|
||||
|
||||
emit_cmp_and_jump_insns (align_rtx, const0_rtx, EQ, NULL,
|
||||
Pmode, 1, 0, align_4_label);
|
||||
Pmode, 1, align_4_label);
|
||||
emit_cmp_and_jump_insns (align_rtx, GEN_INT (2), EQ, NULL,
|
||||
Pmode, 1, 0, align_2_label);
|
||||
Pmode, 1, align_2_label);
|
||||
emit_cmp_and_jump_insns (align_rtx, GEN_INT (2), GTU, NULL,
|
||||
Pmode, 1, 0, align_3_label);
|
||||
Pmode, 1, align_3_label);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -9555,7 +9555,7 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
NULL_RTX, 0, OPTAB_WIDEN);
|
||||
|
||||
emit_cmp_and_jump_insns (align_rtx, const0_rtx, EQ, NULL,
|
||||
Pmode, 1, 0, align_4_label);
|
||||
Pmode, 1, align_4_label);
|
||||
}
|
||||
|
||||
mem = gen_rtx_MEM (QImode, out);
|
||||
@ -9564,7 +9564,7 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
|
||||
/* Compare the first n unaligned byte on a byte per byte basis. */
|
||||
emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL,
|
||||
QImode, 1, 0, end_0_label);
|
||||
QImode, 1, end_0_label);
|
||||
|
||||
/* Increment the address. */
|
||||
if (TARGET_64BIT)
|
||||
@ -9577,8 +9577,8 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
{
|
||||
emit_label (align_2_label);
|
||||
|
||||
emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL,
|
||||
QImode, 1, 0, end_0_label);
|
||||
emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL, QImode, 1,
|
||||
end_0_label);
|
||||
|
||||
if (TARGET_64BIT)
|
||||
emit_insn (gen_adddi3 (out, out, const1_rtx));
|
||||
@ -9588,8 +9588,8 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
emit_label (align_3_label);
|
||||
}
|
||||
|
||||
emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL,
|
||||
QImode, 1, 0, end_0_label);
|
||||
emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL, QImode, 1,
|
||||
end_0_label);
|
||||
|
||||
if (TARGET_64BIT)
|
||||
emit_insn (gen_adddi3 (out, out, const1_rtx));
|
||||
@ -9618,8 +9618,8 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
|
||||
emit_insn (gen_andsi3 (tmpreg, tmpreg,
|
||||
GEN_INT (trunc_int_for_mode
|
||||
(0x80808080, SImode))));
|
||||
emit_cmp_and_jump_insns (tmpreg, const0_rtx, EQ, 0,
|
||||
SImode, 1, 0, align_4_label);
|
||||
emit_cmp_and_jump_insns (tmpreg, const0_rtx, EQ, 0, SImode, 1,
|
||||
align_4_label);
|
||||
|
||||
if (TARGET_CMOVE)
|
||||
{
|
||||
|
@ -4590,8 +4590,8 @@ mips_va_arg (valist, type)
|
||||
/* Emit code to branch if foff == 0. */
|
||||
r = expand_expr (foff, NULL_RTX, TYPE_MODE (TREE_TYPE (foff)),
|
||||
EXPAND_NORMAL);
|
||||
emit_cmp_and_jump_insns (r, const0_rtx, EQ,
|
||||
const1_rtx, GET_MODE (r), 1, 1, lab_false);
|
||||
emit_cmp_and_jump_insns (r, const0_rtx, EQ, const1_rtx, GET_MODE (r),
|
||||
1, lab_false);
|
||||
|
||||
/* Emit code for addr_rtx = ftop - foff */
|
||||
t = build (MINUS_EXPR, TREE_TYPE (ftop), ftop, foff );
|
||||
@ -4657,8 +4657,8 @@ mips_va_arg (valist, type)
|
||||
/* Emit code to branch if goff == 0. */
|
||||
r = expand_expr (goff, NULL_RTX, TYPE_MODE (TREE_TYPE (goff)),
|
||||
EXPAND_NORMAL);
|
||||
emit_cmp_and_jump_insns (r, const0_rtx, EQ,
|
||||
const1_rtx, GET_MODE (r), 1, 1, lab_false);
|
||||
emit_cmp_and_jump_insns (r, const0_rtx, EQ, const1_rtx, GET_MODE (r),
|
||||
1, lab_false);
|
||||
|
||||
/* Emit code for addr_rtx = gtop - goff. */
|
||||
t = build (MINUS_EXPR, TREE_TYPE (gtop), gtop, goff);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Perform doloop optimizations
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz)
|
||||
|
||||
This file is part of GCC.
|
||||
@ -628,7 +628,7 @@ doloop_modify_runtime (loop, iterations_max,
|
||||
limit = abs_inc * (loop_info->unroll_number - 1);
|
||||
emit_cmp_and_jump_insns (extra, GEN_INT (limit),
|
||||
limit == 0 ? EQ : LEU, NULL_RTX,
|
||||
GET_MODE (extra), 0, 0, label);
|
||||
GET_MODE (extra), 0, label);
|
||||
JUMP_LABEL (get_last_insn ()) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
|
||||
@ -671,7 +671,7 @@ doloop_modify_runtime (loop, iterations_max,
|
||||
label = gen_label_rtx();
|
||||
emit_cmp_and_jump_insns (copy_rtx (initial_value),
|
||||
copy_rtx (loop_info->comparison_value),
|
||||
comparison_code, NULL_RTX, mode, 0, 0,
|
||||
comparison_code, NULL_RTX, mode, 0,
|
||||
label);
|
||||
JUMP_LABEL (get_last_insn ()) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
|
@ -4329,7 +4329,7 @@ emit_store_flag (target, code, op0, op1, mode, unsignedp, normalizep)
|
||||
last = get_last_insn ();
|
||||
|
||||
comparison
|
||||
= compare_from_rtx (op0, op1, code, unsignedp, mode, NULL_RTX, 0);
|
||||
= compare_from_rtx (op0, op1, code, unsignedp, mode, NULL_RTX);
|
||||
if (GET_CODE (comparison) == CONST_INT)
|
||||
return (comparison == const0_rtx ? const0_rtx
|
||||
: normalizep == 1 ? const1_rtx
|
||||
@ -4629,7 +4629,7 @@ emit_store_flag_force (target, code, op0, op1, mode, unsignedp, normalizep)
|
||||
|
||||
emit_move_insn (target, const1_rtx);
|
||||
label = gen_label_rtx ();
|
||||
do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, NULL_RTX, 0,
|
||||
do_compare_rtx_and_jump (op0, op1, code, unsignedp, mode, NULL_RTX,
|
||||
NULL_RTX, label);
|
||||
|
||||
emit_move_insn (target, const0_rtx);
|
||||
@ -4704,7 +4704,5 @@ do_cmp_and_jump (arg1, arg2, op, mode, label)
|
||||
emit_label (label2);
|
||||
}
|
||||
else
|
||||
{
|
||||
emit_cmp_and_jump_insns (arg1, arg2, op, NULL_RTX, mode, 0, 0, label);
|
||||
}
|
||||
emit_cmp_and_jump_insns (arg1, arg2, op, NULL_RTX, mode, 0, label);
|
||||
}
|
||||
|
48
gcc/stmt.c
48
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));
|
||||
|
10
gcc/unroll.c
10
gcc/unroll.c
@ -962,8 +962,9 @@ unroll_loop (loop, insn_count, strength_reduce_p)
|
||||
{
|
||||
emit_cmp_and_jump_insns (initial_value, final_value,
|
||||
neg_inc ? LE : GE,
|
||||
NULL_RTX, mode, 0, 0, labels[1]);
|
||||
predict_insn_def (get_last_insn (), PRED_LOOP_CONDITION, NOT_TAKEN);
|
||||
NULL_RTX, mode, 0, labels[1]);
|
||||
predict_insn_def (get_last_insn (), PRED_LOOP_CONDITION,
|
||||
NOT_TAKEN);
|
||||
JUMP_LABEL (get_last_insn ()) = labels[1];
|
||||
LABEL_NUSES (labels[1])++;
|
||||
}
|
||||
@ -1005,8 +1006,7 @@ unroll_loop (loop, insn_count, strength_reduce_p)
|
||||
}
|
||||
|
||||
emit_cmp_and_jump_insns (diff, GEN_INT (abs_inc * cmp_const),
|
||||
cmp_code, NULL_RTX, mode, 0, 0,
|
||||
labels[i]);
|
||||
cmp_code, NULL_RTX, mode, 0, labels[i]);
|
||||
JUMP_LABEL (get_last_insn ()) = labels[i];
|
||||
LABEL_NUSES (labels[i])++;
|
||||
predict_insn (get_last_insn (), PRED_LOOP_PRECONDITIONING,
|
||||
@ -1039,7 +1039,7 @@ unroll_loop (loop, insn_count, strength_reduce_p)
|
||||
}
|
||||
|
||||
emit_cmp_and_jump_insns (diff, GEN_INT (cmp_const), cmp_code,
|
||||
NULL_RTX, mode, 0, 0, labels[0]);
|
||||
NULL_RTX, mode, 0, labels[0]);
|
||||
JUMP_LABEL (get_last_insn ()) = labels[0];
|
||||
LABEL_NUSES (labels[0])++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user