* cse.c: (find_best_addr): Don't call copy_rtx before calling
fold_rtx. Save cost recomputation if fold_rtx did nothing.
(fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
NULL_RTX.
Co-Authored-By: Kazu Hirata <kazu@cs.umass.edu>
From-SVN: r94345
* tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
definitions of SSA_NAMEs which are not being rewritten.
(rewrite_ssa_into_ssa): Only initialize the current definition
of an SSA_NAME if that SSA_NAME has been marked for rewriting.
If checking is enabled, assert that SSA_NAME_AUX is clear for all
SSA_NAMEs before returning.
From-SVN: r94343
* gcc.dg/mips-nmadd-1.c, gcc.dg/mips-nmadd-2.c, gcc.dg/mips-rsqrt-1.c,
* gcc.dg/mips-rsqrt-2, gcc.dg/mips-rsqrt-3.c: Add dummy asm statements
to cope with cases where the multilib options override the dg-options.
From-SVN: r94331
PR middle-end/17278
* opts.c (decode_options): Move flag_thread_jumps from -O1 and
higher to -O2 and higher. Likewise for tree PRE.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
and better.
From-SVN: r94325
PR middle-end/19583
* gimple-low.c (try_catch_may_fallthru): New static function.
(block_may_fallthru): Handle TRY_CATCH_EXPR.
* tree-inline.c (expand_call_inline): Don't warn about reaching
the end of a non-void function being inlined if the function uses
a return slot.
From-SVN: r94323
PR tree-optimization/19633
* tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
CALL_EXPRs.
(maybe_create_global_var): Do not create .GLOBAL_VAR if there
are no call-clobbered variables.
* tree-outof-ssa.c (check_replaceable): Return false for calls
with side-effects.
testsuite/ChangeLog
PR tree-optimization/19633
* gcc.dg/pr19633.c: New test.
* gcc.dg/tree-ssa/pr19633.c: New test.
From-SVN: r94311
ChangeLog:
* dbxout.c (dbxout_symbol_location): Resolve constant pool references
even for variables with NULL DECL_INITIAL.
testsuite/ChangeLog:
* gcc.dg/20041216-1.c: New test.
From-SVN: r94303
* trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
TREE_USED for all labels.
(gfc_trans_entry_master_switch): Use it instead of building a
label by hand.
* trans-io.c (add_case): Likewise.
* trans-stmt.c (gfc_trans_integer_select): Likewise.
From-SVN: r94299
PR middle-end/18008
* c-decl.c (finish_struct): Set DECL_MODE after resetting a
field's type.
* expr.c (store_field): Strip conversions to odd-bit-sized types
if the destination field width matches.
From-SVN: r94294
PR middle-end/18008
* c-decl.c (finish_struct): Set DECL_MODE after resetting a
field's type.
* expmed.c (store_fixed_bit_field): Create a paradoxical subreg
if we don't need the bits above those present in the current mode.
* expr.c (store_field): Strip conversions to odd-bit-sized types
if the destination field width matches.
From-SVN: r94290
PR target/19293
PR target/19329
* config/avr/avr.c (notice_update_cc): Only set condition code for
ashrqi3 if shift count > 0.
(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
count <= 0 as a no-op, and shift count >= width by copying zero
or sign bit to all bits of the result.
* config/avr/avr.md (all shifts): Add alternatives for zero shift
count, with attribute "length" set to 0 and "cc" set to "none".
From-SVN: r94288
2005-01-26 Alexander Malmberg <alexander@malmberg.org>
PR objc/18862
* objc-act.c (build_selector_translation_table): Use
input_location in the diagnostic for the GNU runtime or if
TREE_PURPOSE (chain) is NULL.
From-SVN: r94285
PR middle-end/16585
* cfgbuild.c (make_edges): Do not clear or set
current_function_has_computed_jump.
* function.h (struct function): Remove the has_computed_jump field.
(current_function_has_computed_jump): Do not define.
* sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
in a computed jump. Ignore current_function_has_computed_jump.
From-SVN: r94269
2005-01-26 Paolo Carlini <pcarlini@suse.de>
* include/ext/mt_allocator.h
(struct __per_type_pool_policy<,, false>::_S_get_pool,
struct __per_type_pool_policy<,, true>::_S_get_pool): Scale
_M_chunk_size too with sizeof(_Tp), otherwise the allocator
breaks down as soon as sizeof(_Tp) >~ _S_chunk_size / 128;
reduce to 64 the multiplier for _M_max_bytes (safer wrt
_Binmap_type being a short); trivial reformattings.
* testsuite/ext/mt_allocator/check_allocate_big_per_type.cc: New.
From-SVN: r94268
PR middle-end/19515
* expr.c (categorize_ctor_elements): New argument p_must_clear.
(categorize_ctor_elements_1): Likewise. Detect a union that isn't
fully initialized.
(mostly_zeros_p): Update for new categorize_ctor_elements argument.
* gimplify.c (gimplify_init_constructor): Likewise. Only shove
objects into static storage if they have more than one non-zero value.
* tree.h (categorize_ctor_elements): Update decl.
From-SVN: r94266
PR middle-end/19616
* tree.h (CALL_EXPR_TAILCALL): Add comment.
* calls.c (check_sibcall_argument_overlap_1): Revert the change
to this function from 2004-07-10.
* tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
the current function for tail call optimizations if the address
of one of it its arguments is taken.
From-SVN: r94265
* function.c (expand_function_end): If current_function_calls_alloca,
emit stack restore in a place that is reached when the function falls
through at the end.
From-SVN: r94259
2005-01-26 Paolo Carlini <pcarlini@suse.de>
* acinclude.m4 ([GLIBCXX_ENABLE_C99]): Add ac_c99_complex
to the final test for enable_c99, thus robustifying it; remove
duplicate final test on ac_99_math.
* configure: Regenerate.
* include/std/std_complex.h: Remove usages of the dead
_GLIBCXX_BUGGY_COMPLEX macro.
* testsuite/26_numerics/cmath/19322.cc: Protect with
_GLIBCXX_USE_C99_MATH instead of the stronger _GLIBCXX_USE_C99,
since only C99 math facilities are involved.
* testsuite/26_numerics/cmath/c99_classification_macros_c++.cc:
Likewise.
From-SVN: r94257