OSDN Git Service

* arm.c (arm_print_operand): Use output_operand_lossage where possible
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index db4c18e..d91d260 100644 (file)
+2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_print_operand): Use output_operand_lossage where possible
+       rather than aborting.
+
+2004-10-12  Paul Brook  <paul@coudesourcery.com>
+
+       * config.gcc: Add armv6{k,z,zk}
+       * config/arm/arm-cores.def: Add arm1176 and mpcore.
+       * config/arm/tune.md: Regenerate.
+       * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
+       Define.
+       (all_architectures): Add armv6k, armv6z, armv6zk.
+       * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
+       * doc/invoke.texi: Document new arch and cpu values.
+
+2004-10-12  Paul Brook  <paul@coodesourcery.com>
+
+       * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
+       meabi=4.
+
+2004-10-12  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
+       Handle negative constants.
+
+2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/17301
+       * c-typeck.c (convert_arguments): Return error_mark_node if there
+       are too few arguments.
+       (build_function_call): Handle error_mark_node return from
+       convert_arguments.
+
+2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure.ac (symbolic_link): Replace with $LN_S.
+       (Assembler/Linker): Hard link from gas and binutils trees.
+       * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
+       * configure: Regenerate.
+
+2004-10-12  Paul Brook  <paul@codesourcery.com>
+
+       * configure.ac: Don't look for host assembler when building a canadian
+       cross.
+       * configure: Regenerate.
+
+2004-10-11  Roger Sayle  <roger@eyesopen.com>
+
+       PR other/17361
+       * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
+       (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
+       line options for "-lang-asm" and if found allow any of the C-family
+       front-end options.
+       (c_common_handle_option): Remove last use of permit_fortran_options.
+
+2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (print_operand): Support 'S' format flag.
+       * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
+       ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
+       ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
+       ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
+       ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
+       ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
+       ("*movstricthi"): Likewise.
+       ("*load_multiple_di", "*load_multiple_si"): Likewise.
+       ("*store_multiple_di", "*store_multiple_si"): Likewise.
+       ("*sethiqisi", "*sethihisi"): Likewise.
+       ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
+       ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
+       ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
+       ("*xorqi3", "*xc", "*xc_zero"): Likewise.
+       ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
+
+       ("*tmhi_full"): Fix incorrect op_type attribute.
+
+       ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
+       ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
+       ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
+       ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
+
+2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
+
+       PR middle-end/16266
+       * function.c (temp_slots_at_level): Fix typo which creates too
+       many temp stack slots levels.
+
+2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_trampoline_template): Generate shorter
+       trampoline code.
+       (s390_trampoline_instantiate): Adapt.
+       * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
+
+2004-10-11  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/17657
+       * stmt.c (add_case_node): Add additional type argument.  Declare
+       as static to match prototype.  Convert the upper and lower bounds
+       to the specified index type.  Optimize away case ranges/values 
+       that are outside the index type's bounds.  Truncate case ranges
+       that span the index type's bounds.
+       (expand_case): Avoid unnessary computation and memory allocation
+       when index type is error_mark_node.  Pass index_type as required
+       by change to add_case_node API.  No need to convert case range
+       bounds to index_type, this is now done by add_case_node.
+
+2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_offset_p): Add prototype.
+       * config/s390/s390.c (s390_offset_p): New function.
+       * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
+       "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
+       transform Q->Q alternatives to *clc pattern.
+       ("*clc"): Move.
+       ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
+       "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
+       to transform Q->Q alternatives to *mvc pattern.
+       ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
+       ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
+       "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
+       transform Q->Q alternatives to *nc pattern.
+       ("*nc"): New insn.  New peephole to merge adjacent NCs.
+       ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
+       "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
+       transform Q->Q alternatives to *oc pattern.
+       ("*oc"): New insn.  New peephole to merge adjacent OCs.
+       ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
+       transform Q->Q alternatives to *xc pattern.
+       ("*xc"): New insn.  New peephole to merge adjacent XCs.
+       ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
+
+2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * gimplify.c (gimple_push_condition): Make sure that we don't
+       have any saved condition cleanup if we were at the top level.
+
+2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/frv/frv.md (*adddi3_internal): Change name to...
+       (adddi3): ...replacing the exisiting define_expand.  Combine
+       alternatives.  Fix the range of the constant constraints ('J' instead
+       of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
+       to extract the lower and upper halves of the DImode operands.
+       Always use addi3_lower and adddi3_upper, not the subdi3 forms.
+       (adddi3_lower): Fix the range of the constant constraints and
+       remove the bogus operands[2] check.
+       (adddi3_upper): Use gpr_or_int10_operand as the predicate for
+       operand 2.  Use addxi to handle constant operands.
+       (subdi3_lower, subdi3_upper): Don't handle constant operands.
+
+2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gengtype-lex.l: Add commented } & ) characters to unconfuse
+       editor's paren matching. Allow #define inside a struct.
+
+2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/17703
+       part of PR c++/17657
+       * fold-const.c (fold_build_cleanup_point_expr): New function.
+       * tree.h (fold_build_cleanup_point_expr): Prototype.
+
+2004-10-10  Eric Christopher  <echristo@redhat.com>
+
+       * dwarf2out.c: Move attribute to subprogram declaration
+       instead of subroutine type.
+
+2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * basic-block.h: Remove the prototypes for can_hoist_insn_p,
+       hoist_insn_after, and hoist_insn_to_edge.
+       * rtl.h: Remove the prototypes for reg_referenced_between_p,
+       no_jumps_between_p, and insn_dependent_p.
+       * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
+       insn_dependent_p, insn_dependent_p_1, hoist_test_store,
+       can_hoist_insn_p, hoist_update_store, hoist_insn_after,
+       hoist_insn_to_edge): Remove.
+
+2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/17881
+       * c-decl.c (grokparms): Don't warn for parameters of incomplete
+       type in declarations that are not definitions except for the case
+       of parameters of void type.
+
+2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-cfg.c: Fix comment typos.
+
+2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/17301
+       * builtins.c (expand_builtin_va_start): Check for too few
+       arguments to va_start.
+
+2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       PR c/17189
+       * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
+       fields a pedwarn.  Pedwarn here for unnamed structs/unions if
+       pedantic.
+       * c-parse.in (component_decl): Don't pedwarn here for unnamed
+       fields.
+
+2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/17906
+       * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
+       copy non-gimple reg arguments.
+
+2004-10-09  Roger Sayle  <roger@eyesopen.com>
+
+       PR rtl-optimization/17853
+       * simplify-rtx.c (simplify_relational_operation): Correct comment.
+       Reorganize handling of comparison operations with floating point
+       results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
+       Likewise, introduce support for comparison operations with vector
+       result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
+
+       * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
+       * doc/tm.texi: Likewise.
+
+2004-10-09  Steven Bosscher  <stevenb@suse.de>
+
+       * regs.h (struct reg_info_def): Remove the last_node_uid and
+       changes_mode fields.
+       (REGNO_LAST_NOTE_UID): Don't define.
+       * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
+       * regmove.c (copy_src_to_dest): Likewise.
+
+2004-10-09  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/17894
+       * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
+       relational comparison operator op needs to be swapped/reversed when
+       C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
+
+2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/17902
+       * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
+       instead of bsi_start.
+       (value_replacement): Likewise.
+       (abs_replacement): Likewise
+
+2004-10-09  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
+       (expand_gimple_cond_expr, expand_gimple_tailcall,
+       expand_gimple_basic_block): Use it to dump RTL for each stmt.
+       (tree_expand_cfg): Announce full RTL function dump.
+       * tree-optimize.c (execute_one_pass): Use normal RTL printing,
+       not the graph version.
+       * tree-pretty-print.c (dump_generic_node): Allow empty statements
+       in the arms of a COND_EXPR for lowered nodes.
+
+2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
+
+       * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
+       atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
+       strtoufix16, strtoufix32, strtoufix64): Declare.
+
+2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-lex.c (interpret_float): Give a pedwarn rather than a warning
+       for an out-of-range floating point constant.
+       * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
+       warning if the target format does not support infinities.
+
+2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * emit-rtl.c (last_label_num, base_label_num): Remove.
+       (max_label_num): Always return label_num.
+       (set_new_last_label_num, restore_emit_status): Remove.
+       (init_emit): Don't initialize last_label_num.
+       * function.c (pop_function_context_from): Don't call
+       restore_emit_status.
+       * function.h: Remove the prototype for restore_emit_status.
+       * rtl.h: Remove the prototype for set_new_last_label_num.
+
+2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * stmt.c (expand_decl_init): Remove.
+       * tree.h: Remove the corresponding prototype.
+
+2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * integrate.c (try_constants, subst_constants, mark_stores):
+       Remove.
+       * integrate.h: Remove the prototype for try_constants.
+
+2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
+       (convert_for_assignment): Handle ic_argpass_nonproto.  Add
+       comments about its relevance to errors.
+       (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
+
+2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c/16999
+       * c-ppoutput.c (cb_ident): Don't quote string as it is already
+       quoted.
+
+2004-10-08  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
+       reference_node_pool.
+
 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-cfg.c: Fix a comment typo.
 
 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
 
-       * config/s390/s390.c (s390_register_info): Don't save fprs for 
+       * config/s390/s390.c (s390_register_info): Don't save fprs for
        -msoft-float.
        (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
 
 
 2004-10-07  Devang Patel  <dpatel@apple.com>
 
-        * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
-        UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
-        UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
-        UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
-        UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
-        UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 
+       * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
+       UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
+       UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
+       UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
+       UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
+       UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
        UNSPEC_VCONDU_V16QI): New constant defines.
-        (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
+       (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
        vconduv16qi): New patterns.
-        * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
-        * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
-        (get_vec_cmp_insn): Same.
-        (get_vsel_insn): Same.
-        (rs6000_emit_vector_compare): Same.
-        (rs6000_emit_vector_select): Same.
+       * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
+       * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
+       (get_vec_cmp_insn): Same.
+       (get_vsel_insn): Same.
+       (rs6000_emit_vector_compare): Same.
+       (rs6000_emit_vector_select): Same.
        (INSN_NOT_AVAILABLE): New.
-       
+
 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
 
        PR tree-optimization/17749
 
 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
-       PR middle-end/17285
+       PR middle-end/17835
        * expmed.c (expand_sdiv_pow2): Force a stack adjustment
        before tentatively building the conditional move sequence.