OSDN Git Service

2005-01-08 Jeff Law <law@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index e3e4db4..5960c6e 100644 (file)
@@ -1,3 +1,477 @@
+2005-01-08  Jeff Law  <law@redhat.com>
+           Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-nrv.c (tree_nrv): Ignore volatile return values.
+       * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
+       statements with volatile operands.
+       * tree-ssa-operands.c (add_stmt_operand): Do add volatile
+       operands after marking a statement with has_volatile_ops.
+
+2005-01-08  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.c (int_fits_type_p): Always honor integer constant
+       TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
+
+2005-01-08  Roger Sayle  <roger@eyesopen.com>
+
+       * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
+       the latent bug in rtl_delete_block has been resolved.
+
+2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
+       (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
+
+2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
+       library as @multilib_dir@/$(SHLIB_SONAME).
+
+2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
+       * configure: Regenerate.
+
+2005-01-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
+       TYPE_MODE.
+
+2005-01-07  David Edelsohn  <edelsohn@gnu.org>
+
+       PR target/13674
+       * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
+       Convert non-word aligned offset address using ld/std into
+       indirect address.
+
+2005-01-07  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
+
+2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
+
+       * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
+
+2005-01-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/19283
+       * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
+       is not shorter than the original type.
+
+       PR rtl-optimization/19012
+       * config/i386/i386.md (addqi_1_slp): Set memory attribute.
+
+       PR rtl-optimization/18861
+       * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
+       (FULL_STATE): Define.
+       (mark_tablejump_edge): New function.
+       (purge_dead_tablejump_edges): New function.
+       (find_bb_boundaries): Use it.
+
+       PR tree-optimization/18828
+       * builtins.c (expand_builtin_next_arg): Remove argument and all
+       the argument checking.
+       (expand_builtin): Adjust caller.
+       (expand_builtin_va_start): Likewise.  Remove error for too many
+       arguments.
+       (fold_builtin_next_arg): Issue error for too many arguments.
+       After checking arguments, replace them with magic arguments that
+       prevent further checking of the args.
+
+2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
+
+2005-01-06  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/6077
+       * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
+       and %{.S:...} (and their negative variants) to test whether the
+       input file is assembler or pre-processed-assembler independent of
+       the actual filename extension.
+
+2005-01-06  Roger Sayle  <roger@eyesopen.com>
+
+       * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
+       of sign or zero extended values.
+
+2005-01-06  Geoffrey Keating  <geoffk@apple.com>
+
+       * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
+       for IBM long double format correctly.
+
+2005-01-06  Daniel Berlin <dberlin@dberlin.org>
+       
+       Fix PR tree-optimization/18792
+
+       * tree-data-ref.c (build_classic_dist_vector): Change first_loop
+       to first_loop_depth, and use loop depth instead of loop number.
+       (build_classic_dir_vector): Ditto.
+       (compute_data_dependences_for_loop): Use depth, not loop number.
+       * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop 
+       number. Pass in loops, instead of loop numbers.
+       (gather_interchange_stats): Ditto.
+       (linear_transform_loops): Ditto.
+
+2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR rtl-opt/13299
+       * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
+       biv_fits_mode_p, extension_within_bounds_p): New functions.
+       (check_ext_dependent_givs): Use them.
+
+2005-01-06  Roger Sayle  <roger@eyesopen.com>
+
+       * cfgrtl.c (rtl_delete_block): A basic block may be followed by
+       more than one barrier, in which case we should delete them all.
+
+2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * gcc.c (process_command): Change year in 'gcc --version' to 2005.
+
+2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
+       
+       Fix PR middle-end/19286
+       Fix PR debug/19267
+       * dwarf2out.c (gen_subprogram_die): If we've already tried to
+       output this subprogram, simply ignore this attempt to do it again.
+       (add_abstract_origin_attribute): Don't abort trying to add the abstract
+       origin attribute if it's not possible.
+       (gen_block_die): Don't ignore subblocks of "unused" blocks.
+       (decls_for_scope): Ditto.
+       * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
+       (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
+       
+2005-01-05  Richard Henderson  <rth@redhat.com>
+
+       PR target/11327
+       * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
+       (bdesc_2arg): Use it.
+       (ix86_expand_binop_builtin): Force operands into registers
+       when optimizing.
+       (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
+       ix86_expand_sse_compare, ix86_expand_sse_comi, 
+       ix86_expand_builtin): Likewise.
+
+2005-01-05  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
+       and VEC_SELECT.
+       * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
+       (mulv4hi3): Set itanium_class mmmul.
+       (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
+       (fpack): Rename from fpack_sfsf.
+
+2005-01-05  Richard Henderson  <rth@redhat.com>
+
+       PR rtl-opt/10692
+       * reload1.c (do_input_reload): Restrict the optimization deleteing
+       a previous output reload to RELOAD_FOR_INPUT.
+
+2005-01-05  Steven Bosscher  <stevenb@suse.de>
+
+       * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
+       comment that we fall through after case.
+       (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
+       (distribute_links): Likewise.
+       * cse.c (cse_insn): Likewise.
+       * cselib.c (cselib_invalidate_mem): Likewise.
+       * df.c: Update comments at the top of the file.
+       (read_modify_subreg_p): Update comments here too.
+       (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
+       * flow.c (mark_set_1): Likewise.
+       (mark_used_regs): Likewise.
+       * gcse.c (mems_conflict_for_gcse_p): Likewise.
+       (canon_list_insert): Likewise.
+       (mark_set): Likewise.
+       (try_replace_reg): Likewise.
+       (store_killed_in_insn): Likewise.
+       * loop.c (count_one_set): Likewise.
+       (basic_induction_var): Likewise.
+       * postreload-gcse.c (find_mem_conflicts): Likewise.
+       * postreload.c (reload_combine_note_store): Likewise.
+       (move2add_note_store): Likewise.
+       * reload.c (find_equiv_reg): Likewise.
+       (mark_referenced_resources): Likewise.
+       * rtlanal.c (set_noop_p): Likewise.
+       (note_stores): Likewise.
+       (note_uses): Likewise.
+       * sched-deps.c (sched_analyze_1): Likewise.
+       * sched-rgn.c (check_live_1): Likewise.
+       (update_live_1): Likewise.
+       * config/i860/i860.c: Likewise.
+
+       * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
+       an lvalue.
+       (ZERO_EXTRACT): Mention that this one can be an lvalue.
+
+       * doc/rtl.texi: Update documentation for bit-fields and SET.
+
+2005-01-05  Roger Sayle  <roger@eyesopen.com>
+
+       * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
+
+2005-01-05  Jan Hubicka  <jh@suse.cz>
+           Richard Henderson  <rth@redhat.com>
+
+       PR target/18910
+       * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
+       with an offset.
+
+2005-01-05  Richard Henderson  <rth@redhat.com>
+
+       PR target/12902
+       * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
+       (sse_shufps): Change operand 3 to const_int_operand.
+       (sse2_storelps): Fix typo in template.
+       (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
+       * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
+       (ix86_expand_builtin): Likewise.
+
+2005-01-05  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.c (arm_return_in_memory): Treat complex types
+       as aggregates for AAPCS ABIs.
+
+2005-01-05  Stan Shebs  <shebs@apple.com>
+
+       * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
+       Mach-O getters if ppc64.
+       * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
+       size argument.
+       * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
+       signed four-byte field for global code case.
+       (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
+
+2005-01-05  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/19100
+       * c-common.c: Include real.h.
+       (c_common_truthvalue_conversion): Avoid destructively modifying expr.
+       Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
+       Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
+       * Makefile.in (c-common.o): Update dependencies.
+
+2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-parse.in (asm_string): Add trailing semicolon.
+
+2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-parse.in (asm_string): New.  Don't allow wide strings in
+       'asm'.
+       (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
+       asm_string instead of STRING.
+
+2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c-typeck.c (constructor_no_implicit): Remove.
+       (set_designator, process_init_element): Don't check
+       constructor_no_implicit.
+
+2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
+           Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/16482
+       * lcm.c (create_pre_exit): New.
+       (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
+       ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
+
+2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
+       -msoft-float in target_float_switch.
+       * arm.c (arm_override_options): Fix processing of target_float_switch.
+
+2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
+       preferencing.
+
+2004-01-05  Uros Bizjak  <uros@kss-loka.si>
+
+       * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
+        Replace i387 with 'i386 compiler' in -mfpmath=sse option.
+
+2005-01-04  Roger Sayle  <roger@eyesopen.com>
+
+       * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
+       if deleting the then-block allows the test-block to fallthru to the
+       else-block.
+
+2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c/19152
+       * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
+       after the full declaration if the are in two different TUs.
+
+2005-01-04  Richard Henderson  <rth@redhat.com>
+
+       PR tree-opt/19158
+       * tree-sra.c (generate_one_element_init): Just
+       call gimplify_and_add.
+       (generate_element_init): Record the
+       new referenced variables and mark them for renaming
+       and split out to ...
+       (generate_element_init_1): This.
+       (scalarize_init): Don't call push_gimplify_context/
+       pop_gimplify_context.
+
+2005-01-04  Geoffrey Keating  <geoffk@apple.com>
+
+       * toplev.c (get_src_pwd): Handle failure of getpwd().
+
+2005-01-04  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_single_bit_test): Delete unreachable handling
+       of TRUTH_NOT_EXPR.
+       (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
+       all the cases handled by it are inverted by invert_truthvalue.
+
+2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
+       (save_register_windowsi): Likewise.
+
+2005-01-04  Richard Henderson  <rth@redhat.com>
+
+       * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
+
+2005-01-04  Uros Bizjak  <uros@kss-loka.si>
+
+       PR middle-end/17767
+       * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
+       any simplifications of vector mode comparison operators.
+       * simplify-rtx.c (simplify_relational_operation): Fix variable name.
+
+2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
+           Devang Patel  <dpatel@apple.com>
+
+       PR tree-optimization/18308
+       * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
+       the operands before creating a new expression.
+       * dojump.c (do_jump): Make drop_through_label available
+       for all cases.  Add expansion of COND_EXPR.
+
+2005-01-04  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.c (vect_analyze_offset_expr): Test for
+       INTEGER_CST instead of TREE_CONSTANT.
+       (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
+       instead of TREE_CONSTANT.
+       (vect_analyze_pointer_ref_access): Test for INTEGER_CST
+       instead of TREE_CONSTANT.
+
+2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
+
+2005-01-04  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/19240
+       * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
+       (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
+
+2005-01-03  Richard Henderson  <rth@redhat.com>
+
+       * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
+       (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
+       fold_convert_const_real_from_real): Split out from ...
+       (fold_convert_const): ... here.
+
+2005-01-03  Richard Henderson  <rth@redhat.com>
+
+       PR target/19235
+       * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
+       (mov<MMXMODEI>_internal): Likewise.
+       (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
+       Add V2SF case; use it for SSE1; don't use TI.
+       (movdf_integer): Likewise.
+       (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
+
+2005-01-03  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.c (vect_strip_conversions): New function.
+       (vect_analyze_offset_expr): Call vect_strip_conversions. Add
+       check for binary class. 
+
+2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR debug/17924
+       Fix PR debug/19191
+       * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
+       is a decl.
+       * gimple-low.c (mark_blocks_with_used_vars): New function.
+       (mark_blocks_with_used_subblocks): Ditto.
+       (mark_used_blocks): Ditto.
+       (pass_mark_used_blocks): New pass.
+       * tree-inline.c: Include debug.h.
+       (expand_call_inline): Call outlining_inline_function here.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_mark_used_blocks. 
+       * tree-pass.h (pass_mark_used_blocks): New.
+       * Makefile.in (tree-inline.o): Add debug.h dependency.
+
+2005-01-03  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.c (darwin_handle_weak_import_attribute): Permit
+       VAR_DECLs to have weak_import attribute.
+
+       * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
+       'struct ucontext'.
+
+2004-01-03  Steven Bosscher  <stevenb@suse.de>
+
+       * passes.c (rest_of_compilation): Don't run regmove if only
+       flag_expensive_optimizations, require flag_regmove instead.
+
+2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
+       register "sparc".
+       * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
+       * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
+       * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
+       * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
+
+2005-01-03  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
+       (ia64_const_ok_for_letter_p): New.
+       (ia64_const_double_ok_for_letter_p): New.
+       (ia64_extra_constraint): New.
+       (ia64_expand_vecint_compare): New.
+       (ia64_expand_vcondu_v2si): New.
+       (ia64_expand_vecint_cmov): New.
+       (ia64_expand_vecint_minmax): New.
+       (ia64_print_operand): Add 'v'.
+       (ia64_preferred_reload_class): New.
+       (ia64_vector_mode_supported_p): New.
+       * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
+       (PREFERRED_RELOAD_CLASS): Move to function.
+       (CONST_OK_FOR_LETTER_P): Move to function.
+       (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
+       (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
+       (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
+       (EXTRA_CONSTRAINT): Move to function.
+       * config/ia64/ia64.md: Include vect.md.
+       (itanium_class): Add mmalua.
+       (type): Handle it.
+       * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
+       (1b_mmalua): New.
+       * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
+       * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
+       CONST0_RTX.
+       (const_int_2bit_operand): New.
+       (fr_reg_or_0_operand): New.
+       * config/ia64/ia64-modes.def: Add vector modes.
+       * config/ia64/ia64-protos.h: Update.
+       * config/ia64/vect.md: New file.
+
+2005-01-03  Richard Henderson  <rth@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
+
 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
 
        PR target/19236
@@ -5,7 +479,6 @@
        to SFmode.
        (log1pdf2): Change mode of operands[0,1] to DFmode.
 
-
 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.