OSDN Git Service

2005-01-22 Ralf Corsepius <ralf.corsepius@rtems.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ccb0faa..2ddbd65 100644 (file)
@@ -1,5 +1,304 @@
+2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       PR target/19548
+       * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
+       (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
+       (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
+
+2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c/18809
+       * c-typeck.c (convert_arguments): Check for error_mark_node.
+
+2005-01-20  Ian Lance Taylor  <ian@airs.com>
+
+       PR tree-optimization/13000
+       * tree-inline.c: Include "tree-flow.h".
+       (expand_call_inline): If warn_return_type, warn if non-void inline
+       function falls through.
+       * tree-cfg.c (execute_warn_function_return): Don't warn about
+       control reaching end if TREE_NO_WARNING is set.  Set
+       TREE_NO_WARNING.
+       * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
+       has been lowered.
+       * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
+       branch if we don't need one.
+       * c-typeck.c: Include "tree-flow.h"
+       (c_finish_bc_stmt): Don't add a goto if the current statement
+       list doesn't fall through to the current point.
+
+2005-01-21  Roger Sayle  <roger@eyesopen.com>
+
+       PR rtl-optimization/576
+       * real.c (real_arithmetic): Change return type from void to bool
+       to return an indication that the result may be inexact.
+       * real.h (real_arithmeric): Update prototype.
+       * fold-const.c (const_binop):  Don't constant fold floating
+       point expressions when the user specifies -frounding-math and
+       the result may depend upon the run-time rounding mode.
+       (fold_convert_const_real_from_real): Clean-up.
+       (fold_initializer): Ignore flag_rounding_math for initializers.
+       * simplify-rtx.c (simplify_binary_operation): Likewise, don't
+       constant fold FP operations with flag_rounding_math if the
+       result may depend upon the run-time rounding mode.
+
+2005-01-21  Tom Tromey  <tromey@redhat.com>
+
+       * c-cppbuiltin.c (define__GNUC__): Correct assertion.
+
+2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c: Fix comment typos.
+
+2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
+
+       * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
+       around the call to rest_of_handle_branch_target_load_optimize.
+
+2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
+       (sparc64-*-openbsd*): Likewise.
+       (sparclite-*-elf*): Include tm-dwarf2.h.
+       (sparc86x-*-elf*): Likewise.
+       (sparc64-*-elf*): Likewise.
+       * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
+       (DBX_DEBUGGING_INFO): Likewise.
+       * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
+       (PREFERRED_DEBUGGING_TYPE): Likewise.
+       * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
+       * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
+       (PREFERRED_DEBUGGING_TYPE): Likewise.
+       * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
+       (PREFERRED_DEBUGGING_TYPE): Likewise.
+       * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
+
+2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       PR target/18701
+       * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
+
+2005-01-20  Paul Brook  <paul@codesourcery.com>
+
+       * doc/rtl.texi: Document value extension requirements for CONST_INT.
+
+2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
+       label is first in a sequence of labels.
+
+       * tree-cfg.c (tree_verify_flow_info): Fix a typo.
+
+2005-01-20  Janis Johnson  <janis187@us.ibm.com>
+           Giovanni Bajo  <giovannibajo@gcc.gnu.org>
+
+       * doc/sourcebuild.texi (Test Directives): New.
+
+2005-01-20  Roger Sayle  <roger@eyesopen.com>
+
+       * real.c (real_floor): Don't leave the result uninitialized when
+       mode is VOIDMode, but return the unrounded intermediate value.
+       (real_ceil): Likewise.
+
+2005-01-20  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.md (insv): Use gen_int_mode.
+
+2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
+       * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+       * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+       * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+       * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
+
+2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR debug/19124
+       * dwarf2out.c (concat_loc_descriptor): We don't know we can use
+       fbreg, so we have to assume we can't.
+       (loc_descriptor_from_tree_1): Ditto.
+       (containing_function_has_frame_base): New function.
+       (add_location_or_const_value_attribute): Use it.
+       Also try to generate a frame_base from a single element location
+       list.
+       
+2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/15349
+       * timevar.def (TV_TREE_MERGE_PHI): New.
+       * tree-cfg.c (tree_forwarder_block_p): Add a new argument
+       PHI_WANTED.
+       (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
+       calls to tree_forwarder_block_p.
+       (remove_forwarder_block_with_phi, merge_phi_nodes,
+       gate_merge_phi, pass_merge_phi): New.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_merge_phi.
+       * tree-pass.h: Add an extern for pass_merge_phi;
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+       PR target/19418
+       * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
+       (_mm_castps_pd, _mm_castps_si128): New.
+       (_mm_castsi128_ps, _mm_castsi128_pd): New.
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+       PR target/19530
+       * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
+       __builtin_ia32_vec_init_v2si.
+       (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
+       * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
+       (ix86_init_mmx_sse_builtins): Create it.
+       (ix86_expand_builtin): Expand it.
+       (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
+       * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
+       (vec_extractv2si_0, vec_extractv2si_1): New.
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+       PR target/16533
+       * config/i386/i386.c (ix86_expand_push): New.
+       * config/i386/mmx.md (push<MMXMODE>1): New.
+       * config/i386/sse.md (push<SSEMODE>1): New.
+       * config/i386/i386-protos.h: Update.
+
+2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
+       copyright.
+
+2005-01-20  Richard Henderson  <rth@redhat.com>
+
+       * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
+       * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/19350
+       * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
+       to V4SFmode in SSE1 fallback load path.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
+       in QImode expansion to ix86_expand_vector_set.
+       (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/19511
+       * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
+       subclass of the input class.
+       (ix86_secondary_memory_needed): Always true for cross-MMX classes.
+       Always true for cross-SSE1 classes.  Rationalize conditionals.
+       * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
+       * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
+       for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
+       (movdi_2): Add MMX/SSE zeros.
+       (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
+       (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
+       (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
+       (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
+       (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
+       (zero_extendsidi2_rex64_1): Remove.
+       (MOV0 peephole): Check GENERAL_REG_P.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/19427
+       * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
+       shufps elements.
+       (ix86_expand_vector_extract): Likewise.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/19304
+       * expr.c (emit_move_change_mode): New argument force; use
+       simplify_gen_subreg if true.
+       (emit_move_via_alt_mode): Merge into ...
+       (emit_move_via_integer): ... here.
+       (emit_move_ccmode): Use emit_move_change_mode directly.
+
+2005-01-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/19518
+       * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
+       (alpha_preferred_reload_class): Handle CONST_VECTOR.
+       (alpha_emit_set_const_1): Add no_output parameter; don't emit
+       rtl if true.
+       (alpha_emit_set_const): Likewise.  Make static.
+       (alpha_emit_set_long_const): Make static.
+       (alpha_extract_integer): Split out from alpha_expand_mov.
+       (alpha_split_const_mov): Likewise.
+       (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
+       (alpha_legitimate_constant_p): New.
+       * config/alpha/alpha-protos.h: Update.
+       * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
+       (LEGITIMATE_CONSTANT_P): Re-implement with a function.
+       * config/alpha/alpha.md (movsi): Add n alternative.
+       (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
+       (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
+       (splitters for all of the above): Use alpha_split_const_mov.
+       * config/alpha/predicates.md (non_add_const_operand): New.
+       (non_zero_const_operand): New.
+       (input_operand): Use alpha_legitimate_constant_p after reload.
+
+2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/19038
+       * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
+       (add_candidate): Add ivs with increment in latch only if
+       allow_ip_end_pos_p is true.
+       (determine_iv_cost): Use empty_block_p.
+
+2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
+
+       * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
+       (compute_dominance_frontiers): Ditto.
+
+2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       PR target/19529
+       * config/sh/t-rtems: New. 
+       * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
+
+2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
+       the offset of the selected field.
+
+2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c (remove_forwarder_block): Fix the check to
+       prevent a nonlocal label from appearing in the middle of a
+       basic block.
+
+2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/19462
+       * reorg.c (find_end_label): Create return insn only if
+       current_function_epilogue_delay_list is empty.
+
+2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
+
+       * doc/passes.texi: Remove paragraph mentioning new-ra.
+
 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
 
+       PR rtl-optimization/15139
+       * combine.c: Include params.h.
+       (count_rtxs): New function.
+       (record_value_for_reg): If replace_rtx would replace at least
+       2 occurrences of REG in VALUE and TEM is really large, replace REG with
+       (clobber (const_int 0)) instead of TEM.
+       * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
+       * params.h (MAX_LAST_VALUE_RTL): New.
+       * Makefile.in (combine.o): Depend on $(PARAMS_H).
+       * doc/invoke.texi (--param max-last-value-rtl=N): Document.
+
        PR c/17297
        * c-typeck.c (digest_init): Only call build_vector if all constructor
        elements are *_CST nodes.