X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=e2dbe3b758686caa567aa8f90fd0dbd49108e3ae;hp=9e0e4bffc9d33e4ab3876157b1899ecfcb65373f;hb=6a78072d36ae9f17efded1ff6f8f85f610ffe715;hpb=046553d4e843df2c6d1ab94ef563eabbc7360642;ds=sidebyside diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9e0e4bffc9d..e2dbe3b7586 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,833 @@ +2007-08-12 Francois-Xavier Coudert + + PR fortran/32860 + * c-format.c (gcc_gfc_length_specs): New array. + (gcc_gfc_char_table): Add unsigned specifier, and references to + the l length modifier. + (format_types_orig): Use the new gcc_gfc_length_specs. + +2007-08-12 Sa Liu + + * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note + and with REG_RETVAL note after split. + +2007-08-11 David Daney + + * config/mips/mips.c (mips_sched_reorder): Mark cycle parameter + as ATTRIBUTE_UNUSED. + +2007-08-11 David Edelsohn + Segher Boessenkool + + * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if + HAVE_LOCAL_CPU_DETECT not defined. + +2007-08-11 Jan Hubicka + + * cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined. + (cgraph_process_new_functions): Honor previous value of + disregard_inline_limits. + * ipa-inline.c (compute_inline_parameters): Likewise. + +2007-08-11 Ian Lance Taylor + + * alias.h (alias_set_type): Define new type. + (ALIAS_SET_MEMORY_BARRIER): Use it. + * rtl.h: Include alias.h. + (struct mem_attrs): Use alias_set_type. + * tree.h: Include alias.h + (struct tree_type): Use alias_set_type. + (struct tree_struct_field_tag): Likewise. + (struct tree_decl_common): Likewise. + * alias.c (struct alias_set_entry): Use alias_set_type. + (get_alias_set_entry, alias_set_subset_of): Likewise. + (alias_sets_conflict_p): Likewise. + (alias_sets_must_conflict_p): Likewise. + (objects_must_conflict_p): Likewise. + (get_alias_set, new_alias_set): Likewise. + (record_alias_subset, record_component_aliases): Likewise. + (varargs_set, frame_set): Change to alias_set_type. + (get_varargs_alias_set): Use alias_set_type. + (get_frame_alias_set): Likewise. + * builtins.c (setjmp_alias_set): Change to alias_set_type. + * dse.c (struct store_info): Use alias_set_type. + (struct read_info, struct clear_alias_mode_holder): Likewise. + (clear_alias_set_lookup, canon_address): Likewise. + (record_store, check_mem_read_rtx): Likewise. + (dse_record_singleton_alias_set): Likewise. + (dse_invalidate_singleton_alias_set): Likewise. + * emit-rtl.c (get_mem_attrs): Likewise. + (set_mem_attributes_minus_bitpos): Likewise. + (set_mem_alias_set): Likewise. + * expr.c (store_constructor_field, store_field): Likewise. + * gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise. + * langhooks.c (lhd_get_alias_set): Likewise. + * langhooks-def.h (lhd_get_alias_set): Likewise. + * reload1.c (alter_reg): Likewise. + * tree-flow.h (struct fieldoff): Likewise. + * tree-ssa-alias.c (struct alias_map_d): Likewise. + (may_alias_p, get_smt_for, create_sft): Likewise. + * tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise. + * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. + (merge_smts_into): Likewise. + * varasm.c (const_alias_set): Likewise. + * c-common.c (strict_aliasing_warning): Likewise. + (c_common_get_alias_set): Likewise. + * dse.h (dse_record_singleton_alias_set): Update declaration. + (dse_invalidate_singleton_alias_set): Likewise. + * emit-rtl.h (set_mem_alias_set): Likewise. + * c-common.h (c_common_get_alias_set): Likewise. + * print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it. + * print-tree.c (print_node): Likewise. + * config/alpha/alpha.c (alpha_sr_alias_set): Change to + alias_set_type. + (alpha_setup_incoming_varargs): Use alias_set_type. + * config/i386/i386.c (setup_incoming_varargs_64): Use + alias_set_type. + (setup_incoming_varargs_ms_64): Likewise. + (ix86_GOT_alias_set): Likewise. + * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. + * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. + (set): Change to alias_set_type. + (get_TOC_alias_set): Use alias_set_type. + * config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update + declaration. + * config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type. + * config/sparc/sparc.c (sparc_sr_alias_set): Change to + alias_set_type. + (struct_value_alias_set): Likewise. + * Makefile.in (GTFILES): Add $(srcdir)/alias.h. + +2007-08-11 Richard Sandiford + + * config/vxworks-dummy.h (TARGET_VXWORKS): Define. + * config/vxworks.h (TARGET_VXWORKS): Override. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define + "mips" if TARGET_VXWORKS. + +2007-08-11 Richard Sandiford + + * calls.c (avoid_likely_spilled_reg): New function. + (expand_call): Use it. + +2007-08-11 Kaveh R. Ghazi + + * c-typeck.c (build_c_cast): Add OPT_Wcast_qual to warnings. + +2007-08-10 Adam Nemet + + * config/mips/predicates.md (const_call_insn_operand): Invoke + SYMBOL_REF_LONG_CALL_P only on SYMBOL_REFs. + +2007-08-10 David Edelsohn + + PR target/33042 + * config/rs6000/driver-rs6000.c: Include link.h. + Use ElfW instead of wordsize-specif typedef. + +2007-08-10 Kaveh R. Ghazi + + * system.h (CONST_CAST): New. + * c-decl.c (c_make_fname_decl): Use it. + * c-lex.c (cb_ident, lex_string): Likewise. + * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. + * gcc.c (set_spec, read_specs, for_each_path, execute, do_spec_1, + give_switch, set_multilib_dir): Likewise. + * gengtype-parse.c (string_seq, typedef_name): Likewise. + * passes.c (execute_one_pass): Likewise. + * prefix.c (update_path): Likewise. + * pretty-print.c (pp_base_destroy_prefix): Likewise. + * tree.c (build_string): Likewise. + +2007-08-10 Aldy Hernandez + + * tree-flow-inline.h (is_exec_stmt): Remove. + (is_label_stmt): Remove. + * tree-flow.h: Remove prototypes for is_exec_stmt, get_filename, and + is_label_stmt. + +2007-08-10 Andreas Krebbel + + * lower-subreg.c (resolve_shift_zext): Don't adjust + src_reg_num for wordmode operands. + +2007-08-10 Sandra Loosemore + David Ung + + * config/mips/mips.c (TARGET_SCHED_INIT): Define. + (TARGET_SCHED_REORDER2): Define. + (mips_maybe_swap_ready): New. + (mips_last_74k_agen_insn): New. + (mips_74k_agen_init): New. + (mips_74k_agen_reorder): New function to group loads and stores + in the ready queue. + (mips_sched_init): New. + (mips_sched_reorder): Don't do initialization here. Call + mips_74k_agen_reorder. + (mips_variable_issue): Call mips_74k_agen_init. + +2007-08-10 Aldy Hernandez + + * tree-flow-inline.h (get_filename): Remove. + +2007-08-10 Richard Sandiford + + * config/mips/mips-protos.h (mips_address_insns): Add a boolean + argument. + (mips_fetch_insns): Delete in favor of... + (mips_load_store_insns): ...this new function. + * config/mips/mips.c (mips_address_insns): Add a boolean argument + to say whether multiword moves _might_ be split. + (mips_fetch_insns): Delete in favor of... + (mips_load_store_insns): ...this new function. + (mips_rtx_costs): Update the call to mips_address_insns. + (mips_address_cost): Likewise. + * config/mips/mips.md (length): Use mips_load_store_insns instead + of mips_fetch_insns. + * config/mips/constraints.md (R): Use mips_address_insns rather + than mips_fetch_insns. Assume that the move never needs to be split. + +2007-08-09 Sandra Loosemore + + * config/mips/mips.opt (mhard-float, msoft-float): Make these + control TARGET_HARD_FLOAT_ABI and TARGET_SOFT_FLOAT_ABI, rather + than TARGET_HARD_FLOAT and TARGET_SOFT_FLOAT. + * config/mips/mips.h (mips16_hard_float): Delete. + (TARGET_HARD_FLOAT_ABI, TARGET_SOFT_FLOAT_ABI): Delete these + definitions, and replace with.... + (TARGET_HARD_FLOAT, TARGET_SOFT_FLOAT): Define. + * config/mips/mips.c (mips16_hard_float): Delete. Replace + all references with (TARGET_MIPS16 && TARGET_HARD_FLOAT_ABI). + (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Update comments. + (override_options): Replace MASK_SOFT_FLOAT references with + MASK_SOFT_FLOAT_ABI. Delete twiddling with MASK_SOFT_FLOAT + and mips16_hard_float when TARGET_MIPS16. + +2007-08-09 Andrew Pinski + + PR c/32796 + * c-typeck.c (build_binary_op): Check for non pointer types before + calling int_fits_type_p. + +2007-08-09 Andrew Pinski + + PR middle-end/32813 + * fold-const.c (omit_one_operand): Return only the ommitted expression + if the result is an empty statement. + (pedantic_omit_one_operand): Likewise. + +2007-08-09 Daniel Berlin + + * c-typeck.c (readonly_error): Improve error for assignment. + + * c-pretty-print.c (pp_c_additive_expression): Handle pointer-plus + expression. + (pp_c_expression): Ditto. + +2007-08-09 Simon Baldwin + + * simplify-rtx.c (simplify_binary_operation_1): Removed erroneous + break that was preventing simplify_associative_operation() for xor. + +2007-08-09 Sandra Loosemore + Nigel Stephens + + * doc/tm.texi (CLZ_DEFINED_VALUE_AT_ZERO, CTZ_DEFINED_VALUE_AT_ZERO): + Document change in interpretation of value from boolean to + tri-state integer. + * optabs.c (expand_ffs, expand_ctz): New functions to compute + ffs and ctz using clz. + (expand_unop): Call them. + * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix its + result value. + (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. + * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Likewise, to + enable the new ffs expansion on this target. + +2007-08-09 Jan Hubicka + + * optabs.c (expand_widen_pattern_expr): Use optabs accestors. + (expand_ternary_op): Likewise. + (expand_vec_shift_expr): Likewise. + (expand_binop_directly): Likewise. + (expand_binop): Likewise. + (sign_expand_binop): Likewise. + (expand_twoval_unop): Likewise. + (expand_twoval_binop): Likewise. + (expand_twoval_binop_libfunc): Likewise. + (widen_clz): Likewise. + (widen_bswap): Likewise. + (expand_parity): Likewise. + (expand_unop): Likewise. + (expand_abs_nojump): Likewise. + (expand_copysign): Likewise. + (emit_no_conflict_block): Likewise. + (emit_libcall_block): Likewise. + (can_compare_p): Likewise. + (prepare_cmp_insn): Likewise. + (emit_cmp_and_jump_insn_1): Likewise. + (prepare_float_lib_cmp): Likewise. + (emit_conditional_add): Likewise. + (gen_add2_insn): Likewise. + (have_add2_insn): Likewise. + (gen_sub2_insn): Likewise. + (have_sub2_insn): Likewise. + (can_extend_p): Likewise. + (can_fix_p): Likewise. + (can_float_p): Likewise. + (expand_float): Likewise. + (expand_fix): Likewise. + (expand_sfix_optab): Likewise. + (new_optab): Likewise. + (new_convert_optab): Likewise. + (init_libfuncs): Likewise. + (init_interclass_conv_libfuncs): Likewise. + (init_intraclass_conv_libfuncs): Likewise. + (set_conv_libfunc): Likewise. + (init_optabs): Likewise. + (debug_optab_libfuncs): Likewise. + (gen_cond_trap): Likewise. + * optabs.h (optab_handler, convert_optab_hanlder): New. + * genopinit.c: Update optabs generation table. + * reload.c (find_reloads_address_1): Use optabs accestors. + * builtins.c (expand_builtin_mathfn): Likewise. + (expand_builtin_mathfn_2): Likewise. + (expand_builtin_mathfn_3): Likewise. + (expand_builtin_interclass_mathfn): Likewise. + (expand_builtin_sincos): Likewise. + (expand_builtin_cexpi): Likewise. + (expand_builtin_powi): Likewise. + (expand_builtin_strlen): Likewise. + * dojump.c (do_jump): Likewise. + * expr.c (convert_move): Likewise. + (move_by_pieces): Likewise. + (move_by_pieces_ninsns): Likewise. + (can_store_by_pieces): Likewise. + (store_by_pieces_1): Likewise. + (emit_move_via_integer): Likewise. + (emit_move_complex): Likewise. + (emit_move_ccmode): Likewise. + (emit_move_insn_1): Likewise. + (emit_single_push_insn): Likewise. + (store_constructor): Likewise. + (expand_expr_real_1): Likewise. + (do_store_flag): Likewise. + * ada/misc.c (gnat_compute_largest_alignment): Likewise. + (enumerate_modes): Likewise. + * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. + (supportable_widening_operation): Likewise. + (supportable_narrowing_operation): Likewise. + * expmed.c (store_bit_field_1): Likewise. + (extract_bit_field_1): Likewise. + (expand_mult_highpart_optab): Likewise. + (expand_smod_pow2): Likewise. + (expand_divmod): Likewise. + (emit_store_flag): Likewise. + * tree-vect-patterns.c + (vect_pattern_recog_1): Likewise. + * tree-ssa-loop-prefetch.c + (nontemporal_store_p): Likewise. + * tree-vect-transform.c (vect_model_reduction_cost): Likewise. + (vect_create_epilog_for_reduction): Likewise. + (vectorizable_reduction): Likewise. + (vectorizable_operation): Likewise. + (vect_strided_store_supported): Likewise. + (vectorizable_store): Likewise. + (vect_strided_load_supported): Likewise. + (vectorizable_load): Likewise. + * combine.c (simplify_comparison): Likewise. + * tree-vect-generic.c + (type_for_widest_vector_mode): Likewise. + (expand_vector_operations_1): Likewise. + * config/spu/spu.c (spu_expand_mov): Likewise. + (spu_emit_vector_compare): Likewise. + * config/rs6000/rs6000.c + (rs6000_emit_vector_compare): Likewise. + * stmt.c (add_case_node): Likewise. + * reload1.c (gen_reload): + +2007-08-09 Michael Matz + + * tree.h (fixed_zerop): Declare as taking a const_tree. + * tree.c (fixed_zerop): Take a const_tree. + +2007-08-09 Ira Rosen + + * tree-vect-transform.c (vectorizable_store): Remove call to + copy_virtual_operands() and call mark_symbols_for_renaming() for + the created vector store. + (vect_setup_realignment): Don't call copy_virtual_operands() and + update_vuses_to_preheader(). + (vectorizable_load): Don't call copy_virtual_operands(). + (update_vuses_to_preheader): Remove. + +2007-08-08 Chao-ying Fu + + * tree.def (FIXED_POINT_TYPE): New type. + (FIXED_CST): New constant. + (FIXED_CONVERT_EXPR): New expr. + * doc/c-tree.texi (Types): Document FIXED_POINT_TYPE. + (Expressions): Document FIXED_CST and FIXED_CONVERT_EXPR. + * tree.h (struct tree_base): Add saturating_flag. + Remove one bit of spare for saturating_flag. + (NUMERICAL_TYPE_CHECK): Support FIXED_POINT_TYPE. + (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P, + FIXED_POINT_TYPE_P): Define. + (TYPE_SATURATING): Define. + (TREE_FIXED_CST_PTR, TREE_FIXED_CST): Define. + (struct tree_fixed_cst): New. + (TYPE_IBIT, TYPE_FBIT): Define. + (tree_node): Add fixed_cst. + (enum tree_index): Add new enumeration values of + TI_SAT_SFRACT_TYPE, TI_SAT_FRACT_TYPE, TI_SAT_LFRACT_TYPE, + TI_SAT_LLFRACT_TYPE, TI_SAT_USFRACT_TYPE, TI_SAT_UFRACT_TYPE, + TI_SAT_ULFRACT_TYPE, TI_SAT_ULLFRACT_TYPE, TI_SFRACT_TYPE, + TI_FRACT_TYPE, TI_LFRACT_TYPE, TI_LLFRACT_TYPE, TI_USFRACT_TYPE, + TI_UFRACT_TYPE, TI_ULFRACT_TYPE, TI_ULLFRACT_TYPE, + TI_SAT_SACCUM_TYPE, TI_SAT_ACCUM_TYPE, TI_SAT_LACCUM_TYPE, + TI_SAT_LLACCUM_TYPE, TI_SAT_USACCUM_TYPE, TI_SAT_UACCUM_TYPE, + TI_SAT_ULACCUM_TYPE, TI_SAT_ULLACCUM_TYPE, TI_SACCUM_TYPE, + TI_ACCUM_TYPE, TI_LACCUM_TYPE, TI_LLACCUM_TYPE, TI_USACCUM_TYPE, + TI_UACCUM_TYPE, TI_ULACCUM_TYPE, TI_ULLACCUM_TYPE, + TI_QQ_TYPE, TI_HQ_TYPE,_TYPE, TI_SQ_TYPE, TI_DQ_TYPE, TI_TQ_TYPE, + TI_UQQ_TYPE, TI_UHQ_TYPE, TI_USQ_TYPE, TI_UDQ_TYPE, TI_UTQ_TYPE, + TI_SAT_QQ_TYPE, TI_SAT_HQ_TYPE, TI_SAT_SQ_TYPE, TI_SAT_DQ_TYPE, + TI_SAT_TQ_TYPE, TI_SAT_UQQ_TYPE, TI_SAT_UHQ_TYPE, TI_SAT_USQ_TYPE, + TI_SAT_UDQ_TYPE, TI_SAT_UTQ_TYPE, TI_HA_TYPE, TI_SA_TYPE, TI_DA_TYPE, + TI_TA_TYPE, TI_UHA_TYPE, TI_USA_TYPE, TI_UDA_TYPE, TI_UTA_TYPE, + TI_SAT_HA_TYPE, TI_SAT_SA_TYPE, TI_SAT_DA_TYPE, TI_SAT_TA_TYPE, + TI_SAT_UHA_TYPE, TI_SAT_USA_TYPE, TI_SAT_UDA_TYPE, TI_SAT_UTA_TYPE. + (sat_short_fract_type_node, sat_fract_type_node, + sat_long_fract_type_node, sat_long_long_fract_type_node, + sat_unsigned_short_fract_type_node, sat_unsigned_fract_type_node, + sat_unsigned_long_fract_type_node, + sat_unsigned_long_long_fract_type_node, short_fract_type_node, + fract_type_node, long_fract_type_node, long_long_fract_type_node, + unsigned_short_fract_type_node, unsigned_fract_type_node, + unsigned_long_fract_type_node, unsigned_long_long_fract_type_node, + sat_short_accum_type_node, sat_accum_type_node, + sat_long_accum_type_node, sat_long_long_accum_type_node, + sat_unsigned_short_accum_type_node, sat_unsigned_accum_type_node, + sat_unsigned_long_accum_type_node, + sat_unsigned_long_long_accum_type_node, short_accum_type_node, + accum_type_node, long_accum_type_node, long_long_accum_type_node, + unsigned_short_accum_type_node, unsigned_accum_type_node, + unsigned_long_accum_type_node, unsigned_long_long_accum_type_node, + qq_type_node, hq_type_node, sq_type_node, dq_type_node, tq_type_node, + uqq_type_node, uhq_type_node, usq_type_node, udq_type_node, + utq_type_node, sat_qq_type_node, sat_hq_type_node, sat_sq_type_node, + sat_dq_type_node, sat_tq_type_node, sat_uqq_type_node, + sat_uhq_type_node, sat_usq_type_node, sat_udq_type_node, + sat_utq_type_node, ha_type_node, sa_type_node, da_type_node, + ta_type_node, uha_type_node, usa_type_node, uda_type_node, + uta_type_node, sat_ha_type_node, sat_sa_type_node, sat_da_type_node, + sat_ta_type_node, sat_uha_type_node, sat_usa_type_node, + sat_uda_type_node, sat_uta_type_node): New macro. + (make_fract_type, make_accum_type): Declare. + (make_signed_fract_type, make_unsigned_fract_type, + make_sat_signed_fract_type, make_sat_unsigned_fract_type, + make_signed_accum_type, make_unsigned_accum_type, + make_sat_signed_accum_type, make_sat_unsigned_accum_type, + make_or_reuse_signed_fract_type, make_or_reuse_unsigned_fract_type, + make_or_reuse_sat_signed_fract_type, + make_or_reuse_sat_unsigned_fract_type, make_or_reuse_signed_accum_type, + make_or_reuse_unsigned_accum_type, make_or_reuse_sat_signed_accum_type, + make_or_reuse_sat_unsigned_accum_type): New macro. + (fixed_zerop): Declare. + * defaults.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE, + LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, + SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, + LONG_LONG_ACCUM_TYPE_SIZE): Define. + * treestruct.def: Add TS_FIXED_CST. + * Makefile.in (c-pretty-print.o): Add dependence on fixed-value.h. + (tree.o): Likewise. + (tree-dump.o): Likewise. + (print-tree.o): Likewise. + (tree-pretty-print.o): Likewise. + (fold-const.o): Likewise. + * tree-complex.c (some_nonzerop): Handle FIXED_CST. + * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle FIXED_CST. + (is_gimple_min_invariant): Handle FIXED_CST. + * stor-layout.c (int_mode_for_mode): Handle MODE_FRACT, MODE_UFRACT, + MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, + MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. + (layout_type): Handle FIXED_POINT_TYPE. + (make_fract_type, make_accum_type): New functions. + * tree-browser.c (browse_tree): Handle FIXED_POINT_TYPE. + * tree-dump.c (fixed-value.h): New include. + (dump_fixed): New function. + (dequeue_and_dump): Handle FIXED_POINT_TYPE and FIXED_CST. + * tree-inline.c (remap_type_1): Handle FIXED_POINT_TYPE. + (estimate_num_insns_1): Handle FIXED_CST and FIXED_CONVERT_EXPR. + * tree-pretty-print.c (fixed-value.h): New include. + (dump_generic_node): Handle FIXED_POINT_TYPE, FIXED_CST, and + FIXED_CONVERT_EXPR. + * tree-scalar-evolution.c (get_scalar_evolution): Handle FIXED_CST. + * tree-ssa-loop-im.c (for_each_index): Handle FIXED_CST. + * tree-ssa-pre.c (poolify_tree): Handle FIXED_CST. + * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation + for non-saturating fixed-point types. + (reassociate_bb): Likewise. + * emit-rtl.c (fixed-value.h): New include. + (fconst0, fconst1): New array. + (init_emit_once): Initialize fconst0 and fconst1 for fixed-point modes. + * tree-vect-generic.c expand_vector_operation): Support + MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, and + MODE_VECTOR_UACCUM. + (type_for_widest_vector_mode): Add one parameter for the + saturating flag. + Check scalar FRACT, UFRACT, ACCUM, and UACCUM mode to select their + vector mode. + Pass the satp parameter to type_for_mode for fixed-point types. + (expand_vector_operations_1): Pass the saturating flag to + type_for_widest_vector_mode. + Support MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, + and MODE_VECTOR_UACCUM. + * tree-vect-transform.c (vect_is_simple_cond): Support FIXED_CST. + (vectorizable_condition): Likewise. + * tree.c (fixed-value.h): New include. + (tree_code_size): Support FIXED_CST. + (build_fixed): New function. + (build_one_cst): Support FIXED_POINT_TYPE for accum types. + (fixed_zerop): New function. + (tree_node_structure): Support FIXED_CST. + (type_contains_placeholder_1): Support FIXED_POINT_TYPE. + (build_type_attribute_qual_variant): Handle FIXED_POINT_TYPE. + (type_hash_eq): Handle FIXED_POINT_TYPE. + (simple_cst_equal): Support FIXED_CST. + (iterative_hash_expr): Handle FIXED_CST. + (get_unwidened): Make sure type is not FIXED_POINT_TYPE. + (get_narrower): Likewise. + (variably_modified_type_p): Handle FIXED_POINT_TYPE. + (make_or_reuse_fract_type, make_or_reuse_accum_type): New functions. + (build_common_tree_nodes_2): Use MAKE_FIXED_TYPE_NODE_FAMILY and + MAKE_FIXED_MODE_NODE macros to initialize fixed-point type + nodes. + (build_vector_type_for_mode): Handle MODE_VECTOR_FRACT, + MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. + (initializer_zerop): Support FIXED_CST. + (walk_tree): Handle FIXED_CST and FIXED_POINT_TYPE. + * dwarf2out.c (base_type_die): Use DW_ATE_signed_fixed or + DW_ATE_unsigned_fixed to describe FIXED_POINT_TYPE. + (is_base_type): Handle FIXED_POINT_TYPE. + (add_type_attribute): Handle FIXED_POINT_TYPE. + (gen_type_die_with_usage): Handle FIXED_POINT_TYPE. + * print-tree.c (fixed-value.h): New include. + (print_node_brief): Support FIXED_CST. + (print_node): Support FIXED_POINT_TYPE and FIXED_CST. + * c-pretty-print.c (fixed-value.h): New include. + (pp_c_type_specifier): Handle FIXED_POINT_TYPE. Need to pass + TYPE_SATURATING to c_common_type_for_mode for fixed-point modes. + (pp_c_direct_abstract_declarator): Handle FIXED_POINT_TYPE. + Support fixed-point types for inner items in VECTOR_TYPE. + (pp_c_direct_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_fixed_constant): New function. + (pp_c_constant): Handle FIXED_CST. + (pp_c_primary_expression): Likewise. + (pp_c_expression): Likewise. + * fold-const.c (fixed-value.h): New include. + (negate_expr_p): Return true for FIXED_CST. + (fold_negate_expr): Support FIXED_CST. + (split_tree): Support FIXED_CST. + (const_binop): Support FIXED_CST. + (fold_convert_const_int_from_fixed): New function to convert from + fixed to int. + (fold_convert_const_real_from_fixed): New function to convert from + fixed to real. + (fold_convert_const_fixed_from_fixed): New function to convert from + fixed to another fixed. + (fold_convert_const_fixed_from_int): New function to convert from + int to fixed. + (fold_convert_const_fixed_from_real): New function to convert from + real to fixed. + (fold_convert_const): Support conversions from fixed to int, from + fixed to real, from fixed to fixed, from int to fixed, and from real + to fixed. + (fold_convert): Support FIXED_CST and FIXED_POINT_TYPE. + (operand_equal_p): Support FIXED_CST. + (make_range): For fixed-point modes, we need to pass the + saturating flag as the 2nd parameter. + (tree_swap_operands_p): Handle FIXED_CST. + (fold_plusminus_mult_expr): For fract modes, we cannot generate + constant 1. + (fold_unary): Support FIXED_CONVERT_EXPR. + (fold_binary): Handle FIXED_CST. + Make sure the type is not saturating, before associating operations. + Ex: A + B + C, A * B * C, (A1 * C1) +/- (A2 * C2). + (tree_expr_nonnegative_warnv_p): Handle FIXED_CST. + (fold_negate_const): Support FIXED_CST. + (fold_relational_const): Support FIXED_CST. + * gimplify.c (omp_firstprivatize_type_sizes): Handle FIXED_POINT_TYPE. + (gimplify_expr): Handle FIXED_CST. + (gimplify_type_sizes): Handle FIXED_POINT_TYPE. + * ipa-prop.c (ipa_callsite_compute_param): Support FIXED_CST. + * ipa-type-escape.c (type_to_consider): Handle FIXED_POINT_TYPE. + * doc/tm.texi (Type Layout): Document SHORT_FRACT_TYPE_SIZE, + FRACT_TYPE_SIZE, LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE, + SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE, + LONG_LONG_ACCUM_TYPE_SIZE. + * dbxout.c (dbxout_type): Handle FIXED_POINT_TYPE. + * c-aux-info.c (gen_type): Handle FIXED_POINT_TYPE. + * tree-sra.c (is_sra_scalar_type): Support FIXED_POINT_TYPE. + * expmed.c (extract_bit_field): Support MODE_FRACT, MODE_UFRACT, + MODE_ACCUM, and MODE_UACCUM. + * tree-vectorizer.c (vect_is_simple_reduction): Check for saturating + fixed-point types to disable reduction. + * explow.c (promote_mode): Support FIXED_POINT_TYPE. + +2007-08-08 David Edelsohn + + * config/rs6000/x-rs6000: New file. + * config/rs6000/darwin.h (CC1_SPEC): Add cc1_cpu. + * config/rs6000/rs6000.h (EXTRA_SPECS): Add cc1_cpu. + (EXTRA_SPEC_FUNCTIONS): Define. + (HAVE_LOCAL_CPU_DETECT): Define. + (CC1_CPU_SPEC): Define. + * config/rs6000/driver-rs6000.c: New file. + * config/rs6000/aix.h (CC1_SPEC): Define. + * config/rs6000/sysv4.h (CC1_SPEC): Add cc1_cpu. + * config.host: Add x-rs6000 to host_xmake_file if host and target + are rs6000 or powerpc. + +2007-08-08 Paolo Bonzini + + * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Use +=. + +2007-08-08 Richard Sandiford + Sandra Loosemore + Chao-ying Fu + Nigel Stephens + David Ung + + * doc/invoke.texi (-mcode-readable): Document. + * config/mips/mips.opt (mcode-readable): New option. + * config/mips/mips-protos.h (SYMBOL_32_HIGH): New symbol type. + * config/mips/mips.h (mips_code_readable_setting): New enum. + (mips_code_readable): Declare. + (TARGET_MIPS16_TEXT_LOADS, TARGET_MIPS16_PCREL_LOADS): New macros. + (TARGET_MIPS16_SHORT_JUMP_TABLES): New macro. + (JUMP_TABLES_IN_TEXT_SECTION): Use it. + (CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE): Likewise. Remove + boiler-plate comments. + (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_MIPS16_SHORT_JUMP_TABLES. + * config/mips/mips.c (mips_code_readable): New variable. + (mips_classify_symbol): Only return SYMBOL_PC_RELATIVE for + MIPS16 labels if TARGET_MIPS16_SHORT_JUMP_TABLES. Use both the + context and -mcode-readable setting to restrict the use of + SYMBOL_PC_RELATIVE for MIPS16 constant pool references. + Only return TARGET_FORCE_TO_MEM if PC-relative loads are allowed. + (mips_symbolic_constant_p): Handle SYMBOL_32_HIGH. + (mips_blocks_for_constant_p): Only return false for + TARGET_MIPS16_PCREL_LOADS. + (mips_symbol_insns_1): Treat HIGHs as 2 extended instructions + for MIPS16. Handle SYMBOL_32_HIGH. + (mips_const_insns): Allow HIGHs for MIPS16 too. + (mips_unspec_address_offset): New function, split out from... + (mips_unspec_address): ...here. + (mips_output_move): Handle MIPS16 HIGH moves. Use "li" to load + 16-bit symbolic constants. Assert approropiate conditions for + using the "la" and "dla" macros. + (mips_handle_option): Handle -mcode-readable=. + (override_options): Use %hi/%lo relocations for TARGET_MIPS16 too. + Set up mips_lo_relocs[SYMBOL_32_HIGH]. + (mips_strip_unspec_address): New function, split out from... + (print_operand_reloc): ...here. + (print_operand): Pass constants through mips_strip_unspec_address. + (print_operand_address): Likewise. + (mips_output_mi_thunk): Remove guard of mips16_lay_out_constants. + (mips_select_rtx_section): Remove MIPS16 handling. + (mips16_gp_pseudo_reg): Check currently_expanding_to_rtl. + (mips16_rewrite_pool_refs): Wrap the labels in an address UNSPEC. + (mips16_lay_out_constants): Do nothing unless + TARGET_MIPS16_PCREL_LOADS. + (mips_avoid_hazards): Remove guard of mips16_lay_out_constants. + * config/mips/mips.md: Split HIGHs for MIPS16. + (tablejump): Use TARGET_MIPS16_SHORT_JUMP_TABLES. + +2007-08-08 Richard Sandiford + + * config/mips/mips-protos.h (mips_emit_move): Declare. + * config/mips/mips.c (mips_emit_move): New function. + (mips_force_temporary): Use mips_emit_move instead of emit_move_insn. + (mips_legitimize_const_move): Likewise. + (mips_legitimize_move): Likewise. + (mips_split_64bit_move): Likewise. + (mips_restore_gp): Likewise. + (mips_load_call_address): Likewise. + (mips_emit_fcc_reload): Likewise. + (mips_set_return_address): Likewise. + (mips_block_move_straight): Likewise. + (mips_block_move_loop): Likewise. + (mips_setup_incoming_varargs): Likewise. + (mips_save_reg): Likewise. + (mips_expand_prologue): Likewise. + (mips_restore_reg): Likewise. + (mips_expand_epilogue): Likewise. + (mips_output_mi_thunk): Likewise. + (build_mips16_call_stub): Likewise. + (mips_builtin_branch_and_move): Likewise. + * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise. + * config/mips/mips.md (fixuns_truncdfsi2): Likewise. + (fixuns_truncdfdi2): Likewise. + (fixuns_truncsfsi2): Likewise. + (fixuns_truncsfdi2): Likewise. + (loadgp_absolute): Likewise. + (builtin_setjmp_setup): Likewise. + (builtin_longjmp): Likewise. + (untyped_call): Likewise. + +2007-08-08 Richard Sandiford + + * config/mips/mips-protos.h (mips_split_symbol): Add a mode and + an "rtx *" argument. Return a bool. + * config/mips/mips.c (mips_split_symbol): Accept arbitrary source + values and return true if they can be split. Take the same kind of + mode argument as mips_symbol_insns. Add a "lo_sum_out" parameter + and store the lo_sum there if nonnull. Use the symbol type to + determine whether a $gp or HIGH is needed. + (mips_legitimize_address): Update call to mips_split_symbol and + simplify accordingly. + (mips_legitimize_const_move): Likewise. + * config/mips/mips.md: In the combine define_split, + check mips_split_symbol instead of splittable_symbolic_operand. + Update use of mips_split_symbol in the generator code. + * config/mips/predicates.md (splittable_symbolic_operand): Delete. + +2007-08-08 Richard Sandiford + + * config/mips/mips.c (mips_symbolic_address_p): Delete. + (mips_symbol_insns_1): New function, split out from... + (mips_symbol_insns): ...here. Take a mode argument. Treat loads + and stores separately from load addresses. + (mips_classify_address): Replace uses of mips_symbolic_address_p + with uses of mips_symbol_insns. + (mips_address_insns): Update calls to mips_symbol_insns. + (mips_const_insns): Likewise. + (mips_legitimize_address): Likewise. + +2007-08-08 Richard Sandiford + + * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): New symbol type. + * config/mips/mips.c (mips_classify_symbol): Skip TARGET_ABICALLS + block for locally-binding symbols if TARGET_ABSOLUTE_ABICALLS. + Return SYMBOL_FORCE_TO_MEM instead of SYMBOL_ABSOLUTE for + non-call contexts if TARGET_MIPS16. + (mips_symbolic_constant_p): Handle SYMBOL_FORCE_TO_MEM. + (mips_symbolic_address_p): Likewise. Remove special TARGET_MIPS16 + code for SYMBOL_ABSOLUTE. + (mips_symbol_insns): Likewise. + +2007-08-08 Richard Sandiford + + * config/mips/mips-protos.h (mips_symbol_context): New enumeration. + * config/mips/mips.c (mips_classify_symbol): Take a context argument. + (mips_symbolic_constant_p): Likewise. Update the call to + mips_classify_symbol. + (mips_classify_address): Update the calls to mips_symbolic_constant_p. + (mips_const_insns): Likewise. Update the call to mips_classify_symbol. + (mips_legitimize_address): Update the call to mips_symbolic_constant_p. + (print_operand_reloc): Add a context argument. Update the call to + mips_symbolic_constant_p. + (print_operand): Update the calls to print_operand_reloc. + (print_operand_address): Use print_operand_reloc rather than + print_operand. + (mips_rewrite_small_data_p): Add a context argument. Update the call + to mips_symbolic_constant_p. + (mips_small_data_pattern_1): Make DATA the containing mem. + Update the call to mips_rewrite_small_data_p. + (mips_rewrite_small_data_1): Likewise. + (mips_use_anchors_for_symbol_p): Update the call to + mips_symbolic_constant_p. + * config/mips/predicates.md (const_call_insn_operand): Likewise. + (splittable_symbolic_operand): Likewise. + (move_operand): Likewise. + (absolute_symbolic_operand): Likewise. + (got_disp_operand): Likewise. + (got_page_ofst_operand): Likewise. + +2007-08-08 Richard Sandiford + + * config/mips/mips-protos.h (SYMBOL_GENERAL): Rename to... + (SYMBOL_ABSOLUTE): ...this. + (SYMBOL_SMALL_DATA): Rename to... + (SYMBOL_GP_RELATIVE): ...this. + (SYMBOL_CONSTANT_POOL): Rename to... + (SYMBOL_PC_RELATIVE): ...this. + * config/mips/mips.c (mips_classify_symbol, mips_symbolic_constant_p) + (mips_symbolic_address_p, mips_symbol_insns, override_options) + (mips_rewrite_small_data_p, mips_use_anchors_for_symbol_p): Update + after above changes. + * config/mips/predicates.md (const_call_insn_operand): Likewise. + (general_symbolic_operand): Rename to... + (absolute_symbolic_operand): ...this. + * config/mips/mips.md: Update after above changes. + +2007-08-08 Vladimir Yanovsky + Revital Eres + + * ddg.c (print_ddg): Add dump information. + * modulo-sched.c (print_node_sched_params): Add parameter and + verbosity. + (calculate_maxii): Remove function. + (undo_generate_reg_moves): Likewise. + (undo_permute_partial_schedule): Likewise. + (kernel_number_of_cycles): Likewise. + (MAXII_FACTOR): New definition to calculate the upper bound of II. + (sms_schedule): Use it. Remove profitability checks. + (sms_schedule_by_order): Fix order of nodes within the cycle. + +2007-08-08 Samuel Thibault + + * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add + -profile option, add pie support. + (ENDFILE_SPEC): New spec. + * gcc/config/gnu.h (LIB_SPEC): Add -profile option. + +2007-08-08 Samuel Thibault + + * gcc/config/i386/gnu.h (CPP_SPEC): Add -pthread option. + * gcc/config/gnu.h (LIB_SPEC): Likewise. + +2007-08-07 Yaz Saito + Ian Lance Taylor + + * common.opt (finstrument-functions-exclude-function-list): New + option. + (finstrument-functions-exclude-file-list): New option. + * opts.c (char_p): Define and DEF_VEC. + (flag_instrument_functions_exclude_functions): New static + variable. + (flag_instrument_functions_exclude_files): New static variable. + (add_instrument_functions_exclude_list): New static function. + (flag_instrument_functions_exclude_p): New function. + (common_handle_option): Handle new options. + * flags.h (flag_instrument_functions_exclude_p): Declare. + * gimplify.c (gimplify_function_tree): Call + flag_instrument_functions_exclude_p. + * doc/invoke.texi (Option Summary): Mention new options. + (Code Gen Options): Document new options. + +2007-08-07 Ian Lance Taylor + + PR rtl-optimization/32776 + * lower-subreg.c (resolve_clobber): Call resolve_reg_notes. + (resolve_use): Likewise. + (decompose_multiword_subregs): Remove "changed" local variable. + +2007-08-07 Carlos O'Donell + + * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes. + * configure: Regenerate. + * config.in: Regenerate. + * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options + spec string. + +2007-08-07 Ian Lance Taylor + + * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL + note, just delete the insn. + 2007-08-07 Andreas Schwab PR bootstrap/32973