diff options
author | Paolo Bonzini <bonzini@gcc.gnu.org> | 2004-08-17 07:27:16 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2004-08-17 07:27:16 +0000 |
commit | 7c27e184c87d2b245f80287be1d28f686b68519e (patch) | |
tree | 0f8a615af173ede05125885d4bfc8d27ef332ff7 /gcc/expmed.c | |
parent | 9a9ff549030a22a0b8c0af58b633e006073959d7 (diff) | |
download | gcc-7c27e184c87d2b245f80287be1d28f686b68519e.zip gcc-7c27e184c87d2b245f80287be1d28f686b68519e.tar.gz gcc-7c27e184c87d2b245f80287be1d28f686b68519e.tar.bz2 |
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index 75427e1..b44ba65 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2547,13 +2547,12 @@ expand_mult_const (enum machine_mode mode, rtx op0, HOST_WIDE_INT val, for (opno = 1; opno < alg->ops; opno++) { int log = alg->log[opno]; - int preserve = preserve_subexpressions_p (); - rtx shift_subtarget = preserve ? 0 : accum; + rtx shift_subtarget = optimize ? 0 : accum; rtx add_target = (opno == alg->ops - 1 && target != 0 && variant != add_variant - && ! preserve) + && !optimize) ? target : 0; - rtx accum_target = preserve ? 0 : accum; + rtx accum_target = optimize ? 0 : accum; switch (alg->op[opno]) { @@ -2615,8 +2614,8 @@ expand_mult_const (enum machine_mode mode, rtx op0, HOST_WIDE_INT val, build_int_cst (NULL_TREE, log, 0), NULL_RTX, 0); accum = force_operand (gen_rtx_MINUS (mode, tem, accum), - (add_target ? add_target - : preserve ? 0 : tem)); + (add_target + ? add_target : (optimize ? 0 : tem))); val_so_far = (val_so_far << log) - val_so_far; break; @@ -4829,8 +4828,7 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1, compare_mode = insn_data[(int) icode].operand[0].mode; subtarget = target; pred = insn_data[(int) icode].operand[0].predicate; - if (preserve_subexpressions_p () - || ! (*pred) (subtarget, compare_mode)) + if (optimize || ! (*pred) (subtarget, compare_mode)) subtarget = gen_reg_rtx (compare_mode); pattern = GEN_FCN (icode) (subtarget); @@ -4863,7 +4861,7 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1, /* If we want to keep subexpressions around, don't reuse our last target. */ - if (preserve_subexpressions_p ()) + if (optimize) subtarget = 0; /* Now normalize to the proper value in COMPARE_MODE. Sometimes @@ -4908,10 +4906,10 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1, delete_insns_since (last); - /* If expensive optimizations, use different pseudo registers for each - insn, instead of reusing the same pseudo. This leads to better CSE, - but slows down the compiler, since there are more pseudos */ - subtarget = (!flag_expensive_optimizations + /* If optimizing, use different pseudo registers for each insn, instead + of reusing the same pseudo. This leads to better CSE, but slows + down the compiler, since there are more pseudos */ + subtarget = (!optimize && (target_mode == mode)) ? target : NULL_RTX; /* If we reached here, we can't do this with a scc insn. However, there |