X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=37a6f4ec35c3106c537bef38d388e75bf0e36bcd;hp=f750a853c73b5b6db5985202536406edd81abd5a;hb=061202f8bbb0d85e00e6877bf70172914437c00a;hpb=1a086819730325a69fddedef6b98c608be5194cb diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f750a853c73..37a6f4ec35c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,34290 +1,518 @@ -2008-01-05 Uros Bizjak - - PR target/34673 - * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands - in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check. - Update copyright year. - - * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH. - Update copyright year. - * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand - using NR fixup. - -2008-01-05 Zhouyi Zhou - - * tree-vrp.c (find_conditional_asserts): Remove redundant check that - edge does not point to current bb before changing need_assert. - -2008-01-04 Richard Guenther - - PR middle-end/34029 - * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs - for verifying purposes if they are is_gimple_min_invariant. - -2008-01-04 Aldy Hernandez - - PR tree-optimization/34448 - PR tree-optimization/34465 - * gimplify.c (gimplify_init_constructor): Add new parameter - notify_temp_creation. Use it. - (gimplify_modify_expr_rhs): Take volatiles into account when - optimizing constructors. - Do not optimize constructors if gimplify_init_constructor will dump to - memory. - * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles. - * gcc.c-torture/compile/pr34448.c: New. - -2008-01-04 Jakub Jelinek - - PR gcov-profile/34609 - * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on - return_slot if result is TREE_ADDRESSABLE. - -2008-01-04 Richard Sandiford - - * config/mips/mips.md (sqrt_condition): Tweak comment. - (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode. - -2008-01-03 Tom Tromey - - PR c/34457 - * c-common.c (c_type_hash): Handle VLAs. - -2008-01-03 Jan Hubicka - - PR tree-optimization/31081 - * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to - 0 when inlining and not inlining to first basic block. - (remap_decl): When var is initialized to 0, don't set default_def. - (expand_call_inline): Set entry_bb. - * tree-inline.h (copy_body_data): Add entry_bb. - -2008-01-03 Jakub Jelinek - - PR c++/34619 - * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL - before returning. - - PR tree-optimization/29484 - * tree-inline.c (inline_forbidden_p_2): New function. - (inline_forbidden_p): Disallow inlining if some static var - has an address of a local LABEL_DECL in its initializer. - * doc/extend.texi (Labels as Values): Document &&foo behaviour - vs. inlining. - -2008-01-03 Sebastian Pop - - PR tree-optimization/34635 - * tree-data-ref.c (add_other_self_distances): Make sure that the - evolution step is constant. - -2008-01-03 Jakub Jelinek - - PR middle-end/34608 - * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn. - -2008-01-02 Richard Sandiford - - * tree-sra.c (scalarize_init): Insert the generate_element_init - statements after the generate_element_zero statements. - -2008-01-02 Richard Guenther - - PR middle-end/34093 - PR middle-end/31976 - * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer - for very large number of operands instead of ICEing. - -2008-01-02 Arthur Norman - - PR target/34013 - * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone - while stack probing. - -2008-01-01 Douglas Gregor - - * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when - in C++0x mode. - -2008-01-01 Volker Reichelt - - PR libmudflap/26442 - * tree-mudflap.c (mx_register_decls): Guard warning by - !DECL_ARTIFICIAL check. - -2008-01-01 Jakub Jelinek - - * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, - sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, - sse5_perm): Fix constraints. - -2007-12-31 John David Anglin - - PR driver/33772 - * collect2.c (SHLIB_SUFFIX): Define if not defined. - (write_c_file_stat): Use SHLIB_SUFFIX. - * som.h (SHLIB_SUFFIX): Define. - * doc/tm.texi (SHLIB_SUFFIX): Document. - -2007-12-29 Uros Bizjak - - * config/i386/sse.md ("*divv4sf3"): Rename to "sse_divv4sf3". - ("*sse_rsqrtv4sf2"): Export. - ("*sse_sqrtv4sf2"): Ditto. - * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_RSQRTPS_NR, - IX86_BUILTIN_SQRTPS_NR]: New constants. - (struct builtin_description) [IX86_BUILTIN_DIVPS]: Use - CODE_FOR_sse_divv4sf3. - [IX86_BUILTIN_SQRTPS]: Use CODE_FOR_sse_sqrtv4sf2. - [IX86_BUILTIN_SQRTPS_NR]: New. - [IX86_BUILTIN_RSQRTPS_NR]: Ditto. - (ix86_init_mmx_sse_builtins): Initialize __builtin_ia32_rsqrtps_nr and - __builtin_ia32_sqrtps_nr. - (ix86_builtin_vectorized_function): Convert BUILT_IN_SQRTF to - IX86_BUILTIN_SQRTPS_NR. - (ix86_builtin_reciprocal): Convert IX86_BUILTIN_SQRTPS_NR to - IX86_BUILTIN_RSQRTPS_NR. - -2007-12-27 Brian Dessent - - * doc/invoke.texi (Optimize Options): Add missing opindex for - -fno-toplevel-reorder. - -2007-12-27 Dorit Nuzman - - PR tree-optimization/34591 - * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip - stmts (including reduction stmts) that are not live. - -2007-12-27 Jakub Jelinek +2008-01-16 Sebastian Pop - PR target/34281 - * config/arm/arm.c (arm_setup_incoming_varargs): If last named - argument needs double word alignment and cum->nregs is odd, account - for the inserted padding. + * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for + libgomp when compiling with ftree-parallelize-loops. + (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops. - PR debug/34535 - * tree-mudflap.c (mf_make_builtin): Make decl artificial - and don't emit debug info for it. +2008-01-16 Richard Guenther -2007-12-26 Anatoly Sokolov + PR tree-optimization/34769 + * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458. + * tree.c (int_cst_value): Instead make this function more + permissive in what it accepts as valid input. Document this + function always sign-extends the value. - * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Move AT90USB82 - and AT90USB162 devices from 'avr5' to 'avr35' architecture. - (ASM_SPEC): Add 'avr35' architecture. - * config/avr/avr.c (avr_mcu_types): Move AT90USB82 and AT90USB162 - devices from 'avr5' to 'avr35' architecture. - (avr_arch_types): Add "avr23" entries. - (avr_arch): Add 'ARCH_AVR35'. - * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add 'avr35'. - (MULTILIB_MATCHES): Move AT90USB82 and AT90USB162 devices from 'avr5' - to 'avr35' architecture. +2008-01-16 Jakub Jelinek + Richard Guenther -2007-12-22 David Daney + PR c/34668 + * gimplify.c (fold_indirect_ref_rhs): Rename to ... + (gimple_fold_indirect_ref_rhs): ... this. + (gimple_fold_indirect_ref): New function with foldings + that preserve lvalueness. + (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs. + * tree-flow.h (gimple_fold_indirect_ref): Declare. + * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref + to fold an INDIRECT_REF, fall back to the old use of + fold_indirect_ref_1. - * doc/install.texi (disable-libgcj-bc): Document new option. +2008-01-16 Sebastian Pop -2007-12-21 John David Anglin + * tree-data-ref.c (subscript_dependence_tester_1): Call + free_conflict_function. + (compute_self_dependence): Same. - * config/pa/pa.c (hppa_legitimize_address): Use INT14_OK_STRICT in - mask selection. +2008-01-16 Uros Bizjak - PR target/34525 - * pa.c (legitimize_pic_address): Emit insn to load function label - forced to memory. + PR debug/34249 + * debug.h (dwarf2out_switch_text_section): Move declaration from ... + * dwarf2out.c (dwarf2out_switch_text_section): ... here. Make + function global. + * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]: + Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section + for DWARF2_UNWIND_INFO targets. -2007-12-21 Andrew Pinski - Rask Ingemann Lambertsen +2008-01-16 Richard Guenther - PR target/8835 - * config/mcore/mcore.c (mcore_function_value): Call promote_mode - instead of PROMOTE_MODE. + PR c/34768 + * c-typeck.c (common_pointer_type): Do not merge inconsistent + type qualifiers for function types. -2007-12-21 Sebastian Pop +2008-01-15 Jerry DeLisle - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix typo. + * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for + loop_iterator li from previous commit. -2007-12-21 Sebastian Pop +2008-01-15 Sebastian Pop - * tree-data-ref.c (signed_type_for_types): New. - (affine_fn_op): Use signed_type_for_types and signed_type_for instead - of long_integer_type_node. - (analyze_ziv_subscript): Same. - (analyze_siv_subscript_cst_affine): Same. - (analyze_miv_subscript): Same. - (omega_setup_subscript): Same. + * tree-parloops.c (gen_parallel_loop): Free loop bound estimations. -2007-12-21 Richard Sandiford +2008-01-12 Sebastian Pop - * config/mips/mips.c (mips_emit_loadgp): Replace gen_* calls with - separate gen_*_si and gen_*_di calls. Pass pic_offset_table_rtx - as the first argument. - * config/mips/mips.md (loadgp_newabi, loadgp_absolute) - (loadgp_rtp): Rename to... - (loadgp_newabi_, loadgp_absolute, loadgp_rtp): - ...these. Add modes to all operands. Add the target register - as an operand. Combine loadgp_rtp with its splitter. + * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New. + (parallelize_loops): Don't parallelize irreducible components. -2007-12-20 Bob Wilson +2008-01-14 Manuel Lopez-Ibanez - * config/xtensa/xtensa.md (fix_return_addr): Remove. - * config/xtensa/xtensa-protos.h (xtensa_initialize_trampoline): New. - (xtensa_trampoline_template): New. - * config/xtensa/xtensa.c (MIN_FRAME_SIZE): Moved here from xtensa.h. - (xtensa_return_addr): Expand to standard Xtensa insns instead of - fix_return_addr. Get high bits from a local label. - (xtensa_trampoline_template): New function with code moved from - TRAMPOLINE_TEMPLATE in xtensa.h. Use L32R instead of CALL0 except - when using CONST16 or absolute-mode literals. - (xtensa_initialize_trampoline): New function with code moved from - INITIALIZE_TRAMPOLINE in xtensa.h. Use different offsets depending - on which trampoline version is used. - * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Add comment. - * config/xtensa/xtensa.h (TARGET_ABSOLUTE_LITERALS): Define. - (MIN_FRAME_SIZE): Moved to xtensa.c. - (TRAMPOLINE_TEMPLATE): Use xtensa_trampoline_template. - (TRAMPOLINE_SIZE): Two versions of the trampoline have different sizes. - (INITIALIZE_TRAMPOLINE): Use xtensa_initialize_trampoline. - * config/xtensa/ieee754-df.S (XCHAL_NO_MUL): Define. - (__muldf3): Use CALL12 instead of CALL0 to invoke .Lmul_mulsi3 - helper when not using the CALL0 ABI. Change .Lmul_mulsi3 to match. - * config/xtensa/lib1funcs.asm (__umulsidi3): Likewise. - * config/xtensa/ieee754-sf.S (__mulsf3): Likewise. + PR c++/24924 + * c-opts (c_common_post_options): Do not enable CPP + flag_pedantic_errors by default. -2007-12-20 Jakub Jelinek - - PR c++/34459 - * tree-ssa-dse.c (dse_optimize_stmt): Don't eliminate store if - USE_STMT not only stores into the same object as STMT, but might - read it too. - -2007-12-19 Sebastian Pop - - PR tree-optimization/34413 - * tree-data-ref.c (affine_fn_op, analyze_ziv_subscript, - analyze_siv_subscript_cst_affine, analyze_miv_subscript, - omega_setup_subscript): Use long_integer_type_node instead of - integer_type_node. - -2007-12-19 John David Anglin - - PR target/34525 - * pa.c (legitimize_pic_address): Force function labels into memory. - -2007-12-19 Zdenek Dvorak - - * omp-low.c (build_omp_regions_1): Recognition of combined parallels - moved ... - (expand_omp): ... here. - -2007-12-19 Zdenek Dvorak - - PR tree-optimization/34355 - * tree-parloops.c (take_address_of): Handle expresions - instead of just variables. - (eliminate_local_variables_1): Force whole invariant - address to ssa name. - -2007-12-19 Alexander Monakov - Revital Eres - - * modulo-sched.c (generate_reg_moves): Insert the reg-moves - right before the notes which precedes the insn, if they exists. - (loop_canon_p): Add dump info. - (sms_schedule): Likewise. - -2007-12-19 Richard Sandiford - - * tree.h (set_decl_incoming_rtl): Add a by_reference_p parameter. - * emit-rtl.c (set_decl_incoming_rtl): Likewise. Don't set the - rtl's register attributes when the parameter is true. - * function.c (assign_parms_unsplit_complex, assign_parms) - (expand_function_start): Update calls to set_decl_incoming_rtl. +2008-01-14 Eric Botcazou -2007-12-19 Richard Sandiford + PR rtl-optimization/31944 + * cse.c (remove_pseudo_from_table): New function. + (merge_equiv_classes): Use above function to remove pseudo-registers. + (invalidate): Likewise. - * rtl.def (SUBREG): Update comments. - * rtl.h (reg_attrs): Be explicit about the type of offset used. - (set_reg_attrs_from_mem): Rename to... - (set_reg_attrs_from_value): ...this. - (adjust_reg_mode, byte_lowpart_offset): Declare. - * emit-rtl.c (byte_lowpart_offset): New function. - (update_reg_offset): Remove special offset handling for big-endian - targets. - (gen_rtx_REG_offset, gen_reg_rtx_offset): Explicitly say that the - offset parameter is added to REG_OFFSET. - (adjust_reg_mode): New function. - (set_reg_attrs_for_mem): Rename to... - (set_reg_attrs_for_value): ...this and generalize to all values. - If the register is a lowpart of the value, adjust the offset - accordingly. - (set_reg_attrs_for_parm): Update after the above renaming. - (set_reg_attrs_for_decl_rtl): New function, split out from - set_decl_incoming_rtl. Set the offset of plain REGs to the - offset of the REG's mode from the decl's. Assert that all - subregs are lowparts and handle their inner registers in the - same way as plain REGs. - (set_decl_rtl, set_incoming_decl_rtl): Use reg_attrs_for_decl_rtl. - (subreg_lowpart_offset): Explicitly say that the returned offset - is a SUBREG_BYTE. - * combine.c (do_SUBST_MODE, try_combine, undo_all): Use adjust_reg_mode - instead of PUT_MODE. - * final.c (alter_subreg): Fix/update argument to gen_rtx_REG_offset. - * config/ia64/ia64.c (ia64_expand_load_address): Likewise. - * regclass.c (reg_scan_mark_refs): Use set_reg_attrs_from_value. - * reload.c (find_reloads_subreg_address): Call set_mem_offset - when offseting a MEM. - * var-tracking.c (offset_valid_for_tracked_p): Delete. - (mode_for_reg_attrs): Replace with... - (track_loc_p): ...this new function. Return the mode and offset - to the caller, checking that the latter is valid. If the rtx is - a paradoxical lowpart of the decl, use the decl's mode instead. - Do the same when storing to a register that contains the entire decl. - (var_lowpart): Use byte_lowpart_offset rather than - subreg_lowpart_offset when adjusting the offset attribute. - (count_uses, add_uses, add_stores): Use track_reg_p instead of - REG_EXPR, MEM_EXPR, REG_OFFSET, INT_MEM_OFFSET, track_expr_p, - offset_valid_for_tracked_p and mode_for_reg_attrs. Generate - lowparts for MEMs as well as REGs. - (vt_add_function_parameters): When obtaining the information from - the decl_rtl, adjust the offset to match incoming. Use track_loc_p - and var_lowpart. +2008-01-13 Richard Guenther -2007-12-18 Sebastian Pop + PR middle-end/34601 + * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE + instead of TYPE_MODE to deal with calls from expand_one_error_var. - PR tree-optimization/34123 - * lambda-code.c (can_duplicate_iv): New. - (cannot_convert_modify_to_perfect_nest): New. - (cannot_convert_bb_to_perfect_nest): New. - (can_convert_to_perfect_nest): Split up. +2008-01-13 Uros Bizjak -2007-12-18 David Daney + * gcse.c (cprop_jump): Call validate_unshare_change instead of + validate_change to unshare the source of the PC set. - * config/mips/mips.md (clear_hazard): Use PRINT_OPERAND punctuation - instead of .set push and .set pop. +2008-01-12 Jan Hubicka -2007-12-18 Rask Ingemann Lambertsen + PR middle-end/32135 + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct + references above array bounds. This might trigger bounds checks for + pointers to arrays. - PR target/33474 - * config/bfin/bfin.c (bfin_adjust_cost): Dig into PARALLELs to find - the SET. +2008-01-12 Sebastian Pop -2007-12-18 Razya Ladelsky + * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and + new_replaceable_dependencies. - * tree-parloops.c (reduiction_info): Change documentation of - reduction_initial field. - (initialize_reductions): Remove creation of reduction_initial variable. - (create_loads_for_reductions): don't join reduction_initial to - the loaded value. +2008-01-12 Doug Kwan -2007-12-18 Kaz Kylheku + * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers + instead of OPT_Wreturn_type in warning due to ignored return type + qualifiers. + * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to + options included in -Wextra. + * c.opt: New option -Wignored_qualifiers. + * doc/invoke.texi (Warning Options, -Wextra): Add new option + -Wignore_qualifiers. + (-Wignored-qualifiers): Document. + (-Wreturn-type): Remove description of functionality now handled + by -Wignored-qualifiers. - PR rtl-optimization/34456 - * resource.c (mark_set_resources): Use regs_invalidated_by_call - rather than call_used_regs and global_regs. +2008-01-12 Eric Botcazou -2007-12-18 Jakub Jelinek + PR ada/33788 + * fold-const.c (fold_unary) : Fold an existing + NOP_EXPR if it is between integral types with the same precision. - PR rtl-optimization/34490 - * simplify-rtx.c (simplify_const_relational_operation): If !sign, - don't reduce mmin/mmax using num_sign_bit_copies. +2008-01-12 Jan Hubicka -2007-12-17 Kaveh R. Ghazi + PR other/28023 + * invoke.texi (max-inline-recursive-depth): Fix default value. - * doc/install.texi: Change recommended MPFR from 2.2.1 > 2.3.0. +2008-01-12 Zdenek Dvorak -2007-12-17 Andreas Schwab + * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the + correct type. - * doc/invoke.texi (Warning Options): Use @itemx. - -2007-12-17 Dorit Nuzman - - * tree-vectorizer.h (verbosity_levels): Add new verbosity level - REPORT_COST. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): Change - verbosity level to REPORT_COST. - (vect_model_reduction_cost): Likewise. - (vect_model_induction_cost): Likewise. - (vect_model_simple_cost): likewise. - (vect_model_store_cost): likewise. - (vect_model_load_cost): likewise. - (conservative_cost_threshold): Likewise. Remove print. - -2007-12-17 Rask Ingemann Lambertsen - - * doc/tm.texi (TARGET_SECONDARY_RELOAD): Fix typos. - -2007-12-17 Jakub Jelinek - - PR c/34506 - * c-parser.c (c_parser_omp_all_clauses): Accept optional comma - in between clauses. - -2007-12-17 Dorit Nuzman - - PR tree-optimization/34445 - * tree-vect-trasnform.c (vect_estimate_min_profitable_iters): Skip - stmts (including live stmts) that are not relevant. - -2007-12-17 Jack Howarth - - PR target/34025 - * config/i386/t-crtpc: Add $(MULTILIB_CFLAGS). - * config/i386/t-crtfm: Likewise. +2008-01-11 Bob Wilson + + * config/xtensa/xtensa.c (override_options): Set flag_shlib. + +2008-01-11 James E. Wilson -2007-12-17 Uros Bizjak + PR target/26015 + * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define. - * config/i386/i386.h (WIDEST_HARDWARE_FP_SIZE): Define. +2008-01-11 Anatoly Sokolov -2007-12-16 Uros Bizjak + * config/avr/avr.c (expand_prologue, expand_epilogue): Don't + save/restore frame pointer register and don't use 'call-prologues' + optimization in function with "OS_task" attribute. - * tree-vect-transform.c (conservative_cost_threshold): Add missing - space to "not vectorized" message. +2008-01-11 Eric Botcazou -2007-12-16 Richard Sandiford + PR middle-end/31309 + * expr.c (copy_blkmode_from_reg): Use a mode suited to the size + when copying to memory. - PR rtl-optimization/34415 - * df.h (DF_LR_IN, DF_LR_OUT): Update comments. - * resource.c (mark_target_live_regs): Use DF_LR_IN rather than - df_get_live_in. Don't handle pseudos. +2008-01-11 Steven Bosscher -2007-12-16 Jakub Jelinek + PR rtl-optimization/30905 + * cfgcleanup.c: Include dce.h + (crossjumps_occured): New global variable. + (try_crossjump_bb): Exit loop after finding a fallthru edge. + If something changed, set crossjumps_occured to true. + (try_optimize_cfg): Clear crossjumps_occured at the beginning. + Don't add/remove fake edges to exit here... + (cleanup_cfg): ...but do it here, when crossjumping. + Run a fast DCE when successful crossjumps occured in the latest + iteration of try_optimize_cfg. - PR bootstrap/34003 - * c-decl.c (merge_decls): Copy RTL from olddecl to newdecl. - * config/pa/pa.c (pa_encode_section_info): If !first, preserve - SYMBOL_FLAG_REFERENCED flag. +2008-01-11 Richard Guenther -2007-12-15 Alexandre Oliva + * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode. + (struct vn_unary_op_s): Likewise. + (vn_reference_insert): Free old reference on hash collision. - * tree.c (type_hash_add): Fix whitespace. +2008-01-10 Raksit Ashok -2007-12-15 Hans-Peter Nilsson + PR rtl-optimization/27971 + * combine.c (find_split_point): Split PLUS expressions which are + inside a MEM rtx, and whose first operand is complex. - Add CRIS v32 support. Fix -mcc-init. - * config.gcc: Make crisv32-* have cpu_type cris. Handle - crisv32-*-elf and crisv32-*-none like cris-*-elf and cris-*-none - but without multilibs and with target_cpu_default=32. - (crisv32-*-linux*): Handle as cris-*-linux*. Set - target_cpu_default to 32 and 10 accordingly. - * config/cris/cris.c (ASSERT_PLT_UNSPEC): Remove unused macro. - (cris_movem_load_rest_p, cris_store_multiple_op_p): Remove FIXME. - Change regno_dir and regno only if !TARGET_V32. - (cris_conditional_register_usage): If TARGET_V32, set - reg_alloc_order as per REG_ALLOC_ORDER_V32 and make - CRIS_ACR_REGNUM non-fixed. - (cris_print_base): Add gcc_assert for post_inc on CRIS_ACR_REGNUM. - (cris_print_operand) : New cases. - : Allow for CRIS_SRP_REGNUM. - (cris_reload_address_legitimized): Always return false for TARGET_V32. - (cris_register_move_cost): New function, guts from - REGISTER_MOVE_COST adjusted for CRIS v32. - (cris_normal_notice_update_cc): New function split out from... - (cris_notice_update_cc): Set cc_status.flags CC_REVERSED for - TARGET_CCINIT. Call cris_normal_notice_update_cc for CC_REV, - CC_NOOV32 and CC_NORMAL, but set cc_status.flags CC_NO_OVERFLOW - for CC_NOOV32 and TARGET_V32. - (cris_simple_epilogue): Always return false for TARGET_V32 if - cris_return_address_on_stack yields true. - (cris_cc0_user_requires_cmp): New function. - (cris_valid_pic_const): Add argument ANY_OPERAND. All callers - changed. Handle CRIS_UNSPEC_PLT_PCREL and CRIS_UNSPEC_PCREL. - (cris_asm_output_case_end): New function, guts from - ASM_OUTPUT_CASE_END adjusted for CRIS v32. - (cris_override_options): Adjust for CRIS v32. Mask out - TARGET_SIDE_EFFECT_PREFIXES and TARGET_MUL_BUG if v32. - (cris_asm_output_mi_thunk, cris_expand_epilogue) - (cris_gen_movem_load, cris_emit_movem_store) - (cris_expand_pic_call_address, cris_asm_output_symbol_ref) - (cris_asm_output_label_ref, cris_output_addr_const_extra): Adjust - for CRIS v32. - (cris_split_movdx): Copy re-used MEM. - * config/cris/t-elfmulti: Add multilib v32 for -march=v32. - * config/cris/predicates.md - ("cris_general_operand_or_pic_source"): New predicate. - ("cris_general_operand_or_plt_symbol"): Replace by... - ("cris_nonmemory_operand_or_callable_symbol"): New predicate. - * config/cris/linux.h: Sanity-check TARGET_CPU_DEFAULT for - presence and contents. - (CRIS_SUBTARGET_DEFAULT_ARCH): New macro, MASK_AVOID_GOTPLT for - v32, 0 otherwise. - (CRIS_CPP_SUBTARGET_SPEC, CRIS_CC1_SUBTARGET_SPEC, - CRIS_ASM_SUBTARGET_SPEC): Adjust for different TARGET_CPU_DEFAULT. - (CRIS_SUBTARGET_DEFAULT): Add CRIS_SUBTARGET_DEFAULT_ARCH. - * config/cris/cris.h: Sanity-check TARGET_CPU_DEFAULT for contents. - (CRIS_DEFAULT_TUNE, CRIS_ARCH_CPP_DEFAULT) - (CRIS_DEFAULT_ASM_ARCH_OPTION): New macros. - (CRIS_CC1_SUBTARGET_SPEC): Change default tuning to use - CRIS_DEFAULT_TUNE. - (CRIS_CPP_SUBTARGET_SPEC): Ditto. Add CRIS_ARCH_CPP_DEFAULT. - (ASM_SPEC): Add sanity-check erroring out when both -march= and - -mcpu= are specified. Pass on either as --march=v32. - (CRIS_ASM_SUBTARGET_SPEC): When neither -march= or -mcpu= are - specified, pass on CRIS_DEFAULT_ASM_ARCH_OPTION. - (CRIS_CPU_V32): New macro. - [!TARGET_CPU_DEFAULT]: Default-define as CRIS_CPU_BASE. - [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]: Move default - TARGET_DEFAULT definition after new TARGET_CPU_DEFAULT definition. - Define v32-adjusted TARGET_DEFAULT. - (CRIS_DEFAULT_CPU_VERSION): Change to TARGET_CPU_DEFAULT from - CRIS_CPU_BASE. - (TARGET_V32): New macro. - (REG_ALLOC_ORDER_V32): New macro. - (HARD_REGNO_MODE_OK): Do not allow larger-than-register-size modes - into CRIS_ACR_REGNUM. - (enum reg_class): New classes ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS - and SPEC_GENNONACR_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Adjust for new classes. - (REGNO_REG_CLASS): Give ACR_REGS for CRIS_ACR_REGNUM. - (MODE_CODE_BASE_REG_CLASS): Define, give for OCODE POST_INC - GENNONACR_REGS, BASE_REG_CLASS otherwise. - (REG_CLASS_FROM_LETTER): 'a' is for ACR_REGS. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Define, refusing OCODE POST_INC - for CRIS_ACR_REGNUM. - (PREFERRED_RELOAD_CLASS): Keep ACR_REGS as preferred. - (HARD_REGNO_RENAME_OK): Refuse CRIS_ACR_REGNUM as TO. - (EXTRA_CONSTRAINT): New constraint 'U'. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE) - (ASM_OUTPUT_ADDR_DIFF_ELT): Adjust for CRIS v32. - (BASE_OR_AUTOINCR_P): Refuse POST_INC for CRIS_ACR_REGNUM. - (SIMPLE_ADDRESS_P): Remove. - (GO_IF_LEGITIMATE_ADDRESS): Use BASE_OR_AUTOINCR_P, not redundant - SIMPLE_ADDRESS_P. Make one chained if-else, finishing as - non-match after BASE_OR_AUTOINCR_P for TARGET_V32. - (REGISTER_MOVE_COST): Just call the new function - cris_register_move_cost. - (enum cris_pic_symbol_type): Rename cris_gotrel_symbol to - cris_rel_symbol. All users changed. - (REGISTER_NAMES): Replace "pc" with "acr". - (ADDITIONAL_REGISTER_NAMES): Add "pc" for 15. - (ASM_OUTPUT_REG_PUSH): Change to v32-compatible sequence. - (ASM_OUTPUT_REG_POP): Change to v32-compatible syntax. - (ASM_OUTPUT_CASE_END): Just call the new function - cris_asm_output_case_end. - * gcc/config/cris/cris.md: Group related constants together, with - comments local. - (CRIS_UNSPEC_PLT_GOTREL, CRIS_UNSPEC_PLT_PCREL, CRIS_UNSPEC_PCREL) - (CRIS_UNSPEC_CASESI): New constants. - (CRIS_UNSPEC_PLT): Remove constant. - (CRIS_ACR_REGNUM): New constant. - ("slottable"): New attr alternatives "has_return_slot" and - "has_call_slot". - ("cc"): New attr alternatives "noov32" and "rev". - ((eq_attr "slottable" "has_call_slot")) - ((eq_attr "slottable" "has_return_slot")): New define_delays. - ("movdi", "movsi"): Adjust operands for CRIS v32. - ("tstdi", "cmpdi", "adddi3", "subdi3", "uminsi3") - ("indirect_jump"): Ditto. Make define_expand. - ("*tstdi_non_v32", "*tstdi_v32", "*tst_cmp") - ("*tst_non_cmp", "*cmpdi_non_v32", "*cmpdi_v32") - ("*movdi_v32", "*adddi3_non_v32", "*adddi3_v32") - ("*addsi3_non_v32", "*addsi3_v32", "*addhi3_non_v32") - ("*addhi3_v32", "*addqi3_non_v32", "*addqi3_v32") - ("*subdi3_non_v32", "*subdi3_v32", "*subsi3_non_v32") - ("*subsi3_v32", "*sub3_nonv32", "*sub3_v32") - ("*andqi3_non_v32", "*andqi3_v32", "*iorsi3_non_v32") - ("*iorsi3_v32", "*iorhi3_non_v32", "*iorhi3_v32") - ("*iorqi3_non_v32", "*iorqi3_v32", "*uminsi3_non_v32") - ("*uminsi3_v32", "*indirect_jump_non_v32", "*indirect_jump_v32") - ("*expanded_call_v32", "*expanded_call_value_v32"): New patterns, - for the corresponding standard name. - ("tst"): Limit to BW and make define_expand. - ("tstsi"): Make separate insn, adjusting for CRIS v32. - ("*cmp_swapext"): Adjust for v32. Specify "rev" for attr "cc". - ("cmpsi", "cmp"): Remove special cases for zero. Specify - attr "cc". - ("*btst"): Don't match for TARGET_CCINIT. Replace test of - register with compatible "cmpq 0". Specify attr "cc". - ("*movdi_insn_non_v32"): New pattern, replacing "*movdi_insn" and - define_split. - (define_split for DI move): Match CRIS v32 only. - ("*movsi_got_load", "*movsi_internal", "*addi"): Adjust for CRIS v32. - ("load_multiple", "store_multiple", "*addsbw_v32", "*addubw_v32") - ("*adds_v32", "*addu_v32", "*bound_v32") - ("*casesi_jump_v32", "*expanded_andsi_v32", "*expanded_andhi_v32") - ("*extopsi_v32", "*extopqihi_v32", "*andhi_lowpart_v32") - ("*andqi_lowpart_v32", "cris_casesi_v32"): New patterns. - ("add3"): Make addsi3, addhi3 and addqi3 define_expand. - ("sub3"): Ditto subsi3, subhi3 and subqi3. - ("ior3"): Ditto iorsi3, iorhi3 and iorqi3. - ("*extopqihi_non_v32"): Replace "*extopqihi". - ("*extopsi_non_v32"): Replace "*extopsi". - ("*addxqihi_swap_non_v32"): Rename from "*extopqihi_swap", make - non-v32 only. - ("*extopsi_swap_non_v32"): Ditto "*extopsi_swap". - ("*expanded_andsi_non_v32"): Ditto "*expanded_andsi". - ("*expanded_andhi_non_v32"): Ditto "*expanded_andhi". - ("*andhi_lowpart_non_v32"): Ditto "*andhi_lowpart". - ("*andqi_lowpart_non_v32"): Ditto "*andqi_lowpart". - ("*expanded_call_non_v32"): Ditto "*expanded_call". Change from - "cris_general_operand_or_plt_symbol" to "general_operand". - ("*expanded_call_value_non_v32") Ditto "*expanded_call_value". - ("*casesi_adds_w", "mstep_shift", "mstep_mul") - ("*expanded_call_side", "*expanded_call_value_side") - (op-extend-split, op-extend-split-rx=rz, op-extend-split-swapped) - (op-extend-split-swapped-rx=rz, op-extend, op-split-rx=rz) - (op-split-swapped, op-split-swapped-rx=rz): Make non-v32 only. - ("dstep_mul", "xorsi3", "one_cmplsi2", "si3") - ("*expanded_", "*_lowpart", "ashl3") - ("*ashl_lowpart", "abssi2", "clzsi2", "bswapsi2") - ("cris_swap_bits"): Specify "noov32" for attr "cc". - ("mulsi3_highpart"): Ditto. Correct operand 0 to register_operand. - ("andqi3"): Make define_expand. - ("*return_expanded"): For attr "slottable", change from "has_slot" - to "has_return_slot". - ("cris_casesi_non_v32"): New pattern, old contents of "casesi". - ("casesi"): Divert into "cris_casesi_v32" and "cris_casesi_non_v32". - (moversideqi, movemsideqi, mover2side): Require - TARGET_SIDE_EFFECT_PREFIXES. - (gotplt-to-plt, gotplt-to-plt-side): Change from CRIS_UNSPEC_PLT - to CRIS_UNSPEC_PLT_GOTREL. - * config/cris/cris-protos.h (cris_register_move_cost) - (cris_cc0_user_requires_cmp, cris_asm_output_case_end): Declare. +2008-01-10 DJ Delorie -2007-12-15 Alexandre Oliva + * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from... + (m32c_hard_regno_nregs): ...this, which is now a wrapper. + (m32c_hard_regno_ok): Call the underlying function. - PR debug/7081 - * dwarf2out.c (dwarf_tag_name): Synchronize with dwarf2.h. - (is_type_die): Cover interface types. - (class_or_namespace_scope_p): Cover interface and class types. - (record_type_tag): New. - (gen_inlined_structure_type_die): Use it. - (gen_struct_or_union_type_die): Likewise. - (prune_unused_types_walk): Cover interface types. - * langhooks.h (classify_record): New enum. - (classify_record): New member in struct langhooks_for_types. - * langhooks-def.h (LANG_HOOKS_CLASSIFY_RECORD): New. - (LANGHOOKS_FOR_TYPES_INITIALIZER): Adjust. +2008-01-10 Richard Guenther -2007-12-15 Alexandre Oliva + PR middle-end/34683 + * tree-cfg.c (tree_merge_blocks): Do not go through the + full-blown folding and stmt updating path if we just deal + with virtual operands. + * tree-ssa-copy.c (may_propagate_copy): Do not short-cut + test for abnormal SSA_NAMEs. - * dwarf2out.c (reference_to_unused): Don't emit strings in - initializers just because of debug information. - * tree.h (TREE_ASM_WRITTEN): Document use for STRING_CSTs. +2008-01-10 Andreas Krebbel -2007-12-15 Sebastian Pop + PR middle-end/34641 + * reload.c (push_reload): Add assertions. All constants from + reg_equiv_constant should have been used for replacing the respective + pseudo earlier. + (find_reloads_address): Invoke find_reloads_address_part for + constant taken from the reg_equiv_constant array. - * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Replace - print_loop_ir with print_loops. - * tree-flow.h (dot_cfg, debug_loops, debug_loop, debug_loop_num, - print_loops, print_loops_bb): Declare. - * tree-cfg.c (print_loops_bb): New. - (print_loop): Print header, latch, bounds, estimation of iterations. - (print_loop_and_siblings): New. - (print_loop_ir): Renamed print_loops. - (debug_loop_ir): Renamed debug_loops. - (debug_loop, debug_loop_num): New. +2008-01-10 Steven Bosscher -2007-12-15 Bernhard Fischer + * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed + field (valnum) the first in the struct. Replace bools with + unit bit fields. - * tree-flow-inline.h.c (next_readonly_imm_use): Fix typo in comment. +2008-01-10 Richard Guenther -2007-12-15 Bernhard Fischer + PR tree-optimization/34651 + * tree-sra.c (sra_build_assignment): Sanitize. Use the correct + types and ordering for masking and converting. - * toplev.c (process_options): Fix typo in warning. +2008-01-09 Sebastian Pop -2007-12-14 Jakub Jelinek + PR tree-optimization/34017 + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code + also for PHI_NODE expressions. - PR target/29978 - * config/i386/i386.c (ix86_expand_branch): Optimize LE/LEU/GT/GTU - DImode comparisons against constant with all 1's in the lower word. +2008-01-09 Jan Hubicka -2007-12-14 Uros Bizjak + PR tree-optimization/34708 + * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR + based on number of case labels. + (init_inline_once): Remove switch_cost. + * tree-inline.h (eni_weights_d): Remove switch_cost. - * config/i386/sse.md (sse4_2_pcmpestr): Use reg_not_xmm0_operand - constraint for operand 2. Use nonimm_not_xmm0_operand constraint - for operand 4. Update arguments in the call to - gen_sse4_2_pcmpestr_cconly. - (sse_4_2_pcmpestr_cconly): Renumber insn operands and update insn - template accordingly. - (sse4_2_pcmpistr): Use reg_not_xmm0_operand constraint for operand2. - Use nonimm_not_xmm0_operand constraint for operand 3. Update - arguments in the call to gen_sse4_2_pcmpistr_cconly. - (sse_4_2_pcmpistr_cconly): Renumber insn operands and update insn - template accordingly. +2008-01-09 Richard Guenther + Andrew Pinski -2007-12-14 Richard Guenther + PR middle-end/30132 + * gimplify.c (gimplify_cond_expr): Do not create an addressable + temporary if an rvalue is ok or an lvalue is not required. - PR middle-end/34462 - * tree-ssa-operands.h (create_ssa_artificial_load_stmt): Add - parameter to say whether to unlink immediate uses. - * tree-ssa-operands.c (create_ssa_artificial_load_stmt): Do not - mark the artificial stmt as modified. Unlink immediate uses - only if requested. - * tree-ssa-dom.c (record_equivalences_from_stmt): Update caller. - * tree-ssa-pre.c (insert_fake_stores): Likewise. +2008-01-09 Richard Guenther -2007-12-13 Eric Botcazou + PR middle-end/34458 + * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst, + adjust return type. - PR middle-end/33088 - * gimplify.c (gimplify_modify_expr_complex_part): Add note to comment. - * tree-complex.c (init_dont_simulate_again): Return true if there are - uninitialized loads generated by gimplify_modify_expr_complex_part. - * tree-gimple.c (is_gimple_reg_type): Return false for complex types - if not optimizing. - * tree-ssa.c (ssa_undefined_value_p): New predicate extracted from... - (warn_uninit): ...here. Use ssa_undefined_value_p. - * tree-ssa-pre.c (is_undefined_value): Delete. - (phi_translate_1): Use ssa_undefined_value_p. - (add_to_exp_gen): Likewise. - (make_values_for_stmt): Likewise. - * tree-flow.h (ssa_undefined_value_p): Declare. +2008-01-09 Richard Guenther -2007-12-13 Andrew Pinski - David Daney + PR middle-end/34679 + * tree.c (host_integerp): Check for sizetype only if the + type is an integer type. - PR bootstrap/34144 - * system.h: Make -Wuninitialized non-fatal if ASSERT_CHECKING - is disabled. +2008-01-09 Steven Bosscher -2007-12-13 Jakub Jelinek + PR debug/26364 + * opts.c (decode_options): Disable inlining of functions called + once if not in unit-at-a-time mode. - PR rtl-optimization/32636 - * df-scan.c (df_get_entry_block_def_set): Set struct_value_rtx - regno in entry_block_defs even if HAVE_prologue && epilogue_completed. +2008-01-09 Alexandre Oliva -2007-12-13 Uros Bizjak - Richard Guenther + * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency. - PR target/34435 - * config/i386/emmintrin.h (_mm_shuffle_pd, _mm_extract_epi16, - _mm_insert_epi16, _mm_shufflehi_epi16, _mm_shufflelo_epi16, - _mm_shuffle_epi32): Cast non-constant input values to either __m64, - __m128, __m128i or __m128d in a macro version of the intrinsic. - Cast constant input values to int. - * config/i386/ammintrin.h (_mm_extracti_si64, _mm_inserti_si64): Ditto. - * config/i386/bmmintrin.h (_mm_roti_epi8, _mm_roti_epi16, - _mm_roti_epi32, _mm_roti_epi64): Ditto. - * config/i386/smmintrin.h (_mm_blend_epi16, _mm_blend_ps, _mm_blend_pd, - _mm_dp_ps, _mm_dp_pd, _mm_insert_ps, _mm_extract_ps, _mm_insert_epi8, - _mm_insert_epi32, _mm_insert_epi64, _mm_extract_epi8, mm_extract_epi32, - _mm_extract_epi64, _mm_mpsadbw_epu8, _mm_cmpistrm, _mm_cmpistri, - _mm_cmpestrm, _mm_cmpestri, _mm_cmpistra, _mm_cmpistrc, _mm_cmpistro, - _mm_cmpistrs, _mm_cmpistrz, _mm_cmpestra, _mm_cmpestrc, _mm_cmpestro, - _mm_cmpestrs, _mm_cmpestrz): Ditto. - * config/i386/tmmintrin.h (_mm_alignr_epi8, _mm_alignr_pi8): Ditto. - * config/i386/xmmintrin.h (_mm_shuffle_ps, _mm_extract_pi16, _m_pextrw, - _mm_insert_pi16, _m_pinsrw, _mm_shuffle_pi16, _m_pshufw): Ditto. - * config/i386/mmintrin-common.h (_mm_round_pd, _mm_round_sd, - _mm_round_ps, _mm_round_ss): Ditto. +2008-01-08 Richard Guenther -2007-12-13 Richard Guenther + PR middle-end/31863 + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail + out early if the result will be unused. - PR tree-optimization/34450 - * params.def (PARAM_SCCVN_MAX_SCC_SIZE): New param. - * invoke.texi (sccvn-max-scc-size): Document. - * Makefile.in (tree-ssa-sccvn.o): Add $(PARAMS_H) dependency. - * tree-ssa-sccvn.h (run_scc_vn): Return true on success, false - on error. - * tree-ssa-sccvn.c (params.h): Include. - (DFS): Return true if all went well, return false as soon as - a SCC exceeds the size of PARAM_SCCVN_MAX_SCC_SIZE. - (run_scc_vn): Return true if all went well, return false if - we aborted during DFS. - * tree-ssa-pre.c (execute_pre): Check if SCCVN finished - successfully, otherwise bail out. +2008-01-08 Uros Bizjak -2007-12-13 Olga Golovanevsky + PR target/34709 + Revert: - * ipa-struct-reorg.c (is_candidate): Print information to dump - file when the type is initialized. - (get_stmt_accesses): Likewise when a structure has bitfields - or field access is too complicate. - (safe_cond_expr_check): Likewise for unsafe condition expressions. - (exclude_cold_structs): Likewise for cold structures. - (collect_structures): Suppress redundant print when there are - no structures to transform. - (do_reorg): Print to dump file a number of structures that - will be transformed. - (dump_new_types): Print a number of new types to replace - an original structure type. + 2008-01-05 Uros Bizjak + * config/i386/i386.c (ix86_builtin_reciprocal): Remove check + for TARGET_RECIP. -2007-12-13 Olga Golovanevsky - - * doc/invoke.texi (Optimiza Options): Document new -fipa-struct-reorg - option and struct-reorg-cold-struct-ratio parameter. +2008-01-08 Jan Sjodin -2007-12-13 Torbjorn Granlund - - * config/i386/i386.c (ix86_rtx_costs) [MULT]: Check op0 for - ZERO_EXTEND when computing costs for widening multiplication. - -2007-12-13 Richard Earnshaw - - PR target/30192 - * config/arm/ieee754-df.S (floatundidf): Fix for wrong sp value on - exit when using hard FPA. - * config/arm/ieee754-df.S (floatdidf): Likewise. - -2007-12-12 Jakub Jelinek - - PR bootstrap/30589 - * doc/install.texi: Document that for MinGW only runtime 3.12 and - later is supported. - -2007-12-12 David Edelsohn - - * config/rs6000/rs6000.c (is_mem_ref): Ignore STACK_TIE. - -2007-12-12 Aldy Hernandez - - PR tree-optimization/32901 - * gimplify.c (gimplify_modify_expr_rhs): Handle the case when we - are assigning from a constant constructor. - Fix wrapping in function comment. + * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs + for vectorization tuned. + +2008-01-08 Richard Guenther -2007-12-12 Andreas Krebbel + PR tree-optimization/34683 + * tree-ssa-operands.c (operand_build_cmp): Export. + * tree-ssa-operands.h (operand_build_cmp): Declare. + * tree-vn.c (vuses_compare): Remove. + (sort_vuses): Use operand_build_cmp. + (sort_vuses_heap): Likewise. + * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc + to re-use old VEC if available. Do not sort already sorted VUSEs. + (vdefs_to_vec): Do not sort already sorted VDEFs. - * config/s390/s390.c (s390_O_constraint_str): Limit the range - for 'On' to -4G+1..-1. - * config/s390/constraints.md: Adjust comment accordingly. +2008-01-08 Jakub Jelinek -2007-12-11 Nathan Sidwell + PR middle-end/34694 + * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Use frame_reg_rtx - for SPE saves. +2008-01-08 Uros Bizjak -2007-12-11 Kai Tietz + PR target/34702 + * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document + limitations of reciprocal sequences on x86 targets. - * config/i386/cygming.h (DWARF2_UNWIND_INFO): Handle 64-bit - target same as 32-bit. +2008-01-08 Richard Guenther -2007-12-10 Jakub Jelinek + PR tree-optimization/34683 + * tree-flow-inline.h (var_ann): Remove overzealous asserts. - PR tree-optimization/34371 - * tree-vectorizer.h (struct _loop_vec_info): Add num_iters_unchanged - field. - (LOOP_VINFO_NITERS_UNCHANGED): Define to num_iters_unchanged field. - * tree-vectorizer.c (set_prologue_iterations, - slpeel_tree_peel_loop_to_edge): Call unshare_expr on - LOOP_VINFO_NITERS_UNCHANGED before using it. +2008-01-07 Jakub Jelinek -2007-12-10 Eric Botcazou + PR target/34622 + * config/darwin.c (darwin_mergeable_string_section): Don't use + .cstring if int_size_in_bytes != TREE_STRING_LENGTH. - PR target/34403 - * config/i386/i386.c (ix86_expand_movmem): Punt if the count is large. - (ix86_expand_setmem): Likewise. +2008-01-07 Uros Bizjak -2007-12-10 Kenneth Zadeck + PR target/34682 + * config/i386/i386.md (neg2): Rename from negsf2, negdf2 and + negxf2. Macroize expander using X87MODEF mode iterator. Change + predicates of op0 and op1 to register_operand. + (abs2): Rename from abssf2, absdf2 and negxf2. Macroize + expander using X87MODEF mode iterator. Change predicates of + op0 and op1 to register_operand. + ("*absneg2_mixed", "*absneg2_sse"): Rename from + corresponding patterns and macroize using MODEF macro. Change + predicates of op0 and op1 to register_operand and remove + "m" constraint. Disparage "r" alternative with "!". + ("*absneg2_i387"): Rename from corresponding patterns and + macroize using X87MODEF macro. Change predicates of op0 and op1 + to register_operand and remove "m" constraint. Disparage "r" + alternative with "!". + (absneg splitter with memory operands): Remove. + ("*neg2_1", "*abs2_1"): Rename from corresponding + patterns and macroize using X87MODEF mode iterator. + * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2): + Change predicate of op1 to register_operand. + * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support + for memory operands. - PR rtl-optimization/34302 - * auto-inc-dec.c (attempt_change): Change place where move is - inserted. +2008-01-07 Nathan Froyd -2007-12-10 Jakub Jelinek + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548. - * dwarf2out.c (gen_array_type_die, gen_descr_array_type_die): For - Fortran multi-dimensional arrays use DW_AT_ordering - DW_ORD_col_major. +2008-01-07 Richard Guenther -2007-12-10 Paolo Bonzini + * basic-block.h (struct edge_def): Pair dest_idx with goto_locus + fields. - PR target/32086 - * config/i386/i386.c (override_options): Enable -fvect-cost-model. +2008-01-07 Richard Guenther -2007-12-10 Uros Bizjak + PR tree-optimization/34683 + * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of + VOPs of the needed size to save memory. Use VEC_quick_push + to save compile-time. + (vdefs_to_vec): Likewise. - * config/i386/i386.c (ix86_function_regparm): Do not check global_regs - array, registers that are members of global_regs are also members of - fixed_regs array. Use REGPARM_MAX to check that no regparm hard - register is taken by a fixed register variable. Check up to and - including DI_REG when adjusting regparm value due to fixed regs usage. - (rep_prefix_usable): Check fixed_regs array, not global_regs array for - available hard registers. - (ix86_expand_strlen): Ditto. - * config/i386/i386.md (strmov): Ditto. - (cmpstrnsi): Ditto. +2008-01-07 Sa Liu -2007-12-10 Kaz Kojima + * config/spu/spu.md (divdf3): Genetate inline code for double + division. The implementation doesn't handle INF or NAN, therefore it + only applies when -ffinite-math-only is given. - * genopinit.c: Include tm_p.h in generated file. +2008-01-06 Paolo Carlini - * config/arm/neon.md (vec_set_internal): Use INTVAL - to extract the integer from operands[2]. - (vec_setv2di_internal): Likewise. + PR libstdc++/34680 + * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate. + * doc/cpp.texi ([Common Predefined Macros]): Document. - * config/arm/arm.c (arm_size_return_regs): Make return type unsigned. - (arm_init_neon_builtins): Move code after declarations. +2008-01-06 Uros Bizjak -2007-12-10 Hans-Peter Nilsson + * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in + order to use commutative addition instead of subtraction. - * reload.c (find_reloads_address_1): To properly mark as an - autoincdec, pass X for non-NULL OUT in call to push_reload for - autoincdec which can't be trivially used as an address. +2008-01-06 Andrew Pinski + Mircea Namolaru + Vladimir Yanovsky + Revital Eres -2007-12-10 Pranav Bhandarkar - Hans-Peter Nilsson + PR tree-optimization/34263 + * tree-outof-ssa.c (process_single_block_loop_latch, + contains_tree_r): New functions. + (analyze_edges_for_bb): Call process_single_block_loop_latch + function to empty single-basic-block latch block if possible. - * caller-save.c (insert_one_insn): If inserting before a call_insn - then the registers containing the arguments of the call are - live_throughout in the new insn. +2008-01-05 Uros Bizjak -2007-12-09 John David Anglin + * config/i386/i386.c (ix86_builtin_reciprocal): Remove check + for TARGET_RECIP. + (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion. - PR middle-end/32889 - PR target/34091 - * pa.md: Consolidate HImode and QImode move patterns into one pattern - each, eliminating floating-point alternatives. - * pa-protos.h (pa_cannot_change_mode_class, pa_modes_tieable_p): - Declare functions. - * pa-64.h (SECONDARY_MEMORY_NEEDED): Define here. - * pa.c (pa_secondary_reload): Use an intermediate general register - for copies to/from floating-point register classes. Simplify code - SHIFT_REGS class. Provide additional comments. - (pa_cannot_change_mode_class, pa_modes_tieable_p): New functions. - * pa.h (MODES_TIEABLE_P): Use pa_modes_tieable_p. - (SECONDARY_MEMORY_NEEDED): Delete define. - (INT14_OK_STRICT): Define. - (MODE_OK_FOR_SCALED_INDEXING_P): Allow SFmode and DFmode when using - soft float. - (MODE_OK_FOR_UNSCALED_INDEXING_P): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Use INT14_OK_STRICT in REG+D case for - SFmode and DFmode. - (LEGITIMIZE_RELOAD_ADDRESS): Use INT14_OK_STRICT in mask selection. - Align DImode offsets when generating 64-bit code. - * pa32-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. - (CANNOT_CHANGE_MODE_CLASS): Define. - * pa64-regs.h (VALID_FP_MODE_P): Remove QImode and HImode. - (CANNOT_CHANGE_MODE_CLASS): Define using pa_cannot_change_mode_class. +2008-01-05 Richard Sandiford -2007-12-09 Jakub Jelinek + * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR. - PR fortran/22244 - * langhooks-def.h (LANG_HOOKS_GET_ARRAY_DESCR_INFO): Define. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. - * langhooks.h (struct array_descr_info): Forward declaration. - (struct lang_hooks_for_types): Add get_array_descr_info field. - * dwarf2.h (DW_AT_bit_stride, DW_AT_byte_stride): New. - (DW_AT_stride_size, DW_AT_stride): Keep around for Dwarf2 - compatibility. - * dwarf2out.h (struct array_descr_info): New type. - * dwarf2out.c (dwarf_attr_name): Rename DW_AT_stride to - DW_AT_byte_stride and DW_AT_stride_size to DW_AT_bit_size. - (descr_info_loc, add_descr_info_field, gen_descr_array_type_die): - New functions. - (gen_type_die_with_usage): Call lang_hooks.types.get_array_descr_info - and gen_descr_array_type_die. +2008-01-05 Richard Sandiford -2007-12-08 Richard Guenther + * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check. - PR tree-optimization/34391 - * tree-vect-transform.c (vect_setup_realignment): Mark new - symbols for renaming. +2008-01-05 Jakub Jelinek -2007-12-07 Bob Wilson - - * config/xtensa/xtensa.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - (ASM_OUTPUT_DWARF_PCREL): Define. - -2007-12-07 Richard Guenther + PR tree-optimization/34618 + * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P + flag from T. - PR middle-end/34382 - * opts.c (common_handle_option): Handle OPT_fforce_addr. +2008-01-05 Uros Bizjak -2007-12-07 Aldy Hernandez + PR target/34673 + * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands + in the call to gen_rtx_NE. Remove unneeded VECTOR_MODE_P check. + Update copyright year. - * m32c.h (LEGITIMIZE_ADDRESS): Use WIN instead of win. - (LEGITIMIZE_RELOAD_ADDRESS): Same. + * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH. + Update copyright year. + * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand + using NR fixup. -2007-12-07 Samuel Tardieu +2008-01-05 Zhouyi Zhou - PR ada/29157 - * doc/install.texi: Explain how to check for a clean environment when - building GNAT. + * tree-vrp.c (find_conditional_asserts): Remove redundant check that + edge does not point to current bb before changing need_assert. -2007-12-07 Richard Guenther +2008-01-04 Richard Guenther - * tree-profile.c (gcov_type_tmp_var): New global variable. - (tree_gen_edge_profiler): Use a single shared variable decl per - function for edge counter incrementing. - (tree_profiling): Re-set the shared variable. + PR middle-end/34029 + * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs + for verifying purposes if they are is_gimple_min_invariant. -2007-12-06 Bob Wilson +2008-01-04 Aldy Hernandez - * config/xtensa/xtensa.c (xtensa_va_start): Add prototype. + PR tree-optimization/34448 + PR tree-optimization/34465 + * gimplify.c (gimplify_init_constructor): Add new parameter + notify_temp_creation. Use it. + (gimplify_modify_expr_rhs): Take volatiles into account when + optimizing constructors. + Do not optimize constructors if gimplify_init_constructor will dump to + memory. + * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles. + * gcc.c-torture/compile/pr34448.c: New. -2007-12-06 Tom Tromey +2008-01-04 Jakub Jelinek - PR c/29172 - * c-opts.c (c_common_parse_file): Call cpp_clear_file_cache. + PR gcov-profile/34609 + * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on + return_slot if result is TREE_ADDRESSABLE. -2007-12-06 Richard Sandiford +2008-01-04 Richard Sandiford - * config/mips/mips.c (mips_function_ok_for_sibcall): Check - targetm.binds_local_p as well as DECL_EXTERNAL. + * config/mips/mips.md (sqrt_condition): Tweak comment. + (recip_condition): Likewise. Require TARGET_FLOAT64 for DFmode. -2007-12-06 Harsha Jagasia +2008-01-03 Tom Tromey - * tree-vectorizer.c (slpeel_add_loop_guard): Gimplify the condition. - (set_prologue_iterations): New. Set the prologue iterations to total - number of scalar iterations if the cost model check indicates that - scalar code should be generated. - (slpeel_tree_peel_loop_to_edge): Add a new parameter and code for - generating the cost condition for epilog. Call - set_prologue_iterations to generate cost condition for prolog. - (new_loop_vec_info): Initialize LOOP_VINFO_NITERS_UNCHANGED. - * tree-vectorizer.h (LOOP_VINFO_NITERS_UNCHANGED): New. - (slpeel_tree_peel_loop_to_edge): Update declaration. - (set_prologue_iterations): New declaration. - * tree-vect-analyze.c (vect_analyze_loop_form): Update - LOOP_VINFO_NITERS_UNCHANGED. - * tree-vect-transform.c - (vect_estimate_min_profitable_iters): Add new parameter and - code to check if run time cost model test is needed. - Remove code that adds builtin vectorization cost to scalar - outside cost for the run time cost model test. If run time - cost model test is needed add the appropriate guard cost to - the scalar outside cost. The guard cost depends on whether - the guard is generated at versioning or at prolog generation - or at epilog generation. Change cost model equation to include - scalar outside cost. - (conservative_cost_threshold): New. Return the less conservative - profitability threshold between the cost model threshold and the - user defined vectorization threshold. - (vect_do_peeling_for_loop_bound): Call conservative_cost_threshold. - (vect_do_peeling_for_alignment): Same. - (vect_loop_versioning): Same. - (vect_create_cond_for_align_checks): ANDs the cost model condition - with the alignment condition. - (vect_transform_loop): Call loop versioning only when there is a - misalignment or an aliasing problem. + PR c/34457 + * c-common.c (c_type_hash): Handle VLAs. -2007-12-06 Jakub Jelinek +2008-01-03 Jan Hubicka - PR middle-end/20983 - * tree-ssa-ccp.c (optimize_stdarg_builtin): New function. - (execute_fold_all_builtins): Call it for BUILT_IN_VA_START, - BUILT_IN_VA_COPY and BUILT_IN_VA_END. + PR tree-optimization/31081 + * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to + 0 when inlining and not inlining to first basic block. + (remap_decl): When var is initialized to 0, don't set default_def. + (expand_call_inline): Set entry_bb. + * tree-inline.h (copy_body_data): Add entry_bb. - * target.h (struct ggc_target): Add expand_builtin_va_start hook. - * target-def.h (TARGET_EXPAND_BUILTIN_VA_START): Define. - (TARGET_INITIALIZER): Add it. - * builtins.c (expand_builtin_va_start): Use - targetm.expand_builtin_va_start hook instead of - EXPAND_BUILTIN_VA_START macro. - * alpha/alpha.c (alpha_va_start): Made static. - (override_options): Clear targetm.expand_builtin_va_start if - TARGET_UNICOSMK. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * alpha/unicosmk.h (EXPAND_BUILTIN_VA_START): Remove. - * alpha/alpha.h (EXPAND_BUILTIN_VA_START): Remove. - * alpha/alpha-protos.h (alpha_va_start): Remove prototype. - * xtensa/xtensa.h (EXPAND_BUILTIN_VA_START): Remove. - * xtensa/xtensa.c (TARGET_EXPAND_BUILTIN_VA_START): Define. - (xtensa_va_start): Made static. - * xtensa/xtensa-protos.h (xtensa_va_start): Remove prototype. - * pa/pa-protos.h (hppa_va_start): Remove prototype. - * pa/pa.h (EXPAND_BUILTIN_VA_START): Remove. - * pa/pa.c (hppa_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * frv/frv.c (frv_expand_builtin_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * frv/frv-protos.h (frv_expand_builtin_va_start): Remove prototype. - * frv/frv.h (EXPAND_BUILTIN_VA_START): Remove. - * i386/i386.c (override_options): Clear - targetm.expand_builtin_va_start if -m32 or 64-bit MS ABI. - (ix86_va_start): Made static. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * i386/i386.h (EXPAND_BUILTIN_VA_START): Remove. - * i386/i386-protos.h (ix86_va_start, ix86_va_arg): Remove prototypes. - * iq2000/iq2000-protos.h (iq2000_va_start): Remove prototype. - * iq2000/iq2000.h (EXPAND_BUILTIN_VA_START): Remove. - * iq2000/iq2000.c (iq2000_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * rs6000/rs6000-protos.h (rs6000_va_start): Remove prototype. - * rs6000/rs6000.c (rs6000_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - (rs6000_override_options): Clear targetm.expand_builtin_va_start if - DEFAULT_ABI != ABI_V4. - * rs6000/rs6000.h (EXPAND_BUILTIN_VA_START): Remove. - * spu/spu.c (spu_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * spu/spu.h (EXPAND_BUILTIN_VA_START): Remove. - * spu/spu-protos.h spu_va_start): Remove prototype. - * stormy16/stormy16.h (EXPAND_BUILTIN_VA_START): Remove. - * stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_start): - Remove prototype. - * stormy16/stormy16.c (xstormy16_expand_builtin_va_start): Made static. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * s390/s390-protos.h (s390_va_start): Remove prototype. - * s390/s390.c (s390_va_start): Made static. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * s390/s390.h (EXPAND_BUILTIN_VA_START): Remove. - * mn10300/mn10300.h (EXPAND_BUILTIN_VA_START): Remove. - * mn10300/mn10300-protos.h (mn10300_va_start): Remove prototype. - * mn10300/mn10300.c (mn10300_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * arc/arc.c (arc_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * arc/arc.h (EXPAND_BUILTIN_VA_START): Remove. - * arc/arc-protos.h (arc_va_start): Remove prototype. - * mt/mt-protos.h (mt_va_start): Remove prototype. - * sparc/sparc.c (sparc_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * sparc/sparc-protos.h (sparc_va_start): Remove prototype. - * sparc/sparc.h (EXPAND_BUILTIN_VA_START): Remove. - * sh/sh.c (sh_va_start): Made static, add prototype. - (TARGET_EXPAND_BUILTIN_VA_START): Define. - * sh/sh-protos.h (sh_va_start): Remove prototype. - * sh/sh.h (EXPAND_BUILTIN_VA_START): Remove. - * mips/mips-protos.h (mips_va_start): Remove prototype. - * mips/mips.h (EXPAND_BUILTIN_VA_START): Remove. - * mips/mips.c (mips_va_start): Made static. - (TARGET_EXPAND_BUILTIN_VA_START): Define. +2008-01-03 Jakub Jelinek -2007-12-06 Uros Bizjak + PR c++/34619 + * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL + before returning. - * tree-ssa-loop.c (gate_tree_parallelize_loops): Return true when - "flag_tree_parallelize_loops > 1". - -2007-12-06 Zdenek Dvorak - Dorit Nuzman - Jakub Jelinek + PR tree-optimization/29484 + * tree-inline.c (inline_forbidden_p_2): New function. + (inline_forbidden_p): Disallow inlining if some static var + has an address of a local LABEL_DECL in its initializer. + * doc/extend.texi (Labels as Values): Document &&foo behaviour + vs. inlining. - PR tree-optimization/34005 - * tree-gimple.c (is_gimple_formal_tmp_rhs): Add a case for COND_EXPR. - * gimplify.c (gimplify_ctx): Add a new member allow_rhs_cond_expr. - (gimplify_pure_cond_expr): New function. - (generic_expr_could_trap_p): New function. - (gimplify_cond_expr): Call gimplify_pure_cond_expr. - (force_gimple_operand): Initialize new field allow_rhs_cond_expr. +2008-01-03 Sebastian Pop -2007-12-06 Andreas Krebbel + PR tree-optimization/34635 + * tree-data-ref.c (add_other_self_distances): Make sure that the + evolution step is constant. - * config/s390/s390.c (s390_emit_stack_tie): New function. - (s390_emit_prologue): Emit a stack tie when writing to the - f8-f15 stack slots. - * config/s390/s390.md ("stack_tie"): New insn definition. +2008-01-03 Jakub Jelinek -2007-12-06 Ben Elliston + PR middle-end/34608 + * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn. - * SERVICE: Remove. - * doc/sourcebuild.texi (Miscellaneous Docs): Remove SERVICE item. +2008-01-02 Richard Sandiford -2007-12-05 Jakub Jelinek + * tree-sra.c (scalarize_init): Insert the generate_element_init + statements after the generate_element_zero statements. - PR middle-end/34337 - * fold-const.c (fold_binary) : Don't minimize - number of bits set in C1 if a mode mask for some mode can be used - instead. +2008-01-02 Richard Guenther -2007-12-05 Bernhard Fischer + PR middle-end/34093 + PR middle-end/31976 + * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer + for very large number of operands instead of ICEing. - * varasm.c (merge_weak, weak_finish, assemble_alias): Commentary typo - fixes. +2008-01-02 Arthur Norman -2007-12-05 Richard Guenther + PR target/34013 + * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone + while stack probing. - PR tree-optimization/34138 - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): - Do not forward propagate addresses if that changes volatileness of - the pointed-to type. +2008-01-01 Douglas Gregor -2007-12-05 Uros Bizjak + * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when + in C++0x mode. - PR target/34312 - * config/i386/i386.c (ix86_function_regparm): Also check for fixed - registers when checking that regparm registers are available. - Lower regparm value due to fixed registers usage in addition to - global regs usage. +2008-01-01 Volker Reichelt -2007-12-05 Bernhard Fischer + PR libmudflap/26442 + * tree-mudflap.c (mx_register_decls): Guard warning by + !DECL_ARTIFICIAL check. - * sparseset.c: Include config.h and system.h before sparseset.h. - * sparseset.h: Remove inclusion of system.h. +2008-01-01 Jakub Jelinek -2007-12-05 Jakub Jelinek - Richard Sandiford - - * optabs.c (init_insn_codes): New function. - (new_optab): Delete. - (init_optab, init_optabv): Don't call new_optab. - (init_convert_optab): Don't clear the insn codes. - (init_optabs): Call init_insn_codes. - -2007-12-04 Jakub Jelinek - - * omp-low.c (optimize_omp_library_calls): New function. - (expand_omp_parallel): Call it if optimizing. - - PR middle-end/34134 - * stmt.c (expand_stack_restore): Call expand_normal on var to get - rtx for it instead of assuming it will be a VAR_DECL. - -2007-12-04 Manuel Lopez-Ibanez - - * c-parser (c_parser_statement_after_labels): Move error from here... - (c_parser_label): ... to here. Check that the declaration is not - actually just another label. - -2007-12-04 Richard Guenther - - PR middle-end/34334 - PR middle-end/34222 - * tree-ssa-operands.c (get_addr_dereference_operands): If we - fall back to using the SMTs aliases, make sure to add virtual - operands for the SMT itself. - (create_ssa_artificial_load_stmt): Fix typo. Make sure to also - clear the loaded and stored symbols bitmaps. - -2007-12-04 Ben Elliston - - * config/spu/spu.h (ASM_FORMAT_PRIVATE_NAME): Remove; use default. - -2007-12-04 Ben Elliston - - * doc/tm.texi (Exception Handling): Mention unwind-dw2-xtensa.c. - -2007-12-03 Steven Bosscher - - PR middle-end/33713 - * doc/invoke.texi: Remove -fforce-addr documentation. - * expr.c (emit_move_insn): Remove use of flag_force_addr. - (expand_expr_real_1): Same. - (do_tablejump): Same. - Call memory_address instead of memory_address_noforce. - * expr.h (memory_address_noforce): Remove prototype. - * explow.c (memory_address): Remove support for flag_force_addr. - (validize_mem): Same. - (memory_address_noforce): Remove. - * common.opt: Add dummy documentation for -fforce-addr. - * combine.c (can_combine_p): Remove -fforce-addr comment. - * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove set of - flag_force_addr. - * config/m68k/m68k.h (PIC_CASE_VECTOR_ADDRESS): Remove comment - relating to memory_address_noforce. - * testsuite/gcc.c-torture/compile/20050802-1.c: Remove. - * testsuite/gcc.c-torture/compile/20011113-1.c: Remove. - -2007-12-03 Jakub Jelinek - - * omp-low.c (lookup_decl_in_outer_ctx): Allow calling this - with !ctx->is_nested. - (maybe_lookup_decl_in_outer_ctx): Look up in outer contexts - even if !ctx->is_nested. - (lower_copyprivate_clauses, lower_send_clauses, - lower_send_shared_vars): Call lookup_decl_in_outer_ctx - unconditionally. - - PR middle-end/29749 - * fold-const.c (fold_binary) : Optimize - (X << C1) & C2 into (X << C1) & (C2 | ((1 << C1) - 1)) - and (X >> C1) & C2 into (X >> C1) & (C2 | ~((type) -1 >> C1)). - (fold_binary) : Optimize - (X & C2) << C1 into (X << C1) & (C2 << C1) and - (X & C2) >> C1 into (X >> C1) & (C2 >> C1) if that allows further - optimizations. - - PR tree-optimization/33453 - * tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR - for pointer addition. - * tree-parloops.c (canonicalize_loop_ivs): Likewise. - (separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to - var_copy. - -2007-12-03 Bernd Schmidt - - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __FDPIC__ as - necessary. - -2007-12-03 Razya Ladelsky - - * doc/invoke.texi (fipa-cp, fipa-matrix-reorg): Add documentation. - -2007-12-03 Jakub Jelinek - - PR middle-end/34317 - * opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop. - * common.opt (ftree-store-copy-prop): Use the same help text as for - other nop switches. - -2007-12-02 Ayal Zaks - Revital Eres - - * modulo-sched.c (calculate_must_precede_follow, - try_scheduling_node_in_cycle): New functions. - (sms_schedule_by_order): Call the new functions. - (ps_insn_find_column): Use must_follow and must_precede only if - they are not NULL. - (ps_insn_advance_column): Likewise. - -2007-12-02 Ayal Zaks - Revital Eres - - * modulo-sched.c (get_sched_window): Fix the direction of the - scheduling window and add dump info. - -2007-12-02 Samuel Tardieu - - * config/sh/sh.md (cmpgeusi_t): Fix condition. - -2007-11-30 Jan Hubicka - - * ggc-common.c (dump_ggc_loc_statistics): Reset ggc_force_collect flag. - -2007-11-30 Seongbae Park - - PR rtl-optimization/34171 - * cfgrtl.c (update_bb_for_insn_chain): New function, - refactored from update_bb_for_insn. - (update_bb_for_insn): Call update_bb_for_insn. - (rtl_merge_blocks, try_redirect_by_replacing_jump): - Replace a loop with update_bb_for_insn_chain call. - (cfg_layout_merge_blocks): Add a call to - update_bb_for_insn_chain. Replace the for loop - with a call to update_bb_for_insn_chain. - -2007-11-30 Ben Elliston - - * config/vax/vax.h (ASM_FORMAT_PRIVATE_NAME): Remove. Use default. - -2007-11-29 Zdenek Dvorak - - PR tree-optimization/34244 - * tree-vrp.c (adjust_range_with_scev): Clear scev cache. - (record_numbers_of_iterations): New function. - (execute_vrp): Cache the numbers of iterations of loops. - * tree-scalar-evolution.c (scev_reset_except_niters): New function. - (scev_reset): Use scev_reset_except_niters. - * tree-scalar-evolution.h (scev_reset_except_niters): Declare. - -2007-11-29 Jan Hubicka - Jakub Jelinek - - PR tree-optimization/33434 - * tree-inline.c (setup_one_parameter): If the value passed to - a parameter is never used, don't set it up. - -2007-11-29 Jakub Jelinek - - PR target/32130 - * config/rs6000/eabi-cn.asm (__DTOR_END__): Make it weak. - * config/rs6000/sol-cn.asm (__DTOR_END__): Likewise. - -2007-11-29 Andris Pavenis - - * Makefile.in: Use separate vpath lines for each path. - -2007-11-29 Ben Elliston - - * SERVICE: Update URL. - -2007-11-28 Jakub Jelinek - - PR tree-optimization/34140 - * tree-if-conv.c (if_convertible_phi_p): Fail if BB other than - loop->header has virtual phi nodes. - -2007-11-28 Richard Sandiford - - PR target/32406 - * builtins.c (expand_builtin_nonlocal_goto): Also emit a use - of GP register, if valid and fixed. - - Revert: - 2007-06-21 David Daney - - PR target/32406 - * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER - to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. - (exception_receiver): Renamed to ... - (nonlocal_goto_receiver): ... this. - -2007-11-27 H.J. Lu - Joey Ye - - PR target/34001 - * config/i386/i386.c (function_arg_32): Don't pass aggregate - arguments in ECX/EDX for fastcall. - -2007-11-28 Rask Ingemann Lambertsen - - * config/i386/linux.h (CRT_GET_RFIB_DATA): Add Intel syntax inline - asm to macro. - * config/i386/sco5.h (CRT_GET_RFIB_DATA): Likewise. - * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Likewise. - -2007-11-28 Ben Elliston - - * config/rs6000/aix64.opt (maix64): Add Negative(maix32). - (maix32): Add Negative(maix64). - -2007-11-27 Jakub Jelinek - - PR tree-optimization/34016 - * tree-ssa-loop.c (pass_linear_transform): Add - TODO_update_ssa_only_virtuals to todo_flags_finish. - -2007-11-27 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add atmega32hvb. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-11-27 Jakub Jelinek - - PR target/34225 - * config/rs6000/rs6000.c (adjacent_mem_locations): Don't assume - MEM_SIZE is set on all MEMs. - -2007-11-27 Andreas Krebbel - - * config/s390/s390.opt (mhard-float): Add the option to be - overridden. That was missing in my last patch. - -2007-11-27 Richard Guenther - - PR tree-optimization/34241 - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Make sure - to only delete real conversion chains. - -2007-11-27 Andreas Krebbel - - * config/s390/s390.opt (m31, m64, mesa, mzarch, msoft-float, - mhard-float, mlong-double-64, mlong-double-128): Add the - option to be overridden. - -2007-11-27 Richard Guenther - - * builtins.c (fold_builtin_1): Verify the argument types - of BUILT_IN_ISNORMAL. - (fold_builtin_n): Verify the number of arguments to variadic - built-in functions. - -2007-11-27 Bernd Schmidt - - * config/bfin/elf.h (SUBTARGET_DRIVER_SELF_SPECS): New macro. - * doc/invoke.texi (Blackfin Options): Document the effects. - -2007-11-27 Ben Elliston - - * config/rs6000/sysv4.opt (m32): Add Negative(m64). - (m64): Add Negative(m32). - * config/rs6000/darwin.opt (m32): Add Negative(m64). - (m64): Add Negative(m32). - -2007-11-26 Eric Botcazou - - * tree-ssa-propagate.c (set_rhs) : Fix typo. - -2007-11-26 Michael Meissner - - PR target/34077 - * config/i386/i386.c (ix86_expand_movmem): If the copy size is a - constant, avoid calling emit_cmp_and_jump_insns. Use counter_mode - to get the mode for loading a pseudo register with a count rather - than duplicating code. - -2007-11-25 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add atmega1284p. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-11-26 Manuel Lopez-Ibanez - - * c-common.c (conversion_warning): Use get_unwidened instead of - get_narrower. - -2007-11-26 Manuel Lopez-Ibanez - - PR c/23722 - * c-parser.c (struct c_parser): New bit in_if_block. - (c_parser_compound_statement_nostart): Handle unexpected 'else' - keyword. - (c_parser_statement_after_labels): Set in_if_block to false while - parsing. - (c_parser_if_body): Don't call c_parser_statement_after_labels if - a semicolon is found, just consume it. Don't call - c_parser_statement_after_labels if an open brace is found, call - c_parser_compound_statement instead. - (c_parser_else_body): New. - (c_parser_if_statement): Set in_if_block to true when parsing the - body of the 'if' statement. Use c_parser_else_body. - -2007-11-26 Andreas Krebbel - - PR c++/34081 - * c-decl.c (store_parm_decls): Pass 'false' for the new - allocate_struct_function parameter. - * cgraphunit.c (cgraph_build_static_cdtor): Likewise. - * tree-parloops.c (create_loop_fn): Likewise. - * function.c (push_function_context_to, push_struct_function, - init_function_start): Likewise. - (allocate_struct_function): Add boolean parameter. - * tree.h (allocate_struct_function): Add boolean parameter. - * function.h (struct function): Move returns_struct and - returns_pcc_struct to the end of the structure definiton. - -2007-11-26 Uros Bizjak - - PR target/34215 - * config/i386/i386.md (truncdfsf2): Select SLOT_TEMP stack slot if - virtual registers are already instantiated. - (truncxf2): Ditto. - (floatsi2): Ditto. - (floatdisf2): Ditto. - (floatdidf2): Ditto. - -2007-11-26 Rask Ingemann Lambertsen - - PR target/34174 - * config/fr30/fr30.c (fr30_move_double): Sanitize mem->reg case. Copy - the address before it is clobbered. - -2007-11-26 Nick Clifton - - * config/mn10300/mn10300.md: (call_internal): Remove mode on - operand 0 in order to match UNPSEC'ed calls generated in PIC mode. - (call_value_internal): Remove mode on operands 0 and 1 in order to - match UNPSEC'ed calls generated in PIC mode. - (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between - two insns. - -2007-11-26 Richard Guenther - - PR middle-end/34233 - * builtins.c (expand_builtin_pow): Use expand_expr to expand - the result of build_call_expr. - -2007-11-26 Steven Bosscher - Revital Eres - - PR middle-end/34085 - * bb-reorder.c (insert_section_boundary_note): Clear - BLOCK_FOR_INSN in NOTE_INSN_SWITCH_TEXT_SECTIONS. - -2007-11-26 Richard Sandiford - - * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add missing comma. - -2007-11-26 Alexandre Oliva - - * dwarf2asm.c (splay_tree_compare_strings): New function. - (dw2_force_const_mem): Use it. - -2007-11-26 Alexandre Oliva - - * tree.c (type_hash_add): Don't violate strict aliasing rules. - -2007-11-26 Alexandre Oliva - - PR c/27898 - * c-typeck.c (tagged_types_tu_compatible_p): Enable exact - matches between anonymous union fields. - -2007-11-26 Alexandre Oliva , Jan Hubicka - - * tree-ssa-live.c (remove_unused_scope_block_p): Drop - declarations and blocks only after inlining. Check that - non-empty blocks are not dropped. - * tree-inline.c (expand_call_inline): Check that functions are - not inlined too late. - -2007-11-26 Ben Elliston - - * unwind-dw2-fde.c: Fix comment typo. - * unwind-generic.h: Likewise, fix comment typos. - -2007-11-25 Richard Sandiford - - * tree-sra.c (scalarize_use): Adjust the vpos argument to - sra_explode_bitfield_assignment in cases where the type is - wider than the bitfield. - -2007-11-25 Richard Guenther - - * tree.h (struct tree_block): Move locus member next to flags. - * c-decl.c (SCOPE_LIST_APPEND): Use BLOCK_CHAIN. - (SCOPE_LIST_CONCAT): Likewise. - (pop_scope): Likewise. - * function.c (instantiate_decls_1): Likewise. - (setjmp_vars_warning): Likewise. - * emit-rtl.c (set_used_decls): Likewise. - * tree-inline.c (add_lexical_block): Likewise. - -2007-11-24 Hans-Peter Nilsson - - * rtlanal.c (label_is_jump_target_p): Return true for a matching - REG_LABEL_TARGET. - * reorg.c (fill_slots_from_thread): Correct last change to use - NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and - decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0). - * jump.c (mark_jump_label_1): Add comment for last change - regarding JUMP_LABEL setting. - * gcse.c (add_label_notes): Remove conditional that the label is - mentioned in insn before adding regnote. - * sched-rgn.c (is_cfg_nonregular): Don't return 1 for a - single_set insn only feeding a label to a jump through a - register that dies there. - -2007-11-23 Dirk Mueller - Richard Guenther - - PR middle-end/34197 - * tree-vrp.c (check_array_ref): Move check for valid location.. - (check_array_bounds) here. Use EXPR_HAS_LOCATION(). - -2007-11-23 Hans-Peter Nilsson - - * reload.c (find_reloads_address_1) : - Call REG_OK_FOR_CONTEXT with the autoincdec code, not outer_code. - -2007-11-23 Richard Guenther - Michael Matz - - PR tree-optimization/34176 - * alloc-pool.h (empty_alloc_pool): Declare. - * alloc-pool.c (empty_alloc_pool): New function. - * tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the - valid table if a lookup from the optimistic table failed. - (vn_unary_op_lookup): Likewise. - (vn_binary_op_lookup): Likewise. - (vn_phi_lookup): Likewise. - (process_scc): Clear optimistic tables before every iteration. - -2007-11-23 Richard Guenther - - * tree-ssa-copy.c (may_propagate_copy): Remove redundant checks. - (merge_alias_info): Do verification only if checking is - enabled. Merge flow-sensitive alias information in simple cases. - * tree-ssa-operands.c (get_addr_dereference_operands): Also - complain about missing NMTs. - -2007-11-23 Jakub Jelinek - - PR c++/34198 - * c-common.c (conversion_warning): For INTEGER_TYPE to - INTEGER_TYPE conversions call get_narrower on expr to avoid - spurious warnings from binop shortening or when the implicit - conversion can't change the value. - -2007-11-22 Joseph Myers - - PR c/14050 - * c-decl.c (set_array_declarator_inner): Don't give error for - static or type qualifiers in abstract declarator. Remove - abstract_p parameter. - * c-tree.h (set_array_declarator_inner): Update prototype. - * c-parser.c (c_parser_direct_declarator_inner): Update call to - set_array_declarator_inner. - * doc/standards.texi: Update for C99 TC3. - -2007-11-22 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_encode_section_info): Remove duplicate - line in my edit of the last change. - -2007-11-22 Jakub Jelinek - - PR target/33947 - * config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW - and TREE_READONLY on the fn decl rather than passing a chain - of attributes. - -2007-11-22 Kaz Kojima - - * config/sh/sh.md (divsi_inv_m3): Handle zero dividend specially. - -2007-11-22 Uros Bizjak - - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking - of ix86_arch and ix86_tune into a switch statement. - (enum processor_type): Default PROCESSOR_I386 to 0. - * config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead - of "ix86_tune == PROCESSOR_K6". - (ia32_multipass_dfa_lookahead): Change checking of ix86_tune into - a switch statement. - -2007-11-22 Tom Tromey - - * config/mmix/mmix.c (mmix_encode_section_info): Use alloca to - avoid writing into string allocated by ggc_alloc_string. - -2007-11-21 Kaz Kojima - - PR target/34155 - * config/sh/sh.md (binary_sf_op): Remove. - (binary_sf_op0, binary_sf_op1): New define_insn_and_split. - * config/sh/sh.c (sh_expand_binop_v2sf): Use gen_binary_sf_op0 - and gen_binary_sf_op1. - -2007-11-21 Hans-Peter Nilsson - - * regclass.c (init_reg_autoinc): Fix typo preventing test of - secondary output reload when setting forbidden_inc_dec_class. - -2007-11-21 Richard Guenther - - PR tree-optimization/34148 - * tree-ssa-structalias.c (create_variable_info_for): Do not use - field-sensitive PTA for single-element structures. - * tree-ssa-alias.c (create_overlap_variables_for): Do not create - SFTs for single-element structures. - -2007-11-20 Richard Guenther - - PR middle-end/34154 - * gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead - of the signed INT_CST_LT. - * stmt.c (expand_case): Likewise. - (estimate_case_costs): Likewise. - -2007-11-20 Rask Ingemann Lambertsen - - * read-rtl.c (fatal_expected_char): Print EOF as text rather that - its binary representation. - -2007-11-20 Richard Guenther - - * tree-ssa-operands.c (add_virtual_operand): Consistently prune - accesses. - -2007-11-20 Thiemo Seufer - - * config/mips/mips.c (mips_file_start): Add support for - flagging 32-bit code with -mfp64 floating-point. - -2007-11-20 Jakub Jelinek - - PR c/34146 - * c-gimplify.c (optimize_compound_literals_in_ctor): New function. - (c_gimplify_expr): Use it. - -2007-11-20 Ben Elliston - - * config/spu/spu_mfcio.h: Fix typo. - -2007-11-20 Ben Elliston - - * unwind.inc: Comment that unwind-sjlj.c includes this file. - -2007-11-20 Ulrich Weigand - Ben Elliston - - * config/spu/mfc_tag_release.c: New file. - * config/spu/mfc_multi_tag_release.c: Likewise. - * config/spu/mfc_multi_tag_reserve.c: Likewise. - * config/spu/mfc_tag_release.c: Likewise. - * config/spu/mfc_tag_reserve.c: Likewise. - * config/spu/mfc_tag_table.c: Likewise. - * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Compile them. - (TARGET_LIBGCC2_CFLAGS): Define __IN_LIBGCC2. - * config/spu/spu_mfcio.h: Avoid . - (uint64_t): Typedef if __IN_LIBGCC2 is defined. - (MFC_TAG_INVALID, MFC_TAG_VALID): New macros. - (mfc_tag_reserve, mfc_tag_release, mfc_multi_tag_reserve, - mfc_multi_tag_release): Likewise. - (__mfc_tag_reserve, __mfc_tag_release, __mfc_multi_tag_reserve, - __mfc_multi_tag_release): Declare. - -2007-11-19 Jason Merrill - - PR debug/28834, debug/29436, c/32326 - * tree.c (build_type_attribute_qual_variant): Refuse to make - a distinct copy of a struct/enum type. Use build_distinct_type_copy. - * doc/extend.texi (Type Attributes): Don't encourage people to add - attributes to struct/enum types in a typedef. Fix - transparent_union example. - - * tree-inline.c (remap_type_1): Remove code that's redundant with - remap_type. - (build_duplicate_type): Set id.copy_decl. - * c-common.c (handle_transparent_union_attribute): Simplify logic. - -2007-11-19 Peter Bergner - - * config/rs6000/rs6000.c (invalid_e500_subreg, - rs6000_legitimate_offset_address_p, legitimate_lo_sum_address_p, - rs6000_legitimize_address, rs6000_legitimize_reload_address, - rs6000_legitimate_address, function_arg_advance, - spe_build_register_parallel, rs6000_spe_function_arg, - rs6000_split_multireg_move, spe_func_has_64bit_regs_p, - emit_frame_save, gen_frame_mem_offset, rs6000_function_value, - rs6000_libcall_value, rs6000_dwarf_register_span): Handle DDmode and - TDmode similarly to DFmode and TFmode. - * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK, - DATA_ALIGNMENT, CLASS_MAX_NREGS, CANNOT_CHANGE_MODE_CLASS): Likewise. - -2007-11-19 Eric Botcazou - - * stor-layout.c (lang_adjust_rli): Delete. - (set_lang_adjust_rli): Likewise. - (layout_type): Do not call lang_adjust_rli hook. - * tree.h (set_lang_adjust_rli): Delete. - -2007-11-19 Bernd Schmidt - - * config/bfin/bfin.c (must_save_p): New function, mostly broken out of - n_dregs_to_save and n_pregs_to_save. - (n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE; - all callers changed. - (expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be - able to save single D/P registers that aren't saved by the push/pop - multiple insns. - -2007-11-19 Richard Guenther - - PR tree-optimization/34099 - * tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR, - MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED - if only one operand is undefined. - -2007-11-19 Eric Botcazou - - PR tree-optimization/34036 - * opts.c (set_fast_math_flags): Do not set flags in common - with set_unsafe_math_optimizations_flags, invoke it directly. - (set_unsafe_math_optimizations_flags): Unset flag_trapping_math - and flag_signed_zeros. - * toplev.c (process_options): Force flag_associative_math to 0 and - warn, if it is set and either flag_trapping_math or flag_signed_zeros - is set too. - * doc/invoke.texi (Optimize Options): Document the new behavior - of -funsafe-math-optimizations, that -fassociative-math requires - both -fno-signed-zeros and -fno-trapping-math and make it clear - that -fno-trapping-math requires -fno-signaling-nans. Refactor - documentation of -ffast-math. - -2007-11-18 Jakub Jelinek - - PR rtl-optimization/34132 - * gcse.c (try_replace_reg): Avoid rtx sharing between REG_EQUAL note - and insn. - - PR middle-end/33335 - * optabs.h (optab_table): Change type to struct optab from optab. - (convert_optab_table): Similarly. - Adjust all _optab macros to expand to addresses of optab_table - resp. convert_optab_table elements rather than the values of the - elements. - * optabs.c (optab_table): Change typype to struct optab from optab. - If compiled by recent GCC, initialize all the insn_code fields in - the array using designated range initializers. - (convert_optab_table): Similarly. - (convert_optab_libfunc, optab_libfunc, set_optab_libfunc, - set_conv_libfunc): Into libfunc_entry's optab field store index within - optab_table resp. convert_optab_table array instead of difference - between two separately malloced addresses. - (new_optab): Add op argument, don't return anything. Initialize - just the insn_code field in handlers array and only when needed. - (init_optab, init_optabv): Add op argument, don't return anything. - Adjust new_optab caller. - (new_convert_optab): Removed. - (init_convert_optab): Add op argument, don't return anything, don't - call new_convert_optab. If needed, initialize insn_code field in - handlers array. - (init_optabs): Adjust init_optab, init_optabv and init_convert_optab - callers. - (debug_optab_libfuncs): Adjust uses of optab_table and - convert_optab_table arrays. - -2007-11-18 Richard Guenther - - PR tree-optimization/34127 - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): - Make code match up the comments, require compatibility of the - pointed-to types. - -2007-11-17 Richard Guenther - - PR middle-end/34130 - * fold-const.c (extract_muldiv_1): Do not move negative - constants inside ABS_EXPR. - -2007-11-16 Ian Lance Taylor - - * collect2.c (dump_file): If a demangled symbol is followed by a - space, make sure we output at least one space. - -2007-11-16 Richard Guenther - - PR middle-end/34030 - * fold-const.c (fold_binary): Use correct types for folding - 1 << X & Y to Y >> X & 1. - -2007-11-16 Richard Guenther - - PR tree-optimization/33870 - * tree.h (struct tree_memory_tag): Add base_for_components flag. - (struct tree_struct_field_tag): Remove nesting_level field. - (SFT_NESTING_LEVEL): Remove. - (SFT_BASE_FOR_COMPONENTS_P): Add. - * tree-flow.h (struct fieldoff): Remove nesting_level field. Add - base_for_components flag. - (push_fields_onto_fieldstack): Remove nesting_level parameter. - * tree-ssa-alias.c (create_sft): Likewise. Add base_for_components - parameter. - (create_overlap_variables_for): Deal with it. - * tree-dfa.c (dump_subvars_for): Likewise. - (dump_variable): Likewise. - * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. - Set base_for_components for first elements of sub-structures. - (create_variable_info_for): Handle base_for_components. - (set_uids_in_ptset): Always set SFT_UNPARTITIONABLE_P for - pointed-to SFTs if SFT_BASE_FOR_COMPONENTS_P is set. - * tree-ssa-operands.c (ref_nesting_level): Remove. - (add_vars_for_offset): Remove full_ref parameter, always add - the offset of the pointed-to SFT. - (add_virtual_operand): Adjust for changed signature of - add_vars_for_offset. - -2007-11-16 Sa Liu - - * config/spu/spu.md (floatunssidf2, floatunsdidf2): Inlined - floatunssidf2 and floatunsdidf2. - -2007-11-16 Richard Guenther - - PR tree-optimization/34113 - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): - Use correct conversion direction for checking type compatibility. - -2007-11-16 Richard Guenther - - PR tree-optimization/34099 - * tree-ssa-ccp.c (likely_value): Use a whitelist for operators - that produce UNDEFINED result if at least one of its operands - is UNDEFINED. By default the result is only UNDEFINED if all - operands are UNDEFINED. - -2007-11-16 Jakub Jelinek - - PR driver/30460 - * gcc.c (init_spec): Don't initialize asm_debug here... - (main): ... but here. - -2007-11-07 Tom Tromey - - * tree-ssa-structalias.c (ipa_pta_execute): Rename 'cfun' to 'func'. - * tree-parloops.c (create_loop_fn): Use set_cfun. - * gengtype.c (open_base_files): Emit #undef cfun. - * ipa-struct-reorg.c (do_reorg_1): Use set_cfun. - * function.h (cfun): New define. - * function.c: Undefine cfun. - -2007-11-07 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add attiny88. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-11-15 Jakub Jelinek - - PR middle-end/23848 - * tree-ssa-ccp.c (optimize_stack_restore): New function. - (execute_fold_all_builtins): Call optimize_stack_restore for - BUILT_IN_STACK_RESTORE. - -2007-11-15 Paolo Bonzini - - * fwprop.c (try_fwprop_subst): Skip profitability check for forward - propagation into an address; that's done in should_replace_address. - -2007-11-15 Ulrich Weigand - - * config/spu/spu-protos.h (legitimate_const): Remove prototype. - * config/spu/spu.c (legitimate_const): Remove. - (classify_immediate): Inline call to legitimate_const. - (spu_legitimate_address): Likewise. Allow SYMBOL_REF + CONST_INT - for any constant, not just -512 .. 511. - -2007-11-15 Sa Liu - - * config/spu/spu.c (spu_emit_branch_or_set): Remove PROCESSOR_CELL - condition from HONOR_NANS test. - * config/spu/spu.md (ceq_df): Always generate comparison code - inline, including checks for NaNs and infinities. - (cgt_df): Likewise. - (cgt_v2df): Likewise. - (cmpdf): Make this expander unconditional. - -2007-11-15 Richard Guenther - - * tree-ssa-alias.c (create_overlap_variables_for): Make sure - to only create SFTs if we also create variable infos for PTA. - * tree-ssa-structalias.c (set_uids_in_ptset): Add all overlapping SFTs. - -2007-11-15 Richard Guenther - - * tree-ssa-structalias.c (set_uids_in_ptset): Use the pointed-to - type for TBAA pruning. - (find_what_p_points_to): Call set_uids_in_ptset with the original - pointer, not the decl of the solution we collapsed to. - -2007-11-14 David Daney - - * config/mips/linux-unwind.h (mips_fallback_frame_state): Use CFA - to find sigcontext. - -2007-11-14 Eric Botcazou - - PR target/33923 - * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Forbid mode changes - for registers in BR_REGS class. - -2007-11-14 Jakub Jelinek - - PR middle-end/34088 - * tree-ssa.c (delete_tree_ssa): Don't call fini_ssa_operands if - init_ssa_operands has not been called for cfun. - -2007-11-14 Eric Botcazou - - PR tree-optimization/34046 - * cfg.c (update_bb_profile_for_threading): Avoid the division for the - scaling if the old probability is greater than the new base. - -2007-11-14 Sebastian Pop - - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Remove - unused edges after loop duplication. - -2007-11-14 Uros Bizjak - - * config/i386/i386.h (TARGET_CPU_DEFAULT_*): Substitute with ... - (enum target_cpu_default): ... this enum. - (TARGET_CPU_DEFAULT_NAMES): Remove macro. Move initializer to ... - * config/i386/i386.c (override_options): ... here. - * config/i386/i386-interix.h (TARGET_CPU_DEFAULT): Use - TARGET_CPU_DEFAULT_i486. - -2007-11-14 Rask Ingemann Lambertsen - - * global.c (rest_of_handle_global_alloc): Fix comment typos. - * config/sh/sh.c (sh_rtx_costs): Likewise. - * ChangeLog: Likewise. - -2007-11-13 Sebastian Pop - - * tree-chrec.h (build_polynomial_chrec): RHS of a chrec - should not be of pointer type. - -2007-11-13 Michael Meissner - - * config/i386/i386.c (ix86_sse5_valid_op_p): Put type on separate line. - -2007-11-13 Sterling Augustine - Bob Wilson - - * config/xtensa/unwind-dw2-xtensa.c: New. - * config/xtensa/unwind-dw2-xtensa.h: New. - * config/xtensa/xtensa.h (MUST_USE_SJLJ_EXCEPTIONS): Remove. - (DWARF2_UNWIND_INFO): Remove. - (DWARF_FRAME_REGISTERS): Define. - (EH_RETURN_DATA_REGNO): Define. - * config/xtensa/xtensa.md (UNSPECV_EH_RETURN): Define. - (eh_return): New. - * config/xtensa/t-xtensa (LIB2ADDEH): Define. - -2007-11-13 Jakub Jelinek - - * doc/invoke.texi: Fix description of -fsched-stalled-insns=0, - -fsched-stalled-insns. - - PR tree-optimization/34063 - * tree-chrec.c (chrec_evaluate): Put CHREC_LEFT based argument - as first chrec_fold_plus operand rather than second. - -2007-11-13 Diego Novillo - - PR tree-optimization/33870 - * tree.h (strcut tree_memory_tag): Add field unpartitionable. - Remove field in_nested_struct. - (struct tree_struct_field_tag): Add field nesting_level. - (sft_in_nested_struct): Remove. - (sft_nesting_level): Define. - (sft_unpartitionable_p): Define. - * tree-ssa-alias.c (mem_sym_score): If mp->var is not - partitionable, return long_max. - (compute_memory_partitions): Do not partition sfts marked - unpartitionable. - (create_sft): Add argument nesting_level. Set - sft_nesting_level with it. Update all users. - (create_overlap_variables_for): Show nesting level. - * tree-dfa.c (dump_subvars_for): Likewise. - (dump_variable): Likewise. Show whether the sft is - partitionable or not. - * tree-flow.h (struct fieldoff): Remove field in_nested_struct. - Add field nesting_level. - * tree-ssa-structalias.c (struct variable_info): Remove - field in_nested_struct. - (push_fields_onto_fieldstack): Add argument nesting_level. - Update all users. Update documentation. Update pair->nesting_level - with nesting_level. Make recursive calls with nesting_level + 1. - (set_uids_in_ptset): If an sft is added to the points-to set, - mark it as unpartitionable. - * tree-ssa-operands.c (ref_nesting_level): New. - (add_vars_for_offset): Call it. Add argument full_ref. Update - callers. If var is inside a nested structure and the nesting level - of full_ref is lower than the nesting level of var, - adjust offset by the offset of var. - -2007-11-13 Victor Kaplansky - - PR tree-optimization/32582 - * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-tree-vectorize - -2007-11-12 Danny Smith - - * doc/extend.texi (dllimport): Document that pointers to dllimport'd - functions can be used as constant. - -2007-11-12 Eric Botcazou - - PR rtl-optimization/34035 - * cse.c (cse_cfg_altered): New global variable. - (cse_jumps_altered): Make boolean. - (recorded_label_ref): Likewise. - (cse_insn): Adjust for above changes. - (cse_extended_basic_block): Likewise. Set cse_cfg_altered - if dead edges have been purged. - (cse_main): Change return value specification and adjust code. - (rest_of_handle_cse): Adjust for above change. - (rest_of_handle_cse2): Likewise. - * gcse.c (rest_of_handle_gcse): Likewise. - -2007-11-12 Dwarakanath Rajagopal - Michael Meissner - - * config/i386/i386.md (sse5_setcc): Use to - get the appropriate suffix for the coms* instruction. - (sse5_pcmov_): Restrict operands of pcmov - for scalar case to be only xmm registers and not memory. - - * config/i386/sse.md (sse5_pcmov_): Correct the operand - constraints to follow the mnemonics for the pcmov instruction - -2007-11-12 Richard Sandiford - - PR target/34042 - * config/mips/mips.c (mips_return_fpr_single): New function. - (mips_function_value): Use it when returning single-field - aggregates in FPRs. - (mips_expand_call): Handle the PARALLELs created by - mips_return_fpr_single. - -2007-11-12 Richard Guenther - - PR middle-end/34070 - * fold-const.c (fold_binary): If testing for non-negative - operands with tree_expr_nonnegative_warnv_p make sure to - use op0 which has all (sign) conversions retained. - -2007-11-12 Richard Guenther - - PR middle-end/34027 - * fold-const.c (fold_binary): Fold n - (n / m) * m to n % m. - (fold_binary): Fold unsinged FLOOR_DIV_EXPR to TRUNC_DIV_EXPR. - -2007-11-12 Ira Rosen - - PR tree-optimization/33953 - * tree-vect-transform.c (vectorizable_operation): In case of SLP, - allocate vec_oprnds1 according to the number of created vector - statements. In case of shift with scalar argument, store scalar - operand for every vector statement to be created for the SLP node. - Fix a comment. - -2007-11-10 Steven Bosscher - - * gcse.c (CUID_INSN): Remove. - (cuid_insn): Ditto. - (alloc_gcse_mem): Don't allocate cuid_insn. - (free_gcse_mem): Don't free cuid_insn. - -2007-11-10 Jakub Jelinek - - PR fortran/34020 - * gimplify.c (goa_lhs_expr_p): Inside INDIRECT_REF handle unshared - nops. - - PR middle-end/34018 - * tree-inline.h (copy_body_data): Add regimplify field. - * tree-inline.c (copy_body_r): Set id->regimplify to true - if an TREE_INVARIANT ADDR_EXPR is no longer invariant after - substitutions. - (copy_bb): Clear id->regimplify before walk_tree, if it is - set afterwards, regimplify the whole statement. - - PR tree-optimization/33680 - * tree-data-ref.c (split_constant_offset) : Punt - if the added cast involves variable length types. - -2007-11-09 Alexander Monakov - Maxim Kuvyrkov - - * sched-deps.c (sched_analyze_insn): Use MOVE_BARRIER - instead of TRUE_BARRIER for jumps. Add register dependencies - even when reg_pending_barrier is set. - -2007-11-09 Alexander Monakov - - * haifa-sched.c (haifa_classify_insn): Rename to ... - (haifa_classify_rtx): ... this. Improve handling of COND_EXECs, - handle PARALLELs by recursing. Use it ... - (haifa_classify_insn): ... here. Reimplement. - -2007-11-09 Richard Guenther - - * bitmap.h (bitmap_single_bit_set_p): Declare. - * bitmap.c (bitmap_single_bit_set_p): New function. - * tree-ssa-alias.c (add_may_alias_for_new_tag): Use it. - (maybe_create_global_var): Use bitmap_empty_p. - -2007-11-09 Paolo Bonzini - Jakub Jelinek - - PR rtl-optimization/34012 - * fwprop.c (try_fwprop_subst): Do not replace if the new - SET_SRC has a higher cost than the old one. - -2007-11-09 Eric Botcazou - - PR rtl-optimization/33732 - * reload.c (push_reload): Check that the REG_DEAD note was referring - to a hardreg or to a pseudo that has been assigned exactly one hardreg - before considering it in order to select the reload register. - (combine_reloads): Likewise. - (find_dummy_reload): Likewise. - -2007-11-09 Richard Guenther - - * tree-flow.h (struct ptr_info_def): Make escape_mask a ENUM_BITFIELD. - (struct ptr_info_def): Likewise. - (enum escape_type): Also use bit zero. - -2007-11-09 Richard Guenther - - PR tree-optimization/33604 - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): - Disregard changes in CV qualifiers of pointed to types for - forward propagating ADDR_EXPRs. - * tree-ssa-ccp.c (fold_stmt_r): Preserve volatileness of the original - expression. - -2007-11-09 Richard Sandiford - - * dse.c (find_shift_sequence): Always choose an integer mode for - new_mode. - (replace_read): Require both the read and store mode to be - integer ones. Remove a then-redundant FLOAT_P check. - -2007-11-08 Richard Guenther - - * tree-dfa.c (remove_referenced_var): If removing a - variable which has subvars, also remove those from - the referenced vars. Do not create a variable annotation. - -2007-11-08 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_prologue): Remove first - argument for gen_entry calls. - * config/xtensa/xtensa.md: Add new "entry" value to "type" attribute. - (entry): Use the new attribute value. Remove unused first operand. - -2007-11-08 Tom Tromey - - * c-parser.c (c_parser_translation_unit): Use location in error. - (c_parser_external_declaration): Likewise. - (c_parser_declaration_or_fndef): Likewise. - (c_parser_enum_specifier): Likewise. - (c_parser_struct_or_union_specifier): Likewise. - (c_parser_struct_declaration): Likewise. - (c_parser_typeof_specifier): Likewise. - (c_parser_parms_list_declarator): Likewise. - (c_parser_asm_string_literal): Likewise. - (c_parser_braced_init): Likewise. - (c_parser_initelt): Likewise. - (c_parser_compound_statement_nostart): Likewise. - (c_parser_statement_after_labels): Likewise. - (c_parser_do_statement): Likewise. - (c_parser_asm_statement): Likewise. - (c_parser_conditional_expression): Likewise. - (c_parser_unary_expression): Likewise. - (c_parser_sizeof_expression): Likewise. - (c_parser_postfix_expression): Likewise. - (c_parser_postfix_expression_after_paren_type): Likewise. - (c_parser_objc_class_instance_variables): Likewise. - (c_parser_objc_method_definition): Likewise. - (c_parser_objc_methodprotolist): Likewise. - (c_parser_pragma): Likewise. - (c_parser_omp_clause_num_threads): Likewise. - (c_parser_omp_clause_schedule): Likewise. - (c_parser_omp_all_clauses): Likewise. - (c_parser_omp_sections_scope): Likewise. - (c_parser_label): Use location of label, not colon. - -2007-11-08 Danny Smith - - PR target/33774 - * config/i386/cygming.h (BIGGEST_FIELD_ALIGNMENT): Define only if - IN_TARGET_LIBS. - -2007-11-07 Kenneth Zadeck - - PR middle-end/33826 - * ipa-pure-const.c (static_execute): Added code to keep recursive - functions from being marked as pure or const. - * ipa-utils.c (searchc): Fixed comment. - -2007-11-08 Tom Tromey - - * common.opt (fshow-column): Default to 0. - * configure: Rebuilt. - * configure.ac (--enable-mapped-location): Default to 'yes'. - -2007-11-07 Kenneth Zadeck - - * common.opt: Add pointer to doc/options.texi. - * doc/invoke.texi (-fdse, -fdce, -fauto-inc-dec, -fipa-pure-const, - -fipa-reference): Add or correct doc. Sorted options list for -Os - -O, -O2. - -2007-11-07 Bernhard Fischer - - PR target/16350 - * config.gcc: For arm*b-* define TARGET_BIG_ENDIAN_DEFAULT. - * config/arm/linux-elf.h (TARGET_ENDIAN_DEFAULT): Define based on - TARGET_BIG_ENDIAN_DEFAULT. Use for MULTILIB_DEFAULTS. - (TARGET_DEFAULT): Set according to TARGET_ENDIAN_DEFAULT. - (LINUX_TARGET_LINK_SPEC): Pass -mlittle-endian on to the assembler. - * config/arm/linux-eabi.h (TARGET_LINKER_EMULATION): Set according - to TARGET_BIG_ENDIAN_DEFAULT. - (SUBTARGET_EXTRA_LINK_SPEC): Likewise. - * config/arm/bpabi.h (TARGET_DEFAULT_MASK): Set according - to TARGET_BIG_ENDIAN_DEFAULT. - -2007-11-07 Diego Novillo - - * tree.h (struct tree_struct_field_tag): Move field - in_nested_struct ... - (struct tree_memory_tag): ... here. - -2007-11-07 Diego Novillo - - PR 33870 - * tree.h (struct tree_struct_field_tag): Add field in_nested_struct. - (SFT_IN_NESTED_STRUCT): Define. - * tree-dfa.c (dump_subvars_for): Show offset of each sub-var. - * tree-flow.h (struct fieldoff): Add field in_nested_struct. - * tree-ssa-structalias.c (struct variable_info): Likewise. - (push_fields_onto_fieldstack): If OFFSET is positive, - set in_nested_struct. - (create_variable_info_for): Copy setting of - in_nested_struct from the field offset object. - (set_uids_in_ptset): Set SFT_IN_NESTED_STRUCT from the - variable info object. - * tree-ssa-operands.c (add_vars_for_offset): If VAR - belongs to a nested structure, adjust OFFSET by SFT_OFFSET(VAR). - -2007-11-07 Eric Botcazou - - PR rtl-optimization/33737 - * cfgcleanup.c (try_crossjump_to_edge): Add count and frequency of - target block after computing the probabilities of outgoing edges. - Cap the frequency to BB_FREQ_MAX. - * tree-ssa-threadupdate.c (redirect_edges): Also adjust count and - frequency of the basic block if it has been reused. - -2007-11-07 Eric Botcazou - - PR rtl-optimization/33822 - * rtl.h (REG_OFFSET): Fix comment. - * var-tracking.c (INT_MEM_OFFSET): New macro. - (var_mem_set): Use it. - (var_mem_delete_and_set): Likewise. - (var_mem_delete): Likewise. - (same_variable_part_p): Likewise. - (vt_get_decl_and_offset): Likewise. - (offset_valid_for_tracked_p): New predicate. - (count_uses): Do not track locations with invalid offsets. - (add_uses): Likewise. - (add_stores): Likewise. - -2007-11-07 Tom Tromey - - * Makefile.in (tree-ssa-structalias.o): Depend on $(FUNCTION_H) - (BASIC_BLOCK_H): Add vec.h, $(FUNCTION_H). - -2007-11-07 Dmitry Zhurikhin - Andrey Belevantsev - - * modulo-sched.c (sms_order_nodes, permute_partial_schedule, - generate_prolog_epilog, duplicate_insns_of_cycles): Fix prototypes. - (calculate_order_params, sms_order_nodes): New parameter pmax_asap. - Save calculated max_asap in it. - (sms_schedule): Calculate maxii using max_asap. - -2007-11-07 Andreas Krebbel - - * doc/invoke.texi: Replace rs6000 dfp switches -mdfp/-mno-dfp - with -mhard-dfp/-mno-hard-dfp. - -2007-11-07 Maxim Kuvyrkov - Jakub Jelinek - - PR middle-end/33670 - * haifa-sched.c (check_sched_flags): Remove. - (sched_init): Don't call it. - -2007-11-06 Diego Novillo - - * tree-flow.h (struct fieldoff): Reformat comment. Document fields. - * tree-ssa-operands.c: Tidy top-level comments. - (add_vop): Likewise. - (add_vars_for_offset): Tidy parameter formatting.. - (get_addr_dereference_operands): Likewise. - (get_indirect_ref_operands): Likewise. - (get_expr_operands) : Reformat. - : Likewise. - -2007-11-06 Rask Ingemann Lambertsen - - PR target/32787 - * config/i386/driver-i386.c: Test for __GNUC__ instead of - GCC_VERSION which is always defined. - -2007-11-06 Ulrich Weigand - - PR target/30961 - * reload1.c (find_reloads): Also check in_reg when handling a - simple move with an input reload and a destination of a hard register. - -2007-11-06 Maxim Kuvyrkov - - * config/m68k/m68k.c (sched-int.h, insn-codes.h): New includes. - (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, - TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL, - TARGET_SCHED_INIT, TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, - TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Redefine. - (m68k_sched_attr_type2): New function. - (sched_adjust_cost_state): New static variable. - (m68k_sched_adjust_cost): New static function implementing - scheduler hook. - (sched_ib_size, sched_ib_filled, sched_ib_insn, sched_mem_unit_code): - New static variables. - (m68k_sched_variable_issue): New static function implementing - scheduler hook. - (sched_dump_class_def, sched_dump_class_func_t): New typedefs. - (sched_dump_split_class): New static function. - (sched_dump_dfa_guess_unit_code, sched_dump_dfa_state): New static - variables. - (sched_dump_dfa_class, m68k_sched_dump): New static function. - (m68k_sched_md_init_global, m68k_sched_md_finish_global, - m68k_sched_md_init, m68k_sched_dfa_pre_advance_cycle, - m68k_sched_dfa_post_advance_cycle): New static functions implementing - scheduler hooks. - - * config/m68k/m68k.h (m68k_sched_attr_type2): Declare. - (CPU_UNITS_QUERY): Define. - - * config/m68k/cf.md: New file. - * config/m68k/m68.md (cf.md): New include. - -2007-11-06 Tom Tromey - - PR c++/32256 - PR c++/32368 - * function.c (saved_in_system_header): New global. - (push_cfun): Save in_system_header. - (pop_cfun): Restore in_system_header. - (push_struct_function): Save in_system_header. - -2007-11-06 Douglas Gregor - - PR c++/33977 - PR c++/33886 - * c-common.c (c_build_qualified_type): Moved to c-typeck.c. - (complete_array_type): Set canonical type appropriately. - * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The - C and C++ front ends now have different versions of this function, - because the C++ version needs to maintain canonical types here. - -2007-11-04 Razya Ladelsky - - * tree-parloops.c (reduction_info): Remove reduction_init field. - (initialize_reductions): Remove creation of the reduction_init variable. - (struct data_arg): Remove. - (add_field_for_reduction, create_stores_for_reduction): New functions. - (add_field_for_name): Remove reduction handling. - (separate_decls_in_loop): Call add_field_for_reduction, - create_stores_for_reduction. - -2007-11-06 Jakub Jelinek - - PR tree-optimization/33458 - * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates - !is_gimple_val PHI argument, gimplify it and insert it on edge. - - PR tree-optimization/33993 - * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector - rather than build_constructor_from_list if all list values are - constants. - (get_initial_def_for_induction): Use build_vector instead of - build_constructor_from_list. - -2007-11-05 Mark Mitchell - - PR target/33579 - * tree.h (DECL_INIT_PRIORITY): Do not require DECL_HAS_INIT_PRIORITY_P. - (DECL_FINI_PRIORITY): Likewise. - * tree.c (decl_init_priority_lookup): Remove assert. - (decl_fini_priority_insert): Likewise. - * cgraphunit.c (static_ctors): Make it a VEC. - (static_dtors): Likewise. - (record_cdtor_fn): Adjust accordingly. - (build_cdtor): Generate multiple functions for each initialization - priority. - (compare_ctor): New function. - (compare_dtor): Likewise. - (cgraph_build_cdtor_fns): Sort the functions by priority before - calling build_cdtor. - (cgraph_build_static_cdtor): Put the priority in the function's name. - -2007-11-05 H.J. Lu - - PR driver/32632 - * common.opt: Add shared and pie. - -2007-11-05 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Do not - replace references to virtual_stack_vars_rtx in goto_handler. - -2007-11-05 Paul Brook - - * config.gcc (arm*-*-*): Set c_target_objs and cxx_target_objs. - * config/arm/arm.c (arm_lang_output_object_attributes_hook): New. - (arm_file_start): Don't set Tag_ABI_PCS_wchar_t. Call - arm_lang_output_object_attributes_hook. - * config/arm/arm.h (arm_lang_output_object_attributes_hook): Declare. - (REGISTER_TARGET_PRAGMAS): Call arm_lang_object_attributes_init. - * config/arm/arm-protos.h (arm_lang_object_attributes_init): Add - prototype. - * config/arm/t-arm.c (arm.o): New rule. - * config/arm/arm-c.c: New file. - -2007-11-05 Nick Clifton - Sebastian Pop - - PR tree-optimization/32540 - PR tree-optimization/33922 - * doc/invoke.texi: Document PARAM_MAX_PARTIAL_ANTIC_LENGTH. - * tree-ssa-pre.c: Include params.h. - (compute_partial_antic_aux): Use PARAM_MAX_PARTIAL_ANTIC_LENGTH - to limit the maximum length of the PA set for a given block. - * Makefile.in: Add a dependency upon params.h for tree-ssa-pre.c - * params.def (PARAM_MAX_PARTIAL_ANTIC_LENGTH): New parameter. - -2007-11-05 Nathan Sidwell - - * libgcc2.c (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, - __fixunssfDI): Make return type unsigned. - * libgcc2.h (__fixunstfDI, __fixunsxfDI, __fixunsdfDI, - __fixunssfDI): Make return type unsigned. - -2007-11-05 Jakub Jelinek - - PR tree-optimization/33856 - * tree-data-ref.c (get_references_in_stmt): Don't add - REFERENCE_CLASS_P trees to references vector if get_base_address - returns NULL on them. - -2007-11-05 Alexandre Oliva - - * cfg.c (dump_cfg_bb_info): Update bb_bitnames to match enum. - -2007-11-04 Andrew Pinski - - PR middle-end/32931 - * fold-const.c (fold_binary ): Convert the inner type - for TRUTH_NOT_EXPR to type. - -2007-11-04 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add Manuel Lopez-Ibanez. - -2007-11-04 Francois-Xavier Coudert - - PR fortran/10220 - * dwarf2out.c (add_calling_convention_attribute): Change - second argument. Set calling convention to DW_CC_program for - Fortran main program. - (gen_subprogram_die): Adjust to new prototype for - add_calling_convention_attribute. - -2007-11-03 Dorit Nuzman - - PR tree-optimization/33987 - * tree-vect-transform.c (get_initial_def_for_reduction): Fix assert. - Fix indentation. - (vectorizable_reduction): Add type check. - -2007-11-03 Manuel Lopez-Ibanez - - PR c/29062 - * c-parser.c (c_parser_statement_after_labels): Error if a - declaration is parsed after a label. - -2007-11-03 Daniel Jacobowitz - - PR debug/33921 - * reorg.c (emit_delay_sequence): Do not clear the locator on - the jump instruction. - -2007-11-03 Jakub Jelinek - - PR middle-end/33670 - * haifa-sched.c (ok_for_early_queue_removal): Don't walk out of the - current sched region. - -2007-11-02 Jakub Jelinek - - * config/ia64/ia64.c (struct reg_write_state): Change into - unsigned short bitfields rather than unsigned int, decrease - first_pred to just 10 bits. - (rws_insn): Change into a bitmap or if not ENABLE_CHECKING - into two char array. - (rws_insn_set, rws_insn_test): New functions. - (in_safe_group_barrier): New variable. - (rws_update): Remove first argument, always set rws_sum array. - (rws_access_regno): Use rws_insn_set macro. Only call rws_update - or update rws_sum if !in_safe_group_barrier, adjust rws_update args. - (rtx_needs_barrier): Use rws_insn_test macro. - (safe_group_barrier_needed): Don't save/restore rws_sum array, - instead set/clear in_safe_group_barrier flag. - -2007-11-02 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_prologue): Put a - REG_FRAME_RELATED_EXPR note on the last insn that sets up the stack - pointer or frame pointer. - * config/xtensa/xtensa.h (DWARF_UNWIND_INFO): Delete. - (MUST_USE_SJLJ_EXCEPTIONS): Define. - (DWARF2_UNWIND_INFO): Define. - (INCOMING_RETURN_ADDR_RTX): Define. - (DWARF_FRAME_RETURN_COLUMN): Define. - -2007-11-02 Tom Tromey - - * varpool.c (dump_varpool): Use 'next', not 'next_needed' when - traversing pool. - -2007-11-02 Diego Novillo - - * langhooks.h (struct lang_hooks_for_callgraph): Remove third - argument from function pointer ANALYZE_EXPR. Update all users. - * cgraph.c (debug_cgraph_node): New. - (debug_cgraph): New. - -2007-11-02 Jakub Jelinek - - PR rtl-optimization/33648 - * cfgrtl.c (cfg_layout_split_edge): Initialize BB_PARTITION of - the newly created basic block. - -2007-11-01 Richard Guenther - - * ggc-page.c (extra_order_size_tab): Add bitmap_head size. - -2007-11-01 Steven Bosscher - - PR rtl-optimization/33828 - * gcse.c (compute_code_hoist_vbeinout): Fix order of computation - of VBEIN and VBEOUT. - -2007-11-01 Eric Botcazou - - * optabs.c (prepare_cmp_insn): Merge a couple of conditional blocks. - * sched-rgn.c (compute_trg_info): Zero 'el' local variable. - * tree-if-conv.c (process_phi_nodes): Zero 'cond' local variable. - -2007-11-01 Nathan Sidwell - - * gcc.c (getenv_spec_function): Escape the environment variable's - value. - -2007-11-01 Janis Johnson - - * doc/invoke.texi (Optimize Options): Under -fcse-follow-jumps, - show that CSE means common subexpression elimination. Change wording - for -fsee and define LCM. Remove capitalization of optimizations - for -ftree-reassoc, -ftree-pre, and -ftree-fre. - -2007-11-01 Janis Johnson - - PR testsuite/25352 - * doc/sourcebuild.texi (Test Directives): Document that xfail - has no effect for dg-do except when dg-do-what is "run". - -2007-11-01 Tom Tromey - - * c-decl.c (grokdeclarator): Set decl source locations. - * c-parser.c (c_parser_enum_specifier): Set location. - (c_parser_struct_or_union_specifier): Likewise. - -2007-11-01 Tom Tromey - - * print-tree.c (print_node): Print column number. - -2007-11-01 Jakub Jelinek - - PR debug/33537 - * dwarf2out.c (gen_formal_parameter_die, gen_variable_die, - gen_decl_die): Use TREE_TYPE (TREE_TYPE (decl)) as type - rather than TREE_TYPE (decl) if DECL_BY_REFERENCE (decl). - - PR rtl-optimization/33673 - * gcse.c (cprop_jump): If a conditional jump has been optimized - into unconditional jump, make the remaining normal edge fallthru - and delete the jump insn. - -2007-11-01 Ben Elliston - - * emit-rtl.c (set_reg_attrs_from_mem): Clarify function comment. - (set_mem_attrs_from_reg): Likewise. - -2007-11-01 Michael Matz - - PR tree-optimization/33961 - * tree-ssa-phiopt.c (struct name_to_bb.store): New member. - (name_to_bb_hash, name_to_bb_eq): Consider and check it. - (add_or_mark_expr): New argument 'store', using it to search - the hash table. - (nt_init_block): Adjust calls to add_or_mark_expr. - -2007-10-31 Jakub Jelinek - - PR target/31507 - * config/i386/i386.md (pushsf_rex64): Use X instead of < constraints - for the first push_operand. - -2007-10-31 Revital Eres - - * config/rs6000/paired.md (sminv2sf3, smaxv2sf3, reduc_smax_v2sf, - reduc_smin_v2sf vec_interleave_highv2sf, vec_interleave_lowv2sf, - vec_extract_evenv2sf, vec_extract_oddv2sf, reduc_splus_v2sf, - movmisalignv2sf, vcondv2sf): New. - (UNSPEC_INTERHI_V2SF, UNSPEC_INTERLO_V2SF, UNSPEC_EXTEVEN_V2SF, - UNSPEC_EXTODD_V2SF): Define new constants. - * config/rs6000/rs6000-protos.h (paired_expand_vector_move, - paired_emit_vector_cond_expr): New. - * config/rs6000/rs6000-c.c (__PAIRED__): Add new builtin_define. - * config/rs6000/rs6000.c (paired_expand_vector_move, - paired_emit_vector_cond_expr, paired_emit_vector_compare): - New functions. - * config/rs6000/750cl.h (ASM_CPU_SPEC): Pass down -m750cl option. - -2007-10-31 Sebastian Pop - - PR tree-optimization/32377 - * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Make it - work also for unknown number of iterations. - (analyze_subscript_affine_affine): Clean up. Don't fail when the - number of iterations is not known. - -2007-10-31 Richard Guenther - - PR middle-end/33779 - * fold-const.c (extract_muldiv_1): Make sure to not introduce - new undefined integer overflow. - (fold_binary): Avoid useless conversion. - -2007-10-31 Richard Sandiford - - PR target/33948 - * config/mips/mips.c (mips_fpr_return_fields): Fix SCALAR_TYPE_P check. - -2007-10-31 Andreas Krebbel - - * config/rs6000/rs6000.opt: Rename -mdfp option to -mhard-dfp. - - * config/s390/s390.c: (override_options): Replace - -mhard-dfp/-msoft-dfp with -mhard-dfp/-mno-hard-dfp. - * config/s390/s390.opt: Likewise. - * config/s390/s390.h: Add MASK_HARD_DFP to the TARGET_DEFAULT - definition. - -2007-10-30 Janis Johnson - - * tree-ssa.c (execute_update_addresses_taken): Initialize update_vops. - -2007-10-30 Janis Johnson - - * doc/invoke.texi (Option Summary): Add -fdce and -fdse to list of - optimization options. - (Optimize Options): Add -fdce and -fdse to the list of optimizations - enabled by -O. Document -fdce and -fdse. - -2007-10-30 Jakub Jelinek - - PR c++/33709 - * fold-const.c (fold_binary): If one argument is COMPOUND_EXPR, - convert second operand of COMPOUND_EXPR to the original type of - that argument. - -2007-10-30 Richard Guenther - - * tree-ssa-operands.c (add_vars_for_offset): Fix exit test - of loop adding SFTs as virtual operands. - -2007-10-30 Richard Guenther - - * Makefile.in (dse.o): Add $(OPTABS_H) and $(RECOG_H) dependencies. - -2007-10-29 Dorit Nuzman - - PR tree-optimization/32893 - * tree-vectorize.c (vect_can_force_dr_alignment_p): Check - STACK_BOUNDARY instead of PREFERRED_STACK_BOUNDARY. - -2007-10-29 Rask Ingemann Lambertsen - - * longlong.h (add_ssaaaa): Support Intel asm syntax in i386 and - x86_64 versions. - (sub_ddmmss): Likewise. - (umul_ppmm): Likewise. - (udiv_qrnnd): Likewise. - -2007-10-29 Janis Johnson - - PR testsuite/24841 - * doc/sourcebuild.texi (Test Directives): Document that dg-require - directives must come before dg-additional-sources. - -2007-10-29 Jakub Jelinek - - PR tree-optimization/33723 - * c-gimplify.c (c_gimplify_expr): Optimize INIT_EXPR or - MODIFY_EXPR with non-addressable COMPOUND_LITERAL_EXPR as source. - -2007-10-29 Richard Sandiford - - PR tree-optimization/33614 - * gimplify.c (gimplify_init_constructor): Gimplify vector constructors - if they can't be reduced to VECTOR_CSTs and aren't legitimate - initializer constants. - -2007-10-29 Richard Guenther - - PR tree-optimization/33870 - * tree-ssa-operands.c (add_vars_for_offset): Remove mpt_vars parameter. - (add_virtual_operand): Do not recurse into MPTs looking for pointed-to - SFTs. - -2007-10-29 Richard Guenther - - * passes.c (init_optimization_passes): Exchange store_copy_prop - with copy_prop. - * tree-pass.h (pass_store_copy_prop): Remove. - * tree-ssa-copy.c (do_store_copy_prop): Remove. - (stmt_may_generate-copy): Do not handle store_copy_prop. - (get_copy_of_val): Likewise. - (set_copy_of_val): Likewise. - (copy_prop_visit_assignment): Likewise. - (copy_prop_visit_stmt): Likewise. - (copy_prop_visit_phi_node): Likewise. - (init_copy_prop): Likewise. - (execute_copy_prop): Likewise. - (do_copy_prop): Remove. - (gate_store_copy_prop): Likewise. - (store_copy_prop): Likewise. - (pass_store_copy_prop): Likewise. - (pass_copy_prop): Call execute_copy_prop. - * opts.c (decode_options): Do not set flag_tree_store_copy_prop. - * common.opt (ftree-store-copy-prop): Mark obsolete. - * doc/invoke.texi (ftree-store-copy-prop): Remove documentation. - -2007-10-29 Ian Lance Taylor - - * ifcvt.c (noce_can_store_speculate_p): New static function. - (noce_process_if_block): Call it. - (if_convert): Remove recompute_dominance parameter. Change all - callers. - -2007-10-29 Richard Guenther - - * tree-flow-inline.h (get_subvar_at): Use binary search. - (get_first_overlapping_subvar): New function to binary search - for the first overlapping subvar. - * tree-ssa-operands.c (add_vars_for_offset): Strip down to - just handle adding subvars for a pointed-to subvar. Optimize - and use get_first_overlapping_subvar. - (add_vars_for_bitmap): Fold into single caller. - (add_virtual_operand): Streamline, inherit add_vars_for_bitmap - and non pointed-to bits of add_vars_for_offset. - -2007-10-29 Revital Eres - - * modulo-sched.c (sms_schedule): Add DF_UD_CHAIN problem. - -2007-10-29 Razya Ladelsky - Zdenek Dvorak - - OMP_ATOMIC Changes, - reduction support for automatic parallelization. - - * expr.c (expand_expr_real_1): Add cases for OMP_ATOMIC_LOAD, - OMP_ATOMIC_STORE. - * Makefile.in: Add dependencies to expr.o, tree-parloops.o, omp-low.o - * tree-pretty-print.c (dump_generic_node): Add OMP_ATOMIC_LOAD - and OMP_ATOMIC_STORE. - * tree.h (OMP_DIRECTIVE_P): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. - * gimple-low.c (lower_stmt): Same. - * gimplify.c (gimplify_expr): Same. - (gimplify_omp_atomic_fetch_op, gimplify_omp_atomic_pipeline, - gimplify_omp_atomic_mutex): Remove. - (gimplify_omp_atomic): Change it to simply gimplify the - statement instead of expanding it. - * omp-low.c: Add includes to optabs.h, cfgloop.h. - (expand_omp_atomic, expand_omp_atomic_pipeline, - goa_stabilize_expr, expand_omp_atomic_mutex, - expand_omp_atomic_fetch_op): New functions to implement - expansion of OMP_ATOMIC. - (expand_omp, build_omp_regions_1): Add support for - OMP_ATOMIC_LOAD/OMP_ATOMIC_STORE. - * tree-cfg.c (make_edges): add case for OMP_ATOMIC_LOAD, - OMP_ATOMIC_STORE. - * tree-gimple.c (is_gimple_stmt): Add OMP_ATOMIC_LOAD, - OMP_ATOMIC_STORE. - * tree-parloops.c: add include to tree-vectorizer.h. - (reduction_info): New structure for reduction. - (reduction_list): New list to represent list of reductions per loop. - (struct data_arg): New helper structure for reduction. - (reduction_info_hash, reduction_info_eq, reduction_phi, - initialize_reductions, create_call_for_reduction, - create_phi_for_local_result, create_call_for_reduction_1, - create_loads_for_reductions, create_final_loads_for_reduction): - New functions. - (loop_parallel_p): Identify reductions, add reduction_list parameter. - (separate_decls_in_loop_name): Support reduction variables. - (separate_decls_in_loop): Add reduction_list and ld_st_data arguments, - call create_loads_for_reduction for each reduction. - (canonicalize_loop_ivs): Identify reductions, add reduction_list - parameter. - (transform_to_exit_first_loop): Add reduction support, add - reduction_list parameter. - (gen_parallel_loop): Add reduction_list parameter. Add call - separate_decls_in_loop with - the new argument. Traverse reductions and call - initialize_reductions, create_call_for_reduction. - (parallelize_loops): Create and delete the reduction list. - (add_field_for_name): Change use of data parameter. Add fields for - reductions. - * tree-vectorizer.h (vect_analyze_loop_form): Add declaration. - * tree-vect-analyze.c (vect_analyze_loop_form): export it. - * tree.def: Add definitions for OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. - * tree-inline.c (estimate_num_insns_1): add cases for - OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. - * tree-cfg.c (make_edges): Add OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. - * tree-ssa-operands.c (get_addr_dereference_operands): - New function. Subroutine of get_indirect_ref_operands. - (get_indirect_ref_operands): Call get_addr_dereference_operands. - (get_expr_operands): Support OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE. - - -2007-10-29 Hans-Peter Nilsson - - * config/cris/cris.c: Include df.h. - (cris_address_cost): Add gcc_assert for canonicalization - assumptions. For PLUS with MULT or register, correct - test for register in other arm. Tweak comments. - -2007-10-28 Richard Guenther - - * tree-ssa-operands.c (add_vars_for_offset): Add parameter - telling if the var is to be treated as points-to location. - (add_vars_for_bitmap): Pass true to add_vars_for_offset. - (add_virtual_operand): Only recurse into MPTs if aliases - is from a NMT. - -2007-10-28 Richard Guenther - - * tree-ssa-operands.c (add_vars_for_offset): Clean and speed up. - (add_vars_for_bitmap): Do not recurse further. Only add vars - for pointed-to SFTs. - (add_virtual_operand): Re-instantiate loop to add operands for - aliases. Recurse into MPTs. - (get_indirect_ref_operands): If we fall back to use a pointers - SMT, make sure to not prune based on the access offset and size. - -2007-10-28 Andrew Pinski - - PR tree-opt/33589 - * tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup - the eh information on the statement. - -2007-10-28 Richard Guenther - - * tree-flow.h (subvar_t): Make it a VEC. - (struct subvar): Remove. - (struct var_ann_d): Use VEC(tree,gc) to store subvars. - * tree-flow-inline.h (get_subvar_at): Adjust iterators over - variable subvars. - * tree-into-ssa.c (mark_sym_for_renaming): Likewise. - * tree-nrv.c (dest_safe_for_nrv_p): Likewise. - * tree-ssa-alias.c (mark_aliases_call_clobbered): Likewise. - (set_initial_properties): Likewise. - (setup_pointers_and_addressables): Likewise. - (new_type_alias): Likewise. - (create_overlap_variables_for): Likewise. - * tree-dfa.c (dump_subvars_for): Likewise. - * tree-ssa-operands.c (add_vars_for_offset): Likewise. - (get_expr_operands): Likewise. - (add_to_addressable_set): Likewise. - * tree-ssa-structalias.c (set_uids_in_ptset): Likewise. - -2007-10-28 Uros Bizjak - - PR tree-optimization/33920 - * tree-if-conv.c (tree_if_conversion): Force predicate of single - successor bb to true when predecessor bb has NULL predicate. - (find_phi_replacement_condition): Assert that tmp_cond is non-null. - -2007-10-28 Richard Sandiford - - * config/mips/mips.md: Add combiner patterns for DImode extensions - of HImode and QImode truncations. Reformat HImode <- QImode pattern - for consistency. - -2007-10-28 Richard Sandiford - - PR target/33895 - * config/mips/mips.c (mips_output_dwarf_dtprel): Add ATTRIBUTE_UNUSED. - -2007-10-28 Andreas Krebbel - - * dce.c (delete_unmarked_insns): Just delete the RETVAL and - LIBCALL notes if they are about to be moved to the same insn. - -2007-10-27 Richard Guenther - - PR tree-optimization/33870 - * tree-ssa-operands.c (add_vars_for_offset): Reduce code - duplication. Remove redundant call to access_can_touch_variable. - (add_vars_for_bitmap): New helper for recursing over MPT contents. - (add_virtual_operand): Use it. - -2007-10-26 John David Anglin - - PR fortran/31608 - * pa.h (ASM_PN_FORMAT): Delete define. - -2007-10-26 Janis Johnson - - * doc/invoke.texi (Option Summary, optimizations): Remove - -fbounds-check. Add -fassociative-math, -freciprocal-math, - -ftree-vrp and -funit-at-a-time. Change -fno-split-wide-types to - -fsplit-wide-types to match later entry. Break up a long line. - (Option Summary, code gen options) Add -fno-stack-limit. Add - missing @gol to the end of a line. - (Optimization Options): Remove -fbounds-check, which is also - documented under Code Generation Options. Remove =n from - index entry for -ftree-parallelize-loops. Change -fno-cprop-registers - to -fcprop-registers to match other options, and say when it is - enabled rather than disabled. Remove extra index entry for - -fno-cx-limited-range. Add index entries for -fstack-protector - and -fstack-protector-all. - (Code Gen Options): Add index entry for -ftls-model. - -2007-10-26 Anatoly Sokolov - - * config/avr/avr.c (avr_OS_task_function_p): Add new function. - (avr_regs_to_save): Handle functions with 'OS_task' attribute. - (avr_simple_epilogue, expand_prologue, avr_asm_function_end_prologue, - expand_epilogue, output_movhi): Don't handle 'main' function. - (avr_attribute_table): Add 'OS_task' function attribute. - * config/avr/avr.h (machine_function): Remove 'is_main' field, add - 'is_OS_task' field. - * config/avr/avr.md (return_from_main_epilogue): Remove insn. - (return_from_epilogue, return_from_interrupt_epilogue): Don't handle - 'main' function. - * config/avr/avr.opt (minit-stack): Remove. - -2007-10-26 Eric Botcazou - - * tree-nested.c (get_trampoline_type): Fix thinko. - -2007-10-26 Douglas Gregor - - PR c++/33601 - * tree.c (build_offset_type): Build canonical type based on the - TYPE_MAIN_VARIANT of the base type. - -2007-10-26 Daniel Jacobowitz - - * reorg.c (emit_delay_sequence): Move insn locator from the - first insn to the sequence. - -2007-10-26 Samuel Tardieu - - * ipa-pure-const.c (check_decl): Return immediately when - pure_const_state has been set to IPA_NEITHER. - -2007-10-25 Ira Rosen - - PR tree-optimization/33833 - * tree-vect-analyze.c (vect_analyze_data_refs): Use POINTER_PLUS_EXPR - and convert init to sizetype in inner_base construction. - -2007-10-25 Richard Guenther - - * tree-flow.h (mem_sym_stats): Remove. - (dump_mem_sym_stats_for_var): Declare. - * tree-dfa.c (dump_variable): Call dump_mem_sym_stats_for_var. - (mem_sym_stats): Move ... - * tree-ssa-alias.c (mem_sym_stats): ... here and make it static. - (mem_sym_score): Rename from ... - (pscore): ... this. Remove. - (dump_mem_sym_stats_for_var): New function. Dump the score, but - not the frequencies. - (compare_mp_info_entries): Make sort stable by disambiguating - on DECL_UID. - -2007-10-25 Ira Rosen - - PR tree-optimization/33866 - * tree-vect-transform.c (vectorizable_store): Check operands of all - the stmts in the group of strided accesses. Get def stmt type for each - store in the group and pass it to vect_get_vec_def_for_stmt_copy (). - -2007-10-25 Uros Bizjak - - * config/i386/constraints.md (Y0): Rename register constraint to Yz. - (Yt): Rename register constraint to Y2. - * config/i386/sse.md: Use renamed register constraints. - * config/i386/mmx.md: Ditto. - * config/i386/i386.md: Ditto. - -2007-10-25 Rask Ingemann Lambertsen - - * config/i386/i386.md (*dummy_extendsfdf2): Fix operand 1 constraint. - -2007-10-24 Chao-ying Fu - - * dwarf2out.c (base_type_die): Use DW_ATE_unsigned_fixed or - DW_ATE_signed_fixed to describe FIXED_POINT_TYPE. - -2007-10-24 Samuel Tardieu - Olga Golovanevsky - - * ipa-struct-reorg.c (replace_field_acc): Make it clear to - the compiler that wr.wrap and wr.domain are initialized in - any case. - -2007-10-24 Samuel Tardieu - - * ipa-struct-reorg.c (sum_counts): Use HOST_WIDEST_PRINT_DEC - to print gcov_type values. - -2007-10-24 Eric B. Weddington - - * config/avr/avr.h: Do not include progmem_section definition when - building with IN_TARGET_LIBS. - -2007-10-24 Richard Sandiford - - PR target/33755 - * config/mips/mips.c (mips_lo_sum_offset): New structure. - (mips_hash_base, mips_lo_sum_offset_hash, mips_lo_sum_offset_eq) - (mips_lo_sum_offset_lookup, mips_record_lo_sum) - (mips_orphaned_high_part_p: New functions. - (mips_avoid_hazard): Don't check INSN_P here. - (mips_avoid_hazards): Rename to... - (mips_reorg_process_insns): ...this. Cope with - !TARGET_EXPLICIT_RELOCS. Delete orphaned high-part relocations, - or turn them into nops. - (mips_reorg): Remove TARGET_EXPLICIT_RELOCS check from calls to - dbr_schedule and mips_avoid_hazards/mips_reorg_process_insns. - (mips_set_mips16_mode): Don't set flag_delayed_branch here. - (mips_override_options): Set flag_delayed_branch to 0. - -2007-10-24 Richard Sandiford - - * config/mips/mips.h (MOVE_MAX): Use UNITS_PER_WORD and describe - MIPS-specific implementation details. - (MIPS_MAX_MOVE_BYTES_PER_LOOP_ITER): New macro. - (MIPS_MAX_MOVE_BYTES_STRAIGHT): Likewise. - (MOVE_RATIO): Define to MIPS_MAX_MOVE_BYTES_STRAIGHT / UNITS_PER_WORD - for targets with movmemsi. - (MOVE_BY_PIECES_P): Define. - * config/mips/mips.c (MAX_MOVE_REGS, MAX_MOVE_BYTES): Delete. - (mips_block_move_loop): Add a bytes_per_iter argument. - (mips_expand_block_move): Use MIPS_MAX_MOVE_BYTES_STRAIGHT. - Update call to mips_block_move_loop. - -2007-10-24 Michael Matz - - PR debug/33868 - * var-tracking.c (variable_union): Don't break after one loop - iteration but only when a difference is found. - (dump_variable): Also print DECL_UID. - -2007-10-24 Olga Golovanevsky - - * ipa-type-escape.h: Expose function - is_array_access_through_pointer_and_index. - * ipa-type-escape.c - (is_array_access_through_pointer_and_index): - Add three new parameters. Add support of - POINTER_PLUS_EXPR tree code. - -2007-10-24 Olga Golovanevsky - - * ipa-struct-reorg.c, ipa-struct-reorg.h: New files. - * tree-pass.h: Add pass_ipa_struct_reorg. - * common.opt: Add ipa-struct-reorg flag. - * Makefile.in: Add ipa-strcut-reorg.o compilation. - * passes.c: Add pass pass_ipa_struct_reorg. - * params.h: Add STRUCT_REORG_COLD_STRUCT_RATIO. - * params.def: Add PARAM_STRUCT_REORG_COLD_STRUCT_RATIO. - -2007-10-24 Ira Rosen - - PR tree-optimization/33804 - * tree-vect-transform.c (vectorizable_operation): Remove the - checks that the vectorization is worthwhile from the transformation - phase. - -2007-10-24 Ira Rosen - - * tree-vect-analyze.c (vect_build_slp_tree): Return false if - vectype cannot be determined for the scalar type. - (vect_analyze_slp_instance): Likewise. - * tree-vect-transform.c (vect_model_reduction_cost): Change the - return type to bool. Return false if vectype cannot be determined - for the scalar type. - (vect_get_constant_vectors): Return false if vectype cannot be - determined for the scalar type. - (get_initial_def_for_induction, vect_get_vec_def_for_operand, - get_initial_def_for_reduction, vect_create_epilog_for_reduction, - vectorizable_reduction): Likewise. - -2007-10-23 Craig Rodrigues - - * config.gcc: For a FreeBSD target, parse the value of ${target} - to determine the value of FBSD_MAJOR, instead of adding an - explicit check for every possible FreeBSD major version. - -2007-10-23 Uros Bizjak - - PR rtl-optimization/33846 - * combine.c (simplify_shift_const_1) [NOT]: Skip vector modes. - -2007-10-23 Dorit Nuzman - - PR tree-optimization/33860 - * tree-vect-transform.c (vect_analyze_data_ref_access): Don't allow - interleaved accesses in case the dr is inside the inner-loop during - outer-loop vectorization. - -2007-10-23 Eric Botcazou - - * doc/rtl.texi (Flags): Fix MEM_SCALAR_P entry. - Document MEM_POINTER. Replace mentions of "integrated" - field with "return_val". Delete outdated stuff. - -2007-10-23 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Set - rs6000_altivec_abi on AIX. - (conditional_register_usage): Set VR20:31 fixed on AIX. - -2007-10-23 Richard Guenther - - * alias.c (get_alias_set): For INDIRECT_REFs, deal with - SSA_NAME pointers. - -2007-10-22 Seongbae Park - David S. Miller - - * df-scan.c (df_get_call_refs): Mark global registers as both a - DF_REF_REG_USE and a non-clobber DF_REF_REG_DEF. - -2007-10-22 Dorit Nuzman - - PR tree-optimization/33834 - PR tree-optimization/33835 - * tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE - stmts need to be checked for success seperately. - * tree-vect-transform.c (vectorizable_call, vectorizable_conversion): - Remove the check that stmt is not LIVE. - (vectorizable_assignment, vectorizable_induction): Likewise. - (vectorizable_operation, vectorizable_type_demotion): Likewise. - (vectorizable_type_promotion, vectorizable_load, vectorizable_store): - Likewise. - (vectorizable_live_operation): Check that op is not NULL. - -2007-10-22 Janis Johnson - - * doc/invoke.texi (Optimization Options): In the summary, show - that the value for options -falign-jumps, -falign-labels, - -falign-loops, -falign-functions, -fsched-stalled-insns, and - -fsched-stalled-insns-dep is optional. In the summary, show that - -fsched-stalled-insns takes an optional argument and that - -fparallelize-loops takes an argument. Add opindex for several - optimization options, and fix typos in the opindex commands for - several others. In the descriptions for -fsched-stalled-insns - and -fsched-stalled-insns-dep, show the options with and without - values. - -2007-10-22 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Remove ATmega603 which was never - produced. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-10-22 Eric Botcazou - - PR rtl-optimization/33644 - * cfgcleanup.c: Do not include dce.h. - * cfgrtl.c (delete_insn_chain_and_edges): Resurrect. - * combine.c (distribute_notes): Delete REG_LIBCALL_ID case. - * dce.c (something_changed): Delete. - (libcall_dead_p): New predicate. - (delete_unmarked_insns): Use it to delete dead libcalls. - Deal with REG_LIBCALL and REG_RETVAL notes. - (prescan_libcall_for_dce): New function. - (prescan_insns_for_dce): Use it to deal with libcalls. - (mark_reg_dependencies): Do nothing special for libcalls. - (dce_process_block): Likewise. - (fast_dce): Delete unused local variable. - (run_fast_dce): Do not return a value. - * dce.h (struct df): Delete. - (run_fast_dce): Adjust prototype. - * optabs.c (libcall_id): Delete. - (maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes. - (emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes. - * reload1.c (reload): Delete REG_LIBCALL_ID case. - * rtl.h (delete_insn_chain_and_edges): Resurrect prototype. - * see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL - notes instead of REG_LIBCALL_ID notes. - * reg-notes.def (LIBCALL_ID): Delete. - * Makefile.in (see.o): Add dce.h dependency. - (cfgcleanup.o): Remove dce.h dependency. - -2007-10-22 Michael Matz - - PR tree-optimization/33855 - * tree-ssa-phiopt.c (cond_store_replacement): Handle COMPLEX_TYPE - and VECTOR_TYPE. - -2007-10-22 Ira Rosen - - PR tree-optimization/33854 - * tree-vect-analyze.c (vect_determine_vectorization_factor): Add - FLOAT_EXPR to the list of promotion operations. - -2007-10-22 Rask Ingemann Lambertsen - - PR target/29473 - PR target/29493 - * config/i386/i386.c (output_pic_addr_const): Support Intel asm syntax. - (print_reg): Print register prefix only with AT&T asm syntax. - Support pc_rtx for RIP register. - (print_operand_address): Use print_reg()'s pc_rtx support for RIP - relative addressing. Always print segment register prefix with AT&T - asm syntax and never with Intel asm syntax. - (print_operand): Suppress 'XXX PTR' prefix for BLKmode operands. - Fix prefix for 16-byte XFmode operands. - (output_addr_const_extra): Support Intel asm syntax. - (x86_file_start): Don't use register prefix with Intel asm syntax. - * config/i386/i386.md ("*zero_extendqihi2_movzbl"): Fix typo. - ("return_internal_long"): Fix Intel asm syntax output. - ("set_got_rex64"): Support Intel asm syntax. - ("set_rip_rex64"): Likewise. - ("set_got_offset_rex64"): Likewise. - ("*sibcall_1_rex64_v"): Print register prefix only with AT&T asm - syntax. - ("*tls_global_dynamic_64"): Likewise. - ("*tls_local_dynamic_base_64"): Likewise. - ("*load_tp_si")("*load_tp_di"): Likewise. - ("*add_tp_si")("*add_tp_di"): Likewise. - ("*tls_dynamic_lea_64"): Likewise. - ("*sibcall_value_1_rex64_v"): Likewise. - ("stack_tls_protect_set_si"): Likewise. - ("stack_tls_protect_set_di"): Likewise. - ("stack_tls_protect_test_si"): Likewise. - ("stack_tls_protect_test_di"): Likewise. - * config/i386/mmx.md ("*mov_internal_rex64"): Fix Intel asm - syntax output. - ("*movv2sf_internal_rex64"): Likewise. - * config/i386/cpuid.h (__cpuid): Support Intel asm syntax. - (__get_cpuid_max): Likewise. - -2007-10-21 Richard Sandiford - - * config/mips/mips-protos.h (mips_regno_mode_ok_for_base_p): Give - the STRICT_P argument type "bool" rather than "int". - (mips_legitimate_address_p): Likewise. - (fp_register_operand, lo_operand): Delete. - (mips_subword): Give the HIGH_P argument type "bool" rather than "int". - (mips_emit_scc): Rename to... - (mips_expand_scc): ...this. - (gen_conditional_branch): Rename to... - (mips_expand_conditional_branch): ...this. - (gen_conditional_move): Rename to... - (mips_expand_conditional_move): ...this. - (mips_gen_conditional_trap): Rename to... - (mips_expand_conditional_trap): ...this and take an rtx code instead - of an operands array. - (mips_expand_call): Give the SIBCALL_P argument type "bool" - rather than "int". - (mips_emit_fcc_reload): Rename to... - (mips_expand_fcc_reload): ...this. - (init_cumulative_args): Rename to... - (mips_init_cumulative_args): ...this and remove the libname argument. - (function_arg_advance): Rename to... - (mips_function_arg_advance): ...this. - (function_arg): Rename to... - (mips_function_arg): ...this and use "rtx" instead of - "struct rtx_def *". - (function_arg_boundary): Rename to... - (mips_function_arg_boundary): ...this. - (mips_expand_unaligned_load): Rename to... - (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH - and BITPOS arguments type "HOST_WIDE_INT". - (mips_expand_unaligned_store): Rename to... - (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH - and BITPOS arguments type "HOST_WIDE_INT". - (override_options): Rename to... - (mips_override_options): ...this. - (print_operand): Rename to... - (mips_print_operand): ...this. - (print_operand_address): Rename to... - (mips_print_operand_address): ...this. - (mips_output_ascii): Remove the PREFIX argument. - (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" - rather than "int". - (mips_can_use_return_insn): Return a "bool" rather than an "int". - (mips_function_value): Remove the FUNC argument. Use "rtx" instead - of "struct rtx_def *". - (mips_secondary_reload_class): Give the IN_P argument type "bool" - rather than "int". - (build_mips16_call_stub): Delete. - (mips_store_data_bypass_p): Return a "bool" rather than an "int". - (mips_use_ins_ext_p): Give the second and third arguments type - "HOST_WIDE_INT" rather than "rtx". - * config/mips/mips.h: Update after the above changes. Tweak comments - and formatting. - (SECONDARY_INPUT_RELOAD_CLASS): Pass a boolean IN_P argument. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. - (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the - element type from "char" to "bool". - (mips_section_threshold, sym_lineno, set_noat, mips_branch_likely) - (mips_cpu_info_table): Delete. - * config/mips/mips.md: Update after the above changes. Tweak some - formatting. - * config/mips/mips-ps-3d.md: Likewise. - * config/mips/mips.c: Tweak comments and formatting. - Use NULL-like macros rather than 0 in various places. - (mips_section_threshold): Rename to... - (mips_small_data_threshold): ...this and give it an unsigned type. - (num_source_filenames): Remove explicit initialization. - (sdb_label_count): Likewise. - (sym_lineno): Delete. - (set_noat): Make static. - (mips_branch_likely): Likewise, and give it type "bool". - (mips_isa_info): Rename to... - (mips_isa_option_info): ...this. - (mips_flag_delayed_branch): Rename to... - (mips_base_delayed_branch): ...this. - (mips_split_addresses): Delete. - (mips_print_operand_punct, mips_hard_regno_mode_ok): Change the - element type from "char" to "bool". - (mips_regno_to_class): Add an explicit array size. - (mips16_flipper): Change from type "int" to type "bool". - (mips_comp_type_attributes): Remove redundant FUNCTION_TYPE check. - (mips_tls_operand_p): Rename to... - (mips_tls_symbol_p): ...this. - (mips_global_symbol_p): Remove redundant "const". - (mips_offset_within_alignment_p): Simplify. - (mips_regno_mode_ok_for_base_p): Change the name of the last argument - to STRICT_P and give it type bool. - (mips_valid_base_register_p): Likewise. - (mips_classify_address): Likewise. - (mips_legitimate_address_p): Likewise. - (mips16_unextended_reference_p): Take the offset as an - "unsigned HOST_WIDE_INT" rather than an "rtx". Simplify. - (mips_const_insns): Use IN_RANGE. - (mips_force_temporary): Remove an unnecessary copy_rtx. - (mips16_gp_pseudo_reg): Simplify. - (mips_split_symbol): Remove an unnecessary copy_rtx. - (mips_legitimize_tls_address): Only create registers if we need them. - (mips_legitimize_address): Use mips_split_plus. - (mips_move_integer): Swap DEST and TEMP arguments. Rename local - variable COST to NUM_OPS. - (mips_legitimize_move): Use gen_lowpart. - (mips_rewrite_small_data): Rename the OP parameter to PATTERN. - (m16_check_op): Use IN_RANGE. - (mips_subword): Give the HIGH_P argument type "bool" rather than "int". - (mips_split_doubleword_move): Pass booleans to mips_subword. - (mips_output_move): Store the mode in a local variable. - Explicitly assert that this function does not deal with - MFLO and MFHI. Use SMALL_OPERAND_UNSIGNED. Make order of - cases more consistent. - (mips_relational_operand_ok_p): Rename to... - (mips_int_order_operand_ok_p): ...this. - (mips_canonicalize_comparison): Rename to... - (mips_canonicalize_int_order_test): ...this. - (mips_emit_int_relational): Rename to... - (mips_emit_int_order_test): ...this. Store the mode in a local - variable. - (mips_reverse_fp_cond_p): Rename to... - (mips_reversed_fp_cond): ...this. - (mips_emit_compare): Make the order of the statements more consistent. - (mips_emit_scc): Rename to... - (mips_expand_scc): ...this. - (gen_conditional_branch): Rename to... - (mips_expand_conditional_branch): ...this. - (gen_conditional_move): Rename to... - (mips_expand_conditional_move): ...this. Build the condition - separately from the main pattern. - (mips_gen_conditional_trap): Rename to... - (mips_expand_conditional_trap): ...this and take an rtx code instead - of an operands array. Simplify. - (init_cumulative_args): Rename to... - (mips_init_cumulative_args): ...this. Use memset rather than a - copy from a zeroed static. Use prototype_p and stdarg_p. - (mips_arg_info): Rename to... - (mips_get_arg_info): ...this and put the INFO argument first. - (function_arg): Rename to... - (mips_function_arg): ...this and use "rtx" instead of - "struct rtx_def *". Only split structures into chunks if - TARGET_HARD_FLOAT, rather than checking !TARGET_SOFT_FLOAT on - a chunk-by-chunk basis. Use SCALAR_FLOAT_TYPE_P instead of a - comparison with REAL_TYPE. Rename local variable REG to REGNO - and make it unsigned. - (function_arg_advance): Rename to... - (mips_function_arg_advance): ...this. - (function_arg_boundary): Rename to... - (mips_function_arg_boundary): ...this. - (mips_pad_arg_upward): Use SCALAR_INT_MODE_P instead of a comparison - with MODE_INT. - (mips_fpr_return_fields): Use SCALAR_FLOAT_TYPE_P instead of a - comparison with REAL_TYPE. - (mips_function_value): Remove the FUNC argument. Rename local - variable UNSIGNEDP to UNSIGNED_P. - (mips_return_in_memory): Use IN_RANGE. - (mips_setup_incoming_varargs): Pass a boolean rather than an int - to FUNCTION_ARG_ADVANCE. - (mips_gimplify_va_arg_expr): Rename local variable INDIRECT - to INDIRECT_P. Remove a redundant mips_abi check. Only calculate - SIZE and RSIZE if needed. - (mips16_stub): Rename FPRET to FP_RET_P and give it type "bool" - rather than "int". - (build_mips16_function_stub): Rename to... - (mips16_build_function_stub): ...this. - (build_mips16_call_stub): Rename to... - (mips16_build_call_stub): ...this. Make static, and return a - "bool" rather than an "int". Rename the ARG_SIZE argument to - ARGS_SIZE. Rename the local variable FPRET to FP_RET_P and give - it type "bool". Use "jr" rather than "j". Use XNEW. Simplify. - (mips_load_call_address): Give the SIBCALL_P argument type "bool" - rather than "int". - (mips_expand_call): Likewise. Assert that MIPS16 calls via stubs - are not sibling ones. - (mips_emit_fcc_reload): Rename to... - (mips_expand_fcc_reload): ...this. - (mips_get_unaligned_mem): Give the WIDTH and BITPOS arguments type - "HOST_WIDE_INT". - (mips_expand_unaligned_load): Rename to... - (mips_expand_ext_as_unaligned_load): ...this and give the WIDTH - and BITPOS arguments type "HOST_WIDE_INT". Remove redundant - SUBREG_BYTE check. - (mips_expand_unaligned_store): Rename to... - (mips_expand_ins_as_unaligned_store): ...this and give the WIDTH - and BITPOS arguments type "HOST_WIDE_INT". - (mips_use_ins_ext_p): Rename second and third arguments to WIDTH - and BITPOS and give them type "HOST_WIDE_INT" rather than "rtx". - Use IN_RANGE. - (mips_init_split_addresses): Replace with... - (mips_split_addresses_p): ...this new function. - (mips_init_relocs): Check mips_split_addresses_p () rather than - mips_split_addresses. Always initialize mips_split_p with booleans. - (print_operand_reloc): Rename to... - (mips_print_operand_reloc): ...this. Use a gcc_assert rather than - a fatal_error. - (print_operand): Rename to... - (mips_print_operand): ...this. - (print_operand_address): Rename to... - (mips_print_operand_address): ...this. Use GP_REG_FIRST. - (mips_in_small_data_p): Simplify. - (mips_output_ascii): Remove the PREFIX argument and "register" - keywords. Use the STRING parameter directly and cast to - "unsigned char". - (mips16e_collect_argument_save_p): Use IN_RANGE. - (mips_function_has_gp_insn): Simplify. - (mips_set_return_address): Use BITSET_P. - (mips_restore_gp): Use a separate statement to pick the base - register. - (mips_output_function_prologue): Use a local FRAME variable. - (mips_save_reg): Pass booleans to mips_subword. - (mips_expand_prologue): Use a local FRAME variable. Use - cprestore_size to detect when .cprestore is needed. - (mips_restore_reg): Use GP_REG_FIRST. - (mips_expand_epilogue): Give the SIBCALL_P argument type "bool" - rather than "int". Use local FRAME and REGNO variables. - (mips_can_use_return_insn): Return a "bool" rather than an "int". - (mips_secondary_reload_class): Give the IN_P argument type "bool" - rather than "int". - (mips_linked_madd_p): Rename arguments to OUT_INSN and IN_INSN. - (mips_store_data_bypass_p): Return a "bool" rather than an "int". - (vr4130_swap_insns_p): Rename local variables to DEP1_P and DEP2_P. - (mips_74k_agen_init): Assume INSN satisfies USEFUL_INSN_P. - (mips_variable_issue): Do nothing unless INSN satisfies USEFUL_INSN_P. - (builtin_description): Rename to... - (mips_builtin_description): ...this. - (mips_bdesc): Rename to... - (mips_ps_bdesc): ...this. - (sb1_bdesc): Rename to... - (mips_sb1_bdesc): ...this. - (dsp_bdesc): Rename to... - (mips_dsp_bdesc): ...this. - (dsp_32only_bdesc): Rename to... - (mips_dsp_32only_bdesc): ...this. - (bdesc_map): Rename to... - (mips_bdesc_map): ...this. - (bdesc_arrays): Rename to... - (mips_bdesc_arrays): ...this. - (mips_prepare_builtin_arg): Rename OP to OPNO and ARGNUM to ARGNO. - Tweak error message. - (mips_expand_builtin_direct): Rename HAS_TARGET to HAS_TARGET_P. - Rename local variables I and J to OPNO and ARGNO respectively. - Assert that the number of arguments is no more than the number of - input operands. - (mips_expand_builtin_compare): Use an array of arguments rather - than an array of operands. Assert that the number of operands is - as expected. - (add_constant): Rename to... - (mips16_add_constant): ...this. Use XNEW. - (dump_constants_1): Rename to... - (mips16_emit_constants_1): ...this. Use ALL_SCALAR_FIXED_POINT_MODE_P. - (dump_constants): Rename to... - (mips16_emit_constants): ...this. - (mips_sim_wait_reg, mips_sim_record_set): Use END_REGNO. - (mips_set_mips16_mode): Don't call mips_init_split_addresses. - Assign mips16_p to was_mips16_p. - (mips_parse_cpu): Tweak warning message. - (override_options): Rename to... - (mips_override_options): ...this. Move the mips_cost initialization - out of the "shared with GAS" block. Quote option names in error - messages. - (mips_conditional_register_usage): Make local variable REGNO unsigned. - (mips_order_regs_for_local_alloc): Remove register keyword. - -2007-10-21 Richard Sandiford - - * system.h (IN_RANGE): Cast each argument individually. - -2007-10-21 Richard Sandiford - - * config/mips/mips.c (mips_set_mips16_mode) Say sorry for hard-float - MIPS16 code unless using o32 or o64. - -2007-10-21 Richard Sandiford - - * config/mips/mips.c (mips_cannot_change_mode_class): Don't check - for modes smaller than 4 bytes. - * config/mips/mips.md (*movhi_internal, *movqi_internal): Remove - FPR alternatives. - -2007-10-21 Richard Sandiford - - * config/mips/mips-protos.h (mips_output_aligned_bss): Delete. - * config/mips/linux.h (BSS_SECTION_ASM_OP): Delete. - (ASM_OUTPUT_ALIGNED_BSS): Delete. - * config/mips/mips.c (mips_output_aligned_bss): Delete. - -2007-10-21 Richard Sandiford - - * config/mips/mips.c (mips_function_ok_for_sibcall): Only forbid - sibling calls to "mips16" functions if the function satisfies - const_call_insn_operand. - -2007-10-21 Richard Sandiford - - * config/mips/mips.c (mips_va_start): Fix types in calls - to build_int_cst. - -2007-10-21 Richard Sandiford - - * config/mips/mips.c (mips_rtx_costs): Only recognize reciprocals - if ISA_HAS_FP4. - -2007-10-21 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_LDC1_SDC1): New macro. - * config/mips/mips.c (mips_split_64bit_move_p): Use ISA_HAS_LDC1_SDC1 - instead of checking mips_isa. - -2007-10-21 Richard Sandiford - - * doc/invoke.texi (-mpaired-single): Don't say that the option - requires 64-bit code. - * config/mips/mips-protos.h (mips_modes_tieable_p): Declare. - * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): New macro. - (ISA_HAS_NMADD_NMSUB): Add a mode argument. Return true for - V2SF if ISA_MIPS32R2. - (MODES_TIEABLE_P): Use mips_modes_tieable_p. - * config/mips/mips.c (mips_rtx_costs): Pass a mode argument - to ISA_HAS_NMADD_NMSUB. - (mips_split_doubleword_move): Handle V2SF. - (mips_modes_tieable_p): New function. - (override_options): Report a warning rather than an error when - -mpaired-single is used on ISAs that don't support it; use - ISA_HAS_PAIRED_SINGLE to check that case. - * config/mips/mips.md (MOVE64): New mode iterator. Replace DI - and DF move splitters with a single MOVE64 splitter, thereby adding - a V2SF splitter too. - (SPLITF): Add TARGET_DOUBLE_FLOAT conditions to DI and DF. - Add a TARGET_FLOAT64 condition to TF. Add V2SF to the iterator. - (HALFMODE): Add V2SF. - (*nmadd, *nmadd_fastmath, *nmsub) - (*nmsub_fastmath): Add a mode argument to ISA_HAS_NMADD_NMSUB. - (movv2sf_hardfloat_64bit): Tweak ordering of conditions. - (movv2sf_hardfloat_32bit): New pattern. - (load_low, load_high, store_word): Remove - TARGET_DOUBLE_FLOAT conditions. - -2007-10-20 Jakub Jelinek - - * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Point - saved CR2 offset to low 32 bits of regs->ccr rather than the whole - 64-bit register in 64-bit libgcc. - -2007-10-20 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add at90pwm2b, at90pwm3b. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-10-20 Manuel Lopez-Ibanez - - * doc/invoke.texi (Warning Options): Move -w, -Werror, -Werror= - and -Wfatal-errors together. - -2007-10-20 Alan Modra - - PR target/33812 - * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16 - change for vrsave, ie restore after frame pop. - -2007-10-19 David S. Miller - - * config/sparc/niagara2.md: Fix copyright notice. - -2007-10-19 Sebastian Pop - - PR tree-optimization/23820 - PR tree-optimization/24309 - PR tree-optimization/33766 - * testsuite/gcc.dg/tree-ssa/pr23820.c: New. - * testsuite/gcc.dg/tree-ssa/pr24309.c: New. - * testsuite/gcc.dg/tree-ssa/pr33766.c: New. - * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed. - * tree-loop-linear.c (perfect_loop_nest_depth): New. - (linear_transform_loops): Use perfect_loop_nest_depth. - * lambda-code.c (perfect_nest_p): Outer loops in perfect nests - should have a single condition: their exit. - -2007-10-19 Richard Guenther - - PR middle-end/33816 - PR middle-end/32921 - * stor-layout.c (layout_type): Assert that aggregates do not - have their alias sets set. - * alias.c (get_alias_set): Return alias set zero for incomplete - types, return the alias set of the element for incomplete array - types, but do not remember these. - -2007-10-19 Richard Guenther - - Revert - 2007-10-19 Richard Guenther - - PR middle-end/32921 - * tree.c (build_array_type): Do not re-layout unbound array - types. - -2007-10-19 Richard Guenther - - PR middle-end/32921 - * tree.c (build_array_type): Do not re-layout unbound array types. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips_canonicalize_comparison): Check - mips_relational_operand_ok_p before trying to rewrite the test. - Only calculate PLUS_ONE if needed. - (mips_emit_int_relational): Don't call mips_relational_operand_ok_p - here. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR - calculation. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that - the call uses the incoming value of $2. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem - rather then gen_rtx_MEM. - (mips_setup_incoming_varargs): Use gen_frame_mem rather than - gen_rtx_MEM. - (mips_set_return_address): Likewise. - (mips_restore_gp): Likewise. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (gpr_mode): Delete. - (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD - instead of gpr_mode. - (mips_for_each_saved_reg): Likewise. - (mips_expand_prologue, mips_expand_epilogue): Likewise. - (override_options): Don't initialize gpr_mode. - * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD - case last. - (mips_class_max_nregs): Calculate the smallest consituent register - size and use that to determine an upper bound on the number of - registers. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips16_copy_fpr_return_value): New function, - split out from... - (mips_expand_epilogue): ...here. - (mips_mdebug_abi_name): New function, split out from... - (mips_file_start): ...here. - (mips_hard_regno_mode_ok_p): New function, split out from... - (override_options): ...here. - (mips_expand_builtin_1): New function, split out from... - (mips_expand_buitin): ...here. Abort if we don't recognize - the function. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (build_mips16_function_stub): Load the - target address into $1 before transfering the arguments. - Don't use ".set noreorder". - (build_mips16_call_stub): Likewise. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips_output_32bit_xfer): New function. - (mips_output_64bit_xfer): Likewise. - (mips16_fp_args): Rename to... - (mips_output_args_xfer): ...this and replace the FROM_FP_P argument - with a DIRECTION argument. Use mips_output_32bit_xfer and - mips_output_64bit_xfer. - (build_mips16_function_stub): Update accordingly. - (mips16_fpret_double): Delete. - (build_mips16_call_stub): Update after above changes. - Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead - of mips16_fpret_double. Use GP_REG_RETURN. - -2007-10-19 Richard Sandiford - - * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and - use asm_out_file instead. - (build_mips16_function_stub): Likewise. - (build_mips16_call_stub, mips_output_function_prologue): Update - accordingly. - -2007-10-18 David S. Miller - - Add Niagara-2 support. - * doc/invoke.texi: Document -m{cpu,tune}=niagara2. - * config.gcc: Add niagara2 to cpu and tune lists for sparc. - * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2. - (include): Add inclusion of niagara2.md - * config/sparc/sparc.c (niagara2_costs): New. - (sparc_override_options): Add niagara2 entry to cpu_default[] - and cpu_table[]. Set align_functions to 32 on Niagara2. Use - niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for - PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE. - (sparc_initialize_trampoline): Handle niagara2 like niagara. - (sparc64_initialize_trampoline): Likewise. - (sparc_use_sched_lookahead): Likewise. - (sparc_issue_rate): Likewise. - * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and - mcpu=niagara2 - * config/sparc/sparc.h (TARGET_CPU_niagara2): Define. - ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for - TARGET_CPU_niagara2. - (PROCESSOR_NIAGARA2): New. - (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2. - (BRANCH_COST): Likewise. - * config/sparc/linux64.h: Handle TARGET_CPU_niagara2. - * config/sparc/sol2.h: Likewise. - * config/sparc/niagara2.md: New file. - -2007-10-18 Richard Sandiford - - * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and - and fp_reg_size. - (mips_compute_frame_info): Remove associated code. - (mips16e_build_save_restore): Check num_fp instead of fp_reg_size. - -2007-10-18 Richard Sandiford - - * config/mips/mips-protos.h (compute_frame_size): Delete. - * config/mips/mips.h: Update comments. - * config/mips/mips.c (mips_frame_info): Remove initialized. - (compute_frame_size): Rename to... - (mips_compute_frame_info): ...this and make static. Remove the - SIZE argument and return no value. Remove the setting of initialized. - Update rest of file accordingly. - (mips_set_return_address): Don't call compute_frame_size. - (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31). - Don't call compute_frame_size. - -2007-10-18 Richard Sandiford - - * config/mips/mips-protos.h (mips_frame_pointer_required): Declare. - * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use - mips_hard_frame_pointer_required. - (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for - large MIPS16 frames. - * config/mips/mips.c (mips_frame_pointer_required): New function. - -2007-10-18 Richard Sandiford - - * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset - and hard_frame_pointer_offset. - (mips_debugger_offset): Use hard_frame_pointer_offset. - (mips16e_collect_argument_save_p): Likewise. - (compute_frame_size): Initialize arg_pointer_offset and - hard_frame_pointer_offset. - (mips_initial_elimination_offset): Use them. - (mips_output_function_prologue): Use hard_frame_pointer_offset. - (mips_expand_prologue, mips_expand_epilogue): Likewise. - -2007-10-18 Richard Sandiford - - * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl - profiling code. - * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type - "unsigned int" rather than "int" and put them with the other - register-related fields. Put expanded comments above fields - rather than to their right. - (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument - with a NUM_REGS_PTR argument. - (mips16e_save_restore_pattern_p): Update accordingly. - (compute_frame_size): Clarify frame diagram. Rewrite. - -2007-10-18 Richard Sandiford - - * config/mips/mips-ftypes.def: New file. - * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2) - (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros. - (mips_function_type): Redefine using mips-ftypes.def. - (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names. - (mips_builtin_vector_type): New function. - (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI) - (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF) - (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1) - (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New - macros. - (mips_build_function_type): New function. - (mips_init_builtins): Use it to create types lazily. - -2007-10-18 Richard Sandiford - - * config/mips/mips.h (set_volatile): Delete. - * config/mips/mips.c (set_volatile): Delete. - (mips_print_operand_punctuation): New function, split out from - print_operand. Remove '%{', '%}', '%~', '%&' and '%!'. - Use the same character ordering in the code and the comments. - Use a recursive call to handle '*'. Abort on unknown characters. - (mips_init_print_operand_punct): New function, split out from - override_options. - (mips_print_int_branch_condition): New function, split out from - print_operand. Use GET_RTX_NAME. Use output_operand_lossage - to report unexpected codes. - (mips_print_float_branch_condition): New function, split out from - print_operand. Use output_operand_lossage to report unexpected codes. - (print_operand): Rework to use a case statement. Use the - same letter ordering in the code and the comments. Use - output_operand_lossage to report unexpected codes and - reverse_condition to handle inverted branch conditions. - (override_options): Use mips_init_print_operand_punct. - -2007-10-18 Richard Sandiford - - * config/mips/mips.h: Move variable declarations to end of file and - enclose them all in #ifndef USED_FOR_TARGET. - * config/mips/mips.c: Reorder functions into more logical groups, - and so that callees appear before callers. Put the targetm - initializer at the end of the file. Remove forward static - declarations where possible. - (mips_init_builtins): Add "static" to definition. - (mips_expand_builtin, mips_mode_rep_extended): Likewise. - -2007-10-18 Richard Sandiford - - * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete. - (TARGET_MAX_ANCHOR_OFFSET): Delete. - (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS. - (mips_set_mips16_mode): Initialize min_anchor_offset and - max_anchor_offset directly to constants. - -2007-10-18 Richard Sandiford - - * config/mips/mips.c: Delete trailing whitespace. - -2007-10-18 Richard Sandiford - - * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO. - (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY, - and pick the first. - * config/mips/mips.md (load_call): Don't make the unspec - depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO. - -2007-10-18 David Daney - - * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new - reg_offset variable to calculate register locations. - -2007-10-18 Richard Guenther - - * tree-ssa.c (uid_ssaname_map_eq): New function. - (uid_ssaname_map_has): Likewise. - (init_tree_ssa): Allocate default_defs as uid_ssaname map. - * tree-flow.h (struct gimple_df): Make default_defs a - uid_ssaname map. - * tree-dfa.c (gimple_default_def): Deal with it. - (set_default_def): Likewise. - -2007-10-18 Richard Guenther - - * tree-flow.h (struct gimple_df): Make referenced_vars - a uid_decl_map. - (uid_decl_map_eq): Declare. - (uid_decl_map_hash): Likewise. - * tree-ssa.c (uid_decl_map_eq): New function. - (uid_decl_map_hash): Likewise. - (init_tree_ssa): Make referenced_vars a uid_decl_map. - * tree-flow-inline.h (first_referenced_var): Deal with - the referenced_vars representation change. - (next_referenced_var): Likewise. - * tree-dfa.c (referenced_var_lookup): Likewise. - (referenced_var_check_and_insert): Likewise. - (remove_referenced_var): Likewise. - -2007-10-18 Daniel Jacobowitz - - * config/mips/mips.c (mips_dwarf_register_span): New. - (TARGET_DWARF_REGISTER_SPAN): Define. - -2007-10-18 Chen Liqin - - * config.gcc : update score-*-elf(extra_objs). - * config/score/mac.md : Remove. - * config/score/misc.md : Remove. - * config/score/score7.md : Remove. - * config/score/score-mdaux.h : Remove. - * config/score/score-mdaux.c : Remove. - * config/score/score-version.h : Remove. - * config/score/score-generic.md : New. - * config/score/score3.h : New. - * config/score/score3.c : New. - * config/score/score7.h : New. - * config/score/score7.c : New. - * config/score/mul-div.S : add flush_cache score3 support. - * config/score/elf.h : Fix some typos. - * config/score/score.md : merge score3 and score7 pattern. - * config/score/score.c : use to seperate which target it used. - * config/score/score.h : use to seperate the target macro. - * config/score/score.opt : remove -mmac option , add -mscore3, - -mscore3d and -march OPTION support. - -2007-10-17 Andrew Pinski - - * cfgexpand.c (expand_stack_vars): Add checking to make sure - that the offset of a variable is not greater than the size - of the paritition. - -2007-10-17 Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, - atmega88p, atmega168p and atmega328p devices. - * config/avr/avr.h (LINK_SPEC): (Ditto.). - (CRT_BINUTILS_SPECS): (Ditto.). - * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). - -2007-10-17 Maxim Kuvyrkov - - * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'. - * ddg.c: Ditto. - * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING. - * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'. - (print_insn): Move declaration to ... - * rtl.h (print_insn): ... here. - -2007-10-17 Maxim Kuvyrkov - - * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type, - m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem, - m68k_sched_branch_type): Move declarations to ... - * config/m68/m68k-protos.h: ... here. - -2007-10-17 Maxim Kuvyrkov - - * genattrtab.c (main): Rearrange output of insn-attrtab.c headers. - -2007-10-17 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add attiny48. - * config/avr/avr.h (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-10-17 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add attiny43u. - * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-10-17 Uros Bizjak - - PR middle-end/33794 - * reg-stack.c (move_for_stack_reg): Swap input argument of - UNSPEC_TAN insn to the top of the stack. - -2007-10-17 Uros Bizjak - - PR target/32961 - * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128, - IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128, - IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128, - IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require - immediate shift value. - * config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32, - _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, - _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument. - Remove macros for !__OPTIMIZE__ case. - -2007-10-17 Daniel Berlin - - * tree-ssa-structalias.c (rewrite_constraints): Don't test for - directness anymore. - (perform_var_substitution): Only DFS from real nodes. Don't test - for directness. - (unite_pointer_equivalences): Fix broken test. - -2007-10-17 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct - altivec sp_offset. Rearrange sp_offset assignments to - correspond to stack adjustments. Use frame_reg_rtx for - SPE register restores. Correct SPE stack adjustment. - -2007-10-17 Manuel Lopez-Ibanez - - * builtins.c (gimplify_va_arg_expr): Use inform for help message. - * toplev.c (check_global_declaration_1): Use appropriate warning - option instead of unnamed warning. - * stor-layout.c (layout_decl): Likewise. - * c-typeck.c (build_conditional_expr): Likewise. - (build_compound_expr): Fix wrong comment. - (build_binary_op): Use appropriate warning option instead of - unnamed warning. - * cfgexpand.c (tree_expand_cfg): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise. - (execute_warn_function_return): Likewise. - * stmt.c (warn_if_unused_value): Likewise. - -2007-10-16 Eric B. Weddington - - * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316. - * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for - similar devices. - (CRT_BINUTILS_SPECS): Likewsie. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2007-10-16 Amruth Laxman - - PR target/33594 - * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define. - -2007-10-16 Eric Botcazou - - * dce.c (init_dce): Only initialize the obstacks for the fast pass. - (fini_dce): Only release them for the fast pass. - (end_ud_dce): Delete. - (rest_of_handle_ud_dce): Do not modify df_in_progress. - Call fini_dce instead of end_ud_dce. - (rest_of_handle_fast_dce): Do not modify df_in_progress. - (run_fast_df_dce): Reset df_in_progress to false on exit. - -2007-10-16 Paolo Bonzini - Maxim Kuvyrkov - - * target.h (unspec_may_trap_p): New target hook. - * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro. - * targhooks.c (default_unspec_may_trap_p): Default implementation of - the hook. - * targhooks.h (default_unspec_may_trap_p): Declare it. - * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook. - * rtlanal.c (may_trap_p_1): Use new hook. Make global. - * rtl.h (may_trap_p_1): Declare. - - * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to - override default hook implementation. - (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the - hook. - -2007-10-16 Manuel Lopez-Ibanez - - * doc/invoke.texi (Wextra): Move it just after Wall, list the - options enabled by Wextra and mention Wuninitialized. - -2007-10-15 Nigel Stephens - - * config/mips/mips.h (LOCAL_ALIGNMENT): Define. - -2007-10-15 Jakub Jelinek - - PR tree-optimization/33136 - * opts.c (decode_options): Don't enable flag_ipa_type_escape. - -2007-10-15 Alexandre Oliva - - PR tree-optimization/33735 - PR tree-optimization/33572 - * tree-inline.c (update_ssa_across_abnormal_edges): Revert - 2007-10-09's change. - * except.c (duplicate_eh_regions): Don't look for prev_try - beyond ERT_ALLOWED_EXCEPTIONS with an empty list. - -2007-10-15 Alexandre Oliva - - PR middle-end/33706 - * tree-inline.c (copy_bb): Use bsi_replace to replace a - __builtin_va_arg_pack-containing call stmt. - -2007-10-15 Razya Ladelsky - - * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole - program flag. - -2007-10-15 Jakub Jelinek - - PR tree-optimization/33619 - * tree-ssa-ter.c (is_replaceable_p): Return false for all - calls. - -2007-10-15 David Edelsohn - - * config.gcc (powerpc-ibm-aix5*): Install altivec.h. - -2007-10-15 Richard Guenther - - * fold-const.c (extract_array_ref): Remove. - (fold_comparison): Handle POINTER_PLUS_EXPR with the - generic address expression comparison folding. Remove - the folding that used extract_array_ref. - -2007-10-15 Maxim Kuvyrkov - - PR target/33133 - * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if - speculation type of insn can be changed before trying to do that. - -2007-10-15 Eric Botcazou - - * dse.c (struct insn_info): Add 'frame_read' field. - (scan_insn): For the call to a const function, set frame_read if - reload has been run. - If the insn reads the frame, kill the frame related stores. - (scan_reads_nospill): Likewise. - -2007-10-14 Jason Merrill - - * tree-eh.c (optimize_double_finally): Don't assume that the - cleanup we're duplicating is only one statement. - -2007-10-14 Kazu Hirata - - * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c, - config/i386/i386.md, config/i386/sse.md, function.c, jump.c, - modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c, - tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c, - tree-vect-transform.c: Fix comment typos. - * doc/extend.texi: Fix a typo. - - * c-common.h: Remove the prototype for c_expand_body. - * c-tree.h: Remove the prototype for c_disregard_inline_limits. - * tree.h: Remove the prototype for fold_build_call_expr. - - * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): - Remove. - * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn. - -2007-10-13 David Edelsohn - - * config/rs6000/aix53.h: New file. - * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0. - (TARGET_ALTIVEC_ABI): Same. - * config/rs6000/aix.h (TARGET_ALTIVEC): Delete. - (TARGET_ALTIVEC_ABI): Delete. - * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new - stanza defaulting to aix5.3. - -2007-10-12 Nathan Froyd - - * config/i386/i386.md (SI_REG, DI_REG): New constants. - (strmov): Use defined constants. - (cmpstrnsi): Likewise. - * config/i386/i386.c (decide_alg): Use defined constants. - (ix86_expand_strlen): Likewise. - -2007-10-12 Richard Sandiford - - * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition. - * var-tracking.c (micro_operation_def): Update comment on u.loc. - (mode_for_reg_attrs, var_lowpart): New functions. - (add_uses): Consider recording a lowpart of LOC for MO_USE. - (add_stores): Likewise MO_SET and MO_COPY. If the source of a set - or copy is known, set LOC to the SET that performs the set, instead - of the destination. - (find_src_status, find_src_set_src): Remove LOC parameter. - Replace INSN with the source value. - (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when - handling MO_SET and MO_COPY. Update the calls to find_src_status - and find_src_set_src. - -2007-10-12 Nathan Froyd - - PR 11001 - * config/i386/i386.md (strmov): Check for esi and edi usage. - * config/i386/i386.c (decide_alg): Check whether we can use a - rep prefix and adjust algorithm choice accordingly. - (ix86_expand_strlen): Check for eax, ecx, and edi usage. - -2007-10-12 Kaveh R. Ghazi - - * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc. - -2007-10-12 Kenneth Zadeck - - * global.c (build_insn_chain): Formatting fixes. - -2007-10-12 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_cond): For - combining both operands require either both have single uses - or combining to a constant. - -2007-10-12 Richard Guenther - - PR middle-end/26198 - * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from - a rhs with side-effects or which is a load. - (forward_propagate_into_cond): Also try combining both operands. - -2007-10-12 Uros Bizjak - - PR tree-optimization/33742 - * tree-vect-transform.c (vectorizable_operation): Return false - if get_vectype_for_scalar_type for scalar_dest can't be determined. - (vectorizable_call): Same for rhs_type and lhs_type. - -2007-10-12 Jakub Jelinek - - PR tree-optimization/33645 - * tree-ssa-live.c (mark_all_vars_used): Add data argument, - pass it to walk_tree. - (mark_all_vars_used_1): Pass data through to mark_all_vars_used. - When calling set_is_used on a VAR_DECL, if data is not NULL and - its DECL_UID is in the bitmap, call mark_all_vars_used on its - DECL_INITIAL after clearing the bit in bitmap. - (remove_unused_locals): Adjust mark_all_vars_used callers. - Instead of removing unused global vars from unexpanded_var_list - immediately record them in bitmap, call mark_all_vars_used on - all used global vars from unexpanded_var_list and only purge - global vars that weren't found used even during that step. - -2007-10-11 John David Anglin - - * gthr-posix.h (__gthread_active_init): Create detached instead of - joinable thread when testing whether threads are active on hppa-hpux. - * gthr-posix95.h (__gthread_active_init): Likewise. - -2007-10-11 Kenneth Zadeck - - PR middle-end/33676 - * global.c (build_insn_chain): Include insn that occur between - basic blocks. - -2007-10-11 Tom Tromey - - * gengtype-yacc.y: Delete. - -2007-10-11 Uros Bizjak - - * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants. - * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32, - function_value_32, function_value_64, function_value_ms_64, - setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call, - legitimize_tls_address, x86_this_parameter, x86_output_mi_thunk): - Use new constants. - -2007-10-11 Richard Guenther - - * gcse.c (hash_scan_set): If the next nonnote insn is in - a different basic block insert the set. - -2007-10-11 Richard Guenther - - PR middle-end/33724 - * tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function. - (verify_gimple_expr): Use it to verify pointer-to types for - ADDR_EXPRs. - -2007-10-11 Richard Guenther - - PR c/33726 - * c-typeck.c (build_array_ref): Do not strip qualifiers from - the array element type. - -2007-10-11 Eric Botcazou - - PR rtl-optimization/33638 - * dse.c (struct insn_info): Remove 'stack_read' field, - add 'stack_pointer_based' field. - (record_store): For a store with non-constant base, record - whether it is stack pointer based. - (scan_insn): For the call to a const function, remove stack - pointer based stores from the list of local active stores. - (scan_reads_nospill): Delete code dealing with const functions. - -2007-10-10 Peter Bergner - - * ra-conflict.c (partial_bitnum, max_bitnum): Change type of variables - to HOST_WIDE_INT. - (conflict_p, set_conflict, set_conflicts): Likewise. - * global.c (global_alloc): Likewise. - * ra.h: Update prototypes. - -2007-10-10 Wolfgang Gellerich - - * opth-gen.awk: Fixed generation of comment stating the origin - of options.h - -2007-10-10 Kazu Hirata - - Revert: - 2007-10-09 Kazu Hirata - * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' - and '%}', respectively. - - Revert: - 2007-10-09 Kazu Hirata - * config/m68k/m68k.c (print_operand): Handle '{' and '}'. - * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' - and '}'. - * config/m68k/m68k.md: Replace '{' with '%{' where '{' is - meant to be output. - - Revert: - 2007-10-07 Kazu Hirata - * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly - syntax for ASSEMBLER_DIALECT. - * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. - -2007-10-10 Revital Eres - - * modulo-sched.c (check_nodes_order): Dump the final order of - the nodes. - (get_sched_window): Add dump info. - (calculate_order_params): Dump order params of the nodes. - -2007-10-09 Kenneth Zadeck - - PR middle-end/33669 - * ra-conflict.c (record_one_conflict_between_regnos, - set_conflicts_for_earlyclobber, global_conflicts): Improved logging. - (global_conflicts): Enhanced incorrect check. - -2007-10-09 Geoffrey Keating - - * dwarf2out.c (output_call_frame_info): FDEs are always emitted - if flag_exceptions is not set. - * config/darwin.c (darwin_emit_unwind_label): Rewrite to use - assemble_name rather than incorrectly emulating it. - - * doc/extend.texi (Deprecated Features): Mention that ? and - friends are removed from G++. - -2007-10-09 Manuel Lopez-Ibanez - - * c-opts.c (c_common_handle_option): -Wnontemplate-friend, - -Wwrite-strings and -Wmultichar are enabled by default, so Wall - enabling them is redundant. Don't check two times for - c_dialect_cxx. - -2007-10-09 H.J. Lu - - * ra-conflict.c (record_one_conflict_between_regnos): Revert - the last change. - (set_conflicts_for_earlyclobber): Likewise. - (global_conflicts): Likewise. - -2007-10-09 Kazu Hirata - - * longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' - and '%}', respectively. - -2007-10-09 Kazu Hirata - - * config/m68k/m68k.c (print_operand): Handle '{' and '}'. - * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{' - and '}'. - * config/m68k/m68k.md: Replace '{' with '%{' where '{' is - meant to be output. - -2007-10-09 Richard Guenther - - PR middle-end/33692 - * gimplify.c (canonicalize_component_ref): Honor qualifiers - of referenced structure and component. - -2007-10-09 Kenneth Zadeck - - PR middle-end/33669 - * ra-conflict.c (record_one_conflict_between_regnos, - set_conflicts_for_earlyclobber, global_conflicts): Improved logging. - (global_conflicts): Removed incorrect check. - -2007-10-09 Richard Sandiford - - PR tree-optimization/33615 - * tree-ssa-pre.c (compute_avail): Don't call make_values_for_stmt - if the statement might throw. Fix formatting. - -2007-10-09 Richard Sandiford - - PR tree-optimization/33615 - * tree-ssa-loop-im.c (movement_possibility): Return MOVE_IMPOSSIBLE - if the rhs might throw. - -2007-10-09 Jan Hubicka - - * invoke.texi (align-threshold, align-loop-iterations): Document. - * final.c: Include cfgloop.h, params.h - (compute_alignments): Dump decisions and compare them with loop - structure; honor given parameters. - (pass_compute_alignments): New dump file. - * params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New. - * Makefile.in (final.o): Add dependency on cfgloop.h and params.h - -2007-10-09 James E. Wilson - - PR tree-optimization/33655 - PR middle-end/22156 - * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST, - convert it to bitsizetype before size_binop call. - -2007-10-09 Alexandre Oliva - - PR tree-optimization/33572 - * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate - the absence of a corresponding edge from the exit block. - -2007-10-09 Alexandre Oliva - - PR middle-end/22156 - * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for - bit-field layout. - (sra_build_assignment): Likewise. Set up mask depending on - precision, not type. - (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow - computing bit masks. - (sra_build_elt_assignment): Don't view-convert from signed to - unsigned. - (sra_explode_bitfield_assignment): Use bit-field type if - possible. Use BYTES_BIG_ENDIAN. - -2007-10-08 Alexandre Oliva - - PR middle-end/22156 - * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether - the original stmt can throw. - (sra_build_bf_assignment): Fix type mismatch when applying negated - mask. - -2007-10-08 Geoffrey Keating - - * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register - '#pragma mark' to be executed at preprocessing time. - -2007-10-08 Ollie Wild - - * varasm.c (compare_constant): Removed call to - lang_hooks.expand_constant. - (copy_constants): Removed call to lang_hooks.expand_constant. - (compute_reloc_for_constant): Removed call to - lang_hooks.expand_constant. - (output_addressed_constants): Removed call to - lang_hooks.expand_constant. - (constructor_static_from_elts_p): Removed call to - lang_hooks.expand_constant. - (output_constant): Removed calls to lang_hooks.expand_constant. - * langhooks.h (struct lang_hooks): Removed field expand_constant. - * langhooks-def.h (lhd_return_tree): Removed. - (LANG_HOOKS_EXPAND_CONSTANT): Removed. - (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. - * langhooks.c (lhd_return_tree): Removed. - -2007-10-08 Mark Shinwell - - * combine.c (setup_incoming_promotions): Ensure that - arguments that have not undergone mode promotions do not - incorrectly get marked as being sign- or zero-extended. - -2007-10-08 Richard Guenther - - PR middle-end/33693 - PR middle-end/33695 - PR middle-end/33697 - * fold-const.c (fold_binary): Use correct types in folding - of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B) - and building of RROTATE_EXPR. - -2007-10-08 Richard Guenther - - PR middle-end/33691 - PR middle-end/33694 - PR middle-end/33696 - * fold-const.c (fold_binary): Use the correct types when - folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2). - (fold_binary): Use the correct types when folding - (-A) - B to (-B) - A. - (fold_unary): Use the correct types when folding ~(X). - -2007-10-08 Manuel Lopez-Ibanez - - * doc/invoke.texi (Wall): fix formatting issues. - -2007-10-07 Richard Sandiford - - * simplify-rtx.c (simplify_binary_operation_1): Canonicalize - truncated shift counts. - -2007-10-07 Kazu Hirata - - * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly - syntax for ASSEMBLER_DIALECT. - * config/m68k/m68k.h (ASSEMBLER_DIALECT): New. - -2007-10-06 Eric Botcazou - Nathan Froyd - - * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO - when determining whether to record INCOMING_RETURN_ADDR_RTX. - -2007-10-06 Eric Botcazou - - Revert: - 2007-02-12 Eric Botcazou - - * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. - * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on - the function, temporarily point the debug interface to the null one. - -2007-10-06 Alexandre Oliva - - PR tree-optimization/33655 - PR middle-end/22156 - * tree-sra.c (bitfield_overlaps_p): Handle array and complex elements. - -2007-10-06 Alexandre Oliva - - PR tree-optimization/33572 - * tree-cfg.c (verify_stmts): Check for missing PHI defs. - * tree-inline.c (update_ssa_across_eh_edges): Renamed to... - (update_ssa_across_abnormal_edges): ... this. Set slots in the - return PHI node. - (copy_edges_for_bb): Handle nonlocal label edges. - (make_nonlocal_label_edges): Deleted. - (optimize_inline_calls): Don't call it. - -2007-10-05 Hans-Peter Nilsson - - * gthr-single.h: Revert last change. - -2007-10-05 Michael Matz - - PR middle-end/33667 - * lower-subreg.c (decompose_multiword_subregs): Use - validate_unshare_change(). - -2007-10-05 Peter Bergner - - * ra-conflict.c: Include "sparseset.h". - (conflicts): Change to HOST_WIDEST_FAST_INT. - (allocnos_live): Redefine variable as a sparseset. - (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): - Delete macros. - (allocno_row_words): Removed global variable. - (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables. - (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines. - (conflict_p, set_conflict_p, set_conflicts_p): New functions. - (record_one_conflict_between_regnos): Cache allocno values and reuse. - Use set_conflict_p. - (record_one_conflict): Update uses of allocnos_live to use - the sparseset routines. Use set_conflicts_p. - (mark_reg_store): Likewise. - (set_reg_in_live): Likewise. - (global_conflicts): Update uses of allocnos_live. - Use the new adjacency list to visit an allocno's neighbors - rather than iterating over all possible allocnos. - Call set_conflicts_p to setup conflicts rather than adding - them manually. - * global.c: Comments updated. - (CONFLICTP): Delete define. - (regno_compare): New function. Add prototype. - (global_alloc): Sort the allocno to regno mapping according to - which basic blocks the regnos are referenced in. Modify the - conflict bit matrix to a compressed triangular bitmatrix. - Only allocate the conflict bit matrix and adjacency lists if - we are actually going to allocate something. - (expand_preferences): Use conflict_p. Update uses of allocnos_live. - (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an - allocno's neighbors rather than iterating over all possible allocnos. - (mirror_conflicts): Removed function. - (dump_conflicts): Iterate over regnos rather than allocnos so - that all dump output will be sorted by regno number. - Use the FOR_EACH_CONFLICT macro. - * ra.h: Comments updated. - (conflicts): Update prototype to HOST_WIDEST_FAST_INT. - (partial_bitnum, max_bitnum, adjacency, adjacency_pool): - Add prototypes. - (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines. - (adjacency_list_d, adjacency_iterator_d): New types. - (add_neighbor, adjacency_iter_init, adjacency_iter_done, - adjacency_iter_next, regno_basic_block): New static inline functions. - (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define. - (conflict_p): Add function prototype. - * sparseset.h, sparseset.c: New files. - * Makefile.in (OBJS-common): Add sparseset.o. - (sparseset.o): New rule. - -2007-10-05 Richard Guenther - - PR middle-end/33666 - * fold-const.c (fold_unary): Do not fold (long long)(int)ptr - to (long long)ptr. - -2007-10-05 Michael Matz - - PR inline-asm/33600 - * function.c (match_asm_constraints_1): Check for input - being used in the outputs. - -2007-10-05 Richard Guenther - - * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF. - -2007-10-05 Richard Sandiford - - PR target/33635 - * config/mips/mips.c (mips_register_move_cost): Rewrite to use - subset checks. Make the cost of FPR -> FPR moves depend on - mips_mode_ok_for_mov_fmt_p. - -2007-10-04 Doug Kwan - - * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait, - __gthread_cond_wait_recursive): Add to extend interface for POSIX - conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify - support of conditional variables. - * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait, - __gthread_cond_wait_recursive): Add to extend interface for POSIX - conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify - support of conditional variables. - * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait, - __gthread_cond_wait_recursive): Add to extend interface for POSIX - conditional variables. - * gthr.h: Update comments to document new interface. - -2007-10-04 Geoffrey Keating - - * cgraphunit.c (cgraph_build_static_cdtor): Don't set DECL_IGNORED_P. - -2007-10-04 Anatoly Sokolov - - * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P. - -2007-10-04 Richard Guenther - - PR middle-end/33641 - * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR - does not need to be of INTEGER_TYPE. - (verify_gimple_2): New function split out from ... - (verify_gimple_1): ... here. ICE if there was an error during - verification. - -2007-10-04 Michael Matz - - PR rtl-optimization/33653 - * dce.c (deletable_insn_p_1): Use volatile_refs_p(). - * dse.c (scan_insn): Same. - -2007-10-04 Kazu Hirata - - * config.gcc: Remove USE_GAS for m68k targets. - -2007-10-04 Richard Guenther - - PR tree-optimization/33627 - * tree-gimple.h (canonicalize_cond_expr_cond): Declare. - * tree-gimple.c (canonicalize_cond_expr_cond): New function, - split out from ... - * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here. - * tree-ssa-ifcombine.c (ifcombine_iforif): Use it. - -2007-10-04 Anatoly Sokolov - - * config/avr/avr.c (commands_in_file, commands_in_prologues, - commands_in_epilogues): Remove variables. - (avr_file_start): Remove unneded initializations of commands_in_file, - commands_in_prologues and commands_in_epilogues variables. - (avr_file_end): Remove dead code. - -2007-10-04 Kazu Hirata - - * config/m68k/m68k.c (m68k_output_movem): Use the MOTOROLA if - MOTOROLA is to true. - -2007-10-03 Richard Sandiford - - PR target/33635 - * config/mips/mips-protos.h (mips_split_64bit_move): Rename to... - (mips_split_doubleword_move): ...this. - * config/mips/mips.c (mips_subword): Extend to handle 64-bit words; - use natural endianness for multi-format FPR values. - (mips_split_64bit_move): Rename to... - (mips_split_doubleword_move): ...this and extend to 64-bit words. - Use move_doubleword_fpr* patterns for moves involving FPRs. - (mips_save_reg): Update the call to mips_split_64bit_move. - (mips_secondary_reload_class): Return NO_REGS for any reload of a - nonzero constant into an FPR if the constant can be forced to memory. - * config/mips/mips.md: Update the splitter calls to - mips_split_64bit_move. - (UNSPEC_LOAD_DF_LOW): Rename to... - (UNSPEC_LOAD_LOW): ...this. - (UNSPEC_LOAD_DF_HIGH): Rename to... - (UNSPEC_LOAD_HIGH): ...this. - (UNSPEC_STORE_DF_HIGH): Rename to... - (UNSPEC_STORE_WORD): ...this. - (SPLITF): New mode iterator. - (HALFMODE): New mode attribute. - (movtf): New expander. - (*movtf_internal): New define_insn_and_split. - (move_doubleword_fpr): New expander. - (load_df_low, load_df_high, store_df_high, mthc1, mfhc1): Replace - with... - (load_low, load_high, store_word, mthc1) - (mfhc1): ...these more general patterns. - -2007-10-03 Alexandre Oliva - - * cfgrtl.c (rtl_block_ends_with_call_p): Skip notes at the end. - -2007-10-03 Alexandre Oliva - - * gcse.c (hash_scan_set): Insert set in insn before note at - the end of basic block. - -2007-10-03 Sebastian Pop - - PR tree-optimization/33576 - * testsuite/gcc.dg/tree-ssa/pr33576.c: New. - * tree-loop-linear.c (linear_transform_loops): Call remove_iv. - * lambda.h (lambda_loopnest_to_gcc_loopnest): New parameter. - (remove_iv): Declared. - * lambda-code.c (remove_iv): Not static. - (lambda_loopnest_to_gcc_loopnest): New parameter remove_ivs. - Don't remove ivs there, save ivs in the buffer. - -2007-10-03 Jason Merrill - - PR c++/15764 - * tree-eh.c (same_handler_p): New fn. - (optimize_double_finally): New fn. - (refactor_eh_r): New fn. - (refactor_eh): New fn. - (pass_refactor_eh): New pass. - * tree-pass.h: Declare it. - * passes.c (init_optimization_passes): Add it. - -2007-10-03 Doug Kwan - Richard Guenther - - PR debug/31899 - * dwarf2out.c (reference_to_unused): Disable sanity checking, - be conservative instead. - -2007-10-03 Francois-Xavier Coudert - - PR fortran/26682 - * doc/invoke.texi (-fwhole-program): Document that Fortran - doesn't support this option. - -2007-10-02 Richard Sandiford - - PR middle-end/33617 - * expr.c (expand_expr_addr_expr_1): Pass CONSTRUCTORs to expand_expr. - -2007-10-02 David Daney - - * config/mips/mips.md (sync_compare_and_swap): Handle compare - against constant zero. - * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Handle constant zero - operand. - -2007-09-02 Kenneth Zadeck - - * ra-conflict.c: New file. - * ra.h: New file. - * reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE - usage to DF_LIVE usage. - (reload): Remove reference to df_get_live_top. - * rtlanal.c (subreg_nregs_with_regno): New function. - * df-scan.c (df_def_record_1, df_uses_record): Add code to set - DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags. - (df_has_eh_preds): Removed. - (df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect, - df_exit_block_uses_collect): Changed call from df_has_eh_preds to - bb_has_eh_pred. - * global.c (allocno, max_allocno, conflicts, allocno_row_words, - reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h - (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c. - (regs_set, record_one_conflict, record_conflicts, mark_reg_store, - mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted. - (global_alloc): Turn off rescanning insns after call to - global_conflicts and added call to set_preferences. - (global_conflicts): Moved to ra-alloc.c. - (set_preferences_1, set_preferences): New function. - (mirror_conflicts): Changed types for various variables. - (mark_elimination): Change DF_RA_LIVE - usage to DF_LIVE usage. - (build_insn_chain): Rewritten from scratch and made local. - (print_insn_chain, print_insn_chains): New functions. - (dump_conflicts): Do not print conflicts for fixed_regs. - (rest_of_handle_global_alloc): Turn off insn rescanning. - * hard-reg-set.h: Fixed comment. - * local-alloc.c (update_equiv_regs): Change DF_RA_LIVE - usage to DF_LIVE usage and delete refs to TOP sets. - (block_alloc): Mark regs as live if they are in the artificial - defs at top of block. - (find_stack_regs): New function. - (rest_of_handle_local_alloc): Changed urec problem to live - problem and do not turn off df rescanning. - * df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN, - DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec, - df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed. - (DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered. - (DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New - fields in df_ref_flags. The rest have been renumbered. - * init-regs.c (initialize_uninitialized_regs): Enhanced debugging - at -O1. - * rtl.h (subreg_nregs_with_regno): New function. - * df-problems.c: (df_get_live_out, df_get_live_in, - df_get_live_top): Removed reference to DF_RA_LIVE. - (df_lr_reset, df_lr_transfer_function, df_live_free_bb_info, - df_live_alloc, df_live_reset, df_live_local_finalize, - df_live_free): Make top set only if different from in set. - (df_lr_top_dump, df_live_top_dump): Only print top set if - different from in set. - (df_lr_bb_local_compute): Removed unnecessary check. - (df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, - df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, - df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber, - df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, - df_urec_local_compute, df_urec_init, df_urec_local_finalize, - df_urec_confluence_n, df_urec_transfer_function, df_urec_free, - df_urec_top_dump, df_urec_bottom_dump, problem_UREC, - df_urec_add_problem): Removed. - (df_simulate_fixup_sets): Changed call from df_has_eh_preds to - bb_has_eh_pred. - * Makefile.in (ra-conflict.o, ra.h): New dependencies. - * basic_block.h (bb_has_abnormal_pred): New function. - * reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE - usage to DF_LIVE usage. - -2007-10-02 Revital Eres - - * config/rs6000/predicates.md (easy_vector_constant): Return false - for 750CL paired vectors. - * config/rs6000/paired.md (movv2sf_paired): Fix move of easy - vector constant. - (vec_initv2sf): Add new description. - (vconcatsf): Likewise. - * config/rs6000/rs6000-protos.h: Declare paired_expand_vector_init. - * config/rs6000/rs6000.c (paired_expand_vector_init): New function. - -2007-10-01 Alexandre Oliva - - * tree-ssa-sink.c (sink_code_in_bb): Don't stop sinking after - sinking the last stmt in a BB. - -2007-10-01 Alexandre Oliva - - PR middle-end/22156 - * tree-sra.c (struct sra_elt): Add in_bitfld_block. - (sra_hash_tree): Handle BIT_FIELD_REFs. - (sra_elt_hash): Don't hash bitfld blocks. - (sra_elt_eq): Skip them in parent compares as well. Handle - BIT_FIELD_REFs. - (build_element_name_1): Handle BIT_FIELD_REFs. - (instantiate_element): Propagate nowarn from parents. Create - BIT_FIELD_REF for variables that are widened by scalarization. - Gimple-zero-initialize all bit-field variables that are not - part of parameters that are going to be scalarized on entry. - (instantiate_missing_elements_1): Return the sra_elt. - (canon_type_for_field): New. - (try_instantiate_multiple_fields): New. Infer widest possible - access mode from decl or member type, but clip it at word - size, and only widen it if a field crosses an alignment boundary. - (instantiate_missing_elements): Use them. - (generate_one_element_ref): Handle BIT_FIELD_REFs. - (scalar_bitfield_p): New. - (sra_build_assignment): Optimize assignments from scalarizable - BIT_FIELD_REFs. Use BITS_BIG_ENDIAN to determine shift counts. - (REPLDUP): New. - (sra_build_bf_assignment): New. Optimize assignments to - scalarizable BIT_FIELD_REFs. - (sra_build_elt_assignment): New. Optimize BIT_FIELD_REF - assignments to full variables. - (generate_copy_inout): Use the new macros and functions. - (generate_element_copy): Likewise. Handle bitfld differences. - (generate_element_zero): Don't recurse for blocks. Use - sra_build_elt_assignment. - (generate_one_element_init): Take elt instead of var. Use - sra_build_elt_assignment. - (generate_element_init_1): Adjust. - (bitfield_overlap_info): New struct. - (bitfield_overlaps_p): New. - (sra_explode_bitfield_assignment): New. Adjust widened - variables to account for endianness. - (sra_sync_for_bitfield_assignment): New. - (scalarize_use): Re-expand assignment to/from scalarized - BIT_FIELD_REFs. Explode or sync needed members for - BIT_FIELD_REFs accesses or assignments. Use REPLDUP. - (scalarize_copy): Use REPLDUP. - (scalarize_ldst): Move assert before dereference. Adjust EH handling. - (dump_sra_elt_name): Handle BIT_FIELD_REFs. - -2007-10-01 Paolo Bonzini - - * simplify-rtx.c (comparison_result, simplify_relational_operation_1): - Rename CR_* constants to CMP_*. Fix spacing. - -2007-10-01 Manuel Lopez-Ibanez - - PR other/33585 - * Makefile.in (build_html_dir/gccinstall): gccinstall.texi needs - to be processed with the special script doc/install.texi2html. - -2007-09-30 Manuel Lopez-Ibanez - - * doc/invoke.texi (Wall): List the options enabled by Wall. - (Wstrict-aliasing): Add missing @option. - -2007-09-30 Richard Sandiford - - * config/mips/mips.c (mips_split_64bit_move): Use gen_rtx_REG_offset - rather than gen_lowpart to change a register from DImode to DFmode. - (mips_cannot_change_mode_class): Only allow FPRs to change mode if - both FROM and TO are integer modes that are no bigger than 4 bytes. - (mips_mode_ok_for_mov_fmt_p): New function. - (mips_preferred_reload_class): Use it instead of FLOAT_MODE_P. - (mips_secondary_reload_class): Tweak formatting and comments. - Use reg_class_subset_p instead of direct comparisons with - classes. Only allow direct FPR<->FPR moves for modes that - satisfy mips_mode_ok_for_mov_fmt_p. Only allow loads and stores - for 4- and 8-byte types. Handle reloads in which X is an FPR. - * config/mips/mips.md (*movdi_gp32_fp64): Remove f<-f alternative. - (*movdi_64bit): Likewise. - (*movsi_internal): Likewise. - (*movhi_internal): Likewise. - (*movqi_internal): Likewise. - -2007-09-30 Diego Novillo - - PR 33593 - * tree-ssa-ter.c (is_replaceable_p): Return false if STMT may - throw an exception. - -2007-09-30 Uros Bizjak - - PR tree-optimization/33597 - * tree-vect-analyze.c (vect_build_slp_tree): Check if optab handler - for LSHIFT_EXPR and RSHIFT_EXPR is available for vec_mode. - -2007-09-28 Uros Bizjak - - * config/i386/i386.c (ix86_expand_move): Use can_create_pseudo_p () - instead of variants of (!reload_in_progress && !reload_completed). - (x86_expand_vector_move): Ditto. - -2007-09-28 Ollie Wild - - Revert - 2007-09-27 Ollie Wild - - * varasm.c (compare_constant): Removed call to - lang_hooks.expand_constant. - (copy_constants): Removed call to lang_hooks.expand_constant. - (compute_reloc_for_constant): Removed call to - lang_hooks.expand_constant. - (output_addressed_constants): Removed call to - lang_hooks.expand_constant. - (constructor_static_from_elts_p): Removed call to - lang_hooks.expand_constant. - (output_constant): Removed calls to lang_hooks.expand_constant. - * langhooks.h (struct lang_hooks): Removed field expand_constant. - * langhooks-def.h (lhd_return_tree): Removed. - (LANG_HOOKS_EXPAND_CONSTANT): Removed. - (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. - * langhooks.c (lhd_return_tree): Removed. - -2007-09-28 Andrew Pinski - - PR target/33347 - * config/spu/spu.c (spu_expand_insv): Call copy_rtx on the second - argument to gen_selb. - -2007-09-28 Chao-ying Fu - - * libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section. - * doc/libgcc.texi (Fixed-point fractional library routines): - Fix typos for neg and cmp functions. - -2007-09-28 Michael Matz - - PR rtl-optimization/33552 - * function.c (match_asm_constraints_1): Check for overlap in - inputs and replace all occurences. - -2007-09-28 Richard Sandiford - - * config/mips/mips.c (override_options): Fix comment typo. - -2007-09-28 Jie Zhang - - * config.gcc (bfin*-linux-uclibc*): Set extra_parts - to "crtbegin.o crtbeginS.o crtend.o crtendS.o". - * config/bfin/t-bfin-linux (crti.o): Don't build. - (crtn.o): Likewise. - (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. - * config/bfin/t-bfin-uclinux (crti.o): Don't build. - (crtn.o): Likewise. - (EXTRA_MULTILIB_PARTS): Remove crti.o and crtn.o. - -2007-09-27 Ollie Wild - - * varasm.c (compare_constant): Removed call to - lang_hooks.expand_constant. - (copy_constants): Removed call to lang_hooks.expand_constant. - (compute_reloc_for_constant): Removed call to - lang_hooks.expand_constant. - (output_addressed_constants): Removed call to - lang_hooks.expand_constant. - (constructor_static_from_elts_p): Removed call to - lang_hooks.expand_constant. - (output_constant): Removed calls to lang_hooks.expand_constant. - * langhooks.h (struct lang_hooks): Removed field expand_constant. - * langhooks-def.h (lhd_return_tree): Removed. - (LANG_HOOKS_EXPAND_CONSTANT): Removed. - (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT. - * langhooks.c (lhd_return_tree): Removed. - -2007-09-27 John David Anglin - - PR middle-end/33436 - * expr.c (emit_group_load_1): Split constant double when destination - length is half source length. - -2007-09-27 Richard Sandiford - - * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): New macro. - (mips_cpu_info): Add tune_flags. - (GENERATE_BRANCHLIKELY): Remove TARGET_SR71K check. - * config/mips/mips.c (mips_cpu_info_table): Add tune_flags fields. - Remove end marker. - (override_options): Remove deprecation code. Use branch-likely - instructions for optimize_size or if the tuning flags do not - suggest otherwise. Tweak warning. - (mips_matching_cpu_name_p, mips_parse_cpu): Use ARRAY_SIZE. - -2007-09-27 Matthias Klose - - * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the - multilib osdirname if it exists. - * config/rs6000/t-linux64 (MULTILIB_OSDIRNAMES): Likewise. - -2007-09-27 Ian Lance Taylor - - PR tree-optimization/33565 - * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on - assignments of comparisons. - * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt - parameter. Change caller. Defer overflow warnings around call to - fold_binary. - * fold-const.c (fold_undefer_overflow_warnings): Don't warn if - TREE_NO_WARNING is set on the statement. - * tree-ssa-forwprop.c - (tree_ssa_forward_propagate_single_use_vars): Don't test - TREE_NO_WARNING when calling fold_undefer_overflow_warnings. - * tree-cfg.c (fold_cond_expr_cond): Likewise. - -2007-09-27 Joseph Myers - - * config/rs6000/rs6000.c (rs6000_legitimize_address): Do not - reduce offset by units of 0x10000 for SPE vector modes or modes - used with E500 double instructions. - -2007-09-04 Paolo Bonzini - - * simplify-rtx.c (comparison_result): New. - (simplify_const_relational_operation): Use it instead of the five - "equal|op[01]ltu?" variables; consequently remove redundant "else"s. - Improve bounds-checking optimizations; remove subsumed POPCOUNT - optimizations. Extract nonzero_address_p optimizations into a - separate "if" together with optimizations where op1 is const0_rtx. - Optimize comparing an IOR with zero. Simplify op0 RELOP op0 for - floating-point arguments too when appropriate. Hoist test for ABS - outside the final switch statement. - * cse.c (fold_rtx): Don't look for an IOR equivalent of - folded_arg0 if we found a constant equivalent. Remove - transformations done in simplify-rtx.c for "op0 RELOP op0". - -2007-09-27 Jakub Jelinek - - * builtins.c (expand_builtin, expand_builtin_object_size, - expand_builtin_memory_chk, maybe_emit_chk_warning, - maybe_emit_sprintf_chk_warning): Use new %K format string specifier - for diagnostics. - * expr.c (expand_expr_real_1): Likewise. - * langhooks-def.h (struct diagnostic_info): Add forward decl. - (lhd_print_error_function): Add third argument. - * langhooks.h (struct diagnostic_info): Add forward decl. - (struct lang_hooks): Add third argument to print_error_function. - * diagnostic.h (diagnostic_info): Add abstract_origin field. - (diagnostic_last_function_changed, diagnostic_set_last_function): Add - second argument. - (diagnostic_report_current_function): Likewise. - * toplev.c (announce_function): Pass NULL as second argument to - diagnostic_set_last_function. - * diagnostic.c (diagnostic_report_current_function): Add second - argument, pass it as third argument to lang_hooks.print_error_function. - (default_diagnostic_starter): Pass DIAGNOSTIC as second argument - to diagnostic_report_current_function. - (diagnostic_report_diagnostic): Initialize diagnostic->abstract_origin - and message.abstract_origin. - (verbatim): Initialize abstract_origin. - * pretty-print.h (text_info): Add abstract_origin field. - * pretty-print.c (pp_base_format): Handle %K. - * langhooks.c (lhd_print_error_function): Add third argument. If - diagnostic->abstract_origin, print virtual backtrace. - * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, - gcc_cdiag_char_table, gcc_cxxdiag_char_table): Support %K. - (init_dynamic_diag_info): Likewise. - -2007-09-26 David Daney - - PR target/33479 - * config/mips/mips.md (sync_compare_and_swap, sync_old_add, - sync_new_add, sync_old_, sync_new_, - sync_old_nand, sync_new_nand, - sync_lock_test_and_set): Fix '&' constraint modifiers. - Update length attributes. - (sync_add, sync_sub, sync_old_sub, - sync_new_sub, sync_, sync_nand): Update - length attributes. - * config/mips/mips.h (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, - MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, - MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Add - post-loop sync. - -2007-09-26 Richard Guenther - - PR tree-optimization/33563 - * tree-ssa-dse.c (get_use_of_stmt_lhs): Rename to ... - (get_kill_of_stmt_lhs): ... this. Re-structure. Handle - aggregate stores. - (dse_optimize_stmt): Call get_kill_of_stmt_lhs instead of - get_use_of_stmt_lhs. - -2007-09-26 Joseph Myers - - PR c/25309 - * c-common.c (complete_array_type): Diagnose too-large arrays and - set type to error_mark_node. - -2007-09-26 Richard Guenther - - PR tree-optimization/30375 - PR tree-optimization/33560 - * tree-ssa-dse.c (get_use_of_stmt_lhs): Give up on uses - with calls. - - Revert - 2006-05-22 Aldy Hernandez - - * tree-ssa-dse.c (aggregate_vardecl_d): New. - (dse_global_data): Add aggregate_vardecl field. - (dse_possible_dead_store_p): New. - Add prev_defvar variable. - Allow immediate uses and previous immediate uses to differ - if they are setting different parts of the whole. - (get_aggregate_vardecl): New. - (dse_record_partial_aggregate_store): New. - (dse_whole_aggregate_clobbered_p): New. - (dse_partial_kill_p): New. - Call dse_maybe_record_aggregate_store(). - When checking whether a STMT and its USE_STMT refer to the - same memory address, check also for partial kills that clobber - the whole. - Move some variable definitions to the block where they are used. - (aggregate_vardecl_hash): New. - (aggregate_vardecl_eq): New. - (aggregate_vardecl_free): New. - (aggregate_whole_store_p): New. - (tree_ssa_dse): Initialize and free aggregate_vardecl. - Mark which aggregate stores we care about. - -2007-09-25 DJ Delorie - - PR target/33551 - * config/m32c/m32c.c (m32c_immd_dbl_mov): Use INTVAL instead of XINT. - -2007-09-25 Michael Meissner - - PR target/33524 - * config/i386/i386.c (ix86_expand_sse5_unpack): Change to call - gen_sse5_pperm_sign_v4si_v2di and gen_sse5_pperm_zero_v4si_v2di - for vector int32 -> int64 conversions. Don't write beyond the end - of the allocated vector for int32 -> int64 conversions. - -2007-09-25 Revital Eres - - * config/rs6000/paired.h (paired_sel): New. - * config/rs6000/rs6000.c (bdesc_3arg): Add selv2sf4. - (rs6000_expand_ternop_builtin): Pass zero const_double operand - when expanding selv2sf. - * config/rs6000/rs6000.h (rs6000_builtins): Add - PAIRED_BUILTIN_SELV2SF4. - -2007-09-25 Joseph Myers - - PR c/32295 - * c-typeck.c (default_conversion): Call require_complete_type - before perform_integral_promotions. - (build_unary_op): Call require_complete_type except for ADDR_EXPR. - (build_c_cast): Call require_complete_type except for casts to - void types. - (convert_for_assignment): Call require_complete_type. - -2007-09-25 Revital Eres - - * config/spu/spu.md: Fix doloop pattern. - -2007-09-25 Bernd Schmidt - - * config/bfin/bfin.c (expand_prologue_reg_save, - expand_epilogue_reg_restore): Code to save and restore I/M/B/L regs - and ASTAT moved here... - (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): - ... from here. New argument ALL; callers changed. - (n_regs_saved_by_prologue): Count ASTAT for plain saveall functions. - (bfin_expand_prologue, bfin_expand_epilogue): Deal with functions that - have the "saveall" attribute. - -2007-09-25 Hans-Peter Nilsson - - * config/mmix/mmix.h (FUNCTION_INCOMING_ARG_REGNO_P): Don't define - bogus target macro. - (INCOMING_REGNO, OUTGOING_REGNO): Define. - * config/mmix/mmix.c (mmix_opposite_regno): New function. - * config/mmix/mmix-protos.h (mmix_opposite_regno): Prototype. - - * config/mmix/mmix.md ("*cmpcc_folded"): In condition, gate - with REG_P tests before REGNO access. - -2007-09-24 DJ Delorie - - PR target/31482 - * config/m32c/cond.md (stzx_reversed_): Add an output - constraint. - (movqicc__): Likewise. - (movhicc__): Likewise. - -2007-09-24 Rask Ingemann Lambertsen - - PR target/33184 - * config/m32c/m32c.c (m32c_eh_return_data_regno): Leave an address - register for reload. - -2007-09-24 Danny Smith - - PR c++/14688 - * config/i386/i386.c (ix86_comp_type_attributes): Check - METHOD_TYPE too. - -2007-09-24 Roman Zippel - - * config/m68k/m68k.h (ASM_OUTPUT_ALIGN_WITH_NOP): New, use - "move.l %a4,%a4" to produce nops. - * config/m68k/m68k.c (override_options): Reset align options, - if neccessary align macro isn't avaible. - -2007-09-24 Roman Zippel - - config/m68k/linux.h (PREFERRED_STACK_BOUNDARY): New. - -2007-09-24 Roman Zippel - - * config/m68k/m68k.c (strict_low_part_peephole_ok): Don't leave - the basic block. - * config/m68k/m68k.md (movsi_m68k): Allow certain constant when - reload is completed. - (peephole pattern): Convert most of them to RTL peephole pattern. - -2007-09-24 Roman Zippel - - * config/m68k/m68k.c (notice_update_cc): Recognize fp compare - (moved from fp compare patterns). - * config/m68k/m68k.md (cmp, cmp_68881, cmp_cf): - Cleanup predicates to relieve reload. - (conditional_trap): Reject conditional trap with fp condition. - * config/m68k/predicates.md (fp_src_operand): New, reject - certain constants early. - -2007-09-24 Roman Zippel - - * final.c (final_scan_insn): Remove accidentally duplicated code. - -2007-09-24 Andrew Pinski - - * config.gcc (powerpc*-*-*): --with-cpu=cell is a 64bit CPU. - Allow --with-tune=cell and --with-cpu=cell. - -2007-09-24 David Edelsohn - - * config/rs6000/rs6000-protos.h (rs6000_emit_swrsqrtsf): Declare. - * config/rs6000/rs6000.opt (swdiv): Change option to ... - (recip): this. - * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): New - function. - (TARGET_BUILTIN_RECIPROCAL): Use it. - (rs6000_builtin_expand): Expand recip, recipf, and rsqrtf. - (rs6000_init_builtins): Initialize recip, recipf, and rsqrtf. - (rs6000_emit_swrsqrtsf): New. - * config/rs6000/rs6000.h (rs6000_builtins): Add recip, recipf, and - rsqrtf. - * config/rs6000/rs6000.md (UNSPEC_RSQRT): Define. - (divsf3): Remove swdiv support. - (recipsf3): New. - (rsqrtsf2): New. - (rsqrt_internal1): New. - (divdf3): Remove swdiv support. - (reciptdf3): New. - -2007-09-24 Jakub Jelinek - - PR c++/33506 - * langhooks.h (struct lang_hooks_for_types): Add type_hash_eq - field. - * langhooks-def.h (LANG_HOOKS_TYPE_HASH_EQ): Define. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_TYPE_HASH_EQ. - * tree.c (type_hash_eq): For FUNCTION_TYPE use - lang_hooks.type.type_hash_eq in addition to generic tests. - -2007-09-24 Pranav Bhandarkar - Ramana Radhakrishnan - - * tree-inline.h (eni_weights): Add field target_builtin_cost to - reflect the cost per call to a target specific builtin. - * tree-inline.c (estimate_num_insns_1): If it is a CALL_EXPR for a - call to a target specific builtin, then use target_builtin_call_cost. - (init_inline_once): Initialize target_builtin_call_cost field. - -2007-09-24 Kai Tietz - - PR middle-end/33472 - * config/i386/i386.c (return_in_memory_ms_64): Handle return types for - complex types. - -2007-09-23 H.J. Lu - - * configure.ac (ld_vers): Support GNU linker version xx.xx.* - * configure: Regenerated. - -2007-09-23 Ollie Wild - - * fold-const.c (fold_binary): Fold BIT_AND_EXPR's with a pointer - operand. - (get_pointer_modulus_and_residue): New function. - -2007-09-23 Richard Sandiford - - * config/mips/mips.c (build_mips16_call_stub): On 64-bit targets, - combine an SC return value into a single register. - -2007-09-23 Richard Sandiford - - * opth-gen.awk (target_flags_explicit): Declare. - * toplev.h (target_flags_explicit): Delete declaration. - * toplev.c (target_flags): Likewise. - * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete. - (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags. - Never return true for TARGET_MIPS16. - * config/mips/mips.c (mips_llsc): Delete. - (mips_handle_option): Remove -mllsc handling. - (mips_strip_unspec_address): Tweak comment. - * config/mips/mips.opt (mllsc): Use a target mask. - -2007-09-23 Richard Sandiford - - * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to - word_mode as well as Pmode. - -2007-09-23 Richard Sandiford - - * function.c (assign_parm_setup_block): Explicitly convert BLKmode - parameters from word_mode to the subword type if such a truncation - is not a no-op. - -2007-09-23 Jakub Jelinek - - * configure.ac (MAKEINFO): Handle makeinfo version 4.10 and above. - * configure: Regenerated. - -2007-09-23 Jan Hubicka - - * params.def (INLINE_CALL_COST): Set to 12. - * invoke.texi (inline-call-cost): Update default value. - -2007-09-23 Eric Botcazou - - * config/alpha/alpha.md (movti): Use operand_subword for the split. - -2007-09-23 Ayal Zaks - Revital Eres - - * modulo-sched.c (doloop_register_get): Rewrite the loop which - checks whether the count_reg is found outside the control part. - -2007-09-23 Jakub Jelinek - - * expr.c (expand_expr_real_1) : Use get_callee_fndecl - instead of checking CALL_EXPR_FN directly to test for builtins. - If error or warning attributes are present, print - error resp. warning. - * c-common.c (handle_error_attribute): New function. - (c_common_attribute_table): Add error and warning - attributes. - * doc/extend.texi: Document error and warning attributes. - - * tree.h (block_nonartificial_location): New prototype. - * tree.c (block_nonartificial_location): New function. - * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial - if artificial attribute is present on abstract inline decl. - * c-common.c (handle_artificial_attribute): New function. - (c_common_attribute_table): Add artificial attribute. - * final.c (override_filename, override_linenum): New variables. - (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename - and override_linenum if inside of a block inlined from - __attribute__((__artificial__)) function. - (notice_source_line): Honor override_filename and override_linenum. - * doc/extend.texi: Document __attribute__((__artificial__)). - * config/i386/emmintrin.h: Add __artificial__ attribute to - all __always_inline__ functions. - * config/i386/mmintrin.h: Likewise. - * config/i386/tmmintrin.h: Likewise. - * config/i386/mm3dnow.h: Likewise. - * config/i386/pmmintrin.h: Likewise. - * config/i386/ammintrin.h: Likewise. - * config/i386/xmmintrin.h: Likewise. - * config/i386/smmintrin.h: Likewise. - * config/i386/bmmintrin.h: Likewise. - * config/i386/mmintrin-common.h: Likewise. - - PR middle-end/28755 - * expr.c (expand_constructor): New function. - (expand_expr_real_1) : Call it. - (expand_expr_real_1) : Call it if VALUE is - CONSTRUCTOR. - -2007-09-23 Richard Sandiford - - * config/mips/mips.c (dump_constants_1): Generalize to include - fractional and accumulator modes. - -2007-09-23 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_DSP, ISA_HAS_DSPR2): New macros. - * config/mips/mips.c (mips_set_mips16_mode): Don't clear the DSP - flags for MIPS16. - (override_options): Check TARGET_HARD_FLOAT_ABI instead of - TARGET_HARD_FLOAT when testing whether -mpaired-single is - supported. - (mips_conditional_register_usage): Check ISA_HAS_DSP instead of - TARGET_DSP. - * config/mips/constraints.md (ka): Check ISA_HAS_DSPR2 instead of - TARGET_DSPR2. - * config/mips/mips.md (ANYF): Require TARGET_HARD_FLOAT for V2SF. - (mulv2sf3, movv2sf, movv2sf_hardfloat_64bit): Require - TARGET_HARD_FLOAT. - (mulsidi3_32bit_internal, msubsidi4, maddsidi4): Check - ISA_HAS_DSPR2 instead of TARGET_HAS_DSPR2. - * config/mips/mips-dsp.md: Use ISA_HAS_DSP instead of TARGET_HAS_DSP - throughout. - * config/mips/mips-dspr2.md: Likewise ISA_HAS_DSPR2 and - TARGET_HAS_DSPR2. - * config/mips/mips-fixed.md: Use ISA_HAS_DSP and ISA_HAS_DSPR2 - instead of TARGET_HAS_DSP and TARGET_HAS_DSPR2. - * config/mips/mips-ps-3d.md: Add TARGET_HARD_FLOAT to V2SF patterns. - -2007-09-22 Jason Merrill - - PR c++/19407 - * attribs.c (lookup_attribute_spec): Split out... - (decl_attributes): From here. - * tree.h: Declare it. - -2007-09-22 Richard Sandiford - - * doc/sourcebuild.texi: Document dg-add-options mips16_attribute. - -2007-09-22 Eric Botcazou - - * tree-inline.c (remap_type_1): Correctly chain variants. - -2007-09-22 Richard Guenther - - PR tree-optimization/33146 - * fold-const.c (fold_binary): Use the original tree for negating. - * tree.h (STRIP_SIGN_NOPS): Converting from or to pointer - also changes "sign". - -2007-09-22 Eric Botcazou - - PR target/32325 - * except.c (finish_eh_generation): Call commit_edge_insertions if - there are insns queued on the entry edge. - * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns on - the entry edge. - -2007-09-22 Richard Sandiford - - * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. - -2007-09-19 Michael Meissner - - * config/i386/i386.c: Delete trailing whitespace. - * config/i386/i386.h: Ditto. - * config/i386/bmmintrin.h: Ditto. - * config/i386/sync.md: Ditto. - * config/i386/ppro.md: Ditto. - * config/i386/mmx.md: Ditto. - * config/i386/constraints.md: Ditto. - * config/i386/sse.md: Ditto. - * config/i386/athlon.md: Ditto. - * config/i386/i386.md: Ditto. - -2007-09-21 Richard Guenther - - PR tree-optimization/33508 - * tree-ssa-alias.c (mark_aliases_call_clobbered): Avoid - quadratic loop by keeping a bitmap of variables we have - to clobber all subvariables for. - (set_initial_properties): Likewise. - -2007-09-21 Richard Sandiford - - * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Delete. - -2007-09-20 Nigel Stephens - Chao-ying Fu - - * c-decl.c (finish_declspecs): When _Sat is used without - _Fract or _Accum, set the default type to cts_fract. - This avoids a warning of "type defaults to int". - -2007-09-20 Joseph Myers - - * c-decl.c (check_bitfield_type_and_width): Don't allow _Bool - bit-fields wider than one bit. - -2007-09-20 Jakub Jelinek - - PR debug/33316 - * dwarf2out.c (modified_type_die): Handle TYPE_DECL with NULL - DECL_NAME. - * dbxout.c (dbxout_type): Likewise. - - PR c/33238 - PR c/27301 - * gimplify.c (gimplify_vla_decl): New function. - (gimplify_decl_expr): Move VLA decl handling to gimplify_vla_decl. - Call it. - (gimplify_target_expr): Handle variable length TARGET_EXPRs. - -2007-09-20 Richard Sandiford - - * doc/invoke.texi (-minterlink-mips16): Document. - * config/mips/mips.opt (minterlink-mips16): New option. - * config/mips/mips.c (mips_function_ok_for_sibcall): Handle - -minterlink-mips16 - -2007-09-20 Joseph Myers - - * doc/extend.texi (Attribute Syntax): Remove old speculative - future direction. - -2007-09-20 Mark Shinwell - - * combine.c: Include cgraph.h. - (setup_incoming_promotions): Rework to allow more aggressive - elimination of sign extensions when all call sites of the - current function are known to lie within the current unit. - -2007-09-20 Richard Sandiford - - * dse.c (find_shift_sequence): No-op rework of control flow. - -2007-09-19 Richard Sandiford - - * config/mips/mips.c (build_mips16_call_stub): Tidy. Fix second - GPR for DCmode on 64-bit targets. Remove redundant fallback. - -2007-09-19 Andrew Pinski - - * cfgexpand.c (dump_stack_var_partition): Use the correct - index for the offset. - -2007-09-19 Joseph Myers - - * config/mips/sde.h: Switch to GPLv3. - -2007-09-19 Eric Botcazou - - * tree-sra.c (decide_block_copy): Decide if there are groups. - -2007-09-19 Roman Zippel - - * config/m68k/m68k.c (output_move_himode): Remove jump table - recognition. - config/m68k/m68k.md (lea): Likewise. - * config/m68k/m68k.c (print_operand_address): Use simple pc - relative addressing. - -2007-09-19 Bernd Schmidt - - * doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument. - * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument - default definition. - (asm_insn_count): Pass template as second argument to it. - * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. - * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. - * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. - * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. - * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. - (sh_insn_length_adjustment): Pass template as second argument to it. - * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro. - - * config/bfin/bfin.md (define_asm_attributes): New. - -2007-09-19 Jie Zhang - - * config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h - to tm_file. - * config/bfin/print-sysroot-suffix.sh: New. - * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove. - (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, - MULTILIB_EXCEPTIONS): Redefine with new multilibs. - * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove. - (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, - MULTILIB_EXCEPTIONS): Redefine with new multilibs. - * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove. - (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, - MULTILIB_EXCEPTIONS): Redefine with new multilibs. - (linux-sysroot-suffix.h): New target. - * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask. - (mspecld-anomaly): Likewise. - * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from - (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525, - BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542, - BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549. - (bfin_si_revision): Declare. - (bfin_workarounds): Declare. - (WA_SPECULATIVE_LOADS): Define. - (ENABLE_WA_SPECULATIVE_LOADS): Define. - (WA_SPECULATIVE_SYNCS): Define. - (ENABLE_WA_SPECULATIVE_SYNCS): Define. - * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o. - (LIB_SPEC): Add %s to the linker scripts. - Use proper linker script for bf522, bf525, bf527, - bf538, bf539, bf542, bf544, bf548, and bf549. - * config/bfin/bfin.c (bfin_si_revision): Define. - (bfin_workarounds): Define. - (struct bfin_cpu): New. - (bfin_cpus): New. - (bfin_handle_option): Handle silicon revision part of -mcpu option. - (override_options): Set bfin_workarounds. - (length_for_loop): Replace TARGET_CSYNC_ANOMALY with - ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with - ENABLE_WA_SPECULATIVE_LOADS. - (bfin_reorg): Likewise. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define - macros for bf522, bf525, bf527, bf538, bf539, - bf542, bf544, bf548, and bf549. - Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed. - Don't define __ID_SHARED_LIB__ when -msep-data. - (TARGET_DEFAULT): Define as 0. - (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option. - * doc/invoke.texi (Blackfin Options): Document silicon - revision part of -mcpu option and it now accepts bf522, bf525, - bf527, bf538, bf539, bf542, bf544, bf548, and bf549. - -2007-09-18 Kaveh R. Ghazi - - * alias.c (memory_modified_1): Deconstify. - (memory_modified_in_insn_p): Don't use const_note_stores. - * rtl.h (const_note_stores): Delete. - * rtlanal.c (const_note_stores): Likewise. - -2007-09-18 Richard Sandiford - - * dse.c (find_shift_sequence): Temporarily revert to forbidding - word shifts. - -2007-09-18 Rask Ingemann Lambertsen - - PR target/33388 - PR target/33397 - * config/fr30/fr30.md (addsi3): Check REG_P() before calling REGNO(). - (addsi_small_int): Likewise. - (addsi_big_int): Use rtx_equal_p() instead of REGNO() comparison. - (one_cmplsi2): Likewise. - (negsi2): Delete. - (enter_func): Expand insn using hard_frame_pointer_rtx and - stack_pointer_rtx. - (*enter_func): New. - * config/fr30/fr30.c (fr30_expand_prologue): Check for - hard_frame_pointer_rtx instead of using REGNO() check. - Properly sign extend GEN_INT() argument. - -2007-09-18 Roman Zippel - - * config/m68k/m68k.c (override_options): Remove USE_GAS, - use %. syntax. - (output_dbcc_and_branch, output_scc_di): Replace all jbcc - alternatives with just jcc. - * config/m68k/m68k.md (addsi_lshrsi_31, beq0_di, bne0_di, - bge0_di, blt0_di, bgtu, bltu, bgeu, bleu, bgtu_rev, - bltu_rev, bgeu_rev, bleu_rev, jump, dbne_hi, dbne_si, - dbge_hi, dbge_si): Likewise. - -2007-09-18 Roman Zippel - - * config/m68k/m68k.md (beq, bne, bgt, blt, bge, ble, bordered, - bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, beq_rev, - bne_rev, bgt_rev, blt_rev, bge_rev, ble_rev, bordered_rev, - bunordered_rev, buneq_rev, bunge_rev, bungt_rev, bunle_rev, - bunlt_rev, bltgt_rev): Replace all fbcc with fjcc. - -2007-09-18 Maxim Kuvyrkov - - * config/m68k/m68k-devices.def (51qe): New device. - * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it - to all uses of FL_FOR_isa_c for compatibility. - (all_microarchs): Add cfv1 microarchitecture. - (m68k_handle_option): Handle m51qe option. - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE. - (TUNE_CFV1): New macro. - (enum uarch_type): Add ucfv1. - * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture. - -2007-09-18 Richard Guenther - - PR tree-optimization/31863 - * tree-ssa-structalias.c (create_variable_info_for): Always - free the fieldstack. - -2007-09-18 Dorit Nuzman - - * opts.c (decode_options): Enable vectorization under -O3. - -2007-09-18 Richard Guenther - - PR tree-optimization/33340 - * tree-ssa-sccvn.c (set_ssa_val_to): Do not set values to - SSA_NAMEs that occur in abnormal PHI nodes. - -2007-09-17 Kaveh R. Ghazi - - * tree-cfg.c (is_ctrl_altering_stmt, tree_block_ends_with_call_p): - Don't use const_get_call_expr_in. - * tree-gimple.c (const_get_call_expr_in): Delete. - * tree-gimple.h (const_get_call_expr_in): Likewise. - -2007-09-18 Richard Sandiford - - * df-scan.c (df_notes_rescan): Do nothing if the instruction does - not yet have a basic block. - * dse.c (find_shift_sequence): Don't set DF_NO_INSN_RESCAN. - -2007-09-18 Richard Sandiford - - * config/mips/mips.c (mips_file_start): Add ".previous" directives - to both ".section"s. - -2007-09-17 Richard Sandiford - - * config/mips/mips.c (mips_output_mi_thunk): Use - mips_function_ok_for_sibcall and const_call_insn_operand - to determine if a direct sibcall is allowed. Use - mips_classify_symbol to determine a global pointer is needed. - -2007-09-17 Richard Sandiford - - * config/mips/mips.md (*clear_upper32): Use "W" as the memory operand. - -2007-09-17 Chao-ying Fu - Nigel Stephens - - * config/fixed-bit.h: New file. - * config/fixed-bit.c: New file. - * doc/libgcc.texi (Fixed-point fractional library routines): New node. - -2007-09-18 Jakub Jelinek - - * c-format.h (format_kind_info): Add alloc_char field. - * c-format.c (scanf_flag_specs): Add 'm'. - (scanf_flag_pairs): Add 'a', 'm' pair. - (scan_char_table): Allow 'm' modifier for c, s, [, C and S. - (format_types_orig): Add alloc_char fields. - (check_format_info_main): Rename aflag to alloc_flag. - Handle fki->alloc_char. modifier after width and before length - modifiers. Move FMT_FLAG_SCANF_A_KLUDGE handling before - length modifiers as well. - * config/sol2-c.c (solaris_format_types): Add alloc_char field. - - PR middle-end/33423 - * builtins.c (expand_builtin_memory_chk): Handle COMPOUND_EXPRs - returned by build_call_expr. - -2007-09-17 Eric Botcazou - - * tree-sra.c (maybe_lookup_element_for_expr) : Return - NULL for variable-sized records too. - (sra_walk_expr) : Stop at variable-sized records too. - -2007-09-17 Tom Tromey - - * c-decl.c (pushdecl): Don't set DECL_LANG_SPECIFIC. - (c_builtin_function): Likewise. - (grokdeclarator): Likewise. - -2007-09-17 Zdenek Dvorak - - PR rtl-optimization/26449 - * loop-invariant.c (move_invariant_reg): Do not use force_operand. - (seq_insns_valid_p): Removed. - -2007-09-17 Eric Botcazou - - * tree-nomudflap.c (gate_mudflap): New static function. - (pass_mudflap_1): Use it as gate function. - (pass_mudflap_2): Likewise. - -2007-09-17 Jan Hubicka - - PR middle-end/33348 - PR target/33406 - * loop-invariant.c (move_invariant_reg): Unshare sequence. - -2007-09-17 Victor Kaplansky - - PR tree-optimization/33319 - * tree-vect-analyze.c (vect_same_range_drs): New. - (vect_vfa_range_equal): New. - (vect_is_duplicate_ddr): Removed. - (vect_mark_for_runtime_alias_test): Do not perform marking when - optimizing for size or max_param for alias checking is zero. - Move the function before vect_analyze_data_ref_dependence. - (vect_analyze_data_ref_dependence): Add call to - vect_mark_for_runtime_alias_test in two cases when dependence - is not clear. - (vect_analyze_data_ref_dependences): Do not call to - vect_mark_for_runtime_alias_test. - (vect_prune_runtime_alias_test_list): New. - (vect_analyze_loop): Add call to vect_prune_runtime_alias_test_list. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): - Update vec_outside_cost. - (vect_vfa_segment_size): More compact code, use TYPE_SIZE_UNIT. - (vect_create_cond_for_alias_checks): Build the base address of data - reference from DR_GROUP_FIRST_DR. - (vect_loop_versioning): New. - (vect_transform_loop): Add a call to vect_loop_versioning. - Remove factored out code. - -2007-09-16 John David Anglin - - PR middle-end/33273 - * expr.c (store_expr): Call adjust_address to change mode of dest_mem - to BLKmode. - -2007-09-16 Richard Sandiford - - * dse.c (find_shift_sequence): Allow word as well as subword shifts. - Do the tentative shift expansion with the DF_NO_INSN_RESCAN flag set. - Fix the call to insn_rtx_cost. Skip access sizes that require a - real truncation of the store register. Use convert_move instead - of gen_lowpart when narrowing the result. - (replace_read): Use convert_move instead of gen_lowpart when - narrowing the store rhs. - -2007-09-16 Richard Sandiford - - * config/mips/mips.md (SHORT): Fix long line. - (SUBDI): New mode iterator. Extend the shift-and-truncate insns - to QImode and HImode. - -2007-09-16 Richard Sandiford - - * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Define. - -2007-09-15 Zdenek Dvorak - - * tree-parloops.c: New file. - * tree-ssa-operands.h (free_stmt_operands): Declare. - * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic - block. - * tree-pass.h (pass_parallelize_loops): Declare. - * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for - virtual operands. - (build_omp_regions_1): Allow analysing just a single OMP region and - its subregions. - ( build_omp_regions_root, omp_expand_local): New functions. - (build_omp_regions): Add argument to build_omp_regions_1 call. - * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when - autoparallelization is run. - * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New. - * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops, - pass_parallelize_loops): New. - * common.opt (ftree-parallelize-loops): New. - * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail, - parallelize_loops): Declare. - (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed. - * Makefile.in (tree-parloops.o): Added. - * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail): - New functions. - (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge. - (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for - one extra edge as well. - (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy. - Use VEC_free to free doms vector. - (move_block_to_fn): Update loop info. Remove phi nodes for virtual - operands. Recompute operand caches in the new function. - (move_sese_region_to_fn): Update loop info. - * passes.c (init_optimization_passes): Add pass_parallelize_loops. - * tree-ssa-operands.c (free_stmt_operands): New function. - - * doc/passes.texi: Document autoparallelization. - * doc/invoke.texi (-ftree-parallelize-loops): New option. - -2007-09-15 John David Anglin - - PR target/33062 - * pa.c (function_value): Use GET_MODE_BITSIZE instead of - TYPE_PRECISION. - -2007-09-15 Dorit Nuzman - - * tree-vect-transform.c (vect_get_vec_defs_for_stmt_copy): check if - the VEC is not NULL. - (vectorizable_type_demotion, vectorizable_type_promotion): Check that - get_vectype_for_scalar_type succeeded. - (vectorizable_conversion): Likewise. - -2007-09-14 Jan Hubicka - - * config/i386/i386.md (*floatdi2_i387): Guard against - TARGET_64BIT. - -2007-09-14 Uros Bizjak - - PR target/33438 - * config/i386/i386.md (fmodxf3): Copy operands[2] to temporary - register when operands[2] equals operands[1]. - (remainderxf3): Ditto. - -2007-09-14 Sandra Loosemore - Nigel Stephens - - * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document. - * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. - (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration. - (_Unwind_ForcedUnwind): Likewise. - (_Unwind_Resume): Likewise. - (_Unwind_Resume_or_Rethrow): Likewise. - (_Unwind_Backtrace): Likewise. - (_Unwind_SjLj_RaiseException): Likewise. - (_Unwind_SjLj_ForcedUnwind): Likewise. - (_Unwind_SjLj_Resume): Likewise. - (_Unwind_SjLj_Resume_or_Rethrow): Likewise. - * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE - to definition. - (_Unwind_ForcedUnwind): Likewise. - (_Unwind_Resume): Likewise. - (_Unwind_Resume_or_Rethrow): Likewise. - (_Unwind_Backtrace): Likewise. - * unwind-compat.c (_Unwind_Backtrace): Likewise. - (_Unwind_ForcedUnwind): Likewise. - (_Unwind_RaiseException): Likewise. - (_Unwind_Resume): Likewise. - (_Unwind_Resume_or_Rethrow): Likewise. - - * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force - nomips16 mode when IN_LIBGCC2 with hard float. - -2007-09-14 Richard Sandiford - - * config/mips/sdemtk.opt: Update to GPLv3. - * config/mips/sdemtk.h: Likewise. - -2007-09-14 Nigel Stephens - - * config.gcc (mips*-*-linux*): Recognise mipsisa32r2 and set - MIPS_ISA_DEFAULT appropriately. Don't make soft-float the default - for mipsisa32-*-linux*. - -2007-09-14 Nigel Stephens - David Ung - Thiemo Seufer - Richard Sandiford - - * config.gcc (mips*-sde-elf*): Add support for the SDE C libraries. - * configure.ac: Add a mipssde threading type. - * configure: Regenerate. - * config/mips/sdemtk.h: New file. - * config/mips/t-sdemtk: Likewise. - * config/mips/sdemtk.opt: Likewise. - * gthr-mipssde.h: Likewise. - * config/mips/sde.h (FUNCTION_PROFILER): Move to config/mips/sdemtk.h. - * config/mips/mips.h (MIPS_SAVE_REG_FOR_PROFILING_P): New macro. - (MIPS_ICACHE_SYNC): New macro, split from ... - * config/mips/mips.md (clear_cache): ...here. - * config/mips/mips.c (mips_save_reg_p): Check - MIPS_SAVE_REG_FOR_PROFILING_P on profiled functions. - (build_mips16_function_stub): Use targetm.strip_name_encoding. - (build_mips16_call_stub): Likewise. - -2007-09-14 Richard Sandiford - - * Makefile.in (stmp-int-hdrs): Depend on fixinc_list. - -2007-09-14 Jakub Jelinek - - PR target/32337 - * config/ia64/ia64.c (find_gr_spill): Don't decrement - current_frame_info.n_local_regs. Don't return emitted local regs. - (ia64_compute_frame_size): Improve unwind hack to put - RP, PFS, FP in that order by allowing some of the registers - been already emitted, as long as they are emitted to the - desired register. - -2007-09-14 Ulrich Weigand - - * config/spu/vmx2spu.h (vec_extract, vec_insert, vec_lvlx, - vec_lvlxl, vec_lvrx, vec_lvrxl, vec_promote, vec_splats, - vec_stvlx, vec_stvlxl, vec_stvrx, vec_stvrxl): New intrinsics. - -2007-09-13 Eric Christopher - Kenneth Zadeck - - * dse.c (find_shift_sequence): New function. - (replace_read): Add case to remove read if it requires shift. - * config/i386/i386.c (ix86_expand_prologue): Fixed typo in comment. - -2007-09-13 Tom Tromey - - * c-common.c (fname_as_string): Update. - * c-parser.c (c_parser) : New field. - (c_lex_one_token): Update. Add 'parser' argument. - (c_parser_simple_asm_expr): Update. - (c_parser_attributes): Update. - (c_parser_asm_statement): Update. - (c_parser_asm_operands): Update. - (c_parser_peek_token): Update. - (c_parser_peek_2nd_token): Update. - * c-lex.c (c_lex_string_translate): Remove. - (c_lex_return_raw_strings): Likewise. - (c_lex_with_flags): Added 'lex_flags' argument. - (lex_string): Added 'translate' argument. - * c-pragma.h (c_lex_with_flags): Update. - (c_lex_string_translate, c_lex_return_raw_strings): Remove. - (C_LEX_STRING_NO_TRANSLATE): New define. - (C_LEX_RAW_STRINGS): Likewise. - -2007-09-13 Bernd Schmidt - - From Jie Zhang: - * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_ONES, - BFIN_BUILTIN_CPLX_MUL_16_S40, BFIN_BUILTIN_CPLX_MAC_16_S40, - BFIN_BUILTIN_CPLX_MSU_16_S40, and BFIN_BUILTIN_CPLX_SQU. - (bfin_init_builtins): Initialize __builtin_bfin_ones, - __builtin_bfin_min_fr1x16, __builtin_bfin_max_fr1x16, - __builtin_bfin_min_fr1x32, __builtin_bfin_max_fr1x32, - __builtin_bfin_cmplx_add, __builtin_bfin_cmplx_sub, - __builtin_bfin_cmplx_mul_s40, __builtin_bfin_cmplx_mac_s40, - __builtin_bfin_cmplx_msu_s40 and __builtin_bfin_csqu_fr16. - (bdesc_1arg): Add __builtin_bfin_ones. - (bfin_expand_builtin): Expand __builtin_bfin_cmplx_mul_s40, - __builtin_bfin_cmplx_mac_s40, __builtin_bfin_cmplx_msu_s40, - and __builtin_bfin_csqu_fr16. - * config/bfin/bfin.md (UNSPEC_ONES): New constant. - (ones): New define_insn. - (ssaddhi3_parts): New define_insn. - (sssubhi3_parts): New define_insn. - (flag_mulhi_parts): New define_insn. - -2007-09-13 Seongbae Park - - * common.opt (femit-class-debug-always): Turn off by default. - -2007-09-13 Bernd Schmidt - - * config/bfin/bfin.md (reload_outpdi, reload_inpdi): New patterns. - * config/bfin/bfin.c (bfin_secondary_reload): Make sure we use them. - -2007-09-13 James E. Wilson - - PR tree-optimization/33389 - * tree-ssa-operands.c (append_vuse): If ann->in_vdef_list true, - then set build_loads before returning. - -2007-09-13 Sandra Loosemore - David Ung - - * config/mips/mips.h (ASM_OUTPUT_REG_PUSH): Replace {d}subu with - {d}addiu and a negative immediate such that it works with MIPS16 - instructions. - -2007-09-13 H.J. Lu - - PR bootstrap/33418 - * configure.ac (ld_vers): Support Linux linker. - * configure: Regenerated. - -2007-09-13 Richard Sandiford - Sandra Loosemore - - * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Delete. - (SYMBOL_REF_MIPS16_FUNC_P): Delete. - * config/mips/mips.c (mips_attribute_table): Turn mips16 and - nomips16 into decl attributes. - (TARGET_INSERT_ATTRIBUTES): Override. - (TARGET_MERGE_DECL_ATTRIBUTES): Likewise. - (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Always return true. - (mips_mips16_type_p, mips_nomips16_type_p): Delete in favor of... - (mips_mips16_decl_p, mips_nomips16_decl_p): ...these new functions. - (mips_comp_type_attributes): Remove mips16 and nomips16 handling. - (mips_use_mips16_mode_p): Reimplement as a function that takes - a decl and considers only decl attributes. If the decl is nested - function, use its parent attributes. - (mips_function_ok_for_sibcall): Use mips_use_mips16_mode_p - instead of SYMBOL_REF_MIPS16_FUNC_P. - (mips_set_mips16_mode): Move call to sorry here from old - mips_use_mips16_mode_p. - (mflip_mips16_entry): New structure. - (mflip_mips16_htab): New variable. - (mflip_mips16_htab_hash, mflip_mips16_htab_eq): New functions. - (mflip_mips16_use_mips16_p, mips_insert_attributes): Likewise. - (mips_merge_decl_attributes): New function. - (mips_set_current_function): Reinstate call to mips_set_mips16_mode. - Use mips_use_mips16_mode_p. - (mips_output_mi_thunk): Use mips_use_mips16_mode_p instead of - SYMBOL_REF_MIPS16_FUNC_P. - (mips_encode_section_info): Don't set SYMBOL_FLAG_MIPS16_FUNC. - -2007-09-13 Richard Sandiford - - * c-parser.c (c_parser_struct_declaration): Check for a null return. - -2007-09-13 Francois-Xavier Coudert - - PR driver/33309 - * gcc.c (xputenv): Make argument const, and use CONST_CAST. - -2007-09-12 Michael Meissner - Dwarakanath Rajagopal - Tony Linthicum - - * tree.h (function_args_iterator): New type to iterate over - function arguments. - (FOREACH_FUNCTION_ARGS_PTR): Iterator macros for iterating over - function arguments providing a pointer to the argument. - (FOREACH_FUNCTION_ARGS): Iterator macros for iterating over - function arguments providing the argument. - (function_args_iter_init): Inline function to initialize - function_args_iterator. - (function_args_iter_cond_ptr): Inline function to return the next - pointer to hold the argument. - (function_args_iter_cond): Inline function to return the next - argument. - (function_args_iter_cond_next): Advance the function args iterator. - (stdarg_p): New function, return true if variable argument function. - (prototype_p): New function, return true if function is prototyped. - (function_args_count): New function, count the number of arguments - of a function. - - * tree.c (stdarg_p): New function, return true if variable - argument function. - (prototype_p): New function, return true if function is prototyped. - - * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. - (TARGET_ROUND): New macro for the round/ptest instructions which - are shared between SSE4.1 and SSE5. - (OPTION_MASK_ISA_ROUND): Ditto. - (OPTION_ISA_ROUND): Ditto. - (TARGET_FUSED_MADD): New macro for -mfused-madd swtich. - (TARGET_CPU_CPP_BUILTINS): Add SSE5 support. - - * config/i386/i386.opt (-msse5): New switch for SSE5 support. - (-mfused-madd): New switch to give users control over whether the - compiler optimizes to use the multiply/add SSE5 instructions. - - * config/i386/i386.c (m_AMD_MULTIPLE): Rename from - m_ATHLON_K8_AMDFAM10, and change all uses. - (enum pta_flags): Add PTA_SSE5. - (ix86_handle_option): Turn off 3dnow if -msse5. - (override_options): Add SSE5 support. - (print_operand): %Y prints comparison codes for SSE5 com/pcom - instructions. - (ix86_expand_sse_movcc): Add SSE5 support. - (ix86_expand_sse5_unpack): New function to use pperm to unpack a - vector type to the next largest size. - (ix86_expand_sse5_pack): New function to use pperm to pack a - vector type to the next smallest size. - (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic. - (IX86_BUILTIN_FMADDSD): Ditto. - (IX86_BUILTIN_FMADDPS): Ditto. - (IX86_BUILTIN_FMADDPD): Ditto. - (IX86_BUILTIN_FMSUBSS): Ditto. - (IX86_BUILTIN_FMSUBSD): Ditto. - (IX86_BUILTIN_FMSUBPS): Ditto. - (IX86_BUILTIN_FMSUBPD): Ditto. - (IX86_BUILTIN_FNMADDSS): Ditto. - (IX86_BUILTIN_FNMADDSD): Ditto. - (IX86_BUILTIN_FNMADDPS): Ditto. - (IX86_BUILTIN_FNMADDPD): Ditto. - (IX86_BUILTIN_FNMSUBSS): Ditto. - (IX86_BUILTIN_FNMSUBSD): Ditto. - (IX86_BUILTIN_FNMSUBPS): Ditto. - (IX86_BUILTIN_FNMSUBPD): Ditto. - (IX86_BUILTIN_PCMOV_V2DI): Ditto. - (IX86_BUILTIN_PCMOV_V4SI): Ditto. - (IX86_BUILTIN_PCMOV_V8HI): Ditto. - (IX86_BUILTIN_PCMOV_V16QI): Ditto. - (IX86_BUILTIN_PCMOV_V4SF): Ditto. - (IX86_BUILTIN_PCMOV_V2DF): Ditto. - (IX86_BUILTIN_PPERM): Ditto. - (IX86_BUILTIN_PERMPS): Ditto. - (IX86_BUILTIN_PERMPD): Ditto. - (IX86_BUILTIN_PMACSSWW): Ditto. - (IX86_BUILTIN_PMACSWW): Ditto. - (IX86_BUILTIN_PMACSSWD): Ditto. - (IX86_BUILTIN_PMACSWD): Ditto. - (IX86_BUILTIN_PMACSSDD): Ditto. - (IX86_BUILTIN_PMACSDD): Ditto. - (IX86_BUILTIN_PMACSSDQL): Ditto. - (IX86_BUILTIN_PMACSSDQH): Ditto. - (IX86_BUILTIN_PMACSDQL): Ditto. - (IX86_BUILTIN_PMACSDQH): Ditto. - (IX86_BUILTIN_PMADCSSWD): Ditto. - (IX86_BUILTIN_PMADCSWD): Ditto. - (IX86_BUILTIN_PHADDBW): Ditto. - (IX86_BUILTIN_PHADDBD): Ditto. - (IX86_BUILTIN_PHADDBQ): Ditto. - (IX86_BUILTIN_PHADDWD): Ditto. - (IX86_BUILTIN_PHADDWQ): Ditto. - (IX86_BUILTIN_PHADDDQ): Ditto. - (IX86_BUILTIN_PHADDUBW): Ditto. - (IX86_BUILTIN_PHADDUBD): Ditto. - (IX86_BUILTIN_PHADDUBQ): Ditto. - (IX86_BUILTIN_PHADDUWD): Ditto. - (IX86_BUILTIN_PHADDUWQ): Ditto. - (IX86_BUILTIN_PHADDUDQ): Ditto. - (IX86_BUILTIN_PHSUBBW): Ditto. - (IX86_BUILTIN_PHSUBWD): Ditto. - (IX86_BUILTIN_PHSUBDQ): Ditto. - (IX86_BUILTIN_PROTB): Ditto. - (IX86_BUILTIN_PROTW): Ditto. - (IX86_BUILTIN_PROTD): Ditto. - (IX86_BUILTIN_PROTQ): Ditto. - (IX86_BUILTIN_PROTB_IMM): Ditto. - (IX86_BUILTIN_PROTW_IMM): Ditto. - (IX86_BUILTIN_PROTD_IMM): Ditto. - (IX86_BUILTIN_PROTQ_IMM): Ditto. - (IX86_BUILTIN_PSHLB): Ditto. - (IX86_BUILTIN_PSHLW): Ditto. - (IX86_BUILTIN_PSHLD): Ditto. - (IX86_BUILTIN_PSHLQ): Ditto. - (IX86_BUILTIN_PSHAB): Ditto. - (IX86_BUILTIN_PSHAW): Ditto. - (IX86_BUILTIN_PSHAD): Ditto. - (IX86_BUILTIN_PSHAQ): Ditto. - (IX86_BUILTIN_FRCZSS): Ditto. - (IX86_BUILTIN_FRCZSD): Ditto. - (IX86_BUILTIN_FRCZPS): Ditto. - (IX86_BUILTIN_FRCZPD): Ditto. - (IX86_BUILTIN_CVTPH2PS): Ditto. - (IX86_BUILTIN_CVTPS2PH): Ditto. - (IX86_BUILTIN_COMEQSS): Ditto. - (IX86_BUILTIN_COMNESS): Ditto. - (IX86_BUILTIN_COMLTSS): Ditto. - (IX86_BUILTIN_COMLESS): Ditto. - (IX86_BUILTIN_COMGTSS): Ditto. - (IX86_BUILTIN_COMGESS): Ditto. - (IX86_BUILTIN_COMUEQSS): Ditto. - (IX86_BUILTIN_COMUNESS): Ditto. - (IX86_BUILTIN_COMULTSS): Ditto. - (IX86_BUILTIN_COMULESS): Ditto. - (IX86_BUILTIN_COMUGTSS): Ditto. - (IX86_BUILTIN_COMUGESS): Ditto. - (IX86_BUILTIN_COMORDSS): Ditto. - (IX86_BUILTIN_COMUNORDSS): Ditto. - (IX86_BUILTIN_COMFALSESS): Ditto. - (IX86_BUILTIN_COMTRUESS): Ditto. - (IX86_BUILTIN_COMEQSD): Ditto. - (IX86_BUILTIN_COMNESD): Ditto. - (IX86_BUILTIN_COMLTSD): Ditto. - (IX86_BUILTIN_COMLESD): Ditto. - (IX86_BUILTIN_COMGTSD): Ditto. - (IX86_BUILTIN_COMGESD): Ditto. - (IX86_BUILTIN_COMUEQSD): Ditto. - (IX86_BUILTIN_COMUNESD): Ditto. - (IX86_BUILTIN_COMULTSD): Ditto. - (IX86_BUILTIN_COMULESD): Ditto. - (IX86_BUILTIN_COMUGTSD): Ditto. - (IX86_BUILTIN_COMUGESD): Ditto. - (IX86_BUILTIN_COMORDSD): Ditto. - (IX86_BUILTIN_COMUNORDSD): Ditto. - (IX86_BUILTIN_COMFALSESD): Ditto. - (IX86_BUILTIN_COMTRUESD): Ditto. - (IX86_BUILTIN_COMEQPS): Ditto. - (IX86_BUILTIN_COMNEPS): Ditto. - (IX86_BUILTIN_COMLTPS): Ditto. - (IX86_BUILTIN_COMLEPS): Ditto. - (IX86_BUILTIN_COMGTPS): Ditto. - (IX86_BUILTIN_COMGEPS): Ditto. - (IX86_BUILTIN_COMUEQPS): Ditto. - (IX86_BUILTIN_COMUNEPS): Ditto. - (IX86_BUILTIN_COMULTPS): Ditto. - (IX86_BUILTIN_COMULEPS): Ditto. - (IX86_BUILTIN_COMUGTPS): Ditto. - (IX86_BUILTIN_COMUGEPS): Ditto. - (IX86_BUILTIN_COMORDPS): Ditto. - (IX86_BUILTIN_COMUNORDPS): Ditto. - (IX86_BUILTIN_COMFALSEPS): Ditto. - (IX86_BUILTIN_COMTRUEPS): Ditto. - (IX86_BUILTIN_COMEQPD): Ditto. - (IX86_BUILTIN_COMNEPD): Ditto. - (IX86_BUILTIN_COMLTPD): Ditto. - (IX86_BUILTIN_COMLEPD): Ditto. - (IX86_BUILTIN_COMGTPD): Ditto. - (IX86_BUILTIN_COMGEPD): Ditto. - (IX86_BUILTIN_COMUEQPD): Ditto. - (IX86_BUILTIN_COMUNEPD): Ditto. - (IX86_BUILTIN_COMULTPD): Ditto. - (IX86_BUILTIN_COMULEPD): Ditto. - (IX86_BUILTIN_COMUGTPD): Ditto. - (IX86_BUILTIN_COMUGEPD): Ditto. - (IX86_BUILTIN_COMORDPD): Ditto. - (IX86_BUILTIN_COMUNORDPD): Ditto. - (IX86_BUILTIN_COMFALSEPD): Ditto. - (IX86_BUILTIN_COMTRUEPD): Ditto. - (IX86_BUILTIN_PCOMEQUB): Ditto. - (IX86_BUILTIN_PCOMNEUB): Ditto. - (IX86_BUILTIN_PCOMLTUB): Ditto. - (IX86_BUILTIN_PCOMLEUB): Ditto. - (IX86_BUILTIN_PCOMGTUB): Ditto. - (IX86_BUILTIN_PCOMGEUB): Ditto. - (IX86_BUILTIN_PCOMFALSEUB): Ditto. - (IX86_BUILTIN_PCOMTRUEUB): Ditto. - (IX86_BUILTIN_PCOMEQUW): Ditto. - (IX86_BUILTIN_PCOMNEUW): Ditto. - (IX86_BUILTIN_PCOMLTUW): Ditto. - (IX86_BUILTIN_PCOMLEUW): Ditto. - (IX86_BUILTIN_PCOMGTUW): Ditto. - (IX86_BUILTIN_PCOMGEUW): Ditto. - (IX86_BUILTIN_PCOMFALSEUW): Ditto. - (IX86_BUILTIN_PCOMTRUEUW): Ditto. - (IX86_BUILTIN_PCOMEQUD): Ditto. - (IX86_BUILTIN_PCOMNEUD): Ditto. - (IX86_BUILTIN_PCOMLTUD): Ditto. - (IX86_BUILTIN_PCOMLEUD): Ditto. - (IX86_BUILTIN_PCOMGTUD): Ditto. - (IX86_BUILTIN_PCOMGEUD): Ditto. - (IX86_BUILTIN_PCOMFALSEUD): Ditto. - (IX86_BUILTIN_PCOMTRUEUD): Ditto. - (IX86_BUILTIN_PCOMEQUQ): Ditto. - (IX86_BUILTIN_PCOMNEUQ): Ditto. - (IX86_BUILTIN_PCOMLTUQ): Ditto. - (IX86_BUILTIN_PCOMLEUQ): Ditto. - (IX86_BUILTIN_PCOMGTUQ): Ditto. - (IX86_BUILTIN_PCOMGEUQ): Ditto. - (IX86_BUILTIN_PCOMFALSEUQ): Ditto. - (IX86_BUILTIN_PCOMTRUEUQ): Ditto. - (IX86_BUILTIN_PCOMEQB): Ditto. - (IX86_BUILTIN_PCOMNEB): Ditto. - (IX86_BUILTIN_PCOMLTB): Ditto. - (IX86_BUILTIN_PCOMLEB): Ditto. - (IX86_BUILTIN_PCOMGTB): Ditto. - (IX86_BUILTIN_PCOMGEB): Ditto. - (IX86_BUILTIN_PCOMFALSEB): Ditto. - (IX86_BUILTIN_PCOMTRUEB): Ditto. - (IX86_BUILTIN_PCOMEQW): Ditto. - (IX86_BUILTIN_PCOMNEW): Ditto. - (IX86_BUILTIN_PCOMLTW): Ditto. - (IX86_BUILTIN_PCOMLEW): Ditto. - (IX86_BUILTIN_PCOMGTW): Ditto. - (IX86_BUILTIN_PCOMGEW): Ditto. - (IX86_BUILTIN_PCOMFALSEW): Ditto. - (IX86_BUILTIN_PCOMTRUEW): Ditto. - (IX86_BUILTIN_PCOMEQD): Ditto. - (IX86_BUILTIN_PCOMNED): Ditto. - (IX86_BUILTIN_PCOMLTD): Ditto. - (IX86_BUILTIN_PCOMLED): Ditto. - (IX86_BUILTIN_PCOMGTD): Ditto. - (IX86_BUILTIN_PCOMGED): Ditto. - (IX86_BUILTIN_PCOMFALSED): Ditto. - (IX86_BUILTIN_PCOMTRUED): Ditto. - (IX86_BUILTIN_PCOMEQQ): Ditto. - (IX86_BUILTIN_PCOMNEQ): Ditto. - (IX86_BUILTIN_PCOMLTQ): Ditto. - (IX86_BUILTIN_PCOMLEQ): Ditto. - (IX86_BUILTIN_PCOMGTQ): Ditto. - (IX86_BUILTIN_PCOMGEQ): Ditto. - (IX86_BUILTIN_PCOMFALSEQ): Ditto. - (IX86_BUILTIN_PCOMTRUEQ): Ditto. - (bdesc_ptest): Change OPTION_MASK_ISA_SSE4_1 to - OPTION_MASK_ISA_ROUND for instructions that are shared between - SSE4.1 and SSE5. - (bdesc_2arg): Ditto. - (bdesc_sse_3arg): Ditto. - (enum multi_arg_type): New enum for describing the various SSE5 - intrinsic argument types. - (bdesc_multi_arg): New table for SSE5 intrinsics. - (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support. - (ix86_expand_multi_arg_builtin): New function for creating SSE5 - intrinsics. - (ix86_expand_builtin): Add SSE5 intrinsic support. - (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4 - operand instructions. - (ix86_expand_sse5_multiple_memory): New function to split the - second memory reference from SSE5 instructions. - (type_has_variadic_args_p): Delete in favor of stdarg_p. - (ix86_return_pops_args): Use stdarg_p to determine if the function - has variable arguments. - (ix86_setup_incoming_varargs): Ditto. - (x86_this_parameter): Ditto. - - * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add - declaration. - (ix86_expand_sse5_pack): Ditto. - (ix86_sse5_valid_op_p): Ditto. - (ix86_expand_sse5_multiple_memory): Ditto. - - * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC - constant for SSE5 support. - (UNSPEC_SSE5_UNSIGNED_CMP): Ditto. - (UNSPEC_SSE5_TRUEFALSE): Ditto. - (UNSPEC_SSE5_PERMUTE): Ditto. - (UNSPEC_SSE5_ASHIFT): Ditto. - (UNSPEC_SSE5_LSHIFT): Ditto. - (UNSPEC_FRCZ): Ditto. - (UNSPEC_CVTPH2PS): Ditto. - (UNSPEC_CVTPS2PH): Ditto. - (PCOM_FALSE): Add new constant for true/false SSE5 comparisons. - (PCOM_TRUE): Ditto. - (COM_FALSE_S): Ditto. - (COM_FALSE_P): Ditto. - (COM_TRUE_S): Ditto. - (COM_TRUE_P): Ditto. - (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types. - (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg - types. - (memory attribute): Ditto. - (sse4_1_round2): Use TARGET_ROUND instead of TARGET_SSE4_1. - Use SSE4_1_ROUND_* constants instead of hard coded numbers. - (rint2): Use TARGET_ROUND instead of TARGET_SSE4_1. - (floor2): Ditto. - (ceil2): Ditto. - (btrunc2): Ditto. - (nearbyintdf2): Ditto. - (nearbyintsf2): Ditto. - (sse_setccsf): Disable if SSE5. - (sse_setccdf): Ditto. - (sse5_setcc): New support for SSE5 conditional move. - (sse5_pcmov_): Ditto. - - * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5. - (SSEMODEF4): Ditto. - (SSEMODEF2P): Ditto. - (ssemodesuffixf4): New mode attribute for SSE5. - (ssemodesuffixf2s): Ditto. - (ssemodesuffixf2c): Ditto. - (sserotatemax): Ditto. - (ssescalarmode): Ditto. - (sse_maskcmpv4sf3): Disable if SSE5. - (sse_maskcmpv2df3): Ditto. - (sse_vmmaskcmpv4sf3): Ditto. - (sse5_fmadd4): Add SSE5 floating point multiply/add - instructions. - (sse5_vmfmadd4): Ditto. - (sse5_fmsub4): Ditto. - (sse5_vmfmsub4): Ditto. - (sse5_fnmadd4): Ditto. - (sse5_vmfnmadd4): Ditto. - (sse5_fnmsub4): Ditto. - (sse5_vmfnmsub4): Ditto. - (sse5i_fmadd4): Ditto. - (sse5i_fmsub4): Ditto. - (sse5i_fnmadd4): Ditto. - (sse5i_fnmsub4): Ditto. - (sse5i_vmfmadd4): Ditto. - (sse5i_vmfmsub4): Ditto. - (sse5i_vmfnmadd4): Ditto. - (sse5i_vmfnmsub4): Ditto. - (mulv16qi3): Add SSE5 support. - (mulv4si3): Ditto. - (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5. - (sse2_mulv4si3): Disable if SSE5. - (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1. - (sse4_1_roundps): Ditto. - (sse4_1_roundsd): Ditto. - (sse4_1_roundss): Ditto. - (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will - be generated. - (sse_maskcmpsf3): Ditto. - (sse_vmmaskcmpv4sf3): Ditto. - (sse2_maskcmpv2df3): Ditto. - (sse2_maskcmpdf3): Ditto. - (sse2_vmmaskcmpv2df3): Ditto. - (sse2_eq3): Ditto. - (sse2_gt3): Ditto. - (sse5_pcmov_): Add SSE5 support. - (vec_unpacku_hi_v16qi): Ditto. - (vec_unpacks_hi_v16qi): Ditto. - (vec_unpacku_lo_v16qi): Ditto. - (vec_unpacks_lo_v16qi): Ditto. - (vec_unpacku_hi_v8hi): Ditto. - (vec_unpacks_hi_v8hi): Ditto. - (vec_unpacku_lo_v8hi): Ditto. - (vec_unpacks_lo_v8hi): Ditto. - (vec_unpacku_hi_v4si): Ditto. - (vec_unpacks_hi_v4si): Ditto. - (vec_unpacku_lo_v4si): Ditto. - (vec_unpacks_lo_v4si): Ditto. - (sse5_pmacsww): New SSE5 intrinsic insn. - (sse5_pmacssww): Ditto. - (sse5_pmacsdd): Ditto. - (sse5_pmacssdd): Ditto. - (sse5_pmacssdql): Ditto. - (sse5_pmacssdqh): Ditto. - (sse5_pmacsdqh): Ditto. - (sse5_pmacsswd): Ditto. - (sse5_pmacswd): Ditto. - (sse5_pmadcsswd): Ditto. - (sse5_pmadcswd): Ditto. - (sse5_pcmov_): Conditional move support on SSE5. - (sse5_phaddbw): New SSE5 intrinsic insn. - (sse5_phaddbd): Ditto. - (sse5_phaddbq): Ditto. - (sse5_phaddwd): Ditto. - (sse5_phaddwq): Ditto. - (sse5_phadddq): Ditto. - (sse5_phaddubw): Ditto. - (sse5_phaddubd): Ditto. - (sse5_phaddubq): Ditto. - (sse5_phadduwd): Ditto. - (sse5_phadduwq): Ditto. - (sse5_phaddudq): Ditto. - (sse5_phsubbw): Ditto. - (sse5_phsubwd): Ditto. - (sse5_phsubdq): Ditto. - (sse5_pperm): Ditto. - (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5. - (sse5_pperm_zero_v16qi_v8hi): Ditto. - (sse5_pperm_sign_v8hi_v4si): Ditto. - (sse5_pperm_zero_v8hi_v4si): Ditto. - (sse5_pperm_sign_v4si_v2di): Ditto. - (sse5_pperm_sign_v4si_v2di): Ditto. - (sse5_pperm_pack_v2di_v4si): Ditto. - (sse5_pperm_pack_v4si_v8hi): Ditto. - (sse5_pperm_pack_v8hi_v16qi): Ditto. - (sse5_perm): New SSE5 intrinsic insn. - (rotl3): Ditto. - (sse5_rotl3): Ditto. - (sse5_ashl3): Ditto. - (sse5_lshl3): Ditto. - (sse5_frcz2): Ditto. - (sse5s_frcz2): Ditto. - (sse5_cvtph2ps): Ditto. - (sse5_cvtps2ph): Ditto. - (sse5_vmmaskcmp3): Ditto. - (sse5_com_tf3): Ditto. - (sse5_maskcmp3): Ditto. - (sse5_maskcmp_uns3): Ditto. - (sse5_maskcmp_uns23): Ditto. - (sse5_pcom_tf3): Ditto. - - * config/i386/predicates.md (const_0_to_31_operand): New predicate - to match 0..31. - (sse5_comparison_float_operator): New predicate to match the - comparison operators supported by the SSE5 com instruction. - (ix86_comparison_int_operator): New predicate to match just the - signed int comparisons. - (ix86_comparison_uns_operator): New predicate to match just the - unsigned int comparisons. - - * doc/invoke.texi (-msse5): Add documentation. - (-mfused-madd): Ditto. - - * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics. - - * config.gcc (i[34567]86-*-*): Include bmmintrin.h and - mmintrin-common.h. - (x86_64-*-*): Ditto. - - * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit. - - * config/i386/bmmintrin.h: New file, provide common x86 compiler - intrinisics for SSE5. - - * config/i386/smmintrin.h: Move instructions shared with SSE5 to - mmintrin-common.h. - - * config/i386/mmintrin-common.h: New file, to contain common - instructions between SSE4.1 and SSE5. - - * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use - FOREACH_FUNCTION_ARGS to iterate over the argument list. - (gen_regparm_prefix): Ditto. - - * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use - FOREACH_FUNCTION_ARGS to iterate over the argument list. Use - prototype_p to determine if a function is prototyped. - -2007-09-12 Janis Johnson - - * config/dfp-bit.c (dfp_conversion_exception): New function. - (DFP_TO_DFP) Add new variants to use direct conversions in decNumber. - (DFP_TO_INT): Ditto. - (INT_TO_DFP): Ditto. - * config/dfp-bit.h (DEC_FLOAT_FROM_INT, DEC_FLOAT_TO_INT): New. - -2007-09-12 Jakub Jelinek - - PR target/32338 - * config/ia64/ia64.c (ia64_expand_epilogue): Emit blockage - before sp restoration even when total_size is 0, but - frame_pointer_needed. - -2007-09-12 Bob Wilson - - * config/xtensa/xtensa.c (machine_function): Add vararg_a7_copy. - (xtensa_copy_incoming_a7): Use start_sequence instead of - push_to_sequence. Stash insns in vararg_a7_copy for builtin_saveregs. - (xtensa_builtin_saveregs): Place code from vararg_a7_copy at the start - of the saveregs sequence. - -2007-09-12 Richard Sandiford - - * c-tree.h (grokfield): Add a "tree *" argument. - * c-decl.c (grokdeclarator): Take a pointer to the decl's attributes. - Chain nested decl attributes to it. Don't call decl_attributes here. - (groktypename): Pass grokdeclarator a pointer to the attribute list. - (start_decl, grokparm, push_parm_decl, start_function): Likewise. - (grokfield): Take a pointer to the decl's attributes and pass - it to grokdeclarator. - * c-parser.c (c_parser_struct_declaration): Update the calls to - grokfield. Call decl_attributes for anonymous struct and union - fields. - -2007-09-12 Jan Hubicka - - * c-objc-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. - -2007-09-12 Ira Rosen - - PR tree-optimization/32377 - * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish - between positive and negative dependence distance using DDR_REVERSED_P. - -2007-09-12 Dorit Nuzman - - PR tree-optimization/33373 - * tree-vect-analyze (vect_determine_vectorization_factor): Call - TREE_INT_CST_LOW when comparing TYPE_SIZE_UNIT. - -2007-09-12 Jan Hubicka - - PR target/33393 - * config/i386/i386.md (floatsisf2_mixed_memory, floatsisf2_sse_memory): - Disable for !SSE_MATH - -2007-09-12 Christian Bruel - - * sh.h (SH_DBX_REGISTER_NUMBER): Added fpscr, fixed sr/gbr regs. - * linux-unwind.h (SH_DWARF_FRAME_GBR): fixed. - -2007-09-12 Ira Rosen - - * tree-vect-transform.c (vect_get_slp_defs): Don't build a vector - for oprnd1 if not required. - (vectorizable_operation): Use scalar operand in SLP in case of - shift with scalar argument. - -2007-09-12 Ira Rosen - - * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change default and - minimum to 1. - -2007-09-11 James E. Wilson - - * defaults.h (DWARF2_UNWIND_INFO): Don't define if - TARGET_UNWIND_INFO is defined. - * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Delete undef - after definition. - -2007-09-12 Kaz Kojima - - * config/sh/sh.c (calc_live_regs): Use - current_function_saves_all_registers instead of - current_function_has_nonlocal_label. - (sh_allocate_initial_value): Likewise. - (sh_get_pr_initial_val): Likewise. - * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Likewise. - * config/sh/sh.md (load_ra): Likewise. - -2007-09-12 Hans-Peter Nilsson - - * config/cris/t-linux (LIMITS_H_TEST): Only define if not inhibit_libc. - - PR target/33360 - * config/cris/cris.c (cris_expand_pic_call_address): Fix typo in - GET_CODE (x) == CONST_INT to CONST_INT_P (x) transformation. - -2007-09-12 Sa Liu - - * config/spu/spu.c (spu_emit_branch_or_set): Handle NaN values as - operands to DFmode GE or LE compares. - -2007-09-12 Bernd Schmidt - - * config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS, - REG_CLASS_NAMES): Add P0REGS. - (REGNO_REG_CLASS): Return it where appropriate. - (REG_CLASS_FROM_CONSTRAINT): Add 'qA'. - (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled. - * doc/md.texi (Blackfin family): Document 'q' constraints. - -2007-09-11 Steve Kenton - - * pa/linux-unwind.h: Guard with inhibit_libc. - * pa/hpux-unwind.h: Likewise. - -2007-09-11 David Daney - - * doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options. - * doc/install.texi: Document new --with-llsc and --without-llsc - options. - * config.gcc: Handle --with-llsc and --without-llsc configure options. - * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction - in %| and %- operand codes. Depend on GENERATE_SYNC instead of - ISA_HAS_SYNC. - (sync_compare_and_swap, sync_add, sync_sub, - sync_old_add, sync_old_sub, sync_new_add, - sync_new_sub, sync_, sync_old_, - sync_new_, sync_nand, sync_old_nand, - sync_new_nand, sync_lock_test_and_set): Depend on - GENERATE_LL_SC instead of ISA_HAS_LL_SC. - * config/mips/mips.opt (mllsc): New option. - * config/mips/mips.c (mips_llsc): Define variable. - (mips_handle_option): Handle mllsc option. - (override_options): Set mips_print_operand_punct for '|' and '-'. - (print_operand): Add new %| and %- operand codes. - * config/mips/mips.h (mips_llsc_setting): New enum type. - (mips_llsc): Declare. - (OPTION_DEFAULT_SPECS): Add llsc handling. - (GENERATE_SYNC): New macro. - (GENERATE_LL_SC): New macro. - (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, - MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, - MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions - in %| and %- operand codes. - -2007-09-11 Eric Botcazou - - * tree-ssa-structalias.c (push_fields_onto_fieldstack): Deal with - TYPE_NONALIASED_COMPONENT like with DECL_NONADDRESSABLE_P. - -2007-09-11 Jason Merrill - - PR middle-end/27945 - * stor-layout.c (layout_decl): Do pack variable size fields. - -2007-09-11 Maxim Kuvyrkov - - * config/m68k/predicates.md (movsi_const0_operand, - non_symbolic_call_operand): New predicates. - - * config/m68k/constraints.md (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac): - New constraints. - * doc/md.texi (Constraints for Particular Machines: Motorola 680x0): - Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ, - CW, CZ, CS, Ap and Ac. - - * config/m68k/m68k.md (UNSPEC_IB): New constant. - (constraints.md): New include. - (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access, - opx_mem, opy_mem, op_mem, guess, split): New attributes. - (movdf_internal): Name pattern. Fix to use alternatives. Add split. - Specify attributes. - (pushdi): Add split. - (tstsi_internal): Name pattern. Fix to use alternatives. Specify - attributes. Split tstsi_internal_68020_cf from it. - (tstsi_internal_68020_cf): New pattern. - (tsthi_internal, tstqi_internal): Name pattern. Specify attributes. - (tst_cf): Specify attributea. - (cmpsi_cf): Name pattern. Specify attributes. - (cmp_68881, cmp_cf): Specify type attribute. - (pushexthisi_const): Fix to use alternatives. Specify - attributes. - (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60 - from it. Fix to use alternatives. Specify attributes. - (movsi_const0_68040_10, movsi_const0_68040_60): New patterns. - (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify - attributes. - (movsf_cf_soft): Specify attributes. - (movdf_cf_soft): Add split. - (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4, - cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, - 68k_extendqisi2, truncdfsf2_cf): Specify attributes. - (truncdfsf2_68881): Name pattern. Specify attributes. - (floatsi2_cf, floathi2_68881, floathi2_cf, - floatqi2_68881, floatqi2_cf, ftrunc2_cf, - fixqi2_cf, fixhi2_cf, fixsi2_cf, adddi_dishl32): - Specify attributes. - (addsi3_5200): Fix to use alternatives. Specify attributes. - Add splits. - (add3_cf, subdi_dishl32): Specify attributes. - (subsi3): Add alternative for subq.l. Specify attributes. - (sub3_cf, mulhi3, mulhisi3): Specify attributes. - (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify - attributes. - (umulhisi3): Specify attributes. - (mulhisisi3_z): Name pattern. Specify attributes. - (fmul3_cf, div3_cf, negsi2_internal, negsi2_5200, - sqrt2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32, - subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3, - bsetmemqi): Specify attributes. - (bsetmemqi_ext): Name pattern. Specify attributes. - (bclrmemqi): Specify attributes. - (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes. - (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify - attributes. - (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name - pattern. Specify attributes. - (jump): Specify attributes. - (tablejump_internal): Name pattern. Specify attributes. - (call_value): Split into non_symbolic_call_value, - symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use - alternatives. Specify attributes. - (non_symbolic_call_value, symbolic_call_value_jsr, - symbolic_call_value_bsr): New patterns. - (nop, return, unlink, indirect_jump): Specify attributes. - (trap): Fix condition. Specify attributes. - (ib): New pattern. - - * config/m68k/m68k.c (m68k_symbolic_call_var): New variable. - (override_options): Initialize it. Initialize m68k_sched_cpu. - (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h. - (const_method): Make global, rename to m68k_const_method. - (const_int_cost, output_move_const_into_data_reg): Update. - (output_move_double): Parametrize to emit rtl code, rename to - handle_move_double. - (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi, - emit_movsi): New static functions. - (output_move_double): New function with semantics of old - output_move_double. - (m68k_emit_move_double): New function. - (m68k_sched_cpu): New variable. - (attr_op_type): New enum. - (sched_guess_p): New variable. - (sched_address_type, sched_operand_type, sched_attr_op_type): - New static functions. - (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, - m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions. - (sched_branch_type): New static variable. - (m68k_sched_branch_type): New function. - * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum. - (m68k_symbolic_call_var): Declare. - (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c. - (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu, - m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, - m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type): - Declare. - -2007-09-11 Jakub Jelinek - - * builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. - * builtins.c (expand_builtin) : Issue - error if __builtin_va_arg_pack_len () wasn't optimized out during - inlining. - * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len () - with the number of inline's anonymous arguments. - * doc/extend.texi: Document __builtin_va_arg_pack_len (). - -2007-09-11 Zdenek Dvorak - - * fold-const.c (extract_muldiv_1): Do not simplify var * c * c to var. - -2007-09-11 Jan Hubicka - - * config/i386/i386.h (ix86_tune_indices): Add - X86_TUNE_INTER_UNIT_CONVERSIONS. - (TARGET_INTER_UNIT_CONVERSIONS): New. - * config/i386/i386.md (floatsi expanders): Remove redundant check - for SImode source; offload to memory when asked for. - (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse - floatdisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): - Update conditions; - (floatsisf2_mixed_memory, floatsisf2_sse_memory, - floatsidf2_mixed_memory, floatsidf2_sse_memory - floatdisf2_mixed_memory, floatsisf2_sse_memory, - floatsidf2_mixed_memory, floatsidf2_sse_memory): New. - -2007-09-11 Jan Hubicka - - * toplev.c (process_options): all frontends now do unit-at-a-time. - * cgraphunit.c: update comments. - (cgraph_expand_function): call passmanager dirrectly; emit thunks. - * c-decl.c (finish_function): use cgraph_add_new_function. - * function.c (expand_function_end): We are always unit-at-a-time. - -2007-09-11 Richard Sandiford - - * config/mips/mips.c (mips_set_mips16_mode): Use separate anchor - settings for MIPS16. - (mips_use_anchors_for_symbol_p): Use default_use_anchors_for_symbol_p. - -2007-09-11 Richard Sandiford - - * config/mips/mips.c (mips_symbol_insns_1): Allow LEAs of - SYMBOL_FORCE_TO_MEM constants. - (mips_rtx_costs): Give a cost of 1 to force_to_mem_operands. - (mips16_rewrite_pool_refs_info): New structure. - (mips16_rewrite_pool_constant): New function, split out from... - (mips16_rewrite_pool_refs): ...here. Take a pointer to a - mips16_rewrite_pool_refs_info structure rather than a pointer - to a constant pool. Force force_to_mem_operands into memory. - (mips16_lay_out_constants): Update call to mips16_rewrite_pool_refs. - * config/mips/predicates.md (force_to_mem_operand): New predicate. - * config/mips/constraints.md (kf): New constraint. - * config/mips/mips.md (*movdi_64bit_mips16): Add a d <- kf alternative. - (*movsi_mips16): Likewise. - -2007-09-11 Richard Sandiford - Nigel Stephens - David Ung - - * config/mips/mips.h (CONSTANT_POOL_COST): Move to... - * config/mips/mips.c: ...here and set to 4 for TARGET_MIPS16. - (mips16_constant_cost, mips_immediate_operand_p, mips_binary_cost) - (mips_fp_mult_cost, mips_fp_div_cost, mips_sign_extend_cost) - (mips_zero_extend_cost): New functions. - (mips_rtx_costs): Treat COMPARE constants as having zero cost. - Use the new functions. Tweak many cost estimates, both here - and in the new subroutines. Return false when the cost of the - operands has not been calculated. Check for *clear_upper32. - Check for floating-point multiply-add, reciprocal and rsqrt - patterns. Handle comparison and rotation codes. - -2007-09-11 Danny Smith - - * config/i386/cygming.h (TARGET_STRIP_NAME_ENCODING): Don't - override default. - * config/i386/i386.c (get_dllimport_decl): Don't strip - FASTCALL_PREFIX. - -2007-09-10 Janis Johnson - - PR c/30013 - * config/dfp-bit.c: Don't skip TFmode conversions; move strto* - declarations to top. - (DFP_TO_BFP): Use for either XFmode or TFmode. - (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast - of BFP_VIA_TYPE. - * config/dfp-bit.h: Include float.h. - (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long - double is one of these modes, rather than using LIBGCC_HAS_*F_MODE - which doesn't mean the same thing. - (BFP_KIND): Use 4 to mean TFmode. - (BFP_FMT): Specify the number of decimal digits based on the - number of mantissa digits. - (BFP_VIA_TYPE): Binary float type to use as cast for sprintf. - (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants. - (STR_TO_BFP): Use strtold for XFmode or TFmode. - (TFtype): Define if TFmode is supported. - * doc/libgcc.texi (Decimal float library routines): Document - TF conversion functions. - -2007-09-10 Chao-ying Fu - - * config/mips/mips.c (mips_scalar_mode_supported_p): Declare. - (TARGET_SCALAR_MODE_SUPPORTED_P): Define. - (mips_emit_compare): Process fixed-point modes. - (mips_pad_arg_upward): Support fixed-point types. - (override_options): Allow fixed-point modes in accumulators. - (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers. - (mips_vector_mode_supported_p): Support V2HQmode, V2UHQmode, V2HAmode, - V2UHAmode, V4QQmode, and V4UQQmode when TARGET_DSP. - (mips_scalar_mode_supported_p): New function to accept fixed-point - modes if the width is not greater than two BITS_PER_WORD. - * config/mips/mips.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. - * config/mips/mips.md ("d"): Update mode attribute for fixed-point - modes. - ("IMODE"): New mode attribute. - (mips-fixed.md): Include. - * config/mips/mips-modes.def: Create VECTOR_MODES for FRACT, UFRACT, - ACCUM, UACCUM. - * config/mips/mips-fixed.md: New file. - -2007-09-11 Ben Elliston - - * config/spu/spu.md: Formatting fixes. - -2007-09-10 Janis Johnson - - * config/dfp-bit.c (dfp_unary_func): Delete. - (dfp_unary_op): Delete. - (dfp_binary_op): Use decFloat functions instead of decNumber - functions for binary operations. - (d32_binary_op): Convert 32-bit operands to 64 bits for evaluation. - (dnn_binary_op): Call dfp_binary_op with decFloat rather than - DFP_C_TYPE. - (dfp_compare_op): Use decFloat functions insteadof decNumber - functions for comparisons. - (d32_compare_op): Convert 32-bit operands to 64 bits for evaluation. - (dnn_binary_op): Call dfp_compare_op with decFloat rather than - DFP_C_TYPE. - (DFP_ADD, DFP_SUB, DFP_MULTIPLE, DFP_DIVIDE): Use macros for - call to dxx_binary_op and decFloat function. - (DFP_EQ, DFP_NE, DFP_LT, DFP_GT, DFP_LE, DFP_GE): Use macros for - calls to dxx_binary_op and decFloat function. - * config/dfp-bit.h: Include decFloat header files. - (decFloat, DFP_BINARY_OP, DFP_COMPARE_OP, DEC_FLOAT_ADD, - DEC_FLOAT_SUBTRACT, DEC_FLOAT_MULTIPLY, DEC_FLOAT_DIVIDE, - DEC_FLOAT_COMPARE, DEC_FLOAT_IS_ZERO, DEC_FLOAT_IS_NAN, - DEC_FLOAT_IS_SIGNED: Define for each of 3 operand widths. - -2007-09-10 Harsha Jagasia - Jan Sjodin - - * tree-vect-analyze.c (vect_analyze_operations): Change - comparison of loop iterations with threshold to less than - or equal to instead of less than. Reduce - min_scalar_loop_bound by one. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): - Change prologue and epilogue iterations estimate to vf/2, - when unknown at compile-time. Change versioning guard - cost to taken_branch_cost. If peeling for alignment is - unknown at compile-time, change peel guard costs to one - taken branch and one not-taken branch per peeled loop. - If peeling for alignment is known but number of scalar loop - iterations is unknown at compile-time, change peel guard - costs to one taken branch per peeled loop. Change the cost - model equation to consider vector iterations as the loop - iterations less the prologue and epilogue iterations. - Change outside vector cost check to less than or equal to - zero instead of equal to zero. - (vect_do_peeling_for_loop_bound): Reduce - min_scalar_loop_bound by one. - * tree-vectorizer.h: Add TARG_COND_TAKEN_BRANCH_COST and - TARG_COND_NOT_TAKEN_BRANCH_COST. - * config/i386/i386.h (processor_costs): Add - scalar_stmt_cost, scalar_load_cost, scalar_store_cost, - vec_stmt_cost, vec_to_scalar_cost, scalar_to_vec_cost, - vec_align_load_cost, vect_unalign_load_cost, - vec_store_cost, cond_taken_branch_cost, - cond_not_taken_branch_cost. - Define macros for x86 costs. - * config/i386/i386.c: - (size_cost): Set scalar_stmt_cost, scalar_load_cost, - scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, - scalar_to_vec_cost, vec_align_load_cost, - vect_unalign_load_cost, vec_store_cost, - cond_taken_branch_cost, cond_not_taken_branch_cost to one. - (i386_cost, i486_cost, pentium_cost, pentiumpro_cost, - geode_cost, k6_cost, athlon_cost, pentium4_cost, nocona_cost, - core2_cost, generic64_cost, generic32_cost): Set to default - untuned costs. - (k8_cost, amdfam10_cost): Costs for vectorization tuned. - (x86_builtin_vectorization_cost): New. - -2007-09-10 Janis Johnson - Ben Elliston - - * dfp.c: Include decimal128Local.h; - (dfp_byte_swap): Remove. - (encode_decimal32, decode_decimal32): Don't handle endianness. - (encode_decimal64, decode_decimal64): Ditto. - (encode_decimal128, decode_decimal128): Ditto. - * config/dfp-bit.c (host_to_ieee32, ieee_to_host_32): Ditto. - (__swap64): Remove. - (host_to_ieee_64, ieee_to_host_64): Don't handle endianness. - (__swap128): Remove - (host_to_ieee_128, ieee_to_host_128): Don't handle endianness. - * Makefile.in (DECNUM_H): Add decimal128Local.h. - -2007-09-10 David Daney - - * config/mips/mips.md (UNSPEC_MEMORY_BARRIER): New entry in - define_constants. - (memory_barrier): Rewrote as an insn that clobbers memory. - -2007-09-10 Richard Sandiford - - * config/mips/mips.c (mips_global_pointer): Check - call_really_used_regs instead of call_used_regs. - (mips_save_reg_p): Likewise. Save all call-saved registers - if current_function_saves_all_registers. Fix indentation. - No longer treat $18 as a special case. - (compute_frame_size): Guard FPR loop with TARGET_HARD_FLOAT. - -2007-09-10 Richard Sandiford - - * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): New macro. - * config/mips/mips.c (mips_cpu_info_table): Mention it in the - the introductory comment. - (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. - (override_options): Don't test for it. - * config/mips/sde.h (MIPS_MARCH_CONTROLS_SOFT_FLOAT): Delete. - (DRIVER_SELF_SPECS): Add MIPS_ARCH_FLOAT_SPEC. - * config/mips/vr.h: As for config/mips/sde.h. - -2007-09-10 Trevor Smigiel - Revital Eres - - * target.h (struct gcc_target.sched): New field: sms_res_mii. - (struct ddg): Define. - * target-def.h (TARGET_SCHED_SMS_RES_MII): Define. - (TARGET_SCHED): Add TARGET_SCHED_SMS_RES_MII. - * config/spu/spu.c: Include ddg.h. - (TARGET_SCHED_SMS_RES_MII): Define. - (spu_sms_res_mii): New function to calculate mii. - * modulo-sched (res_MII): Use it. - * doc/tm.texi: Document TARGET_SCHED_SMS_RES_MII. - -2007-09-10 Andreas Krebbel - - * config/s390/s390.c (s390_dump_pool): Create copy of constant - pool entries since they might hold values that must not be shared. - -2007-09-10 Robert Kidd - - * bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to - RTL level tracer pass. - * passes.c (init_optimization_passes): Move pass_tracer from - after pass_rtl_ifcvt to after pass_dce. - * tracer.c: Update copyright. - (layout_superblocks): Remove function. - (mark_bb_seen): New. - (bb_seen_p): New. - (count_insns): Change to estimate instructions in a Tree-SSA - statement. - (find_trace): Use bb_seen_p. - (tail_duplicate): Use bb_seen_p. Call add_phi_args_after_copy - after duplicate_block. - (tracer): Change prototype to match that of a pass execute - callback. - (gate_tracer): Rename from gate_handle_tracer. - (rest_of_handle_tracer): Remove function. - * rtl.h: Remove prototype for tracer. - * testsuite/gcc.dg/tree-prof/tracer-1.c: New. - -2007-09-10 Uros Bizjak - - PR target/33369 - * config/i386/sse.md (ashr3): Change op2 mode to SImode. - Use 'N' operand constraint for op2. - (lshr3): Ditto. - (ashl3): Ditto. - (vec_shl_): Use const_0_to_255_mul_8_operand predicate for op2. - (vec_shr_): Ditto. - * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLL?128, - IX86_BUILTIN_PSRA*?128, IX86_BUILTIN_PSRL?128]: Convert op1 to SImode. - -2007-09-10 Andreas Krebbel - - * config/s390/s390.md ("fixuns_trunc2"): - Change mode macro in the last real_2expN parameter to uppercase. - -2007-09-10 Michael Matz - - * tree-pass.h (pass_cselim): Declare new pass. - * passes.c (init_optimization_passes): Link in pass_cselim. - * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Renamed from - tree_ssa_phiopt; add do_store_elim parameter, handle it by calling - cond_store_replacement. - (condstoretemp): New static variable. - (cond_store_replacement): New function. - (tree_ssa_phiopt, tree_ssa_cs_elim): New wrappers around - tree_ssa_phiopt_worker. - (struct name_to_bb): New. - (get_non_trapping, name_to_bb_hash, name_to_bb_eq, add_or_mark_expr, - nt_init_block, nt_fini_block): New static functions. - (seen_ssa_names, nontrap_set): New static variables. - (gate_cselim, pass_cselim): Define new pass. - * common.opt (ftree-cselim): New flag. - * toplev.c (process_options): Set flag_tree_cselim if required. - -2007-09-10 Hans-Peter Nilsson - - * simplify-rtx.c (simplify_relational_operation_1): For recent - canonicalization, don't recurse if op1 equals both PLUS arguments. - -2007-09-09 David Daney - - * optabs.c (expand_sync_operation): Use plus insn if minus - CONST_INT_P(val). - (expand_sync_fetch_operation): Ditto. - -2007-09-09 H.J. Lu - - * config/i386/i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead - of cvtpq2ps. - (*floatsisf2_sse_vector): Likewise. - -2007-09-09 Krister Walfridsson - - * config/netbsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1. - -2007-09-09 H.J. Lu - - * config/i386/i386.h (ix86_tune_indices): Rename - X86_USE_VECTOR_CONVERTS to X86_TUNE_USE_VECTOR_CONVERTS. - (TARGET_USE_VECTOR_CONVERTS): Updated. - * config/i386/i386.c: Likewise. - -2007-09-09 Sandra Loosemore - Nigel Stephens - - * doc/invoke.texi (Overall Options): Add .sx file extension - as a synonym for .S. - * cppspec.c (known_suffixes): Likewise. - * gcc.c (default_compilers): Likewise. - -2007-09-09 Rask Ingemann Lambertsen - - PR target/30315 - * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete. - * simplify-rtx.c (simplify_relational_operation_1): Add the - canonicalization from i386.h. - * doc/md.texi (Canonicalization of Instructions): Document it. - -2007-09-09 Jan Hubicka - Dwarakanath Rajagopal - - * config/i386/i386.h (ix86_tune_indices): Add X86_USE_VECTOR_CONVERTS. - (TARGET_USE_VECTOR_CONVERTS): New. - * config/i386/i386.md: New post-reload splitters for converting - SF to DF and DF to SF. - (floatsi* expander): Special case vector conversions. - (floatsisf2_mixed_vector, floatsisf2_sse_vector_nointernunit, - floatsisf2_sse_vector_internunit, floatsisf2_sse_vector, - floatsidf2_mixed_vector, floatsidf2_sse_vector): New. - (floatsisf2_mixed, floatsisf2_sse, floatsidf2_mixed, floatsidf2_sse): - Disable when doing vector converts. - (floatsi2_i387): Disable when - * config/i386/sse.md (vec_dupv2df): Export. - * config/i386/i386.c (ix86_tune_features): Enable SSE conversions. - -2007-09-09 Richard Guenther - - * tree-ssa-operands.c (add_virtual_operand): Only mark - stores as has_volatile_ops if alias information is not available. - -2007-09-09 Revital Eres - - * doc/contrib.texi: Add myself. - -2007-09-09 Ira Rosen - - * tree-vectorizer.h (stmt_vinfo_set_inside_of_loop_cost, - stmt_vinfo_set_outside_of_loop_cost): New functions. - * tree-vect-transform.c (vect_get_cost_fields): Remove. - (vect_model_simple_cost): Call - stmt_vinfo_set_inside/outside_of_loop_cost to set the relevant cost - field instead of calling vect_get_cost_fields. - (vect_model_store_cost, vect_model_load_cost): Likewise. - -2007-09-09 Revital Eres - - * config/rs6000/rs6000.c (paired_init_builtins): Add const - declaration to bdesc_paired_preds variable. - (paired_expand_builtin): Likewise. - -2007-09-09 Revital Eres - - * dbgcnt.def (sms_sched_loop): New counter. - * modulo-sched.c: Use sms_sched_loop instead of - MAX_SMS_LOOP_NUMBER to determine the maximum number of loops to - perform swing modulo scheduling on. Include dbgcnt.h. - * Makefile.in: Add DBGCNT_H to modulo-sched.o. - * params.def: Remove PARAM_MAX_SMS_LOOP_NUMBER. - -2007-09-09 Uros Bizjak - - * config/i386/i386.md (X87MODEF12, SSEMODEF): Remove mode iterators. - Substitute all uses with ... - (MODEF): New mode iterator. - - (fix_trunc_fisttp_i387_1): Remove operand constraints - from pre-regalloc define_insn_and_split splitter pattern. - (*fix_trunc_i387_1): Ditto. - (*fistdi2_1): Ditto. - (*fist2_1): Ditto. - (frndintxf2_floor): Ditto. - (*fist2_floor_1): Ditto. - (frndintxf2_ceil): Ditto. - (*fist2_ceil_1): Ditto. - (frndintxf2_trunc): Ditto. - (frndintxf2_mask_pm): Ditto. - - (prologue): Use (const_int 0) as never generated filler insn. - (epilogue): Ditto. - (sibcall_epilogue): Ditto. - (eh_return_si): Ditto. - (eh_return_di): Ditto. - - (add3): Rename from adddf3 and addsf3. Macroize expander - using MODEF mode iterator. - (sub3): Rename from subdf3 and subsf3. Macroize expander - using MODEF mode iterator. - (mul3): Rename from muldf3 and mulsf3. Macroize expander - using MODEF mode iterator. - (nearbyint2): Rename from nearbyintdf2 and nearbyintsf2. - Macroize expander using MODEF mode iterator. - - (zero_extendsidi2): Remove operand constraints from expander. - (smuldi3_highpart): Ditto. - (indirect_jump): Ditto. - (tablejump): Ditto. - (rsqrtsf2): Ditto. - * config/i386/sse.md (storentv4sf): Ditto. - (storentv2df): Ditto. - (storentv2di): Ditto. - (storentsi): Ditto. - (sse2_cvtpd2ps): Ditto. - (vec_interleave_highv16qi): Ditto. - (vec_interleave_lowv16qi): Ditto. - (vec_interleave_highv8hi): Ditto. - (vec_interleave_lowv8hi): Ditto. - (vec_interleave_highv4si): Ditto. - (vec_interleave_lowv4si): Ditto. - (vec_interleave_highv2di): Ditto. - (vec_interleave_lowv2di): Ditto. - (sse2_maskmovdqu): Ditto. - * config/i386/mmx.md (mmx_maskmovq): Ditto. - -2007-09-09 Ira Rosen - - * tree-vectorizer.h (enum vect_def_type): Start enumeration from 1. - (struct _slp_tree, struct _slp_instance): Define new data structures - along macros for their access. - (struct _loop_vec_info): Define new fields: strided_stores, - slp_instances, and slp_unrolling_factor along macros for their access. - (enum slp_vect_type): New. - (struct _stmt_vec_info): Define new field, slp_type, and macros for - its access. - (STMT_VINFO_STRIDED_ACCESS): New macro. - (vect_free_slp_tree): Declare. - (vectorizable_load): Add an argument of type slp_tree. - (vectorizable_store, vectorizable_operation, vectorizable_conversion, - vectorizable_assignment): Likewise. - (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): - Declare (make extern). - * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field. - (new_loop_vec_info): Likewise. - (destroy_loop_vec_info): Free memory allocated for SLP structures. - * tree-vect-analyze.c: Include recog.h. - (vect_update_slp_costs_according_to_vf): New. - (vect_analyze_operations): Add argument for calls to vectorizable_ () - functions. For not pure SLP stmts with strided access check that the - group size is power of 2. Update the vectorization factor according to - SLP. Call vect_update_slp_costs_according_to_vf. - (vect_analyze_group_access): New. - (vect_analyze_data_ref_access): Call vect_analyze_group_access. - (vect_free_slp_tree): New functions. - (vect_get_and_check_slp_defs, vect_build_slp_tree, vect_print_slp_tree, - vect_mark_slp_stmts, vect_analyze_slp_instance, vect_analyze_slp, - vect_make_slp_decision, vect_detect_hybrid_slp_stmts, - vect_detect_hybrid_slp): Likewise. - (vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision - and vect_detect_hybrid_slp. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): Take - SLP costs into account. - (vect_get_cost_fields): New function. - (vect_model_simple_cost): Make extern, add SLP parameter and handle - SLP. - (vect_model_store_cost, vect_model_load_cost): Likewise. - (vect_get_constant_vectors): New function. - (vect_get_slp_vect_defs, vect_get_slp_defs, - vect_get_vec_defs_for_stmt_copy, vect_get_vec_defs_for_stmt_copy, - vect_get_vec_defs): Likewise. - (vectorizable_reduction): Don't handle SLP for now. - (vectorizable_call): Don't handle SLP for now. Add argument to - vect_model_simple_cost. - (vectorizable_conversion): Handle SLP (call vect_get_vec_defs to - get SLPed and vectorized defs). Fix indentation and spacing. - (vectorizable_assignment): Handle SLP. - (vectorizable_induction): Don't handle SLP for now. - (vectorizable_operation): Likewise. - (vectorizable_type_demotion): Add argument to - vect_model_simple_cost. - (vectorizable_type_promotion): Likewise. - (vectorizable_store, vectorizable_load): Handle SLP. - (vectorizable_condition): Don't handle SLP for now. - (vect_transform_stmt): Add a new argument for SLP. Check that there is - no SLP transformation required for unsupported cases. Add SLP - argument for supported cases. - (vect_remove_stores): New function. - (vect_schedule_slp_instance, vect_schedule_slp): Likewise. - (vect_transform_loop): Schedule SLP instances. - * Makefile.in: (tree-vect-analyze.o): Depend on recog.h. - -2007-09-09 Andrew Haley - - * optabs.c (sign_expand_binop): Set libcall_gen = NULL in the fake - signed optab. - -2007-09-09 Hans-Peter Nilsson - - Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET. - * doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn. - Similar for what label_refs can go in the JUMP_TARGET field. Split - REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND. - * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not - REG_LABEL when replacing an operand with a LABEL_REF for a - non-jump insn. - (subst_reloads): When replacing a LABEL_REG with a register, - instead of generating a REG_LABEL note, assert that there already - is one or that the label is a known target for the insn. - * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL - note, check the JUMP_LABEL field. Remove "else" after return. - * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with - cases for REG_LABEL_OPERAND and REG_LABEL_TARGET. - (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and - REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P - insns. Iterate over all notes; don't assume there's only one. - * cse.c (recorded_label_ref): Adjust comment to refer to - REG_LABEL_OPERAND. - (cse_extended_basic_block): Do LABEL_REF check for all INSN_P - insns, not just NONJUMP_INSN_P. - (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF - isn't a jump target. - * jump.c (rebuild_jump_labels): Adjust head comment. - (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only; - don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field. - (mark_all_labels): For JUMP_P insns without a target, check if the - the target is noted on the previous nonjump insn. - (mark_jump_label_1): New function, guts from mark_jump_label. - : Handle first operand as a non-target when - marking jump target labels. - : Adjust for whether to generate a - REG_LABEL_TARGET or a REG_LABEL_OPERAND note. - For 'E' format rtl, iterate in descending element order. - (delete_related_insns): Handle both REG_LABEL_TARGET and - REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero - reference count, delete and fallthrough. Move finding-next- - non-deleted insn last in the function. Look at all INSN_P insns - for REG_LABEL_OPERAND notes. - (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of - JUMP. - * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL - JUMP_LABEL, output the INSN_UID of it. - * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND - and/or REG_LABEL_TARGET. - (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line - with jump.c copy by only adding notes for labels actually - referenced in the insn. - * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need - usage count increment; handle all INSN_P trial insns. - (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND - notes. - * rtl.h (struct rtx_def) : Adjust to mention - REG_LABEL_TARGET and REG_LABEL_OPERAND. - (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and - REG_LABEL_OPERAND. - * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on - JUMP_P insns and REG_LABEL_OPERAND everywhere. - * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS - on all INSN_P insns. - * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL. - * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and - REG_LABEL_OPERAND notes. - * reload1.c (calculate_needs_all_insns): Adjust comments. - (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes. - * config/alpha/alpha.md (split for load of an address into a - four-insn sequence on Unicos/Mk): Adjust to use - REG_LABEL_OPERAND. - * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto. - -2007-09-09 Laurynas Biveinis - - Revert: - 2007-09-05 Laurynas Biveinis - * regrename.c (copyprop_hardreg_forward_1): New variable next. Use - FOR_BB_INSNS_SAFE instead of for loop. - * cse.c (cse_extended_basic_block): Likewise. - * postreload.c (reload_cse_regs_1): New variable next. Make sure - that the for loop does not invoke NEXT_INSN on a deleted insn. - * function.c (instantiate_virtual_regs): Likewise. - * lower-subreg.c (remove_retval_note): Likewise. - (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of - FOR_BB_INSNS. - * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on - a deleted insn. - * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted - insn, if it's a jump. - (try_redirect_by_replacing_jump): New variable jump_p. Call - tablejump_p before delete_insn_chain. - * reload1.c (reload): New variable next. Make sure that the for - loop does not invoke NEXT_INSN on a deleted insn. - (fixup_eh_region_note): Make the loop terminate if i becomes NULL. - (delete_output_reload): New variable prev. Make sure the the for - loops do not invoke PREV_INSN on a deleted insn. - -2007-09-08 John David Anglin - - * pa/constraints.md: Remove 'X' from unused letters comment. - -2007-09-08 Richard Guenther - - * tree-tailcall.c (find_tail_calls): If we don't have aliases - computed check stmt_ann->references_memory instead of counting - virtual operands. - -2007-09-08 Segher Boessenkool - - * cse.c (fold_rtx): Use validate_unshare_change() instead of - validate_change() in one more case. - -2007-09-08 Zdenek Dvorak - - PR tree-optimization/32283 - * tree-ssa-loop-ivopts.c (may_eliminate_iv): Use - estimated_loop_iterations. - (determine_use_iv_cost_condition): Decrease cost of expressions - used in iv elimination. - -2007-09-08 Richard Guenther - - * tree-cfg.c (verify_gimple_expr): Avoid building new - pointer types, use TYPE_POINTER_TO if available instead. - -2007-09-08 Uros Bizjak - - PR target/33329 - PR rtl-optimization/26449 - * config/i386/sse.md (mulv4si3): Do not expand sse2 sequence. - (*sse2_mulv4si3): New define_insn_and_split pattern. Split insn in - split1 pass. - (mulv16qi3): Implement as define_insn_and_split pattern instead of - define_expand. Split insn in split1 pass. - (mulv2di3): Ditto. - -2007-09-08 Dorit Nuzman - - PR tree-optimization/33301 - * tree-vect-analyze (analyze_operations): Look at the type of the rhs - when relevant. - -2007-09-07 Zdenek Dvorak - - PR tree-optimization/32183 - * Makefile.in (tree-ssa-reassoc.o): Also depend on $(CFGLOOP_H). - - * tree-ssa-reassoc.c: Include cfgloop.h. - (is_reassociable_op): Add a loop argument and return true only - for inside loop. - (linearize_expr): Updated. - (should_break_up_subtract): Likewise. - (linearize_expr_tree): Likewise. - (init_reassoc): Call loop_optimizer_init with - AVOID_CFG_MODIFICATIONS. Remove calculate_dominance_info call - with CDI_DOMINATORS. - (fini_reassoc): Call loop_optimizer_finalize. - -2007-09-07 Sterling Augustine - - * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Use an ISYNC even - if there is no i-cache. - -2007-09-07 Richard Guenther - - Reapply - 2007-09-06 Richard Guenther - - PR tree-optimization/32586 - * tree-ssa-sccvn.c (simplify_binary_expression): Avoid - folding if nothing changed. - (simplify_unary_expression): New function. Do tree combining - on conversion like codes. - (try_to_simplify): Call it. - -2007-09-07 John David Anglin - - PR target/33286 - * gthr-posix.h (__gthread_active_p): Add implementation for hppa-hpux. - (__gthread_active,__gthread_start, __gthread_active_init): New. - * gthr-posix95.h: Likewise. - -2007-09-07 Roman Zippel - - * function.h (struct function): Rename calls_unwind_init - to saves_all_registers. - (current_function_saves_all_registers): Renamed from - current_function_calls_unwind_init. - * reload1.c (reload): Set current_function_saves_all_registers. - * except.c (expand_builtin_unwind_init): Likewise. - * config/m68k/m68k.c (m68k_save_reg): Use - current_function_saves_all_registers to save pic register. - -2007-09-07 Janis Johnson - - config/m68k/m68k.c (floating_exact_log2): Update call to real_2expN. - config/s390/s390.md (fixuns_trunc2): Ditto. - - Reapply reverted changes: - - 2007-09-06 Jan Hubicka - - * config/i386.c (ix86_expand_lround, ix86_expand_round): Update call - of real_2expN. - - 2007-09-06 Richard Sandiford - - * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) - (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. - - 2007-09-05 Janis Johnson - - * optabs.c (expand_float): Convert unsigned integer as signed only - if it provides sufficient accuracy; add mode argument to real_2expN. - (expand_fix): Fix comment typos; extend binary float into mode - wider than destination for converion to unsigned integer; add mode - argument to real_2expN. - * real.c (real_2expN): Add mode argument to special-case decimal - float values. - * real.h (real_2expN): Ditto. - * fixed-value.c (check_real_for_fixed_mode): Add mode argument to - real_2expN. - (fixed_from_string): Ditto. - (fixed_to_decimal): Ditto. - (fixed_convert_from_real): Ditto. - (real_convert_from_fixed): Ditto. - * config/rs6000/rs6000.md (FP): Include DD and TD modes. - * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, - muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, - floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. - -2007-09-07 Diego Novillo - - * tree-flow.h (const_block_stmt_iterator): Remove. - Update all users to use block_stmt_iterator. - * tree-iterator.h (const_tree_stmt_iterator): Remove. - Update all users to use tree_stmt_iterator. - -2007-09-07 Sandra Loosemore - - * config/mips/mips.c (mips_set_current_function): Temporarily - make this a no-op to fix bootstrap errors, pending rewrite. - -2007-09-07 Jan Hubicka - - * reorg.c (dbr_schedule): Move code removing placeholder USEs later - in the pass. - -2007-09-07 Dorit Nuzman - - PR tree-optimization/33299 - * tree-vect-transform.c (vect_create_epilog_for_reduction): Update - uses for all relevant loop-exit phis, not just the first. - -2007-09-07 Richard Guenther - - PR middle-end/33330 - * tree-ssa-operands.c (access_can_touch_variable): An access - of the form (*p)[0] can touch a variable of same size. - -2007-09-07 Jan Hubicka - - * passes.c (init_optimization_passes): Add simple dce and addressable - passes. - * tree-ssa.c (execute_update_addresses_taken): New function. - (pass_update_address_taken): New. - * tree-ssa-dse.c (execute_simple_dse): New function. - (pass_simple_dse): New. - * tree-pass.h (pass_simple_dse, pass_update_address_taken): Declare. - -2007-09-07 Tobias Burnus - - PR middle-end/33321 - * doc/invoke.texi: Fix -Wstrict-overflow= table. - -2007-09-07 Richard Guenther - - Revert - 2007-09-06 Richard Guenther - - PR tree-optimization/32586 - * tree-ssa-sccvn.c (simplify_binary_expression): Avoid - folding if nothing changed. - (simplify_unary_expression): New function. Do tree combining - on conversion like codes. - (try_to_simplify): Call it. - -2007-09-07 Richard Guenther - Uros Bizjak - - PR tree-optimization/32821 - * tree_if_conv.c (combine_blocks): Use alloc_stmt_list instead of - NULL in the call to set_bb_stmt_list. - -2007-09-07 Richard Sandiford - - * config/mips/mips.c (build_mips16_call_stub): Emit all direct - float calls here, rather than leaving some to the caller. - Use call_internal_direct and call_value_internal_direct. - * config/mips/mips.md (call_internal_direct): New pattern. - (call_value_internal_direct): Likewise. - -2007-09-07 Richard Sandiford - - * config/mips/mips.c (mips_base_move_loop_invariants): New variable. - (mips_set_mips16_mode): Restore flag_move_loop_invariants, then set - to 0 for MIPS16. - (override_options): Set mips_base_move_loop_invariants. - -2007-09-07 Richard Sandiford - - * config/mips/mips.opt (mcode-readable=): Move to keep list - alphabetical. - -2007-09-07 Richard Sandiford - - * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata - and -mgpopt options. Adjust the -G documentation to match. - * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New. - * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New - function, split out from mips_classify_symbol. Return false for - !TARGET_LOCAL_SDATA. - (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p. - Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT. - (override_options): Check whether the -mgpopt setting is consistent - with the other flags. - (symbolic_expression_p): Delete. - (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p - and default_elf_select_rtx_section. - (mips_in_small_data_p): Honor section attributes for MIPS16 too. - Return false for local data unless TARGET_LOCAL_SDATA. Likewise - external data and TARGET_EXTERN_SDATA. - -2007-09-07 Tobias Burnus - - PR fortran/33303 - * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__. - -2007-09-05 Laurynas Biveinis - - * regrename.c (copyprop_hardreg_forward_1): New variable next. Use - FOR_BB_INSNS_SAFE instead of for loop. - * cse.c (cse_extended_basic_block): Likewise. - * postreload.c (reload_cse_regs_1): New variable next. Make sure - that the for loop does not invoke NEXT_INSN on a deleted insn. - * function.c (instantiate_virtual_regs): Likewise. - * lower-subreg.c (remove_retval_note): Likewise. - (decompose_multiword_subregs): Use FOR_BB_INSNS_SAFE instead of - FOR_BB_INSNS. - * emit-rtl.c (remove_insn): Set NEXT_INSN and PREV_INSN to NULL on - a deleted insn. - * cfgrtl.c (delete_insn): Set JUMP_LABEL to NULL on a deleted - insn, if it's a jump. - (try_redirect_by_replacing_jump): New variable jump_p. Call - tablejump_p before delete_insn_chain. - * reload1.c (reload): New variable next. Make sure that the for - loop does not invoke NEXT_INSN on a deleted insn. - (fixup_eh_region_note): Make the loop terminate if i becomes NULL. - (delete_output_reload): New variable prev. Make sure the the for - loops do not invoke PREV_INSN on a deleted insn. - -2007-09-06 Zdenek Dvorak - - * cgraphbuild.c (rebuild_cgraph_edges): Export. - * cgraph.h (rebuild_cgraph_edges): Declare. - * tree-pass.h (pass_expand_omp_ssa): New. - * omp-low.c (find_omp_clause): Export. - (copy_var_decl): Split from omp_copy_decl_2. - (build_omp_barrier): Return the call to emit instead of emitting - it directly. - (lower_rec_input_clauses, expand_omp_single): Gimplify the result of - build_omp_barrier. - (extract_omp_for_data, expand_parallel_call, expand_omp_parallel, - expand_omp_for_generic, expand_omp_for_static_nochunk, - expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): - Adapted to work on SSA form. - (execute_expand_omp): Do not invalidate dominance information. - (gate_expand_omp): Do not run with -fopenmp-ssa flag. - (gate_expand_omp_ssa, pass_expand_omp_ssa): New. - * gimplify.c (gimplify_omp_for): Ensure that the control variable is - a gimple_reg. - (force_gimple_operand): Allow gimplifying code expressions without - value. - * tree-predcom.c (mark_virtual_ops_for_renaming): Handle phi nodes. - * common.opt (fopenmp-ssa): New. - * tree-flow.h (find_omp_clause, copy_var_decl): Declare. - * Makefile.in (tree-cfg.o): Add TREE_INLINE_H dependency. - * tree-cfg.c: Include tree-inline.h. - (struct move_stmt_d): Replace vars_to_remove by vars_map field. - (replace_by_duplicate_decl, replace_ssa_name, - mark_virtual_ops_in_region): New functions. - (move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Adapted - to work on SSA form. - * passes.c (init_optimization_passes): Add pass_expand_omp_ssa pass. - * tree-ssa-operands.c (get_expr_operands): Handle operands of OMP - constructs. - -2007-09-06 Laurynas Biveinis - - * tree-loop-linear.c: Include obstack.h. - (linear_transform_loops): New obstack lambda_obstack. - Initialize it, pass it to gcc_loopnest_to_lambda_loopnest, - lambda_loopnest_transform, lambda_loopnest_to_gcc_loopnest calls - and free afterwards. - * lambda.h (struct obstack): New forward declaration. - (lambda_linear_expression_new): New parameter of type struct - obstack *. - (lambda_loopnest_new): Likewise. - (lambda_loopnest_transform): Likewise. - (lambda_body_vector_new): Likewise. - (lambda_body_vector_compute_new): Likewise. - (gcc_loopnest_to_lambda_loopnest): Likewise. - (lambda_loopnest_to_gcc_loopnest): Likewise. - * lambda-code.c: Include obstack.h. - (lambda_lattice_new): New parameter lambda_obstack. Use it for - allocation of ret. - (lambda_body_vector_new): Likewise. - (lambda_linear_expression_new): Likewise. - (lambda_lattice_new): Likewise. - (lambda_loopnest_new): Likewise. Additionally use obstack to - allocate LN_LOOPS(ret). - (lambda_lattice_compute_base): New parameter lambda_obstack. Pass - it to lambda_lattice_new. - (lambda_body_vector_compute_new): New parameter lambda_obstack. - Pass it to lambda_body_vector_new. - (lambda_lattice_compute_base): New paramater lambda_obstack. Pass - it to lambda_lattice_new. - (compute_nest_using_fourier_motzkin): New parameter lambda_obstack. - Pass it to lambda_loopnest_new, lambda_linear_expression_new. - (lambda_compute_target_space): Likewise. - (lambda_compute_auxillary_space): New parameter lambda_obstack. - Pass it to lambda_lattice_compute_base and - compute_nest_using_fourieer_motzkin. - (lambda_loopnest_transform): New parameter lambda_obstack. Pass - it to lambda_lattice_compute_base, lambda_lattice_auxillary_space - and lambda_lattice_compute_target_space. - (gcc_tree_to_linear_expression): Nex parameter lambda_obstack. - Pass it to lambda_linear_expression_new. - (gcc_loop_to_lambda_loop): New parameter lambda_obstack. Pass it - to gcc_tree_to_linear_expression. - (gcc_loopnest_to_lambda_loopnest): New parameter lambda_obstack. - Pass it to gcc_loop_to_lambda_loop and lambda_loopnest_new. - (lambda_loopnest_to_gcc_loopnest): New parameter lambda_obstack. - Pass it to lambda_body_vector_new and - lambda_body_vector_compute_new. - * Makefile.in (tree-loop-linear.o): Add $(OBSTACK_H) dependency. - (lambda-code.o): Likewise. - -2007-09-06 Chao-ying Fu - - * ginclude/stdfix.h: New file. - * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h. - (convert.o): Add dependence on fixed-value.h. - * c-convert.c (convert): Support FIXED_POINT_TYPE. - * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function - to define fixed-point constants. - (c_cpp_builtins): Define fixed-point constants. - * convert.c (fixed-value.h): New include. - (convert_to_real): Update comment to include fixed-point. - Support FIXED_POINT_TYPE. - (convert_to_integer): Update comment to include fixed-point. - Support FIXED_POINT_TYPE. - (convert_to_complex): Support FIXED_POINT_TYPE. - (convert_to_fixed): New function. - * convert.h (convert_to_fixed): Declare. - * genopinit.c: Add comment about $Q for only fixed-point modes. - (optabs): Add fract_optab, fractuns_optab, satfract_optab, - satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab, - sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab, - ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab, - usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab, - usneg_optab for fixed-point modes. - (gen_insn): Add force_fixed to track the $Q format for all fixed-point - modes. - * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR, - PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or - unsigned saturation optabs, when type is saturating. - (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT. - (expand_fixed_convert): New function. - (gen_fixed_libfunc, gen_signed_fixed_libfunc, - gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc, - gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc, - gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc, - gen_fract_conv_libfunc, gen_fractuns_conv_libfunc, - gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New - functions. - (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab, - ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, - usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab, - ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab, - usneg_optab, fract_optab, fractuns_optab, satfract_optab, - satfractuns_optab. - Initialize fixed-point libraries, including add, ssadd, usadd, sub, - sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl, - ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract, - fractuns, satfractuns. - * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub, - OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg, - OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen, - OTI_ssmsub_widen, OTI_usmsub_widen. - (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, - usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, - ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab, - umsub_widen_optab, usmsub_widen_optab): Define. - (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract, - COI_satfractuns. - (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab): - Define. - (expand_fixed_convert): Declare. - * expr.c (convert_move): Support the move of fixed-point modes. - (emit_move_insn_1): Handle fixed-point mode to move via integer. - (categorize_ctor_elements_1): Handle FIXED_CST. - (count_type_elements): Handle FIXED_POINT_TYPE. - (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT, - MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. - Support FIXED_CST. - For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating - multiply and add/subtract for fixed-point types. - For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point - mode, we jump to binop directly. - Support FIXED_CONVERT_EXPR. - (do_store_flag): Check FIXED_CST to put a constant second. - (vector_mode_valid_p): Handle MODE_VECTOR_FRACT, - MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. - (const_vector_from_tree): Support FIXED_CST. - * doc/extend.texi (Fixed-Point): New node. - * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv, - ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract, - satfract, fractuns, satfractuns): Document them. - -2007-09-07 Bernd Schmidt - - * config/bfin/bfin.h (PREFERRED_RELOAD_CLASS): Don't reload autoinc - addresses into I registers. - -2007-09-06 Jan Hubicka - Andreas Tobler - - * config/darwin.c (machopic_indirect_data_reference): Avoid invalid - sharing. - (machopic_legitimize_pic_address): Likewise. - -2007-09-06 Andrew Pinski - Jan Hubicka - - * config/spu/spu.md (floatsidf2): Use convert_optab_libfunc - instead of ufloat_optab->handlers directly. - (floatdidf2): Likewise. - -2007-09-06 Sandra Loosemore - - * config/mips/mips.c: Include diagnostic.h. - (mips_set_current_function): Check errorcount and sorrycount - before generating RTL. - -2007-09-06 Richard Sandiford - - PR target/33256 - * config/mips/mips.c (mips_classify_symbolic_expression): New function. - (mips_classify_address): Use it instead of mips_symbolic_constant_p. - (print_operand_reloc): Likewise. - -2007-09-06 Janis Johnson - - Revert: - - 2007-09-06 Jan Hubicka - - * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): - Update call of real_2expN. - - 2007-09-06 Richard Sandiford - - * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) - (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. - - 2007-09-05 Janis Johnson - - * optabs.c (expand_float): Convert unsigned integer as signed only - if it provides sufficient accuracy; add mode argument to real_2expN. - (expand_fix): Fix comment typos; extend binary float into mode - wider than destination for converion to unsigned integer; add mode - argument to real_2expN. - * real.c (real_2expN): Add mode argument to special-case decimal - float values. - * real.h (real_2expN): Ditto. - * fixed-value.c (check_real_for_fixed_mode): Add mode argument to - real_2expN. - (fixed_from_string): Ditto. - (fixed_to_decimal): Ditto. - (fixed_convert_from_real): Ditto. - (real_convert_from_fixed): Ditto. - * config/rs6000/rs6000.md (FP): Include DD and TD modes. - * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, - muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, - floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. - -2007-09-06 Tom Tromey - - * tree-cfg.c (remove_bb): Only warn if line is non-zero. - * c-pch.c (c_common_read_pch): Restore current location after - reading PCH file. - * tree.c (expand_location): Update. - (expr_filename): Changed return type. Unified the two cases. - (expr_lineno): Likewise. - (annotate_with_file_line): Don't use EXPR_LINENO and EXPR_FILENAME - as lvalues. - * toplev.c (line_table): Changed type. - (general_init): Update. - (realloc_for_line_map): New function. - (general_init): Allocate line_table using GC. - * fix-header.c (line_table): Changed type. - (read_scan_file): Update. - (read_scan_file): Update. - * c-ppoutput.c (maybe_print_line): Update. - (print_line): Update. - (cb_line_change): Update. - (cb_define): Update. - (pp_file_change): Update. - * c-opts.c (c_common_init_options): Update. - (finish_options): Update. - (push_command_line_include): Update. - * c-lex.c (cb_line_change): Update. - (cb_def_pragma): Update. - (cb_define): Update. - (cb_undef): Update. - (c_lex_with_flags): Use cpp_get_token_with_location. - * input.h (line_table): Changed type. - (location_from_locus): New macro. - * tree.h (EXPR_FILENAME): No longer an lvalue. - (EXPR_LINENO): Likewise. - (expr_locus, set_expr_locus): Declare separately for - USE_MAPPED_LOCATION. - (expr_filename, expr_lineno): Changed return type. - * gimplify.c (tree_to_gimple_tuple): Use SET_EXPR_LOCUS. - * cfgexpand.c (expand_gimple_cond_expr): Use location_from_locus. - (expand_gimple_basic_block): Likewise. - * final.c (final_scan_insn): Use expanded_location. - -2007-09-06 Richard Guenther - - PR tree-optimization/32586 - * tree-ssa-sccvn.c (simplify_binary_expression): Avoid - folding if nothing changed. - (simplify_unary_expression): New function. Do tree combining - on conversion like codes. - (try_to_simplify): Call it. - * builtins.c (fold_builtin_cexp): Fold the built expressions. - * fold-const.c (fold_unary): Test result of get_callee_fndecl(). - -2007-09-06 Jan Hubicka - - PR target/33318 - * cse.c (fold_rtx): Avoid invalid sharing. - -2007-09-06 Richard Sandiford - - * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) - (fixuns_truncsfsi2, fixuns_truncsfdi2): Update calls to real_2expN. - -2007-09-06 Revital Eres - - * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): - Fix offsettable memory reference for 750CL. - -2007-09-06 Pat Haugen - - * reload.c (find_reloads_address_1): Try to preserve original - base/index regclass of operands. - * regrename.c (scan_rtx_address): Likewise. - (replace_oldest_value_addr): Likewise. - -2007-09-06 Richard Guenther - - PR tree-optimization/33302 - * domwalk.c (walk_dominator_tree): The exit block is - interesting even if it is not reachable. - -2007-09-06 Richard Sandiford - - PR middle-end/33306 - * optabs.c (avoid_expensive_constant): Do nothing if MODE is VOIDmode. - -2007-09-06 Basile Starynkevitch - - * cfg.c (dump_bb_info, dump_edge_info): Added cfun test for - robustness. - -2007-09-05 Ian Lance Taylor - - * tree-pretty-print.c (dump_decl_name): Cast LABEL_DECL_UID to int - when printing. - (dump_generic_node): Likewise. - * print-rtl.c (print_decl_name): Likewise. - * print-tree.c (print_node_brief): Likewise. - (print_node): Likewise. - * Makefile.in (RTL_BASE_H): Add alias.h. - (TREE_H): Likewise. - -2007-09-06 Jesper Nilsson - - * longlong.h [__CRIS_arch_version >= 8] (count_trailing_zeros): - Defined. - * config/cris/cris.md (ctzsi2, cris_swap_bits): Implemented. - * config/cris/cris.h (CTZ_DEFINED_VALUE_AT_ZERO): Defined. - -2007-09-06 Jie Zhang - - * config.gcc (tm_file): Add linux.h for bfin*-uclinux*. - (tm_defines): Define UCLIBC_DEFAULT to 1. - (extra_options): Add linux.opt. - * config/bfin/linux.h (CPLUSPLUS_CPP_SPEC): Don't define. - (CRT_CALL_STATIC_FUNCTION): Likewise. - (NO_IMPLICIT_EXTERN_C): Likewise. - (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. - * config/bfin/elf.h (OBJECT_FORMAT_ELF): Don't define. - * config/bfin/uclinux.h (CPLUSPLUS_CPP_SPEC): Don't define. - (ENDFILE_SPEC): Don't define. - (LIB_SPEC): Likewise. - (CRT_CALL_STATIC_FUNCTION): Likewise. - (NO_IMPLICIT_EXTERN_C): Likewise. - (LINUX_TARGET_OS_CPP_BUILTINS): Likewise. - (TARGET_OS_CPP_BUILTINS): Define as LINUX_TARGET_OS_CPP_BUILTINS. - -2007-09-06 Jan Hubicka - - * config/i386/i386.c (ix86_expand_lround, ix86_expand_round): - Update call of real_2expN. - -2007-09-06 Jan Hubicka - - * opts.c (common_handle_option): Enable inlining functions for - -fprofile-generate. - -2007-09-06 Jakub Jelinek - - * builtin-attrs.def (ATTR_NONNULL_3): New. - (DEF_FORMAT_ATTRIBUTE): Use just ATTR_NONNULL_##FA instead of - ATTR_NOTHROW_NONNULL_##FA. - (DEF_FORMAT_ATTRIBUTE_NOTHROW, DEF_FORMAT_ATTRIBUTE_BOTH): New macros. - (ATTR_FORMAT_PRINTF_NOTHROW_2_0, ATTR_PRINTF_NOTHROW_2_3, - ATTR_FORMAT_PRINTF_NOTHROW_3_0, ATTR_FORMAT_PRINTF_NOTHROW_3_4, - ATTR_FORMAT_PRINTF_NOTHROW_4_0, ATTR_PRINTF_NOTHROW_4_5, - ATTR_FORMAT_PRINTF_NOTHROW_5_0, ATTR_FORMAT_PRINTF_NOTHROW_5_6, - ATTR_FORMAT_SCANF_NOTHROW_2_0, ATTR_FORMAT_SCANF_NOTHROW_2_3, - ATTR_FORMAT_STRFTIME_NOTHROW_3_0, ATTR_FORMAT_STRFMON_NOTHROW_3_4): - New. - (ATTR_FORMAT_PRINTF_4_0, ATTR_PRINTF_4_5, ATTR_FORMAT_PRINTF_5_0, - ATTR_FORMAT_PRINTF_5_6, ATTR_FORMAT_STRFTIME_3_0, - ATTR_FORMAT_NOTHROW_3_4): Remove. - * builtins.def (snprintf, sprintf, sscanf, vsnprintf, vsprintf, - vsscanf, strfmon, strftime, __snprintf_chk, __sprintf_chk, - __vsnprintf_chk, __vsprintf_chk): Use ATTR_FORMAT_*_NOTHROW_* - instead of ATTR_FORMAT_*_*. - -2007-09-06 Hans-Peter Nilsson - - * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on - parts re-used for REG_FRAME_RELATED_EXPR. - -2007-09-05 Janis Johnson - - * optabs.c (expand_float): Convert unsigned integer as signed only - if it provides sufficient accuracy; add mode argument to real_2expN. - (expand_fix): Fix comment typos; extend binary float into mode - wider than destination for converion to unsigned integer; add mode - argument to real_2expN. - * real.c (real_2expN): Add mode argument to special-case decimal - float values. - * real.h (real_2expN): Ditto. - * fixed-value.c (check_real_for_fixed_mode): Add mode argument to - real_2expN. - (fixed_from_string): Ditto. - (fixed_to_decimal): Ditto. - (fixed_convert_from_real): Ditto. - (real_convert_from_fixed): Ditto. - * config/rs6000/rs6000.md (FP): Include DD and TD modes. - * config/rs6000/dfp.md (extendddtd2, adddd3, addtd3, subdd3, subtd3, - muldd3, multd3, divdd3, divtd3, cmpdd_internal1, cmptd_internal1, - floatditd2, ftruncdd2, fixdddi2, ftrunctd2, fixddi2): New. - -2007-09-05 Ian Lance Taylor - - * init-regs.c (initialize_uninitialized_regs): Call - emit_insn_before rather than add_insn_before. - -2007-09-05 Jakub Jelinek - - * builtins.def (BUILT_IN_VA_ARG_PACK): New built-in. - * tree.h (CALL_EXPR_VA_ARG_PACK): Define. - * tree-inline.h (copy_body_data): Add call_expr field. - * tree-inline.c (expand_call_inline): Initialize call_expr. - (copy_bb): Append anonymous inline fn arguments to arguments - when inlining a CALL_EXPR_VA_ARG_PACK call. - * builtins.c (expand_builtin): Issue an error if - BUILT_IN_VA_ARG_PACK is seen during expand. - (fold_call_expr, fold_builtin_call_array): Don't fold - CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with - __builtin_va_arg_pack () call as last argument. - * gimplify.c (gimplify_call_expr): If last argument to a vararg - function is __builtin_va_arg_pack (), decrease number of call - arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR. - * expr.c (expand_expr_real_1): Issue an error if - CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand. - * tree-pretty-print.c (dump_generic_node): Handle printing - CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs. - * doc/extend.texi (__builtin_va_arg_pack): Document. - -2007-09-05 Adam Nemet - - PR tree-optimization/21513 - * builtins.c (build_builtin_expect_predicate): New function. - (fold_builtin_expect): Add argument for expected value. - Distribute __builtin_expect over short-circuiting operations. - Fold nested builtin_expects. - (fold_builtin_2): Adjust call to fold_builtin_expect. - -2007-09-05 Rask Ingemann Lambertsen - - PR web/32965 - PR tree-optimization/13756 - * doc/invoke.texi (Options That Control Optimization): Document - -ftree-dse. - -2007-09-05 Uros Bizjak - - * config/i386/cpuid.h: New file. - * config/i386/driver-i386.c: Include cpuid.h. - (describe_cache): Shrink size and line strings to 100 bytes. - (detect_caches_amd): Return "" for unsupported max_ext_level. - Use __cpuid function. - (detect_caches_intel): Return "" for unsupported max_level. - Use __cpuid function. - (host_detect_local_cpu): Change feature flag variables to - unsigned int. Initialize only extended feature flag variables. - Use __get_cpuid_max to determine max supported cpuid level. - Use __cpuid function to determine supported features. Fix - calculation of family id. Remove is_amd and check signature - directly. Check for Geode signature. Handle family 4 id. - [PROCESSOR_GENERIC32]: New default for unknown family id. Move - cpu discovery code to lower part of the function. - [PROCESSOR_PENTIUM, PROCESSOR_K6, PROCESSOR_ATHLON]: Do not tune - for sub-architecture. - [PROCESSOR_PENTIUMPRO]: Simplify cpu discovery code. - [PROCESSOR_K8]: Add k8-sse3 architecture. - [PROCESSOR_NOCONA]: Remove. - [PROCESSOR_GENERIC64]: Ditto. - * config/i386/x-i386 (driver-i386.o): Depend on cpuid.h. - * config/i386/crtfastmath.c: Include cpuid.h. Use __get_cpuid - to check for SSE and FXSAVE support. - * config/i386/t-crtfm (crtfastmath.o): Depend on cpuid.h. - Add -minline-all-stringops. - * config.gcc (i[34567]86-*-*): Add cpuid.h to extra_headers. - (x86_64-*-*): Ditto. - -2007-09-05 Jie Zhang - - * config/bfin/linux-unwind.h: New file. - * config/bfin/linux.h (MD_UNWIND_SUPPORT): Define. - * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Define. - -2007-09-05 Laurynas Biveinis - - * Makefile.in (stmt.o): Add alloc-pool.h dependency. - * stmt.c: Include alloc-pool.h. - (struct case_node): Remove GTY marker. - (add_case_node): New parameter case_node_pool. Use it for - allocation of r. - (expand_case): New allocation pool case_node_pool. Initialize it, - pass to add_case_node and free it. - -2007-09-05 Sandra Loosemore - David Ung - Nigel Stephens - - Add mips16/nomips16 function attributes and -mflip-mips16 option - for testing mixed-mode compilation. - - * config/mips/mips.opt (mflip-mips16): New. - - * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define. - (SYMBOL_FLAG_MIPS16_FUNC_P): Define. - - * config/mips/mips.c (mips_base_target_flags): New. - (mips_base_mips16): New. - (mips_base_schedule_insns): New. - (mips_base_reorder_blocks_and_partition): New. - (mips_base_align_loops): New. - (mips_base_align_jumps): New. - (mips_base_align_functions): New. - (mips16_flipper): New. - (mips_attribute_table): Add "mips16" and "nomips16" entries. - (TARGET_SET_CURRENT_FUNCTION): Define. - (mips_mips16_type_p, mips_nomips16_type_p): New. - (mips_comp_type_attributes): Check mips16/nomips16 attributes. - (mips_function_ok_for_sibcall): Make it deal with functions with - mips16 attributes. - (mips_init_split_addresses): New, split out from override_options. - (mips_init_relocs): New, split out from override_options. - (was_mips16_p): New. - (mips_set_mips16_mode): New, split out from override_options. - (mips_set_current_function): New. - (override_options): Add sorry for unsupported mips16/pic - combination. Remove error for mips16/dsp combination. Save - base option settings. - (mips_file_start): Move mips16 mode setting output from here.... - (mips_output_function_prologue): ....to here. - (mips_output_mi_thunk): Check for mips16 function. - (build_mips16_function_stub): Don't set .mips16 here. - (build_mips16_call_stub): Likewise. - (mips_expand_builtin): Error in mips16 mode. - (mips_use_mips16_mode_p): New. - (mips_encode_section_info): Check for mips16 function, and set - SYMBOL_REF_FLAGS accordingly. - - * doc/extend.texi (Function Attributes): Document new - mips16/nomips16 attributes. - * doc/invoke.texi (Option Summary): Add -mflip-mips16. - (MIPS Options): Document -mflip-mips16. - -2007-09-05 Sandra Loosemore - - * config/mips/mips.c (mips_legitimize_tls_address): Call sorry - if we encounter TLS address in MIPS16 mode. - (mips_legitimize_const_move): Check cannot_force_const_mem for - the (const (plus symbol offset)) case; this forces invalid TLS - address in MIPS16 mode to be caught by the above call to sorry. - (override_options): Don't reset targetm.have_tls in MIPS16 mode, - because that now enables emutls, which is not ABI compatible - with native TLS in non-MIPS16 mode. - -2007-09-05 Sandra Loosemore - - Add target hook invoked when cfun changes. - - * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document. - * target.h (struct gcc_target): Add set_current_function. - * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define. - (TARGET_INITIALIZER): Add initializer for set_current_function. - * tree.h (push_struct_function): New. - * tree-inline.h (push_cfun, pop_cfun): Move declarations to... - * function.h: Here. - (set_cfun): Declare. - * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to... - * function.c: Here. - (push_function_context_to): Use allocate_struct_function - to create null context, not init_dummy_function_start. Use set_cfun. - (pop_function_context_from): Use set_cfun. - (in_dummy_function): New. - (invoke_set_current_function_hook): New. - (set_cfun): New. - (push_cfun, pop_cfun): Use set_cfun. - (push_struct_function): New. - (allocate_struct_function): Call invoke_set_current_function_hook - before returning. - (prepare_function_start): Don't set cfun here. Remove unused - argument; fix all callers. - (init_dummy_function_start): Fiddle with in_dummy_function. Call - push_struct_function. - (init_function_start): Set cfun here. - (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun. - * omp-low.c (create_omp_child_function): Use push_struct_function - and pop_cfun to save/restore state. - (expand_omp_parallel): Remove unused saved_cfun variable. - * cgraphunit.c (ipa_passes): Use set_cfun. - * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here. - * dwarf2out.c (dwarf2out_abstract_function): Likewise. - * matrix-reorg.c (transform_allocation_sites): Likewise. - (matrix_reorg): Use set_cfun. - * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here. - * tree-optimize.c (tree_rest_of_compilation): Remove one redundant - assignment to cfun; use set_cfun for the other. - * tree-cfg.c (move_sese_region_to_fn): Use set_cfun. - (dump_function_to_file): Use push_cfun/pop_cfun here. - * c-decl.c (finish_function): Use set_cfun. - -2007-09-05 Kenneth Zadeck - - * regrename.c (rerename_optimize): Use deferred rescanning and - insert explicit calls to rescan insns when changed. - -2007-09-05 Jan Hubicka - - * optabs.c (libfunc_entry): Change optab to integer. - (hash_libfunc, convert_optab_libfunc, optab_libfunc, - set_optab_libfunc, set_conv_libfunc): Use optable indexes instead - of pointers for hashing. - -2007-09-05 Jan Hubicka - - * regrename.c (pass_regrename, pass_cprop_hardreg): Add RTL sharing - verifier. - * fwprop.c (pass_rtl_fwprop, pass_rtl_fwprop_add): Likewise. - * see.c (pass_see): Likewise. - * tracer.c (pass_tracer): Likewise. - * postreload-gcse.c (pass_gcse2): Likewise. - * postreload.c (pass_postreload_cse): Likewise. - * mode-switching.c (pass_mode_switching): Likewise. - * modulo-sched.c (pass_sms): Likewise. - * cse.c (cse_insn): Likewise. - * web.c (pass_web): Likweise. - * combine-stack-adj.c (pass_stack_adjustments): Likewise. - * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Likewise. - * loop-init.c (pass_rtl_loop_init): Likewise. - (pass_rtl_loop_done, pass_rtl_move_loop_, pass_rtl_unswitch, - pass_rtl_unroll_and, pass_rtl_doloop): Likewise. - * global.c (pass_global_alloc): Likewise. - * ifcvt.c (pass_rtl_ifcvt, pass_if_after_combine, - pass_if_after_reload): Likewise. - * reload.c (pass_peephole2, pass_split_for_shoren_branches): Likewise. - * dse.c (pass_rtl_dse1, pass_rtl_dse2): Likewise. - * regmove.c (pass_regmove): Likewise. - * function.c (pass_thread_prologugues_epilogues): Likewise. - * gcse.c (pass_gcse): Likewise. - * rtl-factoring.c (pass_rtl_seqabstr): Likewise. - * lower-subreg.c (pass_lower_subreg2): Likewise. - * bt-load.c (pass_branch_target_load): Likewise. - * emit-rtl.c (pass_unshare_all_rtl): Likewise. - * cfgcleanup.c (pass_jump, pass_jump2): Likewise. - * combine.c (pass_combine): Likewise. - * bb-reorder.c (pass_duplicate_comp, pass_reorder_blocks): Likewise. - (pass_partition_blocks): Likewise. - * var-tracking.c (pass_variable_track): Likewise. - * reg-stack.c (pass_stack_regs_run): Likewise. - * sched-rgn.c (pass_sched, pass_sched2): Likewise. - * passes.c (pass_postreload): Likewise. - (execute_function_todo): Add TODO_verify_rtl_sharing handling code. - * tree-pass.h (TODO_verify_rtl_sharing): New. - (TODO_update_ssa, TODO_update_ssa_no_phi, TODO_update_ssa_full_phi, - TODO_update_ssa_only_virtuals, TODO_remove_unused_locals, - TODO_set_props, TODO_df_finish, TODO_df_verify, - TODO_mark_first_instance, TODO_rebuild_alias): Renumber. - -2007-09-05 Kaveh R. Ghazi - - * fold-const.c (all_ones_mask_p, sign_bit_p, simple_operand_p, - fold_real_zero_addition_p, reorder_operands_p, - div_if_zero_remainder, fold_undefer_overflow_warnings, - int_binop_types_match_p, fold_convert_const_int_from_int, - fold_convert_const_int_from_real, - fold_convert_const_int_from_fixed, - fold_convert_const_real_from_real, - fold_convert_const_real_from_fixed, - fold_convert_const_fixed_from_fixed, - fold_convert_const_fixed_from_int, - fold_convert_const_fixed_from_real, maybe_lvalue_p, - fold_checksum_tree, fold_check_failed, print_fold_checksum, - debug_fold_checksum, multiple_of_p): Constify. - * tree-flow-inline.h (get_lineno): Likewise. - * tree-flow.h (get_lineno): Likewise. - * tree-object-size.c (compute_object_offset, addr_object_size, - alloc_object_size, pass_through_call): Likewise. - * tree-pretty-print.c (op_symbol, print_call_name, - print_struct_decl, do_niy): Likewise. - * tree.h (fold_undefer_overflow_warnings, multiple_of_p, - debug_fold_checksum): Likewise. - -2007-09-04 Steven Bosscher - - PR middle-end/33029 - * lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL - note, remove the associated REG_RETVAL note. - -2007-09-04 Andrew Pinski - - * config.gcc (powerpc*-*-*): Install - spu2vmx.h, vec_types.h, and si2vmx.h headers. - * config/rs6000/spu2vmx.h: New header. - * config/rs6000/si2vmx.h: New header. - * config/rs6000/vec_types.h: New header. - -2007-09-05 Ben Elliston - - * varasm.c (initializer_constant_valid_p): Fix comment typo. - -2007-09-05 Ben Elliston - - * config/rs6000/ppu_intrinsics.h (__ldarx): Use `Z' constraint, - not `m' for *ptrp. - (__stdcx): Make asm volatile. - (__stwcx, __stdcx): Return only 0 or 1. - -2007-09-05 Jan Hubicka - - Revert: - - 2007-09-04 Jan Hubicka - * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. - - 2007-09-04 Richard Guenther - * tree-ssa-operands.c (add_virtual_operand): Only mark - stores as has_volatile_ops if alias information is not available. - -2007-09-05 Jakub Jelinek - - * config/rs6000/tramp.asm: Include config.h. - Check __PIC__ or __pic__ macro instead of SHARED. - - PR rtl-optimization/32300 - * see.c (see_copy_insn): New function. - (see_def_extension_not_merged, see_merge_one_use_extension, - see_merge_one_def_extension): Use it. Avoid changing - PREV_INSN/NEXT_INSN chains directly, insted emit insns - into sequences. Call df_insn_delete on temporary insns - that won't be emitted into the insn stream. - (rest_of_handle_see): Turn off DF_DEFER_INSN_RESCAN - and run df_process_deferred_rescans () before run_fast_dce. - - PR tree-optimization/33017 - * tree-data-ref.c (split_constant_offset) : Don't - recurse for pure or const function calls. - -2007-09-04 Laurynas Biveinis - - * c-format.c: Include alloc-pool.h. - (check_format_info_main): New argument fwt_alloc. Use allocation - pool instead of GC. Remove GC deallocation code. - (check_format_arg): Create allocation pool, pass it to - check_format_info_main and free it afterwards. - * Makefile.in (c-format.o): Add alloc-pool.h dependency. - -2007-09-05 Ben Elliston - - * config/rs6000/ppu_intrinsics.h (__protected_stream_count): - Rename count macro arugment for clarity. - (__protected_unlimited_stream_set): Pass UG=1 to __dcbt_TH1000. - (__protected_stream_set): Likewise, pass 0. - -2007-09-04 Jan Hubicka - - * tree-tailcall.c (eliminate_tail_call): Expect unrenamed return value. - -2007-09-04 Jan Hubicka - - * invoke.texi (-finline-small-functions): Document. - * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE - when deciding what is inlinable. - (cgraph_decide_recursive_inlining): Handle flag_inline_functions. - (cgraph_decide_inlining_of_small_function): Handle new flags. - (cgraph_decide_inlining_incrementally): Likewise. - * opts.c (decode_options): Enable flag_inline_small_functions at -O2 - * common.opt (finline-small-functions): New. - * Makefile.in (build/gengtype.o-warn): Work around PR29478 - -2007-09-04 Richard Guenther - - * tree-ssa-operands.c (add_virtual_operand): Only mark - stores as has_volatile_ops if alias information is not available. - -2007-09-04 Andrew Haley - - * config/arm/libgcc-bpabi.ver: Add _Unwind_Backtrace as GCC_4.3.0. - -2007-09-04 Andrew Haley - - * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New. - * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New. - * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New. - -2007-09-04 Emmanuel Thome - - PR c++/14178 - * common.opt: Mention ABI version 2 in comment. - -2007-09-04 Jan Hubicka - - * optabs.c (debug_optab_libfunc): Update; make available to gdb. - (libfunc_entry): New structure. - (libfunc_hash): New hashtable. - (hash_libfunc): New function. - (eq_libfunc): New function. - (convert_optab_libfunc): New function. - (optab_libfunc): New function. - (expand_binop, sign_expand_binop, expand_twoval_binop_libfunc, - expand_unop, prepare_cmp_insn, prepare_float_insn, gen_add2_insn, - expand_float, expand_fix, new_optab, new_convert_optab): - Update for new libfunc API. - (init_libfunc, init_integral_libfuncs, - init_floating_libfuncs, init_interclass_conv_libfuncs - init_intraclass_conv_libfuncs): Remove; reorganize all logic to: - (gen_libfunc, gen_int_libfunc, gen_fp_libfunc, gen_int_fp_libfunc, - gen_intv_fp_libfunc, gen_interclass_conv_libfunc, - gen_int_to_fp_conv_libfunc, gen_ufloat_conv_libfunc, - gen_int_to_fp_nondecimal_conv_libfunc, gen_fp_to_int_conv_libfunc, - gen_intraclass_conv_libfunc, gen_trunc_conv_libfunc, - gen_extend_conv_libfunc): New. - (init_one_libfunc): Revamp for hashtables. - (set_conv_libfunc): Likewise. - (init_optabs): Initialize hashtable; use lazy initialization where - possible. - * optabs.h (optab_handlers): Move out of GGC. - (optab, convert_optab): Move out of GGC; add lazy gen info. - (code_to_optab, convert_optab_table, optab_table): Move out of GGC. - (optab_libfunc, convert_optab_libfunc): New. - * builtins.c (expand_builtin_powi): Update for new API. - * expr.c (convert_move): Likewise. - * expmed.c (expand_divmod): Likewise. - -2007-09-04 Daniel Jacobowitz - - * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space for the - GOT pointer only if there is a constant pool. Use the allocated space - for SPE also. - -2007-09-04 Daniel Jacobowitz - - * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Correct - typo for AltiVec. - -2007-09-04 Revital Eres - Richard Guenther - R. Clint Whaley - - * doc/invoke.texi (-fassociative-math, -freciprocal-math): - Document new flags. - * tree-tailcall.c (process_assignment): Use -fassociative-math - when reodering operands of floating-point type. - * fold-const.c (fold_comparison, fold_binary): Use - -fassociative-math and -freciprocal-math instead of - -funsafe-math-optimization flag. - * toplev.h (set_unsafe_math_optimizations_flags): Declare function. - * tree-ssa-math-opts.c (gate_cse_reciprocals): Use - -freciprocal-math instead of -funsafe-math-optimizations. - * opts.c (set_fast_math_flags): Set -freciprocal-math and - -fassociative-math when -ffast-math is set. - (set_unsafe_math_optimizations_flags): New Function - to set -freciprocal-math and -fassociative-math when - -funsafe-math-optimizations is set. - (common_handle_option): Call it. - * tree-vectorizer.c (vect_is_simple_reduction): Use - -fassociative-math when doing reduction on floats. - * loop-unroll.c (analyze_insn_to_expand_var): Use - -fassociative-math when expanding an accumulator of type float. - * simplify-rtx.c (simplify_binary_operation_1): Use - -fassociative-math and -freciprocal-math when reordeing operands - of floating-point type. - * combine.c (combine_simplify_rtx): Likewise. - * tree-ssa-reassoc.c (break_up_subtract_bb, reassociate_bb): - Likewise. - * common.opt (-fassociative-math, -freciprocal-math): New flags. - -2007-09-04 Paolo Carlini - - PR c++/18608 - * doc/install.texi (--enable-__cxa_atexit): Fix typo. - -2007-09-04 Jan Hubicka - - * regrename.c(copyprop_hardreg_forward_1): Unshare when doing copyprop. - -2007-09-04 Jan Hubicka - - * regrename.c (build_def_use): Don't share RTL between MATCH_OPERATOR - and corresponding MATCH_DUP. - -2007-09-04 Uros Bizjak - - PR middle-end/33187 - * combine.c (subst): Do not try to simplify X if it represents load - of FP constant from the constant pool via float extension. - -2007-09-04 Ben Elliston - - * c-opts.c: Include "tm_p.h". - * Makefile.in (c-opts.o): Add $(TM_P_H) as a dependency. - -2007-09-04 Richard Guenther - - PR tree-optimization/33291 - * tree-pretty-print.c (dump_generic_node): Dump all - qualifiers for pointer types, not only first. Dump - qualifiers for aggregate types as well. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Always - use the canonical type for building ARRAY_REFs. - * gimplify.c (canonicalize_addr_expr): Clean up. The - correct validness check is compatibility of the pointer - types. Always use the canonical type for building - ARRAY_REFs and ADDR_EXPRs. - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Revert - change that disabled propagation of ADDR_EXPRs into statements - with volatile ops. - -2007-09-03 Zack Weinberg - - * config/arm/arm.md (mulsidi3, umulsidi3, mulsi3_highpart) - (umulsi3_highpart): Make into expanders; existing insns are - now named *[insn]_nov6. Add stars to existing [insn]_v6 - counterparts' names. - -2007-09-03 Daniel Jacobowitz - - * Makefile.in (DRIVER_DEFINES, gcc.o, gccspec.o, protoize.o) - (unprotoize.o): Remove SHLIB_MULTILIB. - -2007-09-03 Eric Weddington - - * doc/extend.texi: Document progmem attribute for AVR. - -2007-09-03 Anatoly Sokolov - - PR target/28902 - * config/avr/avr.h (TARGET_VTABLE_ENTRY_ALIGN): Define. - -2007-09-03 Zack Weinberg - - * optabs.c (expand_ffs): Initialize val and defined_at_zero - to avoid warnings. - - * optabs.c: Remove unnecessary forward declarations. - (expand_unop_direct): New, broken out of expand_unop. - (expand_doubleword_clz): New. - (expand_ctz): Move above expand_ffs. Use - start_sequence, end_sequence, add_equal_note, and - expand_unop_direct. Add more commentary. - (expand_ffs): Try both ctz optab and expand_ctz. - Generate a test and branch if the hardware doesn't give us - a useful value for input zero. Style improvements similar to - expand_ctz. - - * config/arm/arm.md (ffssi2, ctzsi2): Delete. - -2007-09-03 Zack Weinberg - - * config.gcc: Delete stanza for arm-semi-aof and - armel-semi-aof targets. - * config/arm/arm-protos.h - * config/arm/arm.c - * config/arm/arm.h: Delete all #ifdef AOF_ASSEMBLER blocks; - make all #ifndef AOF_ASSEMBLER blocks unconditional. Also - delete aof_pic_label and remove mention of AOF in comments. - * config/arm/arm.md: Delete patterns used only for AOF assembly. - * config/arm/aof.h - * config/arm/semiaof.h - * config/arm/t-semi: Delete file. - -2007-09-03 Kaveh R. Ghazi - - * system.h (CONST_CAST2, CONST_CAST_TREE, CONST_CAST_RTX, - CONST_CAST_BB): New macros for type-specific casts. - (CONST_CAST): Add a TYPE parameter and define it in terms of - CONST_CAST2. - - * c-decl.c (c_make_fname_decl): Supply a TYPE for CONST_CAST. - * c-lex.c (cb_ident, lex_string): Likewise, - * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise, - * config/i386/i386.c (ix86_function_regparm, - ix86_function_sseregparm): Use CONST_CAST_TREE. - * config/mmix/mmix.c (mmix_encode_section_info): Supply a TYPE for - CONST_CAST. - * 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, - * gimple-low.c (block_may_fallthru): Use CONST_CAST_TREE. - * jump.c (reversed_comparison_code_parts): Use CONST_CAST_RTX. - * passes.c (execute_one_pass): Supply a TYPE for CONST_CAST. - * prefix.c (update_path): Likewise, - * pretty-print.c (pp_base_destroy_prefix): Likewise, - * rtlanal.c (keep_with_call_p): Use CONST_CAST_RTX. - * tree-cfg.c (tree_can_merge_blocks_p, - tree_block_ends_with_condjump_p): Use CONST_CAST_BB. - * tree-eh.c (lookup_stmt_eh_region_fn): USe CONST_CAST_TREE. - * tree.c (build_string): Supply a TYPE for CONST_CAST. - (attribute_list_contained): Use CONST_CAST_TREE. - -2007-09-03 Krister Walfridsson - - * config/netbsd-elf.h (USE_LD_AS_NEEDED): Define. - -2007-09-03 Richard Sandiford - - PR middle-end/33290 - * optabs.c (avoid_expensive_constant): Canonicalize CONST_INTs - before forcing them into a register. - -2007-09-03 Richard Sandiford - - * config/mips/mips.md (fetchop_bit): Use define_code_iterator - rather than define_code_macro. - -2007-09-03 Francois-Xavier Coudert - - * gcc.c (xputenv): New function. - (putenv_from_prefixes): Use xputenv instead of putenv. - (process_command): Use xputenv instead of putenv. - (set_collect_gcc_options): Use xputenv instead of putenv. - (main): Use xputenv instead of putenv. - -2007-09-03 Jesper Nilsson - - * config/cris/cris.h (TARGET_HAS_SWAP): Defined to describe - availability of swap instruction. - * config/cris/cris.md (bswapsi2): Implement using swap instruction. - -2007-09-03 Revital Eres - - * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Update - Documentation. - -2007-09-03 Vladimir Yanovsky - Ayal Zaks - Revital Eres - - * modulo-sched.c (ps_insert_empty_row, verify_partial_schedule, - compute_split_row): New functions. - (ps_unschedule_node): Remove. - (normalize_sched_times): Iterate over the already scheduled - insns instead of the number of nodes. - (MAX_SPLIT_NUM): New definition. - (sms_schedule_by_order): Change the scheduling heuristic to - avoid useless increases of initiation interval ii. - (get_sched_window): Add dump printouts. - -2007-09-02 David Daney - - * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP, UNSPEC_SYNC_OLD_OP, - UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE): New define_constants. - (optab, insn): Add more attributes. - (fetchop_bit): New code macro. - (immediate_insn): New code macro attribute. - (sync): Change condition to ISA_HAS_SYNC. - (rdhwr): Change predicate for operand 0 to register_operand. - (memory_barrier): New expand. - (sync_compare_and_swap, sync_add, sync_sub, - sync_old_add, sync_old_sub, sync_new_add, - sync_new_sub, sync_, sync_old_, - sync_new_, sync_nand, sync_old_nand, - sync_new_nand, sync_lock_test_and_set): New insns. - * config/mips/mips.h (ISA_HAS_SYNC, ISA_HAS_LL_SC): New ISA predicates. - (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, - MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, - MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): New Macros. - -2007-09-03 Jesper Nilsson - Hans-Peter Nilsson - - * config/cris/cris.h (TARGET_HAS_LZ, CLZ_DEFINED_VALUE_AT_ZERO): - Defined to describe availability and behavior of CLZ. - * config/cris/cris.md (clzsi2): Implement using lz instruction. - * config/cris/cris.opt: Tweak comment for "-metrax4". - * config/cris/arit.c (LZ): When defined, define as __builtin_clz. - * longlong.h [__CRIS__ && __CRIS_arch_version >= 3] - (count_leading_zeros): Define. - -2007-09-01 Laurynas Biveinis - - * ggc-page.c (ggc_pch_read): Call validate_free_objects. - -2007-09-02 Joseph Myers - - PR c/29237 - PR middle-end/33272 - * c-decl.c (grokdeclarator): Apply qualifiers to type of parameter - decayed from array. - -2007-09-01 Kazu Hirata - - * config/arm/arm.c, config/rs6000/ppu_intrinsics.h, - config/spu/spu.c, df-scan.c, fixed-value.c, fold-const.c, - ginclude/tgmath.h, haifa-sched.c, optabs.c, recog.c, - sched-deps.c, sched-int.h, system.h, target.h, - tree-ssa-live.c, tree-vect-transform.c, tree-vectorizer.c, - tree.def: Fix comment typos. - -2007-09-01 Kazu Hirata - - * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove. - (override_options): Turn on -mstrict-align on non-ColdFire - targets. - * config/m68k/m68k.h (BIGGEST_ALIGNMENT): Update a comment. - -2007-09-01 Kaveh R. Ghazi - - * c-common.c (const_strip_array_types): Delete. - * c-common.h (const_strip_array_types): Likewise. - * emit-rtl.c (const_next_insn, const_previous_insn, - const_next_nonnote_insn, const_prev_nonnote_insn, - const_next_real_insn, const_prev_real_insn, - const_next_active_insn, const_prev_active_insn, const_next_label, - const_prev_label): Delete. - * gimple-low.c (block_may_fallthru): Use expr_last. - * jump.c (reversed_comparison_code_parts): Use prev_nonnote_insn. - * rtl.h (const_previous_insn, const_next_insn, - const_prev_nonnote_insn, const_next_nonnote_insn, - const_prev_real_insn, const_next_real_insn, - const_prev_active_insn, const_next_active_insn, const_prev_label, - const_next_label): Delete. - * rtlanal.c (keep_with_call_p): Use next_nonnote_insn. - * system.h (CONST_CAST): Update comment. - * tree-cfg.c (tree_can_merge_blocks_p): Use last_stmt. - (const_first_stmt, const_last_stmt): Delete. - (tree_block_ends_with_condjump_p): Use last_stmt. - * tree-flow.h (const_first_stmt, const_last_stmt): Delete. - * tree-iterator.c (const_expr_first, const_expr_last, - const_expr_only): Delete. - * tree.c (const_lookup_attribute): Likewise. - (attribute_list_contained): Use lookup_attribute. - * tree.h (const_lookup_attribute, const_expr_first, - const_expr_last, const_expr_only): Delete. - -2007-09-01 Richard Guenther - - * tree-ssa-alias.c (create_name_tags): Use TYPE_VOLATILE - instead of TREE_THIS_VOLATILE. - * tree-ssa-operands.c (add_virtual_operand): Do not set - has_volatile_ops. Do not check s_ann for NULL. - (get_indirect_ref_operands): Likewise. - (get_expr_operands): Likewise. For all reference trees - set has_volatile_ops based on TREE_THIS_VOLATILE. Also - check base of reference for TREE_THIS_VOLATILE. - -2007-09-01 Richard Guenther - - * tree-cfg.c (verify_gimple_expr): Fix check for conversions - between integral types. Also allow conversions between - pointer types. - -2007-08-31 Andrew Pinski - - * optabs.c (prepare_float_lib_cmp): Use - libgcc_cmp_return_mode instead of word_mode. - * config/dfp-bit.h: Likewise. - * config/fp-bit.h: Likewise. - * config/spu/spu.c (spu_libgcc_cmp_return_mode): - New function. - (spu_libgcc_shift_count_mode): New function. - (TARGET_LIBGCC_CMP_RETURN_MODE): Define. - (TARGET_LIBGCC_SHIFT_COUNT_MODE): Define. - -2007-08-31 Joseph Myers - - * tree-pretty-print.c: Include output.h. - (dump_decl_name, dump_generic_node): Use %wd with pp_printf, not - HOST_WIDE_INT_PRINT_DEC. - * Makefile.in (tree-pretty-print.o): Add dependency on output.h. - -2007-08-31 Zdenek Dvorak - - PR rtl-optimization/33224 - * loop-iv.c (latch_dominating_def): Check that the definition belongs - to the analysed region. - -2007-08-31 Richard Guenther - - * function.c (allocate_struct_function): Do not set - current_function_returns_pointer. - * function.h (struct var_refs_queue): Remove. - (struct simple_obstack_stack): Likewise. - (struct function): Remove fixup_var_refs_queue member. - Remove returns_pointer flag. - (current_function_returns_pointer): Remove define. - -2007-08-31 Nick Clifton - - * tree-ssa-coalesce.c (compare_pairs): Use the elements as - secondary keys in order to obtain a stable sort. - -2007-08-31 Nick Clifton - - PR target/33132 - * config/m32r/constraints.md: Add W constraint for integer zero. - * config/m32r/m32r.md (get_pc): Use W and i constraints. - Fix length calculation by using alternatives. - -2007-08-31 Richard Sandiford - - * optabs.c (shift_optab_p, commutative_optab_p): New functions, - split out from expand_binop. - (avoid_expensive_constant): New function. - (expand_binop_directly): Remove commutative_op argument and - (expand_binop_directly): Remove commutative_op argument and - call cummutative_optab_p instead. Do not change op0 or op1 - when swapping xop0 and xop1. Apply avoid_expensive_constant - to each argument after potential swapping. Enforce the - canonical order of commutative operands. - (expand_binop): Use shift_optab_p and commutative_optab_p. - Update the calls to expand_binop_directly. Only force constants - into registers when widening an operation. Only swap operands - once a direct expansion has been rejected. - (expand_twoval_binop): Only force constants into registers when - using a direct expansion. - -2007-08-31 Maxim Kuvyrkov - - * sched-deps.c (update_dep): Mark arguments with ATTRIBUTE_UNUSED. - (sched_analyze_insn): Don't postprocess speculative dependencies when - target has no scheduling. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): Fix - 'uninitialized' warning. - -2007-08-31 Richard Guenther - - * tree.c (build_complex_type): Always set TYPE_NAME for - comples types. - -2007-08-31 Olivier Hainque - - * config/rs6000/xcoff.h (XCOFF_CSECT_DEFAULT_ALIGNMENT_STR): New - internal macro. Default alignment factor for csect directives, chosen - to match what BIGGEST_ALIGNMENT allows. - (DATA_SECTION_ASM_OP): Use it. - * config/rs6000/rs6000.c - (rs6000_xcoff_output_readonly_section_asm_op): - Use XCOFF_CSECT_DEFAULT_ALIGNMENT_STR. - (rs6000_xcoff_output_readwrite_section_asm_op): Likewise. - -2007-08-31 Olivier Hainque - - * dbxout.c (dbxout_block): Move declaration within the first - #if defined (DBX_DEBUGGING_INFO) block. Rearrange another such - block to include the definition, together with the associated - helpers. - -2007-08-31 David Edelsohn - Revital Eres - - * doc/invoke.texi (-mpaired): Document flag. - * config.gcc: Include paired.h in powerpc extra_headers and - 750cl.h in powerpc-*-linux*paired*. - * config/rs6000/rs6000.opt (-mpaired): New flag. - * config/rs6000/rs6000.c (paired_init_builtins, - paired_expand_builtin, paired_expand_lv_builtin, - paired_expand_stv_builtin, paired_expand_predicate_builtin): - New functions to support the paired single builtin functions. - (rs6000_hard_regno_mode_ok): Handle PAIRED_VECTOR_MODE. - (def_builtin, bdesc_3arg, bdesc_2arg, bdesc_1arg): Add paired - single builtins. - (bdesc_paired_preds): New structure for paired predicate - instructions. - (rs6000_expand_builtin): Expand paired single builtins. - (rs6000_init_builtins): Init paired single builtins. - (rs6000_common_init_builtins): Add v2sf_ftype_v2sf_v2sf_v2sf. - Rename v2sf_ftype_v2sf_v2sf to v2sf_ftype_v2sf_v2sf_spe - and v2sf_ftype_v2sf_spe to v2sf_ftype_v2sf. Add new types - v2sf_ftype_v2sf_v2sf and v2sf_ftype_v2sf. - (rs6000_vector_mode_supported_p): Support paired vector mode. - * config/rs6000/rs6000.h: (UNITS_PER_PAIRED_WORD, - PAIRED_VECTOR_MODE, PAIRED_SIMD_REGNO_P, TARGET_PAIRED_FLOAT): - New. - (LOCAL_ALIGNMENT): Handle PAIRED_VECTOR_MODE. - (DATA_ALIGNMENT): Likewise. - (UNITS_PER_SIMD_WORD): Handle PAIRED_VECTOR_MODE. - (rs6000_builtins): Add PAIRED builtins. - * config/rs6000/rs6000.md: Include paired.md. - * config/rs6000/paired.h: New. - * config/rs6000/paired.md: New. - * config/rs6000/750cl.h: New. - * config/rs6000/spe.md: Recognize movv2sf instruction for 750cl. - -2007-08-30 Ollie Wild - - * c-opts.c (c_common_handle_option): Support -fno-directives-only. - * gcc.c (default_compilers): Add -fno-directives-only to - @assembler-with-cpp. - -2007-08-30 Sandra Loosemore - - PR middle-end/33211 - - * regclass.c (initial_fixed_regs): Revert previous change and make - it const again. - (initial_call_used_regs): Likewise. - (initial_call_really_used_regs): Delete, reverting previous addition. - (initial_reg_names): Likewise. - (init_reg_sets): Revert previous change. - (saved_fixed_regs): New. - (saved_call_used_regs): New. - (saved_call_really_used_regs): New. - (saved_reg_names): New. - (save_register_info): New. - (restore_register_info): New. - (init_reg_sets_1): Replace reset of register info with call to - restore_register_info. - * rtl.h (save_register_info): Declare. - * toplev.c (backend_init): Call save_register_info. - -2007-08-30 Laurynas Biveinis - - * tree-ssa-propagate.c (set_rhs): Remove the copied annotation - from the original statement. - -2007-08-30 Chao-ying Fu - - * c-lex.c (interpret_fixed): Declare. - (interpret_float): Process _Fract and _Accum. - (interpret_fixed): New function. - * final.c (output_addr_const): Process CONST_FIXED. - * simplify-rtx.c (simplify_const_unary_operation): Handle US_NEG. - (simplify_binary_operation_1): Handle US_ASHIFT, SS_MULT, US_MULT, - SS_DIV, US_DIV. - (simplify_const_binary_operation): Handle SS_MULT, US_MULT, SS_DIV, - US_DIV, US_ASHIFT. - (simplify_immed_subreg): Support CONST_FIXED. - Process MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. - (simplify_subreg): Support CONST_FIXED. - -2007-08-30 Andrew Pinski - - * config/rs6000/ppu_intrinsics.h: New file. - * config.gcc (powerpc*-*-* ): Install - ppu_intrinsics.h. - -2007-08-30 Kenneth Zadeck - - * cfg.c (dump_flow_info): Change to also print entry and exit - block info. - * print-rtl.c (print_rtl_single): Allow to print rtl with - -fdump-unnumbered. - -2007-08-30 Kenneth Zadeck - - * df-core.h (df_dump_region): New function. - * df.h (df_dump_region): New function. - * loop-invariant.c (find_defs): Add call to df_dump_region. - * loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to - df_dump_region. - -2007-08-30 Jakub Jelinek - - PR target/33168 - * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Return - true if any of the compare_section_name calls returned true, - rather than if any returned false. - -2007-08-30 Richard Guenther - - PR tree-optimization/33199 - * tree-ssa-structalias.c (handle_lhs_call): New function. - (find_func_aliases): In non-IPA mode make sure that for - calls that return a pointer we add a constraint for the - result to point to anything. - -2007-08-30 Richard Guenther - - * doc/invoke.texi (-mveclibabi): Document new target option. - * config/i386/i386.opt (-mveclibabi): New target option. - * config/i386/i386.c (ix86_veclib_handler): Handler for - vectorization library support. - (override_options): Handle the -mveclibabi option, initialize - the vectorization library handler. - (ix86_builtin_vectorized_function): As fallback call the - vectorization library handler, if set. - (ix86_veclibabi_acml): New static function for ACML ABI style - vectorization support. - -2007-08-30 Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_emit_sync): For QI or HI mode - used_m, even if it is 32-bit aligned, adjust used_m MEM to have - SImode and update m. Don't run gen_lowpart_common on arbitrary - memory address, force it to register first. - - PR middle-end/32758 - * dce.c (dce_process_block): Don't delete setters of - artificially used registers. - -2007-08-30 Ulrich Weigand - - * config/s390/s390.md ("*add3_alc_carry1_cc", - "*add3_alc_carry1_cconly", "*add3_alc_carry2_cc", - "*add3_alc_carry2_cconly"): New insn definitions. - -2007-08-30 Ulrich Weigand - - * config/s390/s390.c (s390_expand_addcc): Emit canonical alc - pattern. - * config/s390/s390.md ("*add3_alc_cc", "*add3_alc", - "addti3", "*adddi3_31z", "*scond"): Make alc pattern canonical. - -2007-08-29 Kaveh R. Ghazi - - * system.h: Activate -Wcast-qual as warning-only. - -2007-08-29 Paolo Bonzini - - PR target/33168 - * config/rs6000/rs6000.c (compare_section_name): New function. - (rs6000_elf_in_small_data_p): Compare section prefixes instead - of full name. - -2007-08-29 Olivier Hainque - - * xcoffout.c: #include debug.h. - * Makefile.in (xcoffout.o): Add debug.h dependency. - -2007-08-29 Uros Bizjak - - * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: - Change CONST_VECTOR_ELT to XVECEXP in elem calculation. - -2007-08-29 Richard Guenther - - * tree-pretty-print.c (dump_generic_node): Print - label DECL_UID as D.%u. - * tree-dfa.c (dump_variable): Print DECL_UID as D.%u. - -2007-08-29 Francois-Xavier Coudert - - * builtin-types.def (BT_FN_PTR_PTR_SIZE): New type. - * builtins.def (BUILT_IN_REALLOC): New builtin. - -2007-08-29 Douglas Gregor - - PR c++/33194 - * tree.c (build_type_attribute_qual_variant): Set canonical types - on the final, unqualified attribute variant before building the - qualified version. - -2007-08-29 Jie Zhang - - * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument - order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu. - -2007-08-29 Jie Zhang - - Revert - 2007-08-29 Jie Zhang - * config/bfin/bfin.md (composev2hi): Put operands into vector - with correct order. - -2007-08-29 Jie Zhang - - * config/bfin/bfin.md (composev2hi): Put operands into vector - with correct order. - -2007-08-29 Jie Zhang - - * config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text - attribute when appropriate. - (bfin_handle_l1_text_attribute): New. - (bfin_handle_l1_data_attribute): New. - (bfin_attribute_table): Add attributes: l1_text, l1_data, - l1_data_A and l1_data_B. - * doc/extend.texi (node Function Attributes): Document l1_text - function attribute. - (Variable Attributes): Add Blackfin subsection. Document l1_data, - l1_data_A and l1_data_B variable attributes. - -2007-08-28 Jie Zhang - - * config/bfin/bfin.opt (minline-plt): Add. - * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit - call to global functions. - * doc/invoke.texi (Option Summary): Mention -minline-plt. - (Blackfin Options): Document -minline-plt. - -2007-08-28 Nathan Sidwell - - * config/m68k/m68k.c (m68k_get_function_kind): Assert we're never - given a non-function. - (m68k_ok_for_sibcall_p): Only sibcall functions of the same kind. - -2007-08-28 DJ Delorie - - * config/sh/sh.c (sh_gimplify_va_arg_expr): Fix sh2a support. - -2007-08-28 Kaveh R. Ghazi - - * system.h (CONST_CAST): Avoid union for gcc-4.0.x. - -2007-08-28 Richard Guenther - - * tree.h (struct tree_function_decl): Increase size of - function_code bitfield. - -2007-08-28 Nathan Sidwell - Kazu Hirata - - * config/m68k/linux.h - (M68K_HONOR_TARGET_STRICT_ALIGNMENT): Redefine as 0. - * config/m68k/m68k.c (TARGET_RETURN_IN_MEMORY): New. - (m68k_return_in_memory): New. - * config/m68k/m68k.h (M68K_HONOR_TARGET_STRICT_ALIGNMENT): - New. - -2007-08-28 Uros Bizjak - - PR target/32661 - * simplify-rtx.c (simplify_binary_operation_1) [VEC_SELECT]: - Simplify nested VEC_SELECT (with optional VEC_CONCAT operator as - operand) when top VEC_SELECT extracts scalar element. - * config/i386/sse.md (*vec_extract_v4si_mem): New pattern. - (*vec_extract_v4sf_mem): Ditto. - -2007-08-28 Jakub Jelinek - - PR middle-end/32370 - * passes.c (init_optimization_passes): Move pass_df_finish - after pass_postreload sublist. - - PR rtl-optimization/33148 - * simplify-rtx.c (simplify_unary_operation_1): Only optimize - (neg (lt X 0)) if X has scalar int mode. - - PR debug/32914 - * dwarf2out.c (rtl_for_decl_init): If vector decl has CONSTRUCTOR - initializer, use build_vector_from_ctor if possible to create - VECTOR_CST out of it. If vector initializer is not VECTOR_CST - even after this, return NULL. - -2007-08-28 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_constant): Handle COMPLEX_CST. - -2007-08-28 Richard Guenther - - * tree.h (DECL_DISREGARD_INLINE_LIMITS): New. - (struct tree_function_decl): Make function_code a bitfield. - Add disregard_inline_limits flag. - * cgraphunit.c (cgraph_process_new_functions): Check - DECL_DISREGARD_INLINE_LIMITS instead of disregard_inline_limits_p. - (cgraph_preserve_function_body_p): Likewise. - * ipa-inline.c (compute_inline_parameters): Likewise. - * c-decl.c (finish_function): Set DECL_DISREGARD_INLINE_LIMITS - for GNU C extern inline functions. - (merge_decls): Merge DECL_DISREGARD_INLINE_LIMITS. - * tree-inline.c (disregard_inline_limits_p): Remove. - * tree-inline.h (disregard_inline_limits_p): Likewise. - * c-common.c (handle_always_inline_attribute): Set - DECL_DISREGARD_INLINE_LIMITS. - * langhooks.c (add_builtin_function): Verify the function code - fits in the bitfield. - -2007-08-28 Mircea Namolaru - Vladimir Yanovsky - Revital Eres - Andrey Belevantsev - - * config/spu/spu.md: Recognize doloop pattern when -fmodulo-sched - is set. - * modulo-sched.c: Add documentation regarding do-loop. - (doloop_register_get): Change number of arguments to support - the new do-loop pattern and check whether COUNT_REG has no other - occurences in the loop besides in the control part. - (duplicate_insns_of_cycles): Do not duplicate the insn which - changes count_reg as it is already adjusted. - (generate_prolog_epilog): New argument to support the new - do-loop pattern. Change the subtract instruction to use - expand_simple_binop. Call duplicate_insns_of_cycles with new - argument. - (sms_schedule): Call doloop_register_get and - generate_prolog_epilog with new argument. Do not handle loops - with single sets insns with subreg in their lhs. - * loop-doloop.c (doloop_optimize): Support for another do-loop - pattern. - (doloop_condition_get): Gets an instruction instead of a pattern - and change the return condition when the do-loop pattern is - not parallel. - * ddg.c (create_ddg_dep_from_intra_loop_link): Handle only reg - deps when considering to not create edges. - -2007-08-27 Alexandre Oliva - - * doc/extend.texi (gnu_inline funtion attribute): Document C++ - behavior. - -2007-08-27 Jason Merrill - - PR c++/31337 - * gimplify.c (gimplify_modify_expr): Discard the assignment of - zero-sized types after calling gimplify_modify_expr_rhs. - -2007-08-27 Sandra Loosemore - - * regclass.c (init_reg_autoinc): Fix typo. - -2007-08-27 Daniel Berlin - - Fix PR tree-optimization/33173 - * tree-ssa-alias.c (find_used_portions): Fix reversed test. - -2007-08-27 H.J. Lu - - PR target/31385 - * config/i386/i386.h (VALID_DFP_MODE_P): New. - * config/i386/i386.c (ix86_hard_regno_mode_ok): Allow DFP in - GPR. - -2007-08-27 Sandra Loosemore - David Ung - Nigel Stephens - - Separate target-specific initialization from general - back-end initialization. - - * toplev.c (init_alignments): New, split out from... - (process_options): ...here. - (backend_init_target): New, split out from... - (backend_init): ...here. - (lang_dependent_init_target): New, split out from... - (lang_dependent_init): ...here. - (target_reinit): New. - * toplev.h (target_reinit): Declare. - * expr.c (init_expr_target): Renamed from init_expr_once, since it - now can be called more than once. Update comments. - * expr.h (init_expr_target): Likewise. - * alias.c (init_alias_target): Renamed from init_alias_once, since it - now can be called more than once. Explicitly zero - static_reg_base_value. - * emit-rtl.c (init_emit_regs): New, split out from... - (init_emit_once): Here. - * regclass.c (initial_fixed_regs, initial_call_used_regs): Make - non-const, so that changes from command-line arguments can overwrite - values provided by the static initializers. - (initial_call_really_used_regs): New, used similarly to the above. - (initial_reg_names): Likewise. - (last_mode_for_init_move_cost): Promoted function-local static to - file-scope static to make it accessible outside init_move_cost. - (init_reg_sets): Do not initialize fixed_regs and call_used_regs yet. - Do not initialize inv_reg_alloc_order yet, either. Do initialize - reg_names since it is needed for parsing command-line options. - (init_move_cost): Use last_mode_for_init_move_cost instead of - function-local static. - (init_reg_sets_1): Initialize fixed_regs, call_used_regs, and - call_really_used_regs now. Reinitialize reg_names. Also - initialize inv_reg_alloc_order. Zero reg_class_subunion and - reg_class_superunion. Clear losing_caller_save_reg_set. - Preserve global registers if called more than once. Reset - move cost, may_move_in_cost, may_move_out_cost, and - last_mode_for_init_move_cost. - (init_reg_modes_target): Renamed from init_reg_modes_once, since it - can now be invoked more than once. Update comments. - (init_regs): Update comments. - (fix_register): Update initial_fixed_regs, initial_call_used_regs, - and initial_call_really_used_regs, instead of the non-initial - variables. This allows us to save the command-line register settings - after target reinitialization. - (init_reg_autoinc): Zero forbidden_inc_dec_classes. - * rtl.h (init_emit_regs): Declare. - (init_reg_modes_target, init_alias_target): Renamed as described - above. - * reload1.c (init_reload): Update comments. - * optabs.c (init_optabs): Likewise. - * cfgloopanal.c (init_set_costs): Explicitly zero target_avail_regs. - -2007-08-26 Chao-ying Fu - - * rtl.h (XCNMPFV): Preserve const-ness of parameters through use of - __typeof(). - -2007-08-26 Kaveh R. Ghazi - - * alias.c (memory_modified_1, memory_modified_in_insn_p): - Constify. - * basic-block.h (tree_predicted_by_p, rtl_predicted_by_p): - Likewise. - * bb-reorder.c (copy_bb_p): Likewise. - * cfghooks.c (can_remove_branch_p, can_merge_blocks_p, - predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, - block_ends_with_condjump_p): Likewise. - * cfghooks.h (can_remove_branch_p, can_merge_blocks_p, - predicted_by_p, can_duplicate_block_p, block_ends_with_call_p, - block_ends_with_condjump_p): Likewise. - * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise. - * cfgrtl.c (can_delete_note_p, can_delete_label_p, - rtl_can_merge_blocks, cfg_layout_can_merge_blocks_p, - rtl_block_ends_with_call_p, rtl_block_ends_with_condjump_p, - need_fake_edge_p, rtl_can_remove_branch_p): Likewise. - * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Use - debug_true_const_tree instad of debug_true_tree. - * debug.c (do_nothing_debug_hooks): Likewise. - * debug.h (ignore_block, debug_true_const_tree): Constify. - * dwarf2out.c (stack_adjust_offset, clobbers_queued_reg_save, - dwarf2out_ignore_block, is_pseudo_reg, is_tagged_type, - decl_ultimate_origin, block_ultimate_origin, lookup_decl_loc, - same_dw_val_p, add_ranges, is_subrange_type, type_is_enum, - dbx_reg_number, is_based_loc, field_type, - simple_type_align_in_bits, simple_decl_align_in_bits, - simple_type_size_in_bits, field_byte_offset, insert_float, - type_tag, member_declared_type, is_redundant_typedef, - secname_for_decl, is_inlined_entry_point): Likewise. - * emit-rtl.c (const_next_insn, const_previous_insn, - const_next_nonnote_insn, const_prev_nonnote_insn, - const_next_real_insn, const_prev_real_insn, - const_next_active_insn, const_prev_active_insn, const_next_label, - const_prev_label): Likewise. - * except.h (lookup_stmt_eh_region_fn, lookup_stmt_eh_region): - Likewise. - * haifa-sched.c (may_trap_exp, haifa_classify_insn, - find_set_reg_weight, no_real_insns_p, find_set_reg_weight, - sched_insn_is_legitimate_for_speculation_p): Likewise. - * jump.c (reversed_comparison_code_parts, - reversed_comparison_code, reversed_comparison, condjump_label): - Likewise. - * predict.c (rtl_predicted_by_p, tree_predicted_by_p): Likewise. - * reg-stack.c (stack_regs_mentioned_p, stack_regs_mentioned): - Likewise. - * rtl.h (const_previous_insn, const_next_insn, - const_prev_nonnote_insn, const_next_nonnote_insn, - const_prev_real_insn, const_next_real_insn, - const_prev_active_insn, const_next_active_insn, const_prev_label, - const_next_label, modified_between_p, modified_in_p, - const_note_storeskeep_with_call_p, condjump_label, - reversed_comparison, reversed_comparison_code, - reversed_comparison_code_parts, memory_modified_in_insn_p, - stack_regs_mentioned): Likewise. - * rtlanal.c (modified_between_p, modified_in_p, const_note_stores, - keep_with_call_p): Likewise. - * sched-deps.c (deps_may_trap_p, sched_get_condition, - conditions_mutex_p, sched_insns_conditions_mutex_psd_next_list, - sd_lists_size, sd_lists_empty_p): Likewise. - * sched-int.h (sched_insns_conditions_mutex_p, - haifa_classify_insn, no_real_insns_p, - sched_insn_is_legitimate_for_speculation_p, sd_next_list, - sd_lists_size, sd_lists_empty_p): Likewise. - * sdbout.c (sdb_debug_hooks): Likewise. - * tree-cfg.c (tree_can_merge_blocks_p, is_ctrl_altering_stmt, - stmt_ends_bb_p, tree_can_remove_branch_p, tree_can_duplicate_bb_p, - -tree_block_ends_with_call_p, tree_block_ends_with_condjump_p): - Likewise. - * tree-eh.c (lookup_stmt_eh_region_fn, lookup_stmt_eh_region, - tree_can_throw_internal): Likewise. - * tree-flow-inline.h (phi_nodes): Likewise. - * tree-flow.h (phi_nodesstmt_ends_bb_p, is_ctrl_altering_stmt, - tree_can_throw_internal, lookup_stmt_eh_region): Likewise. - * tree-gimple.c (const_get_call_expr_in): Likewise. - * tree-gimple.h (const_get_call_expr_in): Likewise. - * tree.c (const_lookup_attribute, attribute_list_equal, - attribute_list_contained): Likewise. - * tree.h (attribute_list_equal, attribute_list_contained, - const_lookup_attribute): Likewise. - * vmsdbgout.c (vmsdbgout_ignore_block): Likewise. - -2007-08-26 Bernhard Fischer - - * tree-ssa-sccvn.c, tree-ssa-sccvn.h, tree-vn.c, - tree-ssa-pre.c: Remove unnecessary trailing whitespace. - -2007-08-26 H.J. Lu - - PR target/32991 - * config/alpha/constraints.md: Delete "svn:mime-type" property - with svn propdel "svn:mime-type". - -2007-08-26 H.J. Lu - - PR middle-end/33181 - * ifcvt.c (noce_get_alt_condition): Make sure that the previous - non NOTE insn doesn't cross basic block. - (noce_try_abs): Likewise. - (noce_process_if_block): Likewise. - -2007-08-26 David Edelsohn - - PR target/33151 - * config/rs6000/predicates.md (offsettable_mem_operand): Memory - operand without auto-inc-dec. - * config/rs6000/rs6000.md (floatsidf2_internal): Use - offsettable_mem_operand. - (floatunssidf2_internal): Same. - (fix_truncdfsi2_internal): Same. - (floatsidf_ppc64): Same. - (floatunssidf_ppc64): Same. - (fix_trunctfsi2_internal): Same. - -2007-08-26 Bernhard Fischer - - PR bootstrap/30620 - * Makefile.in (libbackend.o): Add gcov-iov.h dependency and - pass defines needed for version.c. - -2007-08-25 Joseph Myers - - * configure.ac (--debug-prefix-map check): Change assembler - version presumed to have feature to 2.18. - * configure: Regenerate. - -2007-08-25 Kaveh R. Ghazi - - * c-common.c (vector_types_convertible_p, - decl_with_nonnull_addr_p, c_promoting_integer_type_p, - self_promoting_args_p): Constify. - * c-common.h (has_c_linkage, decl_with_nonnull_addr_p, - c_promoting_integer_type_p, self_promoting_args_p, - anon_aggr_type_p, vector_types_convertible_p): Likewise. - * c-decl.c (anon_aggr_type_p): Likewise. - * * c-dump.c (dump_stmt): Likewise. - * c-objc-common.c (has_c_linkage): Likewise. - * c-tree.h (same_translation_unit_p): Likewise. - * c-typeck.c (null_pointer_constant_p, - tagged_types_tu_compatible_p, function_types_compatible_p, - type_lists_compatible_p, lvalue_or_else, lvalue_p, - comptypes_internal, struct tagged_tu_seen_cache, - same_translation_unit_p, alloc_tagged_tu_seen_cache, - c_size_in_bytes): Likewise. - * ggc-common.c (compare_ptr_data, hash_descriptor, eq_descriptor, - hash_ptr, eq_ptr): Likewise. - * langhooks-def.h (lhd_decl_ok_for_sibcall, - LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Likewise. - * langhooks.c (lhd_decl_ok_for_sibcall): Likewise. - * langhooks.h (ok_for_sibcall, omp_privatize_by_reference): - Likewise. - * optabs.c (optab_for_tree_code): Likewise. - * optabs.h (optab_for_tree_code): Likewise. - * rtl.h (simplify_rtx): Likewise. - * simplify-rtx.c (simplify_rtx): Likewise. - * tree-dump.c (queue, queue_and_dump_index, queue_and_dump_type, - dump_flag, dump_node): Likewise. - * tree-dump.h (struct dump_info, dump_stmt, queue_and_dump_index, - queue_and_dump_type, dump_flag): Likewise. - * tree-flow.h (vect_can_force_dr_alignment_p): Likewise. - * tree-pass.h (dump_node): Likewise. - * tree-vectorizer.c (vect_can_force_dr_alignment_p, - supportable_narrowing_operation): Likewise. - * tree-vectorizer.h (vect_can_force_dr_alignment_p, - supportable_narrowing_operation): Likewise. - * tree-vrp.c (needs_overflow_infinity, supports_overflow_infinity, - is_negative_overflow_infinity, is_positive_overflow_infinity, - is_overflow_infinity, vrp_val_is_max, vrp_val_is_min, - nonnull_arg_p, get_value_range, vrp_operand_equal_p, - update_value_range, add_equivalence, ssa_name_nonnegative_p, - ssa_name_nonzero_p, fp_predicate): Likewise. - * tree.c (auto_var_in_fn_p, empty_body_p): Likewise. - * tree.h (empty_body_p, auto_var_in_fn_p, ssa_name_nonzero_p, - ssa_name_nonnegative_p): Likewise. - -2007-08-25 Hans Kester - - * config.gcc : Add x86_64-elf target. - -2007-08-25 Jakub Jelinek - - * expr.c (store_expr): Fix order of store_by_pieces arguments. - -2007-08-24 Sandra Loosemore - Nigel Stephens - - PR target/11787 - - * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros. - (STORE_BY_PIECES_P): No longer applies to __builtin_memset. - * expr.c (SET_BY_PIECES_P): Define. - (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use - it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P. - (store_expr): Pass MEMSETP argument to can_store_by_pieces and - store_by_pieces. - * expr.h (SET_RATIO): Define. - (can_store_by_pieces, store_by_pieces): Update prototypes. - * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to - can_store_by_pieces/store_by_pieces. - (expand_builtin_memcpy_args): Likewise. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset_args): Likewise. Also remove special case - for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can - decide what to do instead. - * value-prof.c (tree_stringops_transform): Pass MEMSETP argument - to can_store_by_pieces. - - * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P. - * config/s390/s390.h (SET_BY_PIECES_P): Likewise. - - * config/mips/mips.opt (mmemcpy): Change from Var to Mask. - * config/mips/mips.c (override_options): Make -Os default to -mmemcpy. - * config/mips/mips.h (MIPS_CALL_RATIO): Define. - (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define. - (STORE_BY_PIECES_P): Define. - -2007-08-24 Tom Tromey - - * varpool.c (varpool_last_needed_node): Fix comment typo. - * c-decl.c (duplicate_decls): Fix comment typo. - (clone_underlying_type): Update comment. - -2007-08-24 Kaveh R. Ghazi - - * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp, - alpha_in_small_data_p, alpha_split_complex_arg, - alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK): - Constify. - * config/arm/arm-protos.h (arm_mangle_type): Likewise. - * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type): - Likewise. - * config/bfin/bfin.c (funkind, bfin_comp_type_attributes, - TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. - * config/darwin-protos.h (darwin_binds_local_p): Likewise. - * config/darwin.c (darwin_binds_local_p): Likewise. - * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p): - Likewise. - * config/i386/i386-protos.h (i386_pe_binds_local_p, - i386_pe_valid_dllimport_attribute_p): Likewise. - * config/i386/i386.c (ix86_function_regparm, - ix86_comp_type_attributes, ix86_ms_bitfield_layout_p, - x86_can_output_mi_thunk, ix86_mangle_type, - TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. - * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p, - i386_pe_binds_local_p): Likewise. - * config/ia64/ia64.c - (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, - ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type, - ia64_invalid_conversion, ia64_invalid_unary_op, - ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK): - Likewise. - * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise. - * config/m32r/m32r.c (m32r_in_small_data_p): Likewise. - * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise. - * config/mips/mips.c (mips_use_blocks_for_constant_p, - mips_in_small_data_p, mips_use_anchors_for_symbol_p, - mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK, - mips_near_type_p, mips_far_type_p, mips_global_symbol_p, - mips_symbol_binds_local_p, mips_classify_symbol): Likewise. - * config/pa/pa.c (pa_commutative_p): Likewise. - * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p): - Likewise. - * config/rs6000/rs6000.c (rs6000_invalid_within_doloop, - rs6000_ms_bitfield_layout_p, rs6000_mangle_type, - rs6000_use_blocks_for_constant_p, - rs6000_vector_alignment_reachable, rs6000_is_opaque_type, - invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK, - TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise. - * config/s390/s390.c (s390_mangle_type, - TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP): - Likewise. - * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK, - th_in_small_data_p): Likewise. - * config/sh/sh.c (sh_ms_bitfield_layout_p, - sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK): - Likewise. - * config/sparc/sparc.c (sparc_can_output_mi_thunk, - sparc_mangle_type): Likewise. - * config/spu/spu.c (spu_vector_alignment_reachable): Likewise. - * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise. - * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq): - Likewise. - * hooks.c (hook_bool_mode_const_rtx_false, - hook_bool_mode_const_rtx_true, - hook_bool_const_tree_hwi_hwi_const_tree_false, - hook_bool_const_tree_hwi_hwi_const_tree_true, - hook_int_const_tree_0, hook_int_const_tree_const_tree_1, - hook_constcharptr_const_tree_null, - hook_constcharptr_const_rtx_null, - hook_constcharptr_const_tree_const_tree_null, - hook_constcharptr_int_const_tree_null, - hook_constcharptr_int_const_tree_const_tree_null): New. - (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, - hook_bool_tree_hwi_hwi_tree_false, - hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, - hook_int_tree_tree_1, hook_constcharptr_tree_null, - hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, - hook_constcharptr_int_tree_null, - hook_constcharptr_int_tree_tree_null): Delete. - (default_can_output_mi_thunk_no_vcall): Constify. - * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true, - hook_bool_tree_hwi_hwi_tree_false, - hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0, - hook_int_tree_tree_1, hook_constcharptr_tree_null, - hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null, - hook_constcharptr_int_tree_null, - hook_constcharptr_int_tree_tree_null): Delete. - (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true, - hook_bool_const_tree_hwi_hwi_const_tree_false, - hook_bool_const_tree_hwi_hwi_const_tree_true, - hook_int_const_tree_0, hook_int_const_tree_const_tree_1, - hook_constcharptr_const_tree_null, - hook_constcharptr_const_rtx_null, - hook_constcharptr_const_tree_const_tree_null, - hook_constcharptr_int_const_tree_null, - hook_constcharptr_int_const_tree_const_tree_null): New. - (default_can_output_mi_thunk_no_vcall): Constify. - * integrate.c (function_attribute_inlinable_p): Likewise. - * integrate.h (function_attribute_inlinable_p): Likewise. - * jump.c (rtx_renumbered_equal_p): Likewise. - * output.h (decl_readonly_section, categorize_decl_for_section, - default_use_anchors_for_symbol_p, default_binds_local_p, - default_binds_local_p_1): Likewise. - * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model): - Likewise. - * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK, - TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P, - TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P, - TARGET_COMP_TYPE_ATTRIBUTES, - TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P, - TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE, - TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION, - TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP, - TARGET_DWARF_CALLING_CONVENTION): Likewise. - * target.h (can_output_mi_thunk, needs_block_p, - first_cycle_multipass_dfa_lookahead_guard_spec, - vector_alignment_reachable, comp_type_attributes, - function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type, - commutative_p, use_blocks_for_constant_p, - use_anchors_for_symbol_p, in_small_data_p, binds_local_p, - vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook, - invalid_within_doloop, valid_dllimport_attribute_p, - split_complex_arg, invalid_arg_for_unprototyped_fn, - invalid_conversion, invalid_unary_op, invalid_binary_op): - Likewise. - * targhooks.c (default_invalid_within_doloop, - hook_invalid_arg_for_unprototyped_fn, - default_builtin_vector_alignment_reachable): Likewise. - (hook_bool_rtx_commutative_p): Delete. - (hook_bool_const_rtx_commutative_p): New. - * targhooks.h (default_invalid_within_doloop, - default_builtin_vector_alignment_reachable, - hook_invalid_arg_for_unprototyped_fn): Constify. - (hook_bool_rtx_commutative_p): Delete. - (hook_bool_const_rtx_commutative_p): New. - * varasm.c (bss_initializer_p, decl_default_tls_model, - categorize_decl_for_section, decl_readonly_section, - default_use_anchors_for_symbol_p, default_binds_local_p, - default_binds_local_p_1): Constify. - -2007-08-24 Jie Zhang - - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define - __NO_BUILTIN if -fno-builtin. - -2007-08-24 Jie Zhang - - * config/bfin/bfin.c (print_operand): Report error instead of - ICE for wrong operand. - -2007-08-24 Michael Matz - - * Makefile.in (GTFILES_H): Use $(patsubst) instead of $(subst). - -2007-08-24 Richard Guenther - - PR middle-end/33166 - * tree-ssa.c (useless_type_conversion_p): Split into a - recursive and a non-recursive part. - (useless_type_conversion_p_1): New function. - * tree-ssa-ccp.c (fold_stmt_r): Make sure that the result - from maybe_fold_offset_to_reference is trivially convertible - to the desired type before doing the simplification. - -2007-08-24 Jakub Jelinek - - * expr.c (store_expr): Optimize initialization of an array - with STRING_CST. - * expr.h (builtin_strncpy_read_str): New prototype. - * builtins.c (builtin_strncpy_read_str): Remove prototype. - No longer static. - -2007-08-24 Uros Bizjak - - PR middle-end/33157 - * ifcvt.c (noce_find_if_block): Do not clear if_info.cond_earliest - field when initializing if_info structure. - -2007-08-24 Richard Guenther - - * Makefile.in (tree-inline.o): Add $(TARGET_H) and $(INTEGRATE_H) - dependencies. - * c-objc-common.c (c_cannot_inline_tree_fn): Remove. - * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Likewise. - * tree-inline.c (inlinable_function_p): Fold in common parts of - the cannot_inline_tree_fn langhook. - * langhooks-def.h (lhd_tree_inlining_cannot_inline_tree_fn): Remove. - (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): Likewise. - (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for - cannot_inline_tree_fn langhook. - * langhooks.h (struct lang_hooks_for_tree_inlining): Remove - cannot_inline_tree_fn member. - -2007-08-24 Richard Guenther - - * expr.c (get_inner_reference): Do computation of bitoffset - from offset in a way we can detect overflow reliably. - -2007-08-24 Jie Zhang - - * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define for uClibc. - -2007-08-24 Jie Zhang - - * config/bfin/bfin.opt (mfast-fp): Add. - * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let - libbffastfp override libgcc if -mfast-fp. - * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. - * doc/invoke.texi (Option Summary): Mention -mfast-fp. - (Blackfin Options): Document -mfast-fp. - -2007-08-24 Jakub Jelinek - - PR tree-optimization/32573 - PR middle-end/32946 - * tree-data-ref.c (initialize_data_dependence_relation): Clear - DDR_SUBSCRIPTS, DDR_DIR_VECTS and DDR_DIST_VECTS at the beginning. - (finalize_ddr_dependent): Clear DDR_SUBSCRIPTS after freeing it. - (build_classic_dist_vector): Return false rather than true if - DDR_ARE_DEPENDENT is non-NULL at the beginning. Return false - if either subscript_dependence_tester_1 or build_classic_dist_vector_1 - returned false. Don't call save_dist_v before calling - build_classic_dist_vector_1. - (free_dependence_relation): Don't guard freeing DDR_SUBSCRIPTS - with NULL DDR_ARE_DEPENDENT. Also free DDR_DIST_VECTS and/or - DDR_DIR_VECTS vectors. - -2007-08-23 Brian Sidebotham - - * configure.ac (leb128): Modify sed statement to work with any - binutils version string. - * configure: Regenerate - -2007-08-23 Kaveh R. Ghazi - - * config/arc/arc-protos.h arc_select_cc_mode, gen_compare_reg): - Wrap in RTX_CODE macro guard. - * config/arm/pe.c (arm_dllexport_p, arm_dllimport_p, - arm_dllexport_name_p, arm_dllimport_name_p, arm_mark_dllexport, - arm_mark_dllimport, arm_pe_encode_section_info, - arm_pe_unique_section): Use ISO-C function declarations. - * config/c4x/c4x-c.c (c4x_parse_pragma, c4x_pr_CODE_SECTION, - c4x_pr_DATA_SECTION, c4x_pr_FUNC_IS_PURE, - c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, c4x_pr_ignored): - Likewise. - * config/iq2000/iq2000.h (ASM_OUTPUT_SKIP): Fix format warning. - * config/m68hc11/m68hc11.h (ASM_OUTPUT_EXTERNAL): Undef before - defining. - * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Fix format - warnings. - * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Likewise. - * config/pdp11/pdp11.c (pdp11_output_function_epilogue): Likewise. - (register_move_cost): Use ISO-C function declarations. - * config/pdp11/pdp11.h (PRINT_OPERAND): Fix format warnings. - * config/score/score-protos.h (score_declare_object): Add - ATTRIBUTE_PRINTF_4. - * config/score/score.h (ASM_DECLARE_OBJECT_NAME): Fix format - warnings. - * final.c (profile_function): Avoid empty if-bodies. - - - * calls.c (must_pass_in_stack_var_size, - must_pass_in_stack_var_size_or_pad): Constify. - * config/alpha/alpha-protos.h (function_value): Likewise. - * config/alpha/alpha.c (alpha_return_in_memory, - alpha_pass_by_reference, function_value, - unicosmk_must_pass_in_stack, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): - Likewise. - * config/arc/arc.c (arc_return_in_memory, arc_pass_by_reference, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/arm/arm-protos.h (arm_return_in_memory, - arm_pad_arg_upward, arm_function_value): Likewise. - * config/arm/arm.c (arm_pass_by_reference, - arm_promote_prototypes, arm_return_in_msb, arm_must_pass_in_stack, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - arm_function_value, arm_return_in_memory, arm_pad_arg_upward): - Likewise. - * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise. - * config/avr/avr-protos.h (avr_function_value): Likewise. - * config/avr/avr.c (avr_return_in_memory, - gas_output_limited_string, gas_output_ascii, avr_function_value, - avr_return_in_memory): Likewise. - * config/bfin/bfin-protos.h (bfin_return_in_memory): Likewise. - * config/bfin/bfin.c (bfin_pass_by_reference, - bfin_return_in_memory, TARGET_PROMOTE_PROTOTYPES, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): - Likewise. - * config/cris/cris.c (cris_pass_by_reference, - TARGET_PROMOTE_FUNCTION_ARGS): Likewise. - * config/crx/crx.c (crx_return_in_memory): Likewise. - * config/darwin.c (function_base, machopic_function_base_name): - Likewise. - * config/fr30/fr30.c (fr30_must_pass_in_stack, - TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/frv/frv.c (frv_must_pass_in_stack): Likewise. - * config/h8300/h8300.c (h8300_return_in_memory): Likewise. - * config/i386/i386-protos.h (ix86_return_in_memory, - ix86_sol10_return_in_memory): Likewise. - * config/i386/i386.c (ix86_function_value, - ix86_function_sseregparm, ix86_must_pass_in_stack, - type_natural_mode, classify_argument, examine_argument, - construct_container, ix86_pass_by_reference, function_value_32, - function_value_64, ix86_function_value_1, return_in_memory_32, - return_in_memory_64, return_in_memory_ms_64, - ix86_return_in_memory, ix86_sol10_return_in_memory, - TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/ia64/ia64-protos.h (ia64_function_value, - ia64_hpux_function_arg_padding): Likewise. - * config/ia64/ia64.c (hfa_element_mode, ia64_return_in_memory, - ia64_function_value, bundle_state_hash, bundle_state_eq_p, - ia64_hpux_function_arg_padding): Likewise. - * config/iq2000/iq2000-protos.h (function_arg, - iq2000_function_value): Likewise. - * config/iq2000/iq2000.c (iq2000_return_in_memory, - iq2000_pass_by_reference, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - function_arg, iq2000_function_value): Likewise. - * config/m32c/m32c-protos.h (m32c_function_value, - m32c_promote_function_return): Likewise. - * config/m32c/m32c.c (m32c_pass_by_reference, - m32c_promote_prototypes, m32c_promote_function_return, - m32c_function_value): Likewise. - * config/m32r/m32r.c (m32r_return_in_memory, - m32r_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, - m32r_in_small_data_p): Likewise. - * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg_padding): - Likewise. - * config/m68hc11/m68hc11.c (m68hc11_return_in_memory, - m68hc11_function_arg_padding): Likewise. - * config/m68k/m68k-protos.h (m68k_function_value): Likewise. - * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES, - m68k_function_value): Likewise. - * config/mcore/mcore-protos.h (mcore_num_arg_regs, - mcore_function_value): Likewise. - * config/mcore/mcore.c (handle_structs_in_regs, - mcore_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - mcore_num_arg_regs, mcore_function_value): Likewise. - * config/mips/mips-protos.h (mips_pad_arg_upward, - mips_function_value): Likewise. - * config/mips/mips.c (mips_fpr_return_fields, mips_return_in_msb, - mips_return_in_memory, mips_pass_by_reference, mips_callee_copies, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - TARGET_PROMOTE_PROTOTYPES, mips_pad_arg_upward, - mips_function_value): Likewise. - * config/mmix/mmix-protos.h (mmix_function_outgoing_value): - Likewise. - * config/mmix/mmix.c (mmix_pass_by_reference, - TARGET_PROMOTE_FUNCTION_ARGS, mmix_function_outgoing_value, - mmix_encode_section_info): Likewise. - * config/mn10300/mn10300-protos.h (mn10300_function_value): - Likewise. - * config/mn10300/mn10300.c (mn10300_return_in_memory, - mn10300_pass_by_reference, TARGET_PROMOTE_PROTOTYPES, - mn10300_function_value): Likewise. - * config/mt/mt-protos.h (mt_function_value): Likewise. - * config/mt/mt.c (mt_pass_by_reference, mt_function_value, - mt_pass_in_stack, TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/pa/pa-protos.h (function_arg_padding, function_value, - pa_return_in_memory): Likewise. - * config/pa/pa.c (pa_pass_by_reference, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - function_arg_padding, function_value, pa_return_in_memory): - Likewise. - * config/pdp11/pdp11.c (pdp11_return_in_memory): Likewise. - * config/rs6000/rs6000-protos.h (rs6000_function_value, - function_arg_padding): Likewise. - * config/rs6000/rs6000.c (rs6000_return_in_memory, - rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, - rs6000_pass_by_reference, rs6000_must_pass_in_stack, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - function_arg_padding, altivec_expand_dst_builtin, - altivec_expand_builtin, rs6000_expand_builtin, spe_init_builtins, - altivec_init_builtins, rs6000_common_init_builtins, - rs6000_function_value): Likewise. - * s390/s390-protos.h (s390_function_value): Likewise. - * config/s390/s390.c (s390_function_arg_size, - s390_pass_by_reference, s390_return_in_memory, - s390_function_value, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN): Likewise. - * config/score/score-protos.h (score_function_value): Likewise. - * config/score/score.c (score_arg_partial_bytes, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - TARGET_PROMOTE_PROTOTYPES, score_return_in_memory, - score_pass_by_reference, score_add_offset, score_function_value): - Likewise. - * config/sh/sh-protos.h (sh_attr_renesas_p, - sh_promote_prototypes): Likewise. - * config/sh/sh.c (sh_return_in_memory, sh_pass_by_reference, - sh_callee_copies, sh_promote_prototypes, shcompact_byref, - sh_attr_renesas_p): Likewise. - * config/sparc/sparc-protos.h (function_value, - function_arg_padding): Likewise. - * config/sparc/sparc.c (sparc_promote_prototypes, - sparc_return_in_memory, sparc_pass_by_reference, - TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - function_arg_record_value_2, function_arg_record_value_1, - function_arg_record_value, function_arg_record_value, - function_arg_padding, function_value): Likewise. - * config/spu/spu-protos.h (spu_function_value): Likewise. - * config/spu/spu.c (spu_pass_by_reference, spu_return_in_memory, - spu_function_value): Likewise. - * config/stormy16/stormy16-protos.h (xstormy16_function_value): - Likewise. - * config/stormy16/stormy16.c (xstormy16_return_in_memory, - xstormy16_function_value, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): - Likewise. - * config/v850/v850.c (v850_return_in_memory, - v850_pass_by_reference, TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): Likewise. - * config/xtensa/xtensa.c (xtensa_return_in_msb, - xtensa_return_in_memory, TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES): - Likewise. - * explow.c (promote_mode, hard_function_value): Likewise. - * expr.h (hard_function_value, promote_mode): Likewise. - * function.c (aggregate_value_p): Likewise. - * hooks.c (hook_bool_const_tree_true): New. - * hooks.h (hook_bool_const_tree_true): New. - * sdbout.c (SET_KNOWN_TYPE_TAG, plain_type_1): Constify. - * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - TARGET_RETURN_IN_MSB): Likewise. - * target.h (promote_function_args, promote_function_return, - promote_prototypes, return_in_memory, return_in_msb, - pass_by_reference, must_pass_in_stack, callee_copies, - function_value): Likewise. - * targhooks.c (default_return_in_memory, - hook_pass_by_reference_must_pass_in_stack, - hook_callee_copies_named, - hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, - hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, - default_function_value): Likewise. - * targhooks.h (default_return_in_memory, - hook_pass_by_reference_must_pass_in_stack, - hook_callee_copies_named, - hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false, - hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true, - default_function_value): Likewise. - * tree-ssa-structalias.c (const_equiv_class_label_t): New. - (equiv_class_label_hash, equiv_class_label_eq): Constify. - * tree-vectorizer.c (bb_in_loop_p): Likewise. - * tree.c (needs_to_live_in_memory): Likewise. - * tree.h (struct tree_type, needs_to_live_in_memory, - aggregate_value_p, must_pass_in_stack_var_size, - must_pass_in_stack_var_size_or_pad): Likewise. - * vmsdbgout.c (write_debug_addr, write_debug_delta4, - write_debug_string, ASM_OUTPUT_DEBUG_STRING, write_rtnbeg, - lookup_filename): Likewise. - -2007-08-23 Uros Bizjak - - PR target/17390 - * config/i386/i386.c (ix86_expand_fp_compare): Expand fp comparison to - fake fcomi i387 instruction for !TARGET_CMOVE. - (ix86_expand_branch): Expand natural sequence with one jump for - all targets, not only TARGET_CMOVE. - * config/i386/i386.md (*cmpfp_0_cc): New define_insn_and_split - pattern to implement fake fcomi sequence. Split instruction after - reload to correct compare sequences. - (*cmpfp_xf_cc): Ditto. - (*cmpfp__cc): Ditto. - (*cmpfp_u_cc): Ditto. - (*cmpfp__cc): Ditto. - -2007-08-23 Richard Guenther - - * tree-pretty-print.c (dump_generic_node): Annotate - GIMPLE_MODIFY_STMTs with volatile ops with "{v}". - -2007-08-23 Richard Guenther - - * builtins.c (expand_builtin_mathfn): Wrap argument in - save_expr directly instead of re-building the call. - (expand_builtin_mathfn_2): Likewise. - (expand_builtin_mathfn_3): Likewise. - (expand_builtin_interclass_mathfn): Likewise. - (expand_builtin_int_roundingfn): Set arg. - (expand_builtin_int_roundingfn_2): Likewise. - -2007-08-23 Paolo Bonzini - - * config/i386/sse.md (*sse_and3, *sse_ior3, - *sse_nand3, *sse_xor3): New. - -2007-08-23 Uros Bizjak - - * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code. - * config/i386/i386.c (print_operand): Handle ';' code. Output - semicolon for TARGET_MACHO. - * config/i386/sync.md (*sync_compare_and_swap): Use '%;' to - emit semicolon after 'lock' prefix. - (sync_double_compare_and_swap): Ditto. - (*sync_double_compare_and_swapdi_pic): Ditto. - (*sync_compare_and_swap_cc): Ditto. - (sync_double_compare_and_swap_cc): Ditto. - (*sync_double_compare_and_swap_ccdi_pic): Ditto. - (sync_old_add): Ditto. - (sync_add): Ditto. - (sync_sub): Ditto. - (sync_ior): Ditto. - (sync_and): Ditto. - (sync_xor): Ditto. - -2007-08-22 Chao-ying Fu - - * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes - in DEF_RTL_EXPR. - (copy_rtx): Handle CONST_FIXED. - (rtx_equal_p): Likewise. - * rtl.h (fixed_value.h): New include. - (rtx_def): Add a new field of fixed_value to u. - (XCNMPFV): Define for accessing fixed_value. - (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW): - Define. - * rtl.def (CONST_FIXED): New constant. - (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT, - UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG, - US_ASHIFT): New codes. - * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult, - us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract, - unsigned_fract_convert, unsigned_sat_fract): Document them. - * varasm.c (assemble_integer): Extend to support fixed-point constants - by using different machine classes. - (decode_addr_const): Handle FIXED_CST. - (const_hash_1): Likewise. - (compare_constant): Likewise. - (copy_constant): Likewise. - (const_rtx_hash_1): Handle CONST_FIXED. - (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, - MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, - MODE_VECTOR_UACCUM. - (initializer_constant_valid_p): Handle FIXED_CST. - (output_constant): Support FIXED_POINT_TYPE. - * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude. - * cse.c (hash_rtx): Support CONST_FIXED. - (exp_equiv_p): Likewise. - (cannon_reg): Likewise. - (fold_rtx): Likewise. - (equiv_constant): Likewise. - (cse_process_notes_1): Likewise. - (count_reg_usage): Likewise. - * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED. - (rtx_equal_for_cselib_p): Handle CONST_FIXED. - (wrap_constant): Check CONST_FIXED. - (cselib_hash_rtx): Support CONST_FIXED. - (cselib_subst_to_values): Likewise. - * df-scan.c (df_uses_record): Likewise. - * gcse.c (want_to_gcse_p): Likewise. - (oprs_unchanged_p): Likewise. - (oprs_not_set_p): Likewise. - (compute_transp): Likewise. - (extract_mentioned_regs_helper): Likewise. - * genemit.c (gen_exp): Likewise. - * local-alloc.c (equiv_init_varies_p): Likewise. - (contains_replace_regs): Likewise. - (memref_referenced_p): Likewise. - * loop-invariant.c (check_maybe_invariant): Likewise. - (hash_invariant_expr_1): Likewise. - (invariant_expr_equal_p): Likewise. - * postreload-gcse.c (oprs_unchanged_p): Likewise. - * regclass.c (reg_scan_mark_refs): Likewise. - * regrename.c (scan_rtx): Likewise. - * resource.c (mark_referenced_resources): Likewise. - (mark_set_resources): Likewise. - * rtlanal.c (rtx_unstable_p): Likewise. - (rtx_varies_p): Likewise. - (count_occurrences): Likewise. - (reg_mentioned_p): Likewise. - (modified_between_p): Likewise. - (modified_in_p): Likewise. - (volatile_insn_p): Likewise. - (volatile_refs_p): Likewise. - (side_effects_p): Likewise. - (may_trap_p_1): Likewise. - (inequality_comparisons_p): Likewise. - (computed_jump_p_1): Likewise. - (commutative_operand_precedence): Likewise. - * sched-deps.c (sched_analyze_2): Likewise. - * sched-vis.c (print_value): Likewise. - * reload.c (operands_match_p): Likewise. - (subst_reg_equivs): Likewise. - * reload1.c (eliminate_regs_1): Likewise. - (elimination_effects): Likewise. - (scan_paradoxical_subregs): Likewise. - * alias.c (rtx_equal_for_memref_p): Likewise. - * Makefile.in (RTL_BASE_H): Add fixed-value.h. - * emit-rtl.c (const_fixed_htab): New hash table. - (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed): - Declare. - (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed, - const_fixed_from_fixed_value): New functions. - (verify_rtx_sharing): Handle CONST_FIXED. - (copy_rtx_if_shared_1): Likewise. - (reset_used_flags): Likewise. - (set_used_flags): Likewise. - (copy_insn_1): Likewise. - (init_emit_once): Create const_fixed_htab. - Store fixed-point scalar and vector zero and one to const_tiny_rtx. - -2007-08-22 Zdenek Dvorak - - PR tree-optimization/32949 - * tree-ssa-loop-niter.c (scev_probably_wraps_p): Test nowrap_type_p - before failing for ivs with non-constant step. - -2007-08-22 Hans-Peter Nilsson - - * doc/md.texi (Iterators): Renamed from Macros. All contents - changed to reflect rename of respectively define_code_macro and - define_mode_macro to define_code_iterator and define_mode_iterator. - (Mode Iterators, Code Iterators): Similar. - * read-rtl.c (struct iterator_group, struct iterator_traverse_data) - (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) - (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) - (initialize_iterators, find_iterator, check_code_iterator) - (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) - (read_mapping, read_rtx_1): Similar. - * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, - config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, - config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, - config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, - config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, - config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, - config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, - config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, - config/rs6000/sync.md, config/rs6000/rs6000.md, - config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, - config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, - config/vax/vax.md, config/bfin/bfin.md: Similar. - -2007-08-22 David Daney - - * doc/install.texi (Testing): Mention testing on a simulator. - -2007-08-22 Janis Johnson - - * config/dfp-bit.c (DFP_TO_DFP): Check for overflow. - - * doc/libgcc.texi (Decimal float library routines): Fix formatting - and rearrange floating point conversion functions into different - categories. - -2007-08-22 Maxim Kuvyrkov - - * target.h (struct gcc_target.sched: dfa_pre_advance_cycle, - dfa_post_advance_cycle): New scheduler hooks. - * target-def.h (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, - TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): New macros to initialize - new hooks. - (TARGET_SCHED): Use them. - * doc/tm.texi (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE, - TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Document new hooks. - * haifa-sched.c (advance_one_cycle): Invoke new hooks. - - * genautomata.c (insn_has_dfa_reservation_p): New DFA interface - function to facilitate debugging. - (INSN_HAS_DFA_RESERVATION_P_FUNC_NAME): New macro. - (output_insn_has_dfa_reservation_p): New static function to output - insn_has_dfa_reservation_p (). - (write_automata): Use it. - * genattr.c (main): Output declaration for - insn_has_dfa_reservation_p (). - -2007-08-22 Christian Bruel - Richard Guenther - - * fold-const.c (fold_binary): Optimize A-A if -ffinite-math-only. - * simplify_rtx (simplify_binary_operation_1): Likewise. - -2007-08-22 Rask Ingemann Lambertsen - - PR rtl-optimization/32557 - * df-problems.c (df_note_bb_compute): Use mws->start_regno instead - of REGNO (mws->mw_reg). - -2007-08-22 Richard Guenther - - PR middle-end/33007 - * builtins.c (expand_builtin_int_roundingfn): Replace call - argument wrapped with SAVE_EXPR directly. - (expand_builtin_int_roundingfn_2): Likewise. - -2007-08-22 Richard Guenther - - * tree-inline.c (inlinable_function_p): Restore disregarding - inline limits for GNU extern inline functions. - -2007-08-22 Richard Guenther - - PR middle-end/32563 - * tree.c (host_integerp): Treat sizetype as signed as it is - sign-extended. - -2007-08-21 Ian Lance Taylor - - PR tree-optimization/33134 - * tree-vrp.c (adjust_range_with_scev): Call - set_value_range_to_value. - -2007-08-21 Aldy Hernandez - - * value-prof.h (gimple_remove_histogram_value): Remove duplicate - prototype. - -2007-08-21 Aldy Hernandez - - * tree-flow-inline.h (next_imm_use_stmt): Remove unecessary - whitespace. - -2007-08-21 Nathan Froyd - - * config/rs6000/rs6000.c (expand_block_clear): Add TARGET_SPE - cases to set eight bytes at a time. - (expand_block_move): Likewise. - -2007-08-21 Jakub Jelinek - - PR debug/32610 - * dwarf2out.c (gen_decl_die): Don't call - gen_tagged_type_instantiation_die if decl doesn't have tagged type. - -2007-08-21 Paul Brook - Nathan Sidwell - Mark Mitchell - Joseph Myers - - * configure.ac: Add --with-pkgversion and --with-bugurl. - * configure: Regenerate. - * doc/install.texi: Document them. - * version.c (version_string): Remove VERSUFFIX. - (VERSUFFIX): Remove. - (pkgversion_string): New. - (bug_report_url): Do not hard-code initializer. - * version.h (pkgversion_string): Declare. - * Makefile.in (PKGVERSION_s, BUGURL_s, PKGVERSION, BUGURL_TEXI): - Define. - (version.o): Define PKGVERSION and BUGURL. - (gcc-vers.texi): Define VERSION_PACKAGE and BUGURL. - (%.pod): Define BUGURL. - * gcc.c (process_command, main): Use pkgversion_string. - * toplev.c (compile_file, print_version): Likewise. - * protoize.c (main): Likewise. - * gcov.c (print_version): Likewise. Update copyright date. - * gcov-dump.c (print_version): Likewise. Update copyright date. - * mips-tdump.c (main): Likewise. Update copyright date. - * mips-tfile.c (main): Likewise. Update copyright date. - * doc/include/gcc-common.texi: Include VERSION_PACKAGE as subtitle. - * doc/bugreport.texi: Use BUGURL for bug-reporting instructions; - shorten description. - * doc/gcc.texi: Include VERSION_PACKAGE in version description. - * doc/gccint.texi: Likewise. - * doc/invoke.texi: Use BUGURL for bug-reporting instructions. - Update copyright date. - -2007-08-21 Uros Bizjak - - * config/i386/i386.c (ix86_expand_clear): Use FLAGS_REG. - (ix86_expand_strlensi_unroll_1): Ditto. - (ix86_expand_branch): Use FLAGS_REG and FPSR_REG. - (ix86_expand_carry_flag_compare): Update comment. - -2007-08-21 Jakub Jelinek - - PR middle-end/32912 - * fold-const.c (fold_unary): Optimize BIT_NOT_EXPR of VECTOR_CST. - (fold_binary): Handle vectors in X | ~X and X ^ ~X optimizations. - -2007-08-21 Richard Guenther - - * fold-const.c (fold_binary): Revert removing of index +p PTR folding. - -2007-08-21 Richard Guenther - - PR middle-end/33122 - * fold-const.c (fold_binary): Remove index +p PTR folding. - Fix types of POINTER_PLUS_EXPR generated by folding of - (PTR +p B) +p A. - -2007-08-20 Chao-ying Fu - - * c-common.h (enum rid): Add new enumeration values of RID_SAT, - RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before - RID_ONEWAY, so that it can be checked in declspecs_add_type. - (c_common_fixed_point_type_for_size): Declare. - * c-parser.c (reswords): Add _Fract, _Accum, and _Sat. - (c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT. - (c_token_starts_declspecs): Likewise. - (c_parser_declspecs): Likewise. - (c_parser_attributes): Likewise. - * c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum. - (c_declspecs): Add saturating_p. - * c-decl.c (build_null_declspecs): Initialize saturating_p. - (declspecs_add_type): Avoid using complex with _Fract, _Accum, or - _Sat. Handle RID_SAT. - Avoid using void, bool, char, int, float, double, _Decimal32, - _Decimal64, _Decimal128, and complex with _Sat. - Handle RID_FRACT and RID_ACCUM. - Make sure _Sat is used with _Fract or _Accum. - (finish_declspecs): Handle cts_fract and cts_accum. - * c-common.c (fixed-value.h): New include. - (constant_expression_warning): Handle FIXED_CST. - (overflow_warning): Likewise. - (warnings_for_convert_and_check): Likewise. - (c_common_fixed_point_type_for_size): New. - (c_common_type_for_mode): Handle fixed-point modes to - return various saturating/non-saturating, signed/unsigned types. - (c_common_signed_or_unsigned_type): Support fixed-point types. - (shorten_compare): Check fixed-point zero. - Handle FIXED_POINT_TYPE. - (c_common_truthvalue_conversion): Handle FIXED_CST. - Handle FIXED_POINT_TYPE. - (c_common_nodes_and_builtins): Record builtin types for fixed-point - types. - (handle_mode_attribute): Handle fixed-point modes. Need to check - if the signness of base type and fixed-point modes are consistent. - (handle_vector_size_attribute): Handle fixed-point modes. - (same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE. - (warn_for_div_by_zero): Check fixed-point zero. - * c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build - a common fixed-point type based on fbit, ibit, sign, and saturation. - (build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR, - NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR, - PREDECREMENT_EXPR, and POSTDECREMENT_EXPR. - (convert_for_assignment): Support FIXED_POINT_TYPE. - (digest_init): Handle FIXED_POINT_TYPE. - (build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR, - TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, - TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR, - GE_EXPR, LT_EXPR, GT_EXPR. - * target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New. - (TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P. - * target.h (gcc_target): Add fixed_point_supported_p. - * targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT, - MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM. - (default_fixed_point_supported_p): Define. - * targhooks.h (default_fixed_point_supported_p): Declare. - * doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add. - * doc/install.texi (Configuration): Add --enable-fixed-point. - * configure.ac (--enable-fixed-point): New to enable fixed-point - arithmetic extension to C. For mips targets, we enable it by default. - * configure, config.in: Regenerate. - -2007-08-20 Pawel Sikora - - * doc/invoke.texi (-Wnon-virtual-dtor): Update documentation. - -2007-08-20 David Edelsohn - - * dwarf2out.c (text_section_used): Move declaration outside ifdef - DWARF2_DEBUGGING_INFO. - (cold_text_section_used): Same. - (cold_text_section): Same. - -2007-08-20 Richard Guenther - - * c-typeck.c (convert_for_assignment): Use the type of - the member for the initialization. - -2007-08-20 Richard Guenther - - * c-objc-common.c (c_disregard_inline_limits): Remove. - * c-objc-common.h (c_disregard_inline_limits): Likewise. - * cgraphunit.c (cgraph_process_new_functions): Call - disregard_inline_limits_p. - (cgraph_preserve_function_body_p): Likewise. - * ipa-inline.c (compute_inline_parameters): Likewise. - * langhooks-def.h (lhd_tree_inlining_disregard_inline_limits): - Remove. - (LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS): Remove. - (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for - disregard_inline_limits langhook. - * langhooks.c (lhd_tree_inlining_disregard_inline_limits): - Remove. - * langhooks.h (lang_hooks_for_tree_inlining): Remove - disregard_inline_limits langhook. - * tree-inline.c (disregard_inline_limits_p): New function. - * tree-inline.h (disregard_inline_limits_p): Declare. - -2007-08-20 Richard Guenther - - * langhooks-def.h (lhd_tree_inlining_auto_var_in_fn_p): Remove. - (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P): Likewise. - (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove initializer for - auto_var_in_fn_p langhook. - * langhooks.c (lhd_tree_inlining_auto_var_in_fn_p): Rename and - move ... - * tree.c (auto_var_in_fn_p): ... here. - (find_var_from_fn): Call auto_var_in_fn_p directly. - * langhooks.h (lang_hooks_for_tree_inlining): Remove - auto_var_in_fn_p langhook. - * tree-inline.c (remap_decls): Call auto_var_in_fn_p directly. - (copy_body_r): Likewise. - (self_inlining_addr_expr): Likewise. - * tree.h (auto_var_in_fn_p): Declare. - -2007-08-20 Richard Guenther - - * tree.c (WALK_SUBTREE): Call walk_tree_1. - (walk_type_fields): Take lh parameter. - (walk_tree): Rename to ... - (walk_tree_1): ... this. Do not call the walk_subtrees - langhook but the now passed callback. Pass lh on recursion. - (walk_tree_without_duplicates): Rename to ... - (walk_tree_without_duplicates_1): ... this. Take lh parameter - and call walk_tree_1. - * tree.h (walk_tree_lh): New typedef. - (walk_tree_1): Declare. - (walk_tree_without_duplicates_1): Likewise. - (walk_tree): New define to walk_tree_1 with NULL lh parameter. - (walk_tree_without_duplicates): New define to - walk_tree_without_duplicates_1 with NULL lh parameter. - * langhooks.c (lhd_tree_inlining_walk_subtrees): Remove. - * langhooks.h (lang_hooks_for_tree_inlining): Remove walk_subtrees - langhook. - * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Remove. - (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. - (LANG_HOOKS_TREE_INLINING_INITIALIZER): Remove walk_subtrees - initializer. - -2007-08-20 Andrew Pinski - - PR middle-end/30564 - * tree-inline.c (optimize_inline_calls): Move the cgraph checking - code in front of the compacting of basic blocks. - Move the folding of statements inbetween the cgraph checking - and compacting of basic blocks. - -2007-08-19 Andrew Pinski - Serge Belyshev - - PR target/32522 - * config/alpha/alpha.c (va_list_skip_additions): Check for - POINTER_PLUS_EXPR in addition to PLUS_EXPR. - (alpha_stdarg_optimize_hook): Look for POINTER_PLUS_EXPR instead of - PLUS_EXPR when checking ap.__base. - (alpha_va_start): Create POINTER_PLUS_EXPR instead of PLUS_EXPR - when doing addition on pointer types. Use size_int instead of - build_int_cst. - (alpha_gimplify_va_arg_1): Likewise, but use sizetype instead of - ptr_type in the second operand. - -2007-08-19 Andrew Pinski - - PR target/33115 - * config/i386/darwin.h (CC1_SPEC): Add %(cc1_cpu) in front. - -2007-08-19 Andrew Pinski - - PR middle-end/32940 - * cfgexpand.c (expand_one_register_var): Mark pointer - DECL_ARTIFICIAL as REG_POINTER also. - * stmt.c (expand_decl): Likewise. - -2007-08-19 Daniel Berlin - - Fix PR 32772 - Fix PR 32716 - Fix PR 32328 - Fix PR 32303 - - * tree-flow.h (struct stmt_ann_d): Remove makes_clobbering_call. - * tree-ssa-alias.c (init_transitive_clobber_worklist): Add - on_worklist argument and avoid adding things to worklist multiple - times. - (add_to_worklist): Ditto. - (mark_aliases_call_clobbered): Mark entire structure clobbered if - single SFT is clobbered. - (set_initial_properties): Ditto. - (compute_call_clobbered): Update for changes to function - arguments. - (create_overlap_variables_for): Always create SFT for offset 0. - (create_structure_vars): Handle PHI's, since we are in SSA form at - this point. - * tree-ssa-loop-ivopts.c (get_ref_tag): Don't return subvars. - * tree-ssa-operands.c (access_can_touch_variable): Don't handle - TARGET_MEM_REF. - (add_vars_for_offset): Figure out aliases from access + points-to. - (add_virtual_operand): Use add_vars-for_offset. - (get_tmr_operands): Update for NMT changes, rewrite to be correct. - (add_call_clobber_ops): Remove makes_clobbering_call set. - (get_expr_operands): Always pass through the INDIRECT_REF - reference. - * tree-ssa-structalias.c (struct constraint_graph): Remove - variables member. - Add pe, pe_rep, pointer_label, loc_label, pointed_by, points_to, - address_taken, pt_used, number_incoming. - (FIRST_ADDR_NODE): Removed. - (merge_graph_nodes): Remove broken code for the moment. - (init_graph): New function. - (build_pred_graph): Remove code to init_graph. - Add location equivalence support. - (struct scc_info): Rename roots to deleted. - (scc_visit): Ditto. - (init_scc_info): Ditto - (init_topo_info): Use graph->size. - (compute_topo_order): Ditto. - (do_da_constraint): Removed. - (do_sd_constraint): Remove calls to find(). - set_union_with_increment should always get 0 as last arg here. - (do_complex_constraint): Replace do_da_constraint with assert. - Stop calling find. - (struct equiv_class_label): New. - (pointer_equiv_class_table): Ditto. - (location_equiv_class_table): Ditto. - (equiv_class_label_hash): Ditto. - (equiv_class_label_eq): Ditto - (equiv_class_lookup): Ditto. - (equiv_class_ladd): Ditto. - (pointer_equiv_class): Ditto. - (location_equiv_class): Ditto. - (condense_visit): Rename and rewrite from label_visit to do only - SCC related stuff for HU. - (label_visit): Do HU work for HU. - (perform_var_substitution): Update to do HU and location - equivalence. - (free_var_substitution_info): Update to free HU and location - equivalence structures. */ - (find_equivalent_node): Update for pointer but not location - equivalence. - (unite_pointer_equivalences): New function. - (move_complex_constraints): Rewrite to only do moving. - (rewrite_constraints): Split out of move_complex_constraints. - (solve_graph): Use graph->size. - (process_constraint_1): Add from_call argument, use it. - Split *a = &b into two constraints. - (process_constraint): Use new process_constraint_1. - (get_constraint_for_component_ref): Handle bitmaxsize == -1 case. - (get_constraint_for): Handle non-pointer integers properly. - Remove code that used to handle structures. - (handle_ptr_arith): Fix a few bugs in pointer arithmetic handling - with unknown addends. - (handle_rhs_call): New function. - (find_func_aliases): Use handle_rhs_call. - (set_uids_in_ptset): Add an assert. - (set_used_smts): Fix bug in not considering unified vars. - (compute_tbaa_pruning): Stop initing useless iteration_obstack. - (compute_points_to_sets): Update for other function changes. - (delete_points_to_sets): Ditto. - (ipa_pta_execute): Ditto. - (pass_ipa_pta): We need to update SSA after ipa_pta. - -2007-08-19 Jan Hubicka - - * config/i386/i386.md: Replace "rim" and "mri" constraints by "g". - -2007-08-19 Joseph Myers - - * dwarf2out.c (text_section_used, cold_text_section_used, - cold_text_section, dwarf2out_note_section_used): New. - (dwarf2out_init): Initialize cold_text_section. - (dwarf2out_switch_text_section, dwarf2out_begin_function): Call - dwarf2out_note_section_used. - (size_of_aranges): Only count entry for text section if it was - used. Count entry for cold text section if it was used. - (output_aranges): Only output entries for text section and cold - text section if they were used. - -2007-08-19 Andrew Pinski - - * tree-pretty-print.c (debug_generic_expr): Add a comment about - the function. - (debug_generic_stmt): Likewise. - (debug_tree_chain): Likewise. - -2007-08-19 Dorit Nuzman - - * tree-data-refs.c (split_constant_offset): Expose. - * tree-data-refs.h (split_constant_offset): Add declaration. - - * tree-vectorizer.h (dr_alignment_support): Renamed - dr_unaligned_software_pipeline to dr_explicit_realign_optimized. - Added a new value dr_explicit_realign. - (_stmt_vec_info): Added new fields: dr_base_address, dr_init, - dr_offset, dr_step, and dr_aligned_to, along with new access - functions for these fields: STMT_VINFO_DR_BASE_ADDRESS, - STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET, STMT_VINFO_DR_STEP, and - STMT_VINFO_DR_ALIGNED_TO. - - * tree-vectorizer.c (vect_supportable_dr_alignment): Add - documentation. - In case of outer-loop vectorization with non-fixed misalignment - use - the dr_explicit_realign scheme instead of the optimized realignment - scheme. - (new_stmt_vec_info): Initialize new fields. - - * tree-vect-analyze.c (vect_compute_data_ref_alignment): Handle the - 'nested_in_vect_loop' case. Change verbosity level. - (vect_analyze_data_ref_access): Handle the 'nested_in_vect_loop' case. - Don't fail on zero step in the outer-loop for loads. - (vect_analyze_data_refs): Call split_constant_offset to calculate - base, offset and init relative to the outer-loop. - - * tree-vect-transform.c (vect_create_data_ref_ptr): Replace the unused - BSI function argument with a new function argument - at_loop. - Simplify the condition that determines STEP. Takes additional argument - INV_P. Support outer-loop vectorization (handle the - nested_in_vect_loop case), including zero step in the outer-loop. Call - vect_create_addr_base_for_vector_ref with additional argument. - (vect_create_addr_base_for_vector_ref): Takes additional argument LOOP. - Updated function documentation. Handle the 'nested_in_vect_loop' case. - Fixed and simplified calculation of step. - (vectorizable_store): Call vect_create_data_ref_ptr with loop instead - of bsi, and with additional argument. Call bump_vector_ptr with - additional argument. Fix typos. Handle the 'nested_in_vect_loop' case. - (vect_setup_realignment): Takes additional arguments INIT_ADDR and - DR_ALIGNMENT_SUPPORT. Returns another value AT_LOOP. Handle the case - when the realignment setup needs to take place inside the loop. - Support the dr_explicit_realign scheme. Allow generating the optimized - realignment scheme for outer-loop vectorization. Added documentation. - (vectorizable_load): Support the dr_explicit_realign scheme. Handle - the 'nested_in_vect_loop' case, including loads that are invariant in - the outer-loop and the realignment schemes. Handle the case when the - realignment setup needs to take place inside the loop. Call - vect_setup_realignment with additional arguments. Call - vect_create_data_ref_ptr with additional argument and with loop instead - of bsi. Fix 80-column overflow. Fix typos. Rename PHI_STMT to PHI. - (vect_gen_niters_for_prolog_loop): Call - vect_create_addr_base_for_vector_ref with additional arguments. - (vect_create_cond_for_align_checks): Likewise. - (bump_vector_ptr): Updated to support the new dr_explicit_realign - scheme: takes additional argument bump; argument ptr_incr is now - optional; updated documentation. - (vect_init_vector): Takes additional argument (bsi). Use it, if - available, to insert the vector initialization. - (get_initial_def_for_induction): Pass additional argument in call to - vect_init_vector. - (vect_get_vec_def_for_operand): Likewise. - (vect_setup_realignment): Likewise. - (vectorizable_load): Likewise. - -2007-08-19 Dorit Nuzman - - * tree-vectorizer.h (vect_is_simple_reduction): Takes a loop_vec_info - as argument instead of struct loop. - (nested_in_vect_loop_p): New function. - (vect_relevant): Add enum values vect_used_in_outer_by_reduction and - vect_used_in_outer. - (is_loop_header_bb_p): New. Used to differentiate loop-header phis - from other phis in the loop. - (destroy_loop_vec_info): Add additional argument to declaration. - - * tree-vectorizer.c (supportable_widening_operation): Also check if - nested_in_vect_loop_p (don't allow changing the order in this case). - (vect_is_simple_reduction): Takes a loop_vec_info as argument instead - of struct loop. Call nested_in_vect_loop_p and don't require - flag_unsafe_math_optimizations if it returns true. - (new_stmt_vec_info): When setting def_type for phis differentiate - loop-header phis from other phis. - (bb_in_loop_p): New function. - (new_loop_vec_info): Inner-loop phis already have a stmt_vinfo, so - just update their loop_vinfo. Order of BB traversal now matters - - call dfs_enumerate_from with bb_in_loop_p. - (destroy_loop_vec_info): Takes additional argument to control whether - stmt_vinfo of the loop stmts should be destroyed as well. - (vect_is_simple_reduction): Allow the "non-reduction" use of a - reduction stmt to be defines by a non loop-header phi. - (vectorize_loops): Call destroy_loop_vec_info with additional argument. - - * tree-vect-transform.c (vectorizable_reduction): Call - nested_in_vect_loop_p. Check for multitypes in the inner-loop. - (vectorizable_call): Likewise. - (vectorizable_conversion): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_type_promotion): Likewise. - (vectorizable_type_demotion): Likewise. - (vectorizable_store): Likewise. - (vectorizable_live_operation): Likewise. - (vectorizable_reduction): Likewise. Also pass loop_info to - vect_is_simple_reduction instead of loop. - (vect_init_vector): Call nested_in_vect_loop_p. - (get_initial_def_for_reduction): Likewise. - (vect_create_epilog_for_reduction): Likewise. - (vect_init_vector): Check which loop to work with, in case there's an - inner-loop. - (get_initial_def_for_inducion): Extend to handle outer-loop - vectorization. Fix indentation. - (vect_get_vec_def_for_operand): Support phis in the case vect_loop_def. - In the case vect_induction_def get the vector def from the induction - phi node, instead of calling get_initial_def_for_inducion. - (get_initial_def_for_reduction): Extend to handle outer-loop - vectorization. - (vect_create_epilog_for_reduction): Extend to handle outer-loop - vectorization. - (vect_transform_loop): Change assert to just skip this case. Add a - dump printout. - (vect_finish_stmt_generation): Add a couple asserts. - - (vect_estimate_min_profitable_iters): Multiply - cost of inner-loop stmts (in outer-loop vectorization) by estimated - inner-loop bound. - (vect_model_reduction_cost): Don't add reduction epilogue cost in case - this is an inner-loop reduction in outer-loop vectorization. - - * tree-vect-analyze.c (vect_analyze_scalar_cycles_1): New function. - Same code as what used to be vect_analyze_scalar_cycles, only with - additional argument loop, and loop_info passed to - vect_is_simple_reduction instead of loop. - (vect_analyze_scalar_cycles): Code factored out into - vect_analyze_scalar_cycles_1. Call it for each relevant loop-nest. - Updated documentation. - (analyze_operations): Check for inner-loop loop-closed exit-phis during - outer-loop vectorization that are live or not used in the outerloop, - cause this requires special handling. - (vect_enhance_data_refs_alignment): Don't consider versioning for - nested-loops. - (vect_analyze_data_refs): Check that there are no datarefs in the - inner-loop. - (vect_mark_stmts_to_be_vectorized): Also consider vect_used_in_outer - and vect_used_in_outer_by_reduction cases. - (process_use): Also consider the case of outer-loop stmt defining an - inner-loop stmt and vice versa. - (vect_analyze_loop_1): New function. - (vect_analyze_loop_form): Extend, to allow a restricted form of nested - loops. Call vect_analyze_loop_1. - (vect_analyze_loop): Skip (inner-)loops within outer-loops that have - been vectorized. Call destroy_loop_vec_info with additional argument. - - * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Don't allow - in the inner-loop when doing outer-loop vectorization. Add - documentation and printout. - (vect_recog_dot_prod_pattern): Likewise. Also add check for - GIMPLE_MODIFY_STMT (in case we encounter a phi in the loop). - -2007-08-18 Andrew Pinski - - * tree-affine.h (print_aff): New prototype. - (debug_aff): Likewise. - * tree-affine.c (print_aff): New function. - (debug_aff): Likewise. - -2007-08-18 Paul Brook - Joseph Myers - - * common.opt (-fdebug-prefix-map=): New option. - * opts.c: Include debug.h. - (common_handle_option): Handle -fdebug-prefix-map. - * final.c: Include ggc.h. - (struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map, - remap_debug_filename): New. - * Makefile.in (final.o, opts.o): Update dependencies. - * debug.h (remap_debug_filename, add_debug_prefix_map): Declare. - * configure.ac: Check for assembler --debug-prefix-map support. - * configure, config.in: Regenerate. - * gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP. - (ASM_DEBUG_SPEC): Include ASM_MAP. - * doc/install.texi (--with-debug-prefix-map): Document. - * doc/invoke.texi (-fdebug-prefix-map): Document. - * dbxout.c (dbxout_init, dbxout_start_source_file, - dbxout_source_file): Call remap_debug_filename. - * dwarf2out.c (add_comp_dir_attribute, maybe_emit_file, - dwarf2out_start_source_file, dwarf2out_finish): Call - remap_debug_filename. - (file_table_relative_p): Do not check d->emitted_number. - * toplev.c (output_file_directive): Call remap_debug_filename. - * vmsdbgout.c (write_srccorr): Call remap_debug_filename. - * xcoffout.c (xcoffout_source_file): Call remap_debug_filename. - -2007-08-17 Kaveh R. Ghazi - - * loop-invariant.c (find_invariants_to_move): Add missing macro - argument. - -2007-08-17 Tom Tromey - - * tree.h (struct tree_label_decl): Removed old "java" fields. - -2007-08-17 Richard Sandiford - Nigel Stephens - - * config/mips/sde.h (DRIVER_SELF_SPECS): Add commas. - Treat -mno-data-in-code and -mcode-xonly as aliases for - -mcode-readable=no and -mcode-readable=pcrel respectively. - * config/mips/t-sde (TARGET_LIBGCC2_CFLAGS): Add -mcode-xonly. - (MULTILIB_OPTIONS): Add -mcode-readable=no multilibs. - (MULTILIB_DIRNAMES): Update accordingly. - -2007-08-17 H.J. Lu - - * Makefile.in (version.o): Depend on $(REVISION) only if - REVISION_s is defined. - -2007-08-17 Sa Liu - Ulrich Weigand - - PR middle-end/32970 - * tree.c (reconstruct_complex_type): For a pointer to a vector, - use build_qualified_type to retain qualifiers of the base type. - -2007-08-17 Chen Liqin - - * config/score/score.md : Update pattern tablejump. - * config/score/score.c : Update score_initialize_trampoline - function. - * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro. - (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro. - * doc/contrib.texi: Add my entry. - -2007-08-16 H.J. Lu - - * Makefile.in (REVISION): New. - (REVISION_c): New. - (REVISION_s): New. - (version.o): Also depend on $(REVISION). Add - -DREVISION=$(REVISION_s). - - * version.c (version_string): Add REVISION. - -2007-08-16 Seongbae Park - - * tree-eh.c (lower_try_finally_onedest): Reset the locus - of GOTO that's relocated to a different block. - -2007-08-16 Kaveh R. Ghazi - - * c-common.c (const_strip_array_types): New. - * c-common.h (lang_missing_noreturn_ok_p): Delete. - (const_strip_array_types): New. - * c-objc-common.c (c_disregard_inline_limits, - c_warn_unused_global_decl): Constify. - * c-tree.h (c_disregard_inline_limits, c_warn_unused_global_decl, - c_vla_type_p, c_incomplete_type_error): Likewise. - * c-typeck.c (c_incomplete_type_error, c_vla_type_p): Likewise. - * hooks.c (hook_bool_const_tree_false): New. - * hooks.h (hook_bool_const_tree_false): Likewise. - * langhooks-def.h (lhd_warn_unused_global_decl, - lhd_incomplete_type_error, lhd_expr_size, - lhd_tree_inlining_disregard_inline_limits, - lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, - LANG_HOOKS_GENERIC_TYPE_P, LANG_HOOKS_TYPE_MAX_SIZE): Constify. - * langhooks.c (lhd_warn_unused_global_decl, - lhd_incomplete_type_error, - lhd_tree_inlining_disregard_inline_limits, - lhd_tree_inlining_auto_var_in_fn_p, lhd_tree_dump_type_quals, - lhd_expr_size): Likewise. - * langhooks.h (lang_hooks_for_tree_inlining, - lang_hooks_for_tree_dump, lang_hooks_for_types, - lang_hooks_for_decls, lang_hooks): Likewise. - * pointer-set.c (pointer_set_t, pointer_set_create, - pointer_set_contains, insert_aux, pointer_set_insert, - pointer_set_traverse, pointer_map_t, pointer_map_create, - pointer_map_contains, pointer_map_insert, pointer_map_traverse): - Likewise. - * pointer-set.h (pointer_set_contains, pointer_set_insert, - pointer_set_traverse, pointer_map_contains, pointer_map_insert, - pointer_map_traverse): Likewise. - * predict.c (assert_is_empty): Likewise. - * tree-affine.c (free_name_expansion): Likewise. - * tree-cfg.c (edge_to_cases_cleanup): Likewise. - * tree.c (size_in_bytes, max_int_size_in_bytes): Likewise. - * tree.h (size_in_bytes, max_int_size_in_bytes): Likewise. - -2007-08-16 Victor Kaplansky - - * tree-vectorizer.c (new_loop_vec_info): Initialize new - field. - (destroy_loop_vec_info): Add call to VEC_free. - * tree-vectorizer.h (may_alias_ddrs): Define. - (LOOP_VINFO_MAY_ALIAS_DDRS): Define. - * tree-vect-analyze.c (vect_analyze_data_ref_dependence): - Change reporting to dump. - (vect_is_duplicate_ddr): New. - (vect_mark_for_runtime_alias_test): New. - (vect_analyze_data_ref_dependences) Add call to - vect_mark_for_runtime_alias_test. - (vect_enhance_data_refs_alignment): Define local variable - vect_versioning_for_alias_required, don't perform - peeling for alignment if versioning for alias is - required. - (vect_enhance_data_refs_alignment): Use - PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS instead of - PARAM_VECT_MAX_VERSION_CHECKS. - * tree-vect-transform.c - (vect_create_cond_for_alias_checks): New. - (vect_transform_loop): Add call to - vect_create_cond_for_alias_checks. - (vect_vfa_segment_size): New. - * params.def (PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS): - Rename. - (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS): Define. - * doc/invoke.texi - (vect-max-version-for-alignment-checks): Document. - (vect-max-version-for-alias-checks): Document. - (vect-max-version-checks): Remove. - -2007-08-16 Uros Bizjak - - * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on - the same line as the instruction for all asm dialects. - (*rep_movsi): Ditto. - (*rep_movsi_rex64): Ditto. - (*rep_movqi): Ditto. - (*rep_movqi_rex64): Ditto. - (*rep_stosdi_rex64): Ditto. - (*rep_stossi): Ditto. - (*rep_stossi_rex64): Ditto. - (*rep_stosqi): Ditto. - (*rep_stosqi_rex64): Ditto. - (*cmpstrnqi_nz_1): Ditto. - (*cmpstrnqi_nz_rex_1): Ditto. - (*cmpstrnqi_1): Ditto. - (*cmpstrnqi_rex_1): Ditto. - (*strlenqi_1): Ditto. - (*strlenqi_rex_1): Ditto. - * config/i386/sync.md (*sync_compare_and_swap): Emit "lock" - prefix on the same line as the instruction for all asm dialects. - (sync_double_compare_and_swap): Ditto. - (*sync_double_compare_and_swapdi_pic): Ditto. - (*sync_compare_and_swap_cc): Ditto. - (sync_double_compare_and_swap_cc): Ditto. - (*sync_double_compare_and_swap_ccdi_pic): Ditto. - (sync_old_add): Ditto. - (sync_add): Ditto. - (sync_sub): Ditto. - (sync_ior): Ditto. - (sync_and): Ditto. - (sync_xor): Ditto. - -2007-08-16 Richard Sandiford - - PR middle-end/32897 - * reload.c (find_reloads): Check that the memory returned by - find_reloads_toplev was not the result of forcing a constant - to memory. - (find_reloads_toplev): Always use simplify_gen_subreg to get - the subreg of a constant. If the result is also a constant, - but not a legitimate one, force it into the constant pool - and reload its address. - -2007-08-15 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and - POPCOUNT. - -2007-08-15 Daniel Jacobowitz - - * config/rs6000/rs6000.c (rs6000_file_start): Output a .gnu_attribute - directive for the current vector ABI. - -2007-08-15 Steve Ellcey - - PR target/32963 - * caller-save.c (reg_save_code): Set invalide status on restore code. - -2007-08-15 Diego Novillo - - * tree-ssa-alias.c (compute_memory_partitions): Use - alias_bitmap_obstack to allocate bitmaps. - (reset_alias_info): Factor out of init_alias_info. - Mark all name tags not associated to an SSA name for renaming. - (init_alias_info): Call it. - (create_name_tags): Tidy. Add comments. - (dump_points_to_info_for): Do not call get_mem_sym_stats_for. - -2007-08-15 Maxim Kuvyrkov - - * config/mips/mips.c (vr4130_swap_insns_p): Use new interface to - scheduler dependencies. - -2007-08-15 Rask Ingemann Lambertsen - - * config/i386/i386.md (subsi3_carry_zext): Remove "m" constraint for - "register_operand". - (*iorsi_1_zext): Likewise. - (*iorsi_1_zext_imm): Likewise. - * config/i386/sse.md: (*sse4_1_extractps): Use "nonimmediate_operand" - with "rm"/"xm" constraint. - (sse2_vmsqrtv2df2): Likewise. - -2007-08-15 Jakub Jelinek - - PR middle-end/33074 - * emit-rtl.c (try_split): Use INSN_LIST instead of EXPR_LIST for - REG_LIBCALL note. - -2007-08-14 Daniel Berlin - - * tree-pass.h (PROP_pta): Removed. - (TODO_rebuild_alias): New. - (pass_may_alias): Removed. - * tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild - aliasing if we changed something. - * tree-ssa-alias.c (compute_may_aliases): Make non-static. Update - SSA internally. - (pass_may_alias): Removed. - (create_structure_vars): Return TODO_rebuild_alias. - * tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias. - * tree-sra.c (tree_sra): Only rebuild aliasing if something - changed. - (tree_sra_early): We never affect aliasing right now. - * tree-flow.h (compute_may_aliases): New prototype. - * passes.c: Remove pass_may_alias from the passes. - (execute_function_todo): Support TODO_rebuild_alias. - -2007-08-14 Kai Tietz - - * config/i386/i386.c (legitimize_address): Move dllimported variable - check infront of legitimizing pic address of CONST symbols. - -2007-08-14 Steve Ellcey - - PR tree-optimization/32941 - * tree-eh.c (struct leh_tf_state): Add goto_queue_map field. - (goto_queue_cmp): Remove. - (find_goto_replacement): Change search method. - (maybe_record_in_goto_queue): Add assert. - (lower_try_finally): Remove qsort call, add pointer_map_destroy call. - * Makefile.in (tree-eh.o): Add pointer-set.h dependency. - -2007-08-14 Kaveh R. Ghazi - - * alias.c (component_uses_parent_alias_set): Constify. - * alias.h (component_uses_parent_alias_set): Likewise. - * cfgrtl.c (print_rtl_with_bb): Likewise. - * double-int.c (tree_to_double_int, double_int_fits_to_tree_p, - mpz_get_double_int): Likewise. - * double-int.h (double_int_fits_to_tree_p, tree_to_double_int, - mpz_get_double_int): Likewise. - * expr.c (is_aligning_offset, undefined_operand_subword_p, - mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset): - Likewise. - * expr.h (safe_from_p): Likewise. - * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): - Likewise. - * gimplify.c (should_carry_locus_p, zero_sized_field_decl, - zero_sized_type, goa_lhs_expr_p): Likewise. - * omp-low.c (is_variable_sized, use_pointer_for_field): Likewise. - * rtl.h (print_rtl_with_bb): Likewise. - * sched-vis.c (print_exp, print_value, print_pattern): Likewise. - * tree-cfg.c (const_first_stmt, const_last_stmt): New. - * tree-flow-inline.h (bb_stmt_list): Constify. - (cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev, - cbsi_stmt): New. - * tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last, - const_first_stmt, const_last_stmt): New. - (block_may_fallthru, empty_block_p): Constify. - * tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY, - EXPR_ONLY_BODY): New. - (expr_first, expr_last, expr_only): Use macro for body. - (const_expr_first, const_expr_last, const_expr_only): New. - * tree-iterator.h (const_tree_stmt_iterator, ctsi_start, - ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next, - ctsi_prev, ctsi_stmt): New. - * tree-scalar-evolution.c (get_loop_exit_condition): Constify. - * tree-scalar-evolution.h (get_loop_exit_condition): Likewise. - * tree-ssa-loop-niter.c (loop_only_exit_p, - derive_constant_upper_bound): Likewise. - * tree-ssa-phiopt.c (empty_block_p): Likewise. - * tree-ssa-threadupdate.c (redirection_block_p): Likewise. - * tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise. - * tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise. - * tree-vrp.c (vrp_bitmap_equal_p): Likewise. - * tree.c (get_type_static_bounds): Likewise. - * tree.h (const_expr_first, const_expr_last, const_expr_only): New. - (get_type_static_bounds): Constify. - -2007-08-14 Rask Ingemann Lambertsen - - PR target/30315 - * config/i386/i386.h (CANONICALIZE_COMPARISON): New. - * config/i386/i386.md (plusminus)(addsub)(SWI): New. - (*3_cc_overflow): New. - (*add3_cconly_overflow): New. - (*sub3_cconly_overflow): New. - (*si3_zext_cc_overflow): New. - * config/i386/predicates.md (fcmov_comparison_operator): Accept - CCCmode for LTU, GTU, LEU and GEU. - (ix86_comparison_operator): Likewise. - (ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode. - * config/i386/i386.c (put_condition_code): Support CCCmode. - (ix86_cc_mode): Use CCCmode when testing for overflow of PLUS - or MINUS expressions. - -2007-08-14 Andrew Pinski - - PR c/30428 - * c-typeck.c (build_binary_op): Disallow vector float types with - BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR. - -2007-08-14 Maxim Kuvyrkov - - * sched-int.h (struct _dep): Rename field 'kind' to 'type'. - (DEP_KIND): Rename to DEP_TYPE. Update all uses. - (dep_def): New typedef. - (init_dep_1, sd_debug_dep): Declare functions. - (DEP_LINK_KIND): Rename to DEP_LINK_TYPE. - (debug_dep_links): Remove. - (struct _deps_list): New field 'n_links'. - (DEPS_LIST_N_LINKS): New macro. - (FOR_EACH_DEP_LINK): Remove. - (create_deps_list, free_deps_list, delete_deps_list): Remove - declaration. - (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto. - (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. - (copy_deps_list_change_con, move_dep_link): Ditto. - (struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps' - and 'spec_back_deps'. New field 'resolved_forw_deps'. Remove field - 'dep_count'. - (INSN_BACK_DEPS): Remove. - (INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS): - New macros. - (INSN_DEP_COUNT): Remove. - (enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP. Fix comments. - (spec_info, haifa_recovery_block_was_added_during_scheduling_p): - Declare global variables. - (deps_pools_are_empty_p, sched_free_deps): Declare functions. - (add_forw_dep, compute_forward_dependences): Remove declarations. - (add_or_update_back_dep, add_or_update_back_forw_dep): Ditto. - (add_back_forw_dep, delete_back_forw_dep): Ditto. - (debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare - functions. - (SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): - New constants. - (SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto. - (sd_list_types_def): New typedef. - (sd_next_list): Declare function. - (struct _sd_iterator): New type. - (sd_iterator_def): New typedef. - (sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline - functions. - (FOR_EACH_DEP): New cycle wrapper. - (sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn): - Declare functions. - (sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto. - (sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists): - Ditto. - - * sched-deps.c (init_dep_1): Make global. - (DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New - constants. - (dump_dep): New static function. - (dump_dep_flags): New static variable. - (sd_debug_dep): New function. - (add_to_deps_list, remove_from_deps_list): Update 'n_links' field of - the list. - (move_dep_link): Use remove_from_deps_list (), instead of - detach_dep_link (). - (dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove. - (dep_link_is_detached_p): New static function. - (deps_obstack, dl_obstack, dn_obstack): Remove. Use dn_pool, dl_pool - instead. - (dn_pool, dl_pool): New alloc_pools. - (dn_pool_diff, dl_pool_diff): New static variables. - (create_dep_node, delete_dep_node): New static function. - (create_deps_list): Make it static. Use alloc_pool 'dl_pool'. - (deps_list_empty_p): Make it static. Use 'n_links' field. - (deps_pools_are_empty_p): New static function. - (alloc_deps_list, delete_deps_list): Remove. - (dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove. - (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. - (copy_deps_list_change_con): Remove. Use sd_copy_back_deps () instead. - (forward_dependency_cache): Remove. - (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove - 'back' from the names. Change signature to use dep_t instead of - equivalent quad. - (add_back_dep): Ditto. Make global. - (check_dep_status): Rename to check_dep (). - (sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn): - New functions. - (sd_finish_insn): Ditto. - (sd_find_dep_between_no_cache): New static function. - (sd_find_dep_between): New function. - (ask_dependency_caches, set_dependency_caches): New static functions. - (update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto. - (add_or_update_dep_1): Separate pieces of functionality into - ask_dependency_caches (), update_dependency_caches (), - change_spec_dep_to_hard (), update_dep (). - (get_back_and_forw_lists): New static function. - (sd_add_dep): Separate setting of dependency caches into - set_dependency_caches (). - (sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps): - New functions. - (sd_delete_dep): Ditto. - (DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants. - (dump_lists): New static function. - (sd_debug_lists): New debug function. - (delete_all_dependences, fixup_sched_groups): Update to use - sd_* infrastructure. - (sched_analyze_2): Create data-speculative dependency only if - data-speculation is enabled. - (sched_analyze_insn): If insn cannot be speculative, make all its - dependencies non-speculative. - (sched_analyze): Use sd_init_insn (). - (add_forw_dep, compute_forward_dependencies): Remove. - (delete_dep_nodes_in_back_deps): New static function. - (sched_free_deps): New function. - (init_dependency_caches): Init alloc_pools. - (extend_depedency_caches): Update after removing of - forward_dependency_cache. - (free_dependency_caches): Ditto. Free alloc_pools. - (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove. - (delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep): - Ditto. - (add_back_forw_dep, delete_back_forw_dep): Ditto. - (add_dependence): Use init_dep (). - (get_dep_weak_1): New static function. - (get_dep_weak): Move logic to get_dep_weak_1 (). - (dump_ds): New static function moved from haifa-sched.c: - debug_spec_status (). - (debug_ds): New debug function. - (check_dep_status): Rename to check_dep (). Update to check whole - dependencies. - - * haifa-sched.c (spec_info): Make global. - (added_recovery_block_p): Rename to - 'haifa_recovery_block_was_added_during_current_schedule_block_p'. - (haifa_recovery_block_was_added_during_scheduling_p): New variable. - (dep_cost, priority, rank_for_schedule, schedule_insn): Update - to use new interfaces. - (ok_for_early_queue_removal): Ditto. - (schedule_block): Initialize logical uids of insns emitted by the - target. - (sched_init): Initialize new variable. - (fix_inter_tick, try_ready, fix_tick_ready): Update to use new - interfaces. - (extend_global): Initialize insn data. - (init_h_i_d): Remove code that is now handled in sd_init_insn (). - (process_insn_forw_deps_be_in_spec): Change signature. Update to use - new interfaces. - (add_to_speculative_block): Update to use new interfaces. - (create_recovery_block): Set new variables. - (create_check_block_twin, fix_recovery_deps): Update to use new - interfaces. - (sched_insn_is_legitimate_for_speculation_p): New function. - (speculate_insn): Move checking logic to - sched_insn_is_legitimate_for_speculation_p (). - (sched_remove_insn): Finalize sched-deps information of instruction. - (clear_priorities, add_jump_dependencies): Update to use new - interfaces. - (debug_spec_status): Rename to dump_ds () and move to sched-deps.c. - - * sched-rgn.c (set_spec_fed, find_conditional_protection): Update - to use new interfaces. - (is_conditionally_protected, is_pfree, is_prisky) Ditto. - (new_ready): Try to use control speculation only if it is available. - (add_branch_dependences): Update to use new interfaces. - (compute_block_backward_dependences): Rename to - compute_block_dependences (). Call - targetm.sched.dependencies_evaluation_hook (). - (free_block_dependencies): New static function. - (debug_dependencies): Update to use new interfaces. - (schedule_region): Remove separate computation of forward dependencies. - Move call of targetm.sched.dependencies_evaluation_hook () to - compute_block_dependences (). Free dependencies at the end of - scheduling the region. - - * sched-ebb.c (earliest_block_with_similiar_load): Update to use - new interfaces. - (add_deps_for_risky_insns): Ditto. - (schedule_ebb): Remove separate computation of forward dependencies. - Free dependencies at the end of scheduling the ebb. - - * ddg.c (create_ddg_dependence): Update to use new interfaces. - (build_intra_loop_deps): Ditto. Remove separate computation of - forward dependencies. Free sched-deps dependencies. - - * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update - to use new interfaces. - (ia64_dfa_new_cycle, ia64_gen_check): Ditto. - - * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use - new interfaces. - (is_costly_group): Ditto. - -2007-08-14 Kaveh R. Ghazi - - * alias.c (rtx_equal_for_memref_p): Constify. - * basic-block.h (const_edge, const_basic_block): New. - (reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p, - single_pred_p, single_succ_edge, single_pred_edge, single_succ, - single_pred, maybe_hot_bb_p, probably_cold_bb_p, - probably_never_executed_bb_p, edge_probability_reliable_p, - br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print, - inside_basic_block_p, control_flow_insn_p, dominated_by_p): - Likewise. - * bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise. - * bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up): - Likewise. - * cfganal.c (flow_active_insn_p, forwarder_block_p, - flow_nodes_print, dfs_enumerate_from): Likewise. - * cfgbuild.c (count_basic_blocks, inside_basic_block_p, - control_flow_insn_p, count_basic_blocks): Likewise. - * cfgloop.c (flow_bb_inside_loop_p, glb_enum_p, - get_loop_body_with_size, loop_exit_edge_p): Likewise. - * cfgloop.h (flow_bb_inside_loop_p, num_loop_insns, - average_num_loop_insns, loop_exit_edge_p, - just_once_each_iteration_p, can_duplicate_loop_p): Likewise. - * cfgloopanal.c (just_once_each_iteration_p, num_loop_insns, - average_num_loop_insns, seq_cost): Likewise. - * cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise. - * dominance.c (dominated_by_p): Likewise. - * emit-rtl.c (validate_subreg): Likewise. - * except.c (can_throw_internal, can_throw_external): Likewise. - * except.h (can_throw_internal, can_throw_external): Likewise. - * gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p, - oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p, - compute_transp, load_killed_in_block_p, reg_killed_on_edge, - simple_mem, store_ops_ok, load_kills_store, find_loads, - store_killed_in_insn, store_killed_after, store_killed_before, - gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat): - Likewise. - * ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok, - noce_mem_write_may_trap_or_fault_p): Likewise. - * pointer-set.c (pointer_set_contains, pointer_map_contains): - Likewise. - * pointer-set.h (pointer_set_contains, pointer_map_contains): - Likewise. - * predict.c (can_predict_insn_p, maybe_hot_bb_p, - probably_cold_bb_p, probably_never_executed_bb_p, - edge_probability_reliable_p, br_prob_note_reliable_p, - can_predict_insn_p): Likewise. - * regclass.c (reg_set_to_hard_reg_set): Likewise. - * resource.c (return_insn_p): Likewise. - * rtl.h (reg_set_between_p, reg_set_p, validate_subreg): - Likewise. - * rtlanal.c (reg_set_between_p, reg_set_p): Likewise. - * tracer.c (count_insns, ignore_bb_p, better_p): Likewise. - * tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr, - verify_gimple_modify_stmt): Likewise. - * tree-chrec.c (is_not_constant_evolution, - is_multivariate_chrec_rec, is_multivariate_chrec, - chrec_contains_symbols, chrec_contains_undetermined, - tree_contains_chrecs, evolution_function_is_affine_multivariate_p, - evolution_function_is_univariate_p, avoid_arithmetics_in_type_p, - eq_evolutions_p, scev_direction): Likewise. - * tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec, - eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols, - chrec_contains_symbols_defined_in_loop, - chrec_contains_undetermined, tree_contains_chrecs, - evolution_function_is_affine_multivariate_p, - evolution_function_is_univariate_p, chrec_zerop, - evolution_function_is_constant_p, evolution_function_is_affine_p, - evolution_function_is_affine_or_constant_p, - tree_does_not_contain_chrecs, chrec_type): Likewise. - * tree-data-ref.c (tree_fold_divides_p, - object_address_invariant_in_loop_p, dr_may_alias_p, - ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p, - same_access_functions, constant_access_functions, - access_functions_are_affine_or_constant_p, find_vertex_for_stmt): - Likewise. - * tree-flow.h (scev_direction): Likewise. - * tree-gimple.c (is_gimple_stmt): Likewise. - * tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p): - Likewise. - * tree-pretty-print.c (op_prio): Likewise. - * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, - analyzable_condition, backedge_phi_arg_p): Likewise. - * tree-scalar-evolution.h (get_chrec_loop): Likewise. - * tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise. - * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): - Likewise. - -2007-08-13 Dan Hipschman - - PR c/32953 - * c-format.c (check_format_arg): Move check for zero-length - format strings below the check for unterminated strings. - -2007-08-13 Andrew Pinski - - PR C/30427 - * c-typeck.c (build_unary_op ): Reject vector float - types. - -2007-08-13 Nick Clifton - - * config/arm/arm_neon.h: Revert GPLv3 patch to this file. - -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 - - * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add - -profile option, add pie support. - (ENDFILE_SPEC): New spec. - * config/gnu.h (LIB_SPEC): Add -profile option. - -2007-08-08 Samuel Thibault - - * config/i386/gnu.h (CPP_SPEC): Add -pthread option. - * 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 - * gengtype-lex.l: Ignore backslash/newline pair while scanning a - struct definition. - -2007-08-07 Andreas Krebbel - - * lower-subreg.c (resolve_subreg_use): Remove assertion. - (find_decomposable_shift_zext, resolve_shift_zext): New functions. - (decompose_multiword_subregs): Use the functions above to decompose - multiword shifts and zero-extends. - -2007-08-07 Rask Ingemann Lambertsen - - * doc/sourcebuild.texi (Test Directives): Fix "compile" and - "assemble" descriptions which were swapped. - -2007-08-06 Chao-ying Fu - - * fixed-value.h: New file. - * fixed-value.c: New file. - * Makefile.in (OBJS-common): Add fixed-value.o. - (fixed-value.o): New rule. - (GTFILES): Add fixed-value.h. - * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT - to compare a.low and b.low. - * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef. - -2007-08-06 H.J. Lu - Daniel Jacobowitz - - PR target/31868 - * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to - tmake_file. - (x86_64-*-netbsd*): Likewise. - (x86_64-*-linux*): Likewise. - (x86_64-*-kfreebsd*-gnu): Likewise. - (x86_64-*-knetbsd*-gnu): Likewise. - (i[34567]86-*-solaris2.1[0-9]*): Likewise. - - * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed. - - * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments. - Add -fno-asynchronous-unwind-tables. - - * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). - * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise. - * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise. - * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise. - * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise. - -2007-08-06 Steve Ellcey - - * config/ia64/ia64.c (ia64_c_mode_for_suffix): New. - (TARGET_C_MODE_FOR_SUFFIX): New. - -2007-08-06 Steve Ellcey - - * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'. - -2007-08-06 Steve Ellcey - - * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo. - -2007-08-06 H.J. Lu - - * config/i386/i386.md: Check TARGET_ macros and optimize_size - before checking function returns in conditional expressions. - -2007-08-06 Alfred Minarik - - PR pch/13676 - * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header. - -2008-08-05 Andrew Pinski - - PR middle-end/32988 - * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check - for INTEGRAL_TYPE_P. - -2008-08-05 Paolo Bonzini - - * configure.ac: Remove --enable-checking=df from default settings. - * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance. - * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification - if the parameter is true. - (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the - DF_VERIFY_SCHEDULED flag is true. - * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED. - (df_finish_pass): Adjust prototype. - * passes.c (execute_todo): Schedule verification if TODO_df_verify is - true. - - * see.c (pass_see): Add TODO_df_verify. - * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify. - * global.c (rest_of_handle_global_alloc): Schedule verification - after the pass. - * local-alloc.c (rest_of_handle_local_alloc): Schedule verification - before the pass. - * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify. - * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass. - * loop-iv.c (iv_analysis_done): Schedule verification after the pass. - - * config/sh/sh.c (sh_output_mi_thunk): Remove dead code. - * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass. - * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass. - -2007-08-05 Vladimir Yanovsky - Revital Eres - - * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new - flag. - * ddg.c (create_ddg_dependence): Rename to... - (create_ddg_dep_from_intra_loop_link): This. Do not check - for interloop edges. Do not create anti dependence edge when - a true dependence edge exists in the opposite direction and - -fmodulo-sched-allow-regmoves is set. - (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link. - (add_cross_iteration_register_deps): Create anti dependence edge - when -fno-modulo-sched-allow-regmoves is set. - * common.opt (-fmodulo-sched-allow-regmoves): New flag. - -2007-08-04 Richard Sandiford - - * config/arm/arm.md (movsi): Add braces. - -2007-08-04 Andrew Pinski - - PR middle-end/32780 - * fold-const.c (fold_binary ): Fix the type of - operands for the folding of "A - (A & B)" into "~B & A"; cast them - to type. - -2007-08-03 Zdenek Dvorak - - * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' - state accessor functions. - * cfgloopmanip.c (remove_path, create_preheaders, - force_single_succ_latches, fix_loop_structure): Ditto. - * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, - tree_duplicate_loop_to_header_edge): Ditto. - * cfgloopanal.c (mark_irreducible_loops): Ditto. - * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): - Ditto. - * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures, - cleanup_tree_cfg): Ditto. - * tree-cfg.c (tree_merge_blocks): Ditto. - * cfgloop.c (rescan_loop_exit, record_loop_exits, - release_recorded_exits, get_loop_exit_edges, verify_loop_structure, - loop_preheader_edge, single_exit): Ditto. - (flow_loops_find): Do not clear loops->state. - * cfgloop.h (loops_state_satisfies_p, loops_state_set, - loops_state_clear): New functions. - -2007-08-03 Andrew Pinski - - PR middle-end/32399 - * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR - when adding to the base and convert ELT to sizetype instead of type. - -2007-08-03 Andrew Pinski - - PR middle-end/32304 - * ipa-reference.c (has_proper_scope_for_analysis): Return false when - the decl's type has TYPE_NEEDS_CONSTRUCTING set. - -2007-08-03 Andrew Pinski - - PR middle-end/32935 - * fold-convert.c (fold_negate_expr ): Convert back to the - correct type the negate expression. - -2007-08-03 Jan Hubicka - - * config/i386/i386.c (setup_incoming_varargs_64): Tolerate 64bit - preferred stack boundary. - -2007-08-03 David Edelsohn - - * config/rs6000/rs6000.c (struct processor_cost): Change - l1_cache_lines to l1_cache_size. Add l2_cache_size. - (*_cost): Convert l1 cache information to kilobytes. Add l2 cache - information. - (rios1_costs, rios2_cost): Correct cache line size. - (rs6000_override_options): Set l2-cache-size parameter. - -2007-08-03 Andrew Pinski - Diego Novillo - - PR 31521 - * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify - if the range includes 0. - -2007-08-03 Ben Elliston - - * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate - mode to unspec expressions to silence a warning from the generator - programs. - -2007-08-02 Steve Ellcey - - * config/ia64/constraints.md ("U"): Make constraint vector only. - -2007-08-02 Nathan Froyd - - PR middle-end/25446 - * c-objc-common.c (c_cannot_inline_tree_fn): Check for an - always_inline attribute on the function decl. - -2007-08-02 Nathan Froyd - - PR middle-end/25445 - * varasm.c (default_binds_local_p_1): Consult flag_whole_program - if we are compiling with -fPIC. - -2007-08-02 Sandra Loosemore - Nigel Stephens - - * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0): - Define for MIPS32 and MIPS64. - -2007-08-02 Nick Clifton - - * config/host-hpux.c: Change copyright header to refer to version - 3 of the GNU General Public License and to point readers at the - COPYING3 file and the FSF's license web page. - * config/alpha/predicates.md, config/alpha/vms-ld.c, - config/alpha/linux.h, config/alpha/alpha.opt, - config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h, - config/alpha/vms-unwind.h, config/alpha/ev4.md, - config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c, - config/alpha/alpha.h, config/alpha/sync.md, - config/alpha/openbsd.h, config/alpha/alpha.md, - config/alpha/alpha-modes.def, config/alpha/ev5.md, - config/alpha/alpha-protos.h, config/alpha/freebsd.h, - config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h, - config/alpha/constraints.md, config/alpha/osf.h, - config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h, - config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h, - config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def, - config/frv/frv-asm.h, config/frv/frv-protos.h, - config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h, - config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h, - config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt, - config/s390/2064.md, config/s390/2084.md, config/s390/s390.md, - config/s390/s390.opt, config/s390/s390-modes.def, - config/s390/fixdfdi.h, config/s390/constraints.md, - config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h, - config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md, - config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md, - config/m32c/m32c-pragma.c, config/m32c/m32c.h, - config/m32c/prologue.md, config/m32c/m32c.abi, - config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md, - config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt, - config/m32c/t-m32c, config/m32c/m32c-modes.def, - config/m32c/jump.md, config/m32c/shift.md, - config/m32c/m32c-protos.h, config/libgloss.h, - config/spu/spu-protos.h, config/spu/predicates.md, - config/spu/spu-builtins.h, config/spu/spu.c, - config/spu/spu-builtins.def, config/spu/spu-builtins.md, - config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md, - config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt, - config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h, - config/sparc/hypersparc.md, config/sparc/predicates.md, - config/sparc/linux.h, config/sparc/sp64-elf.h, - config/sparc/supersparc.md, config/sparc/cypress.md, - config/sparc/openbsd1-64.h, config/sparc/openbsd64.h, - config/sparc/niagara.md, config/sparc/sparc.md, - config/sparc/long-double-switch.opt, config/sparc/ultra3.md, - config/sparc/sparc.opt, config/sparc/sync.md, - config/sparc/sp-elf.h, config/sparc/sparc-protos.h, - config/sparc/ultra1_2.md, config/sparc/biarch64.h, - config/sparc/sparc.c, config/sparc/little-endian.opt, - config/sparc/sysv4-only.h, config/sparc/sparc.h, - config/sparc/linux64.h, config/sparc/freebsd.h, - config/sparc/sol2.h, config/sparc/rtemself.h, - config/sparc/netbsd-elf.h, config/sparc/vxworks.h, - config/sparc/sparc-modes.def, config/sparc/sparclet.md, - config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h, - config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md, - config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt, - config/m32r/linux.h, config/m32r/constraints.md, - config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt, - config/darwin-c.c, config/darwin.opt, config/i386/i386.h, - config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h, - config/i386/i386.md, config/i386/netware-crt0.c, - config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h, - config/i386/kaos-i386.h, config/i386/winnt-stubs.c, - config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h, - config/i386/sol2.h, config/i386/constraints.md, - config/i386/netware-libgcc.c, config/i386/sysv5.h, - config/i386/predicates.md, config/i386/geode.md, - config/i386/x86-64.h, config/i386/kfreebsd-gnu.h, - config/i386/freebsd64.h, config/i386/vxworksae.h, - config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h, - config/i386/rtemself.h, config/i386/netbsd-elf.h, - config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c, - config/i386/netware.h, config/i386/i386-modes.def, - config/i386/sysv4-cpp.h, config/i386/i386-interix.h, - config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h, - config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h, - config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h, - config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md, - config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt, - config/i386/xm-mingw32.h, config/i386/linux64.h, - config/i386/openbsdelf.h, config/i386/xm-cygwin.h, - config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h, - config/i386/winnt-cxx.c, config/i386/i386-interix3.h, - config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c, - config/i386/cygwin2.c, config/i386/i386-protos.h, - config/i386/sync.md, config/i386/openbsd.h, - config/i386/host-mingw32.c, config/i386/i386-aout.h, - config/i386/nto.h, config/i386/biarch64.h, - config/i386/i386-coff.h, config/i386/freebsd.h, - config/i386/driver-i386.c, config/i386/knetbsd-gnu.h, - config/i386/host-i386-darwin.c, config/i386/vxworks.h, - config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h, - config/darwin-protos.h, config/linux.opt, config/sol2.c, - config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h, - config/sh/linux.h, config/sh/elf.h, config/sh/superh.h, - config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h, - config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h, - config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md, - config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h, - config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c, - config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def, - config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md, - config/sh/superh64.h, config/sh/rtemself.h, - config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h, - config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h, - config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c, - config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def, - config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h, - config/avr/predicates.md, config/avr/constraints.md, - config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt, - config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h, - config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h, - config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt, - config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt, - config/c4x/c4x-modes.def, config/c4x/rtems.h, - config/c4x/predicates.md, config/c4x/c4x.h, - config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h, - config/xtensa/predicates.md, config/xtensa/xtensa.c, - config/xtensa/linux.h, config/xtensa/xtensa.h, - config/xtensa/elf.h, config/xtensa/xtensa.md, - config/xtensa/xtensa.opt, config/xtensa/constraints.md, - config/xtensa/xtensa-protos.h, config/dbx.h, - config/stormy16/predicates.md, config/stormy16/stormy16.md, - config/stormy16/stormy16.c, config/stormy16/stormy16.opt, - config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h, - config/host-solaris.c, config/fr30/fr30.h, - config/fr30/predicates.md, config/fr30/fr30-protos.h, - config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt, - config/vxworksae.h, config/sol2-c.c, config/lynx.h, - config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md, - config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h, - config/m68hc11/m68hc12.h, config/openbsd-oldgas.h, - config/host-linux.c, config/interix3.h, config/cris/cris.c, - config/cris/predicates.md, config/cris/linux.h, - config/cris/cris.h, config/cris/aout.h, config/cris/cris.md, - config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt, - config/cris/aout.opt, config/cris/cris-protos.h, - config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h, - config/iq2000/iq2000.h, config/iq2000/predicates.md, - config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md, - config/iq2000/iq2000.c, config/iq2000/iq2000.opt, - config/host-darwin.c, config/mt/mt.md, config/mt/mt.c, - config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h, - config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h, - config/chorus.h, config/mn10300/mn10300.c, - config/mn10300/mn10300.opt, config/mn10300/predicates.md, - config/mn10300/mn10300.h, config/mn10300/linux.h, - config/mn10300/constraints.md, config/mn10300/mn10300-protos.h, - config/mn10300/mn10300.md, config/ia64/predicates.md, - config/ia64/itanium1.md, config/ia64/unwind-ia64.h, - config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c, - config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md, - config/ia64/freebsd.h, config/ia64/ia64.md, - config/ia64/ia64-modes.def, config/ia64/constraints.md, - config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h, - config/gofast.h, config/rtems.h, config/sol2-10.h, - config/m68k/predicates.md, config/m68k/m68k.md, - config/m68k/linux.h, config/m68k/m68k-modes.def, - config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h, - config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt, - config/m68k/openbsd.h, config/m68k/m68k-aout.h, - config/m68k/m68k.opt, config/m68k/m68020-elf.h, - config/m68k/m68kelf.h, config/m68k/m68k-devices.def, - config/m68k/uclinux-oldabi.h, config/m68k/m68k.c, - config/m68k/constraints.md, config/m68k/rtemself.h, - config/m68k/netbsd-elf.h, config/m68k/m68k.h, - config/m68k/uclinux.h, config/rs6000/power4.md, - config/rs6000/host-darwin.c, config/rs6000/6xx.md, - config/rs6000/linux.h, config/rs6000/eabi.h, - config/rs6000/aix41.opt, config/rs6000/xcoff.h, - config/rs6000/secureplt.h, config/rs6000/linuxspe.h, - config/rs6000/eabialtivec.h, config/rs6000/8540.md, - config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h, - config/rs6000/windiss.h, config/rs6000/603.md, - config/rs6000/aix41.h, config/rs6000/cell.md, - config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h, - config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt, - config/rs6000/darwin.md, config/rs6000/darwin64.h, - config/rs6000/default64.h, config/rs6000/7xx.md, - config/rs6000/darwin.opt, config/rs6000/spe.md, - config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c, - config/rs6000/rios2.md, config/rs6000/linuxaltivec.h, - config/rs6000/7450.md, config/rs6000/linux64.h, - config/rs6000/constraints.md, config/rs6000/440.md, - config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c, - config/rs6000/rs6000.c, config/rs6000/aix52.h, - config/rs6000/rs6000.h, config/rs6000/power6.md, - config/rs6000/predicates.md, config/rs6000/altivec.md, - config/rs6000/aix64.opt, config/rs6000/rios1.md, - config/rs6000/rs6000-modes.def, config/rs6000/rs64.md, - config/rs6000/eabisim.h, config/rs6000/sysv4le.h, - config/rs6000/darwin7.h, config/rs6000/dfp.md, - config/rs6000/linux64.opt, config/rs6000/sync.md, - config/rs6000/vxworksae.h, config/rs6000/power5.md, - config/rs6000/lynx.h, config/rs6000/biarch64.h, - config/rs6000/rs6000.md, config/rs6000/sysv4.opt, - config/rs6000/eabispe.h, config/rs6000/e500.h, - config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h, - config/rs6000/netbsd.h, config/rs6000/e500-double.h, - config/rs6000/aix.h, config/rs6000/vxworks.h, - config/rs6000/40x.md, config/rs6000/aix51.h, - config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md, - config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def, - config/arc/arc.h, config/mcore/mcore-elf.h, - config/mcore/mcore-protos.h, config/mcore/predicates.md, - config/mcore/mcore.md, config/mcore/mcore.c, - config/mcore/mcore.opt, config/mcore/mcore.h, - config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h, - config/score/predicates.md, config/score/score-version.h, - config/score/score-protos.h, config/score/misc.md, - config/score/elf.h, config/score/score.c, config/score/mac.md, - config/score/score7.md, config/score/score.h, - config/score/score-conv.h, config/score/score-mdaux.c, - config/score/score.md, config/score/score.opt, - config/score/score-modes.def, config/score/score-mdaux.h, - config/score/mul-div.S, config/arm/uclinux-elf.h, - config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md, - config/arm/symbian.h, config/arm/linux-elf.h, - config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, - config/arm/elf.h, config/arm/aout.h, config/arm/arm.c, - config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h, - config/arm/strongarm-pe.h, config/arm/arm.h, - config/arm/cortex-a8-neon.md, config/arm/semiaof.h, - config/arm/cortex-a8.md, config/arm/uclinux-eabi.h, - config/arm/arm-modes.def, config/arm/linux-eabi.h, - config/arm/rtems-elf.h, config/arm/neon-schedgen.ml, - config/arm/arm-cores.def, config/arm/arm-protos.h, - config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h, - config/arm/wince-pe.h, config/arm/neon.md, - config/arm/constraints.md, config/arm/neon.ml, - config/arm/xscale-elf.h, config/arm/strongarm-coff.h, - config/arm/arm.opt, config/arm/arm926ejs.md, - config/arm/predicates.md, config/arm/iwmmxt.md, - config/arm/arm_neon.h, config/arm/unknown-elf.h, - config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt, - config/arm/neon-testgen.ml, config/arm/arm.md, - config/arm/xscale-coff.h, config/arm/pe.c, - config/arm/arm-generic.md, config/arm/pe.h, - config/arm/kaos-strongarm.h, config/arm/freebsd.h, - config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md, - config/arm/strongarm-elf.h, config/arm/cirrus.md, - config/arm/netbsd-elf.h, config/arm/vxworks.h, - config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c, - config/pa/predicates.md, config/pa/pa64-hpux.h, - config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt, - config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h, - config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h, - config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h, - config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, - config/pa/pa-hpux1010.h, config/pa/pa-protos.h, - config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h, - config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h, - config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt, - config/pa/pa64-regs.h, config/pa/pa-modes.def, - config/pa/constraints.md, config/darwin9.h, config/mips/4100.md, - config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h, - config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h, - config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md, - config/mips/7000.md, config/mips/9000.md, config/mips/4600.md, - config/mips/linux64.h, config/mips/elforion.h, - config/mips/constraints.md, config/mips/generic.md, - config/mips/predicates.md, config/mips/4300.md, - config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md, - config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md, - config/mips/5k.md, config/mips/vr4120-div.S, - config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md, - config/mips/mips-protos.h, config/mips/6000.md, - config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h, - config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h, - config/mips/mips-modes.def, config/mips/vr.h, - config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h, - config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h, - config/vax/vax.h, config/vax/elf.h, config/vax/vax.md, - config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def, - config/vax/openbsd1.h, config/vax/netbsd.h, - config/vax/vax-protos.h, config/vax/netbsd-elf.h, - config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h, - config/h8300/rtems.h, config/h8300/predicates.md, - config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h, - config/h8300/h8300.md, config/h8300/h8300.opt, - config/h8300/coff.h, config/h8300/h8300-protos.h, - config/v850/v850.md, config/v850/predicates.md, - config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt, - config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c, - config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h, - config/mmix/mmix.h, config/mmix/predicates.md, - config/mmix/mmix-protos.h, config/mmix/mmix.md, - config/mmix/mmix.c, config/mmix/mmix.opt, - config/mmix/mmix-modes.def, config/bfin/bfin.opt, - config/bfin/rtems.h, config/bfin/bfin-modes.def, - config/bfin/predicates.md, config/bfin/bfin-protos.h, - config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: - Likewise. - -2007-08-02 Richard Sandiford - - * emit-rtl.c (reset_used_decls): Rename to... - (set_used_decls): ...this. Set the used flag rather than clearing it. - (unshare_all_rtl_again): Update accordingly. Set flags on argument - DECL_RTLs rather than resetting them. - -2007-08-02 Andreas Krebbel - - * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg. - -2007-08-01 Sandra Loosemore - - * reload.c (find_reloads_address_part): Pass correct MEMREFLOC - argument to find_reloads_address. - -2007-08-01 Daniel Jacobowitz - - PR tree-optimization/32919 - * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs. - * tree-ssa-coalesce.c (ssa_conflicts_dump): New. - (coalesce_ssa_name): Call it. - -2007-08-01 Sandra Loosemore - David Ung - - * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New. - (__mips16_unorddf2, __mips16_floatunsidf): New. - * config/mips/mips.c (mips_init_libfuncs): Add optab entries for - above functions. - * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions. - -2007-08-01 Zdenek Dvorak - - * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH. - Display new operands of OMP_SECTIONS and OMP_CONTINUE. - * tree.h (OMP_SECTIONS_CONTROL): New macro. - (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH. - * omp-low.c (get_ws_args_for, determine_parallel_type, - expand_omp_for_generic, expand_omp_for_static_nochunk, - expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections): - Work with more precise CFG. - (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH. - (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to - OMP_CONTINUE. - * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH. - * gimple-low.c (lower_stmt): Ditto. - * tree-inline.c (estimate_num_insns_1): Ditto. - * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands. - (OMP_SECTIONS_SWITCH): New. - * tree-cfgcleanup.c (cleanup_omp_return): New. - (cleanup_tree_cfg_bb): Call cleanup_omp_return. - * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE - and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH. - (tree_redirect_edge_and_branch): Handle omp constructs. - - * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS - with three arguments. - -2007-08-01 Zdenek Dvorak - - * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only - in loop closed ssa. - -2007-08-01 Zdenek Dvorak - - * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that - the loop structures may need fixing. - * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): - New functions. - (cleanup_tree_cfg_loop): Removed. - (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures. - * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg - instead of running cleanup_tree_cfg_loop. - * cfgloop.h (LOOPS_NEED_FIXUP): New constant. - * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed. - (tree_predictive_commoning): Declaration changed. - * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop. - -2007-08-01 Zdenek Dvorak - - * doc/invoke.texi (l1-cache-size): Update documentation. - (l2-cache-size): Document. - * params.h (L2_CACHE_SIZE): New macro. - * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect - that L1_CACHE_SIZE is in kB now. - (L2_CACHE_SIZE_BYTES): New macro. - (tree_ssa_prefetch_arrays): Show size in kB. - * config/i386/i386.h (struct processor_costs): Add l1_cache_size - and l2_cache_size fields. - * config/i386/driver-i386.c (describe_cache): Detect cache size - in kB. - * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost, - pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost, - amdfam10_cost, pentium4_cost, nocona_cost, core2_cost, - generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size. - (override_options): Set l1-cache-size and l2-cache-size to default - values if not specified otherwise. - * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB. - (PARAM_L2_CACHE_SIZE): New. - -2007-08-01 Nigel Stephens - David Ung - Thiemo Seufer - Chris Dearman - Richard Sandiford - - * config.gcc (mips*-sde-elf*): New stanza. - (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) - (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) - (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*) - (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*) - (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss) - (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16 - to tmake_file. - * config/mips/sde.h: New file. - * config/mips/t-libgcc-mips16: Likewise. - * config/mips/t-sde: Likewise. - * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings - of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR, - _MIPS_FPSET and _MIPS_SZINT. - * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise. - * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate - insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC. - * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete. - * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. - * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. - * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32, - _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG, - _MIPS_SZPTR and _MIPS_FPSET. - (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no - architecture is specified. - (MIPS_32BIT_OPTION_SPEC): New macro. - -2007-07-31 Dan Hipschman - - * gcc.c (end_going_arg): New function. - (do_spec_2): Use it. - (do_spec_1): Use it. - -2007-07-31 H.J. Lu - - * ddg.c (add_cross_iteration_register_deps): Declare bb_info - only if ENABLE_CHECKING is defined. - -2007-07-31 Kenneth Zadeck - - * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru, - df_ru_add_problem, df_ru_get_bb_info): Removed. - (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered. - * df-problems.c (df_ru_problem_data, df_ru_set_bb_info, - df_ru_free_bb_info, df_ru_alloc, - df_ru_bb_local_compute_process_def, - df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, - df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, - df_ru_transfer_function, df_ru_free, df_ru_start_dump, - df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU, - df_ru_add_problem): Removed. - -2007-07-31 John David Anglin - - PR target/32847 - * pa.md (casesi32): Use match_scratch. Revise insn condition. - (casesi32p, casesi64p): Likewise. - (casesi): Adjust for above. - -2007-07-31 Richard Sandiford - - * mode-switching.c (create_pre_exit): Don't search past calls. - -2007-07-31 Sandra Loosemore - - * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test. - -2007-07-31 Revital Eres - - * ddg.c (add_deps_for_def): Rename to... - (add_cross_iteration_register_deps): This. Change implementation - to use only reaching def and def-use chains to construct the - inter loop dependencies. - (add_deps_for_use): Remove function. - (build_inter_loop_deps): Call add_cross_iteration_register_deps - function to build the inter loop dependencies. - * modulo-sched.c (sms_schedule): Build only - reaching def and def-use chains for the propose of the ddg - construction. - -2007-07-31 Julian Brown - - * config/arm/neon.md (vec_set_internal, vec_setv2di_internal): - New define_insns. Use correct RTL. - (vec_set): Write as expander. - -2007-07-31 Razya Ladelsky - - * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring - to an unallocated space. - -2007-07-30 Jan Sjodin - - * tree-data-ref.c - (split_constant_offset): Enable split_constant_offset to extract - constants from other statements. - * tree-vect-transform.c - (vect_create_addr_base_for_vector_ref): Generate data_ref_base - to a temp var. Force base_offset to be simple. - -2007-07-30 Seongbae Park - - * df-scan.c (df_scan_verify): Remove artificial limit on - the number of blocks for verification. - * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs, - df_simulate_defs): Avoid unnecessary insn checking for defs. - -2007-07-29 Mark Mitchell - - * config/m68k/lb1sf68.asm (FUNC): New macro. - (__mulsi3): Use it. - (__udivsi3): Likewise. - (__divsi3): Likewise. - (__umodsi3): Likewise. - (__modsi3): Likewise. - (__subdf3): Likewise. - (__adddf3): Likewise. - (__muldf3): Likewise. - (__divdf3): Likewise. - (__negdf2): Likewise. - (__cmpdf2): Likewise. - (__subsf3): Likewise. - (__addsf3): Likewise. - (__mulsf3): Likewise. - (__divsf3): Likewise. - (__negsf2): Likewise. - (__cmpsf2): Likewise. - (__eqdf2): Likewise. - (__nedf2): Likewise. - (__gtdf2): Likewise. - (__gedf2): Likewise. - (__ltdf2): Likewise. - (__ledf2): Likewise. - (__eqsf2): Likewise. - (__nesf2): Likewise. - (__gtsf2): Likewise. - (__gesf2): Likewise. - (__ltsf2): Likewise. - (__lesf2): Likewise. - -2007-07-30 Ollie Wild - - * c-ppoutput.c (print_lines_directives_only): New function. - (scan_translation_unit_directives_only): New function. - (preprocess_file): Add call to scan_translation_unit_directives_only. - * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only. - (sanitize_cpp_opts): Add default flag_dump_macros setting for - -fdirectives-only. Add errors for -fdirectives-only conflict with - -Wunused-macros and -traditional. - (finish_options): Add builtin macro initialization for - -fdirectives-only + -fpreprocessed. - * c.opt (fdirectives-only): New. - * doc/cppopts.texi (fdirectives-only): New. - -2007-07-30 Kaveh R. Ghazi - - * alias.c (record_set, memory_modified_1): Constify. - * bt-load.c (note_btr_set): Likewise. - * caller-save.c (mark_set_regs, add_stored_regs): Likewise. - * combine.c (set_nonzero_bits_and_sign_copies, - expand_field_assignment, record_dead_and_set_regs_1, - use_crosses_set_p, reg_dead_at_p_1, can_combine_p, - likely_spilled_retval_1): Likewise. - * config/frv/frv.c (frv_registers_update_1, frv_io_check_address, - frv_io_handle_set): Likewise. - * config/mips/mips.c (mips_sim_record_set, - vr4130_true_reg_dependence_p_1): Likewise. - * config/mt/mt.c (insn_dependent_p_1): Likewise. - * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. - * config/sh/sh.c (flow_dependent_p_1): Likewise. - * cselib.c (cselib_invalidate_rtx_note_stores): Likewise. - * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise. - * ddg.c (mark_mem_store): Likewise. - * df-problems.c (df_urec_mark_reg_change): Likewise. - * function.c (update_epilogue_consts): Likewise. - * gcse.c (record_set_info, record_last_set_info, - mems_conflict_for_gcse_p, canon_list_insert, reg_set_info, - reg_clear_last_set): Likewise. - * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live): - Likewise. - * jump.c (reversed_comparison_code_parts): Likewise. - * local-alloc.c (validate_equiv_mem_from_store, no_equiv, - reg_is_set): Likewise. - * loop-iv.c (mark_altered): Likewise. - * mode-switching.c (reg_becomes_live): Likewise. - * optabs.c (no_conflict_move_test): Likewise. - * postreload-gcse.c (record_last_set_info, find_mem_conflicts): - Likewise. - * postreload.c (reload_combine_note_store, move2add_note_store): - Likewise. - * regmove.c (flags_set_1): Likewise. - * regrename.c (note_sets, kill_clobbered_value, kill_set_value): - Likewise. - * reload1.c (mark_not_eliminable, forget_old_reloads_1): - Likewise. - * resource.c (update_live_status): Likewise. - * rtl.h (set_of, note_stores): Likewise. - * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of, - note_stores, parms_set): Likewise. - * sched-rgn.c (sets_likely_spilled_1): Likewise. - * stack-ptr-mod.c (notice_stack_pointer_modification_1): - Likewise. - * var-tracking.c (count_stores, add_stores): Likewise. - -2007-07-30 Kaveh R. Ghazi - - * alias.c (mems_in_disjoint_alias_sets_p, - fixed_scalar_and_varying_struct_p, aliases_everything_p, - nonoverlapping_component_refs_p, nonoverlapping_memrefs_p, - write_dependence_p, mems_in_disjoint_alias_sets_p, - read_dependence, true_dependence, canon_true_dependence, - anti_dependence, output_dependence): Constify. - * combine.c (extended_count): Likewise. - * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise. - * cselib.c (get_value_hash, references_value_p, - cselib_reg_set_mode, cselib_rtx_varies_p): Likewise. - * cselib.h (cselib_reg_set_mode, references_value_p): Likewise. - * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise. - * function.c (contains, prologue_epilogue_contains, - sibcall_epilogue_contains): Likewise. - * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p, - pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p, - only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum, - reg_or_subregno): Likewise. - * recog.c (asm_noperands): Likewise. - * reload1.c (function_invariant_p): Likewise. - * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p, - rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx, - condjump_p, any_condjump_p, any_uncondjump_p, pc_set, - simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p, - true_regnum, reg_or_subregno, condjump_in_parallel_p, - extended_count, prologue_epilogue_contains, - sibcall_epilogue_contains, function_invariant_p, true_dependence, - canon_true_dependence, read_dependence, anti_dependence, - output_dependence): Likewise. - * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise. - -2007-07-30 Julian Brown - - * config/arm/neon.md (V_ext): New mode attribute. - (neon_vget_lane): Replace with define_expand. - (neon_vget_lane_sext_internal) - (neon_vget_lane_zext_internal): New define_insns for double - and quad precision vectors. - (neon_vget_lanedi): Add bounds check. Remove dead comment. - * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics - have typeless 32-bit result. - -2007-07-30 Andrew Pinski - - PR tree-opt/32527 - * tree-affine.h (aff_tree): The type of rest is sizetype for types - of pointers. - * tree-affine.c (aff_combination_scale): If type is a pointer type, - use sizetype for rest. - (aff_combination_add_elt): Likewise. Don't specialize pointer types. - (aff_combination_convert): Don't convert rest for pointer types. - -2007-07-28 Daniel Berlin - - * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h - - * tree-ssa-alias.c: Add alloc-pool.h. - (init_alias_info): Free alias_bitmap_obstack. - (delete_alias_info): Call delete_mem_ref_stats. - (get_mem_sym_stats_for): Use alloc_pool. - (init_mem_ref_stats): Do not delete mem_ref_stats here. - (delete_mem_sym_stats): Removed. - -2007-07-29 Sebastian Pop - - * tree-data-ref.c (add_multivariate_self_dist): Parametric access - functions cannot be represented as classical distance vectors. - -2007-07-29 Kaveh R. Ghazi - - * attribs.c (hash_attr, eq_attr, init_attributes): Constify. - * builtins.c (validate_arg, builtin_mathfn_code, - validate_arglist): Likewise. - * calls.c (call_expr_flags): Likewise. - * combine.c (reg_nonzero_bits_for_combine, - reg_num_sign_bit_copies_for_combine, get_last_value, - reg_truncated_to_mode): Likewise. - * emit-rtl.c (subreg_lowpart_p): Likewise. - * expr.c (highest_pow2_factor_for_target, - categorize_ctor_elements_1, categorize_ctor_elements, - count_type_elements, contains_packed_reference, - highest_pow2_factor, highest_pow2_factor_for_target): Likewise. - * fold-const.c (may_negate_without_overflow_p, int_const_binop, - fold_convertible_p, operand_equal_p, tree_swap_operands_p, - native_encode_int, native_encode_real, native_encode_complex, - native_encode_vector, native_encode_expr, native_interpret_int, - native_interpret_real, native_interpret_complex, - native_interpret_vector, native_interpret_expr): Likewise. - * function.c (use_register_for_decl): Likewise. - * gimplify.c (get_name): Likewise. - * langhooks-def.h (lhd_return_null_const_tree): New. - (LANG_HOOKS_GET_CALLEE_FNDECL): Use it. - * langhooks.c (lhd_return_null_const_tree): New. - * langhooks.h (lang_get_callee_fndecl): Constify. - * output.h (constructor_static_from_elts_p): Likewise. - * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise. - * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode, - subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise. - * rtlanal.c (cached_nonzero_bits, nonzero_bits1, - cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p, - nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise. - * rtlhooks-def.h (reg_nonzero_bits_general, - reg_num_sign_bit_copies_general, reg_truncated_to_mode_general): - Likewise. - * rtlhooks.c (reg_num_sign_bit_copies_general, - reg_nonzero_bits_general, reg_truncated_to_mode_general): - Likewise. - * stmt.c (warn_if_unused_value, is_body_block): Likewise. - * stor-layout.c (mode_for_size_tree): Likewise. - * tree-ssa-loop-im.c (memref_eq): Likewise. - * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise. - * tree.c (contains_placeholder_p, type_list_equal, - simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p): - Likewise. - * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p, - mode_for_size_tree, categorize_ctor_elements, count_type_elements, - contains_placeholder_p, contains_packed_reference, - get_callee_fndecl, operand_equal_for_phi_arg_p, - warn_if_unused_value, is_body_block, native_encode_expr, - native_interpret_expr, fold_convertible_p, operand_equal_p, - int_const_binop, tree_swap_operands_p, builtin_mathfn_code, - validate_arglist, simple_cst_equal, type_list_equal, - use_register_for_decl, call_expr_flags, get_name, - highest_pow2_factor): Likewise. - (const_call_expr_arg_iterator_d, - init_const_call_expr_arg_iterator, next_const_call_expr_arg, - first_const_call_expr_arg, more_const_call_expr_args_p, - FOR_EACH_CONST_CALL_EXPR_ARG): New. - * varasm.c (constructor_static_from_elts_p): Constify. - -2007-07-28 Kazu Hirata - - * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md, - config/arm/neon-schedgen.ml, config/arm/neon.ml, - config/arm/vec-common.md, config/ia64/div.md, cselib.c, - df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c, - regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c, - tree-vect-transform.c, tree.def: Fix comment typos. Follow - spelling conventions. - * doc/invoke.texi: Follow spelling conventions. - -2007-07-29 Vladimir Yanovsky - Revital Eres - - * modulo-sched.c (sms_schedule): Avoid loops which includes - auto-increment instructions. - -2007-07-28 Richard Guenther - - PR middle-end/32920 - * fold-const.c (fold_cond_expr_with_comparison): Convert - operand zero of MIN/MAX_EXPR to correct type. - -2007-07-28 Kaveh R. Ghazi - - * calls.c (special_function_p, setjmp_call_p, alloca_call_p, - flags_from_decl_or_type): Constify. - * gcc.c (do_spec_1): Likewise. - * print-tree.c (dump_addr, print_node_brief): Likewise. - * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p, - simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p, - tree_purge_all_dead_eh_edges): Likewise. - * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p, - tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges): - Likewise. - * tree.c (expr_location, expr_has_location, expr_locus, - expr_filename, expr_lineno, get_inner_array_type, - fields_compatible_p): Likewise. - * tree.h (get_inner_array_type, fields_compatible_p, - expr_location, expr_has_location, expr_locus, expr_filename, - expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type, - setjmp_call_p, alloca_call_p): Likewise. - -2007-07-28 Daniel Berlin - - * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE, - TV_FLOW_INSENSITIVE. - - * tree-ssa-alias.c (compute_call_clobbered): Push/pop - TV_CALL_CLOBBER. - (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE. - (compute_flow_insensitive_aliasing): Ditto for - TV_FLOW_INSENSITIVE. - -2007-07-27 Jan Hubicka - - * config/i386/i386.c (register_move_cost): Remove accidentally - comitted #if 0 block. - - * attribs.c: Include hashtab.h - (attribute_hash): New. - (substring): New structure. - (extract_attribute_substring, substring_hash, hash_attr, eq_attr): - New function. - (init_attributes): Initialize attribute hash. - (decl_attributes): Use attribute hash. - * Makefile.in (attribs.c): Depend on hashtab.h. - -2007-07-27 Steve Ellcey - - * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test. - -2007-07-27 Richard Sandiford - - * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp, - __mips_dspr2 and __mips_dsp_rev macros. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev. - -2007-07-27 Douglas Gregor - - * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X. - -2007-07-26 Kenneth Zadeck - - PR middle-end/32749 - - * df-problems.c (df_create_unused_note): Removed do_not_gen parm - and the updating of the live and do_not_gen sets. - (df_note_bb_compute): Added updating of live and do_not_gen sets - for regular defs so that the case of clobber inside conditional - call is processed correctly. - -2007-07-27 Zdenek Dvorak - - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the - operands with compatible type. - -2007-07-27 Richard Sandiford - - * expr.h (store_bit_field): Don't return a value. - * expmed.c (check_predicate_volatile_ok): New function. - (store_bit_field_1): New function, extracted from store_bit_field. - Take a fallback_p argument and return true if the operation succeeded. - Only use store_fixed_bit_field if fallback_p. Don't recompute - mode_for_extraction; use op_mode instead. Try forcing memories - into registers if the insv expander fails. - (store_bit_field): Use store_bit_field_1 with fallback_p true. - Don't return a value. - (convert_extracted_bit_field): New function, extracted from - store_bit_field. - (extract_bit_field_1): Likewise. Take a fallback_p argument - and return NULL if the operation succeeded. Only use - extract_fixed_bit_field if fallback_p. Only calculate one - extraction mode. Combine code for extv and extzv. Try forcing - memories into registers if the ext(z)v expander fails. - (extract_bit_field): Use extract_bit_field_1 with fallback_p true. - -2007-07-27 Richard Sandiford - - * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags - into bitfields. - (df_ref): Likewise. Put regno with other integer fields. - -2007-07-27 Richard Sandiford - - * df.h (df_mw_hardreg): Remove "loc" field. - * df-scan.c (df_ref_record): Don't set it. Remove redundant - local variable. - * df-problems.c (df_whole_mw_reg_unused_p): New function, - split out from df_set_unused_notes_for_mw. Return false for - partial references. Assert that mw_reg is a REG when returning true. - (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc. - (df_whole_mw_reg_dead_p): New function, split out from - df_set_dead_notes_for_mw. Return false for partial references. - Assert that mw_reg is a REG when returning true. - (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc. - Remove redundant bitmap check. - -2007-07-26 H.J. Lu - - * config/ia64/t-ia64 ($(T)crtbegin.o): Removed. - ($(T)crtend.o): Likwise. - ($(T)crtbeginS.o): Likwise. - ($(T)crtendS.o): Likwise. - ($(T)crtfastmath.o): Likwise. - -2007-07-26 Zdenek Dvorak - - * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed. - * function.h (dom_computed, n_bbs_in_dom_tree): New macros. - * basic-block.h (struct control_flow_graph): Added x_dom_computed - and x_n_bbs_in_dom_tree fields. - -2007-07-26 Steve Ellcey - - PR tree-optimization/32087 - * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): - Do not call scale_bbs_frequencies_int with prob of zero. - -2007-07-26 Julian Brown - - * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds) - (neon_element_bits): Add prototypes. - * config/arm/arm.c (bounds_check, neon_lane_bounds) - (neon_const_bounds, neon_element_bits): New functions. - * config/arm/neon.md (neon_vget_lane, neon_vget_lanedi) - (neon_vget_lanev2di, neon_vset_lane, neon_vset_lanedi) - (neon_vset_lanev2di, neon_vdup_lane, neon_vdup_lanedi) - (neon_vdup_lanev2di, neon_vcvt_n, neon_vmul_lane) - (neon_vmull_lane, neon_vqdmull_lane) - (neon_vqdmulh_lane, neon_vmla_lane) - (neon_vmlal_lane, neon_vqdmlal_lane) - (neon_vmls_lane, neon_vmlsl_lane) - (neon_vqdmlsl_lane, neon_vext, neon_vshr_n) - (neon_vshrn_n, neon_vqshrn_n, neon_vqshrun_n) - (neon_vshl_n, neon_vshl_n, neon_vqshl_n) - (neon_vqshlu_n, neon_vshll_n, neon_vsra_n) - (neon_vsri_n, neon_vsli_n): Add bounds checks. - -2007-07-26 Nathan Froyd - - * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo. - (HAVE_AS_GNU_ATTRIBUTE): Undefine. - -2007-07-26 Mark Shinwell - Julian Brown - - * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New. - * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New. - * config/arm/cortex-a8.md: New. - * config/arm/cortex-a8-neon.md: New. - * config/arm/neon-schedgen.ml: New. - * config/arm/neon.md (vqh_mnem): New. - (neon_type): New. - (Is_float_mode): New. - (Scalar_mul_8_16): New. - (Is_d_reg): New. - (V_mode_nunits): New. - (All instruction patterns): Annotate with neon_type attribute - values. - * config/arm/arm.md: Include cortex-a8.md. - (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab - values. - Annotate instruction patterns accordingly. - (generic_sched): Do not use generic scheduling for Cortex-A8. - (generic_vfp): Do not use generic VFP scheduling for Cortex-A8. - -2007-07-26 Daniel Jacobowitz - - * fold-const.c (fold_read_from_constant_string): Use - build_int_cst_type. - * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. - -2007-07-26 Nick Clifton - - * tree-ssa-operands.h: Change copyright header to refer to version - 3 of the GNU General Public License and to point readers at the - COPYING3 file and the FSF's license web page. - * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c, - sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c, - tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c, - targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h, - tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c, - hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c, - flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c, - opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c, - gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c, - cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c, - rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c, - optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c, - tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h, - genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c, - reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c, - c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c, - rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h, - tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h, - diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c, - gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c, - input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def, - gensupport.h, builtin-attrs.def, sync-builtins.def, params.c, - cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c, - graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c, - genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c, - tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h, - reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h, - real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c, - omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h, - tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c, - regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h, - tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c, - scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c, - double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h, - dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c, - gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c, - hosthooks.h, c-objc-common.h, caller-save.c, graph.c, - ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c, - c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h, - tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c, - xcoffout.h, tree-ssa-propagate.c, ipa-utils.c, - tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h, - gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c, - mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c, - alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c, - dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h, - expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h, - genattrtab.c, genconditions.c, genattr.c, optc-gen.awk, - timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c, - tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c, - recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c, - dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h, - matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c, - tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c, - lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h, - ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c, - ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h, - langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h, - sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c, - gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c, - ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c, - init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c, - loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c, - mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h, - opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in, - insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c, - tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def, - dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c, - bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c, - coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h, - stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c, - cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c, - tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c, - loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c, - lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c, - tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c, - tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt, - ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c, - varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c, - sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c, - target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c, - omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h, - intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c, - sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h, - genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c, - tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h, - bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c, - cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c, - cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk, - tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c, - c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c, - fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c, - vecprim.h, basic-block.h, tree-ssa-structalias.c, - tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c, - passes.c, genconstants.c, c-incpath.c, c-incpath.h, - struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c, - varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h, - reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y, - stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h, - params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h, - tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c, - convert.c, convert.h, langhooks-def.h, reload1.c, - tree-ssa-operands.c: Likewise. - -2007-07-26 Jan Hubicka - - * tree-ssa-live.c: Include debug.h and flags.h. - (mark_scope_block_unused): New function. - (remove_unused_scope_block_p): New function. - (remove_unused_locals): Remove unused blocks too. - -2007-07-25 Ian Lance Taylor - - * combine.c (combine_max_regno): Remove. Remove all uses. - (struct reg_stat_struct): Rename from struct reg_stat. - (reg_stat_type): Define, and declare VECs. - (reg_stat): Change from pointer to VEC. Change all uses. - (combine_split_insns): New static function. - (try_combine, find_split_point): Call it instead of split_insns. - -2007-07-25 Zdenek Dvorak - - * cfghooks.c (split_block): Fix the information about loop latch. - -2007-07-25 Zdenek Dvorak - - * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches. - -2007-07-25 Zdenek Dvorak - - * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): - Scan the new edge for loop exit info. - -2007-07-25 Andreas Tobler - - * config/darwin.c: Include debug.h. - -2007-07-25 Steve Ellcey - - PR target/32218 - * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type. - -2007-07-25 Steve Ellcey - - * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode. - (HARD_REGNO_MODE_OK): Ditto. - (MODES_TIEABLE_P): Ditto. - (HARD_REGNO_CALLER_SAVE_MODE): Ditto. - (CLASS_MAX_NREGS): Ditto. - * config/ia64/ia64.c (ia64_print_operand_address): Add R format. - * config/ia64/ia64.md (divsf3_internal_thr): Removed. - (divdf3_internal_thr): Removed. - * config/ia64/div.md: New file. - * config/ia64/constraints.md: Add H constraint. - -2007-07-25 Kaveh R. Ghazi - - * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount, - sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p, - sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not, - sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg, - sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b, - sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p, - sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c, - sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c, - sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap, - dump_sbitmap_file, debug_sbitmap, popcount_table, - sbitmap_popcount): Constify. - * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New. - (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap, - dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal, - sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg, - sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c, - sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c, - sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b, - sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg, - sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p, - sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap, - sbitmap_popcount, sbitmap_verify_popcount): Constify. - -2007-07-25 Kaveh R. Ghazi - - * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop, - bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits, - bitmap_first_set_bit, bitmap_and, bitmap_and_into, - bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, - bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, - bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p, - bitmap_intersect_p, bitmap_intersect_compl_p, - bitmap_ior_and_compl, bitmap_ior_and_compl_into, - debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash): - Constify. - * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p, - bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and, - bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into, - bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor, - bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into, - debug_bitmap, debug_bitmap_file, bitmap_print, - bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init, - bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. - -2007-07-25 Daniel Berlin - - * config/darwin.c (darwin_override_options): Additional fix for - debug info formats that don't support var tracking. - -2007-07-25 Kaveh R. Ghazi - - * cselib.c (entry_and_rtx_equal_p): Constify. - * gengtype.c (output_mangled_typename, write_types, write_local): - Likewise. - * gengtype.h (const_type_p): New. - * see.c (eq_descriptor_extension, hash_descriptor_extension): - Constify. - * tlink.c (scan_linker_output): De-constify. - * tree-ssa-loop-im.c (memref_eq): Constify. - * tree-ssa-structalias.c (const_shared_bitmap_info_t): New. - (shared_bitmap_hash, shared_bitmap_eq): Constify. - -2007-07-25 Kaveh R. Ghazi - - * c-common.c (fname_as_string, c_type_hash): Constify. - * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. - * cgraph.c (edge_hash, edge_eq): Likewise. - * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise. - * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash, - reg_attrs_htab_eq): Likewise. - * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq): - Likewise. - * genautomata.c (const_reserv_sets_t, const_unit_decl_t, - const_decl_t, const_state_t, const_automata_list_el_t): New. - (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, - DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, - automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash, - insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp, - reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p, - automata_list_hash, automata_list_eq_p, compare_states_for_equiv, - compare_max_occ_cycle_nums, out_state_arcs_num, - compare_transition_els_num, units_cmp, state_reservs_cmp): - Constify. - * genmodes.c (cmp_modes): Likewise. - * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise. - * gimplify.c (compare_case_labels): Likewise. - * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise. - * loop-unroll.c (si_info_hash, ve_info_hash): Likewise. - * matrix-reorg.c (mtt_info_hash): Likewise. - * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise. - * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New. - (htab_hash_bucket, htab_hash_elem): Constify. - * tree-browser.c (TB_parent_eq): Likewise. - * tree-scalar-evolution.c (hash_scev_info): Likewise. - * tree-ssa-alias.c (sort_tags_by_id): Likewise. - * tree-ssa-coalesce.c (const_coalesce_pair_p): New. - (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs): - Constify. - * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise. - * tree-ssa-pre.c (const_expr_pred_trans_t): New. - (expr_pred_trans_hash, expr_pred_trans_eq): Constify. - * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t, - const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t): - New. - (vn_reference_op_eq, vn_reference_hash, vn_reference_eq, - vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash, - vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify. - * tree-ssa-threadupdate.c (redirection_data_hash, - redirection_data_eq): Likewise. - * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise. - * tree-ssa.c (var_ann_eq): Likewise. - * tree-vrp.c (compare_case_labels): Likewise. - * tree.c (int_cst_hash_hash, int_cst_hash_eq, - tree_map_base_marked_p, type_hash_marked_p, tree_check_failed, - tree_not_check_failed, tree_class_check_failed, - tree_range_check_failed, tree_not_class_check_failed, - omp_clause_check_failed, omp_clause_range_check_failed, - tree_contains_struct_check_failed, tree_operand_check_failed): - Likewise. - * tree.h (tree_contains_struct_check_failed, tree_check_failed, - tree_not_check_failed, tree_class_check_failed, - tree_range_check_failed, tree_not_class_check_failed, - tree_operand_check_failed, omp_clause_operand_check_failed, - tree_operand_length): Likewise. - * var-tracking.c (const_variable): New. - (variable_htab_hash, variable_htab_eq): Constify. - * varasm.c (const_desc_hash): Likewise. - -2007-07-25 Kaveh R. Ghazi - - * expr.c (handled_component_p): Constify. - * fold-const.c (fit_double_type): Likewise. - * real.h (real_value_from_int_cst): Likewise. - * tree-flow-inline.h (gimple_in_ssa_p, - gimple_aliases_computed_p, gimple_addressable_vars, - gimple_call_clobbered_vars, gimple_referenced_vars, - gimple_global_var, gimple_nonlocal_all, gimple_var_anns, - end_htab_p, end_referenced_vars_p, var_ann, function_ann, - may_aliases, end_readonly_imm_use_p, has_zero_uses, - has_single_use, single_imm_use, num_imm_uses, is_exec_stmt, - is_label_stmt, is_global_var, phi_ssa_name_p, - factoring_name_p, is_call_clobbered, tree_common_ann, - op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p, - unmodifiable_var_p, array_ref_contains_indirect_ref, - ref_contains_array_ref, lookup_subvars_for_var, - var_can_have_subvars, overlap_subvar, gimple_ssa_operands, - gimple_mem_ref_stats): Likewise. - * tree-flow.h (tree_common_ann, var_ann, function_ann, - may_aliases, is_exec_stmt, is_label_stmt, - ref_contains_array_ref, array_ref_contains_indirect_ref, - var_can_have_subvars, overlap_subvar, is_call_clobbered, - unmodifiable_var_p): Likewise. - * tree-gimple.c (is_gimple_min_invariant): Likewise. - * tree-gimple.h (is_gimple_min_invariant): Likewise. - * tree.c (type_hash_list, attribute_hash_list, tree_size, - cst_and_fits_in_hwi, real_value_from_int_cst, - build_real_from_int_cst, integer_zerop, integer_onep, - integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2, - tree_floor_log2, real_zerop, real_onep, real_twop, - real_minus_onep, really_constant_p, purpose_member, chain_member, - list_length, fields_length, int_size_in_bytes, bit_position, - int_bit_position, byte_position, int_byte_position, expr_align, - array_type_nelts, tree_node_structure, - type_contains_placeholder_1, iterative_hash_pointer, - is_attribute_with_length_p, is_attribute_p, check_qualified_type, - tree_map_base_eq, type_hash_list, type_hash_eq, - attribute_hash_list, type_num_arguments, tree_int_cst_equal, - tree_int_cst_lt, tree_int_cst_compare, host_integerp, - tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, - simple_cst_list_equal, compare_tree_int, iterative_hash_expr, - int_fits_type_p, get_containing_scope, decl_function_context, - decl_type_context, omp_clause_operand_check_failed, - initializer_zerop, int_cst_value, num_ending_zeros): Likewise. - * tree.h (omp_clause_operand_check_failed, tree_size, - build_real_from_int_cst, array_type_nelts, purpose_member, - tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare, - host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn, - is_attribute_p, check_qualified_type, expr_align, - int_size_in_bytes, bit_position, int_bit_position, byte_position, - int_byte_position, list_length, fields_length, initializer_zerop, - integer_zerop, integer_onep, integer_all_onesp, integer_pow2p, - integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros, - tree_node_structure, handled_component_p, get_containing_scope, - decl_function_context, decl_type_context, real_zerop, - type_num_arguments, fit_double_type, really_constant_p, - int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr, - compare_tree_int, chain_member, simple_cst_list_equal, real_onep, - real_twop, real_minus_onep, int_cst_value): Likewise. - -2007-07-25 Kaveh R. Ghazi - - * cfglayout.c (insn_scope, insn_line): Constify. - * emit-rtl.c (const_int_htab_hash, const_int_htab_eq, - const_double_htab_hash, const_double_htab_eq, - mem_attrs_htab_hash): Likewise. - * loop-iv.c (biv_eq): Likewise. - * print-rtl.c (print_rtx, print_decl_name, print_mem_expr, - print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range, - debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl): - Likewise. - * rtl-error.c (location_for_asm, diagnostic_for_asm, - error_for_asm, warning_for_asm, _fatal_insn, - _fatal_insn_not_found): Likewise. - * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat, - rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1, - rtl_check_failed_type2, rtl_check_failed_code1, - rtl_check_failed_code2, rtl_check_failed_code_mode, - rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise. - * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, - rtl_check_failed_type2, rtl_check_failed_code1, - rtl_check_failed_code2, rtl_check_failed_code_mode, - rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND, - SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs, - shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p, - get_pool_mode, insn_line, insn_file, simplify_replace_rtx, - mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p, - rtx_unstable_p, get_integer_term, get_related_value, - offset_within_block_p, reg_mentioned_p, count_occurrences, - reg_referenced_p, reg_used_between_p, no_labels_between_p, - single_set_2, multiple_sets, set_noop_p, refers_to_regno_p, - reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p, - find_reg_note, find_regno_note, find_reg_equal_equiv_note, - find_constant_src, find_reg_fusage, find_regno_fusage, - pure_call_p, remove_note, side_effects_p, volatile_refs_p, - volatile_insn_p, may_trap_p, may_trap_after_code_motion_p, - may_trap_or_fault_p, inequality_comparisons_p, tablejump_p, - computed_jump_p, auto_inc_p, in_expr_list_p, - remove_node_from_expr_list, loc_mentioned_in_p, - label_is_jump_target_p, reversed_comparison_code_parts, - debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find, - print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single, - print_inline_rtx): Likewise. - * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p, - computed_jump_p_1, nonzero_bits1, rtx_unstable_p, - rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p, - get_integer_term, get_related_value, offset_within_block_p, - count_occurrences, reg_mentioned_p, no_labels_between_p, - reg_used_between_p, reg_referenced_p, single_set_2, - multiple_sets, set_noop_p, refers_to_regno_p, - reg_overlap_mentioned_p, dead_or_set_p, - covers_regno_no_parallel_p, covers_regno_p, - dead_or_set_regno_p, find_reg_note, find_regno_note, - find_reg_equal_equiv_note, find_constant_src, find_reg_fusage, - find_regno_fusage, pure_call_p, remove_note, in_expr_list_p, - remove_node_from_expr_list, volatile_insn_p, volatile_refs_p, - side_effects_p, may_trap_p_1, may_trap_p, - may_trap_after_code_motion_p, may_trap_or_fault_p, - inequality_comparisons_p, tablejump_p, computed_jump_p_1, - computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb, - subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise. - * simplify-rtx.c (neg_const_int, plus_minus_operand_p, - mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p): - Likewise. - * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm, - warning_for_asm): Likewise. - * tree.h (print_rtl): Likewise. - * varasm.c (get_pool_mode): Likewise. - -2007-07-25 Kaveh R. Ghazi - - * c-lex.c (c_lex_with_flags, lex_string): Constify. - * c-ppoutput.c (print_line, pp_dir_change): Likewise. - * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise. - * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise. - * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise. - * ddg.c (compare_sccs): Likewise. - * df-scan.c (df_ref_compare, df_mw_compare): Likewise. - * dfp.c (decimal_real_from_string, decimal_to_decnumber, - decimal_to_binary, decimal_do_compare, decimal_real_to_decimal, - decimal_do_fix_trunc, decimal_real_to_integer, - decimal_real_to_integer2, decimal_real_maxval): Likewise. - * dse.c (const_group_info_t): New. - (invariant_group_base_eq, invariant_group_base_hash): Constify. - * dwarf2out.c (const_dw_die_ref): New. - (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify. - * tree-browser.c (TB_parent_eq): Likewise. - * unwind-dw2-fde.c (__register_frame_info_bases, - __deregister_frame_info_bases, fde_unencoded_compare, fde_split, - add_fdes, linear_search_fdes, binary_search_unencoded_fdes): - Likewise. - * unwind-dw2-fde.h (get_cie, next_fde): Likewise. - * unwind-dw2.c (uw_frame_state_for): Likewise. - * value-prof.c (histogram_hash, histogram_eq): Likewise. - * value-prof.h (const_histogram_value): New. - -2007-07-25 Richard Sandiford - - * config/mips/mips.c (machine_function): Add - initialized_mips16_gp_pseudo_p. - (mips16_gp_pseudo_reg): Do not emit the initialization of - mips16_gp_pseudo_rtx when being called from the gimple cost- - calculation routines; emit it on the first use outside those - routines. - -2007-07-25 Kaveh R. Ghazi - - * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree): - New. - - * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2, - RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK, - RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3, - RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6, - RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND): - Preserve const-ness of parameters through use of __typeof(), - also constify and tidy. - - * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2, - TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4, - NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5, - CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK, - OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK, - GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK, - PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK, - TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK, - TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise. - -2007-07-25 Julian Brown - Mark Shinwell - - * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to... - (alpha_mangle_type): This. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * config/arm/arm-protos.h (arm_mangle_type): Add prototype. - * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook. - (arm_init_neon_builtins): Fix comment. - (arm_mangle_map_entry): New. - (arm_mangle_map): New. - (arm_mangle_type): New. - * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to... - (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict - mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to... - (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict - mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename - to... - (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * config/s390/s390.c (s390_mangle_fundamental_type): Rename to... - (s390_mangle_type): This. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to... - (sparc_mangle_type): This. - (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define. - (TARGET_MANGLE_TYPE): Define this instead. - * cp/mangle.c (write_type): Call mangle_type target hook on all - types before mangling. Use original type, not main variant, as - argument. - * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to... - (TARGET_MANGLE_TYPE): This. - * target.h (gcc_target): Rename mangle_fundamental_type to - mangle_type. - * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to... - (TARGET_MANGLE_TYPE): This. Note slightly different semantics. - -2007-07-25 Julian Brown - Paul Brook - Joseph Myers - Mark Shinwell - - * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi. - * config.gcc (arm*-*-*): Add arm_neon.h to extra headers. - (with_fpu): Allow --with-fpu=neon. - * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. - * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15. - * config/arm/arm-modes.def (EI, OI, CI, XI): New modes. - * config/arm/arm-protos.h (neon_immediate_valid_for_move) - (neon_immediate_valid_for_logic, neon_output_logic_immediate) - (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret) - (neon_emit_pair_result_insn, neon_disambiguate_copy) - (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad) - (output_move_neon): Add prototypes. - * config/arm/arm.c (FL_NEON): New flag for NEON processor capability. - (all_fpus): Add FPUTYPE_NEON. - (fp_model_for_fpu): Add NEON field. - (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers. - (arm_arg_partial_bytes): Allow NEON vectors to be passed partially - in registers. - (arm_legitimate_address_p): Don't support fancy addressing for NEON - structure moves. - (thumb2_legitimate_address_p): Likewise. - (neon_valid_immediate): Recognize and prepare constants suitable for - NEON instructions. - (neon_immediate_valid_for_move): New function. Recognize and prepare - immediates for NEON move instructions. - (neon_immediate_valid_for_logic): New function. Recognize and - prepare immediates for NEON logic instructions. - (neon_output_logic_immediate): New function. Create asm string - suitable for outputting immediate logic instructions. - (neon_pairwise_reduce): New function. Implement reduction using - pairwise operations. - (neon_expand_vector_init): New function. Expand a (possibly - non-constant) vector initialization. - (neon_vector_mem_operand): New function. Memory operands supported - for quad-word loads/stores to/from ARM or NEON registers. Don't - allow base+offset addressing for core regs. - (neon_struct_mem_operand): New function. Valid mems for NEON - structure moves. - (coproc_secondary_reload_class): Enable NEON registers to be loaded - from neon_vector_mem_operand addresses without a secondary register. - (add_minipool_forward_ref): Handle >8-byte minipool entries. - (add_minipool_backward_ref): Likewise. - (dump_minipool): Likewise. - (push_minipool_fix): Likewise. - (output_move_quad): New function. Output quad-word moves, loads and - stores using ARM registers. - (output_move_vfp): Add support for vectors in VFP (NEON) D - registers. - (output_move_neon): Output a NEON load/store to/from a quadword - register. - (arm_print_operand): Implement new codes: - - 'c' for unadorned integers (without a # sign). - - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian - mode. - - 'e', 'f' for the low and high D parts of a NEON Q register. - - 'q' outputs a NEON Q register. - - 'h' outputs ranges of D registers for VLDM/VSTM etc. - - 'T' prints NEON opcode features from a coded bitmask. - - 'F' is similar to T, but signed/unsigned codes both print as - 'i'. - - 't' is similar to T, but 'u' is printed instead of 'p'. - - 'O' prints 'r' if NEON instruction should perform rounding (as - specified by bitmask), else prints nothing. - - '#' is a punctuation character to stop operand numbers from - running together with following digits in the assembler - strings for instructions (when using mode attributes). - (arm_assemble_integer): Handle extra NEON vector modes. Permute - constant vectors in big-endian mode, where necessary. - (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers. - Handle EI, OI, CI, XI modes. - (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3) - (ashrv2si3): Rename IWMMXT2_BUILTINs to... - (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt) - (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names. - (neon_builtin_type_bits): Add enumeration, one bit for each vector - type. - (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP) - (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros - to turn v8qi, etc. into bits defined above. - (neon_itype): New enumeration. Classifications of NEON builtins. - (neon_builtin_datum): Define struct. Contains information about - a single builtin (with multiple modes). - (CF): Define helper macro for... - (VAR1...VAR10): Define builtins with a type, name and 1-10 different - modes. - (neon_builtin_data): New array. Define information about builtins - for use during initialization/expansion. - (arm_init_neon_builtins): New function. - (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is - true. - (neon_builtin_compare): New function. - (locate_neon_builtin_icode): New function. Find an insn code for a - builtin given a function code for that builtin. Also return type of - builtin (NEON_BINOP, NEON_UNOP etc.). - (builtin_arg): New enumeration. Types of arguments for builtins. - (arm_expand_neon_args): New function. Expand a generic NEON builtin. - Takes a variable argument list of builtin_arg types, terminated by - NEON_ARG_STOP. - (arm_expand_neon_builtin): New function. Expand a NEON builtin. - (neon_reinterpret): New function. Expand NEON reinterpret intrinsic. - (neon_emit_pair_result_insn): New function. Support returning pairs - of vectors via a pointer. - (neon_disambiguate_copy): New function. Set up operands for a - multi-word copy such that registers do not get clobbered. - (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >= - ARM_BUILTIN_NEON_BASE. - (arm_file_start): Set float-abi attribute for NEON. - (arm_vector_mode_supported_p): Enable NEON vector modes. - (arm_mangle_map_entry): New. - (arm_mangle_map): New. - (arm_mangle_vector_type): New. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__ - when appropriate. - (TARGET_NEON): New macro. Target supports NEON. - (fputype): Add FPUTYPE_NEON. - (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used - for vectorization based on command-line arg. - (NEON_REGNO_OK_FOR_NREGS): Define. - (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE) - (VALID_NEON_STRUCT_MODE): Define. - (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation. - (arm_builtins): Add ARM_BUILTIN_NEON_BASE. - * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec. - (consttable_16): Add pattern for outputting 16-byte minipool - entries. - (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in - vec-common.md). - (vec-common.md, neon.md): Include md files. - * config/arm/arm.opt (mvectorize-with-neon-quad): Add option. - * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define. - (memory_constraint "Ut", "Un", "Us"): Define. - * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros. - (MMX_char): New mode attribute. - (addv8qi3, addv4hi3, addv2si3): Remove. Replace with... - (*add3_iwmmxt): New insn pattern. - (subv8qi3, subv4hi3, subv2si3): Remove. Replace with... - (*sub3_iwmmxt): New insn pattern. - (mulv4hi3): Rename to... - (*mulv4hi3_iwmmxt): This. - (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3) - (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3) - (uminv4hi3, uminv2si3): Remove. Replace with... - (*smax3_iwmmxt, *umax3_iwmmxt, *smin3_iwmmxt) - (*umin3_iwmmxt): These. - (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with... - (ashr3_iwmmxt): This new pattern. - (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with... - (lshr3_iwmmxt): This new pattern. - (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with... - (ashl3_iwmmxt): This new pattern. - * config/arm/neon-docgen.ml: New file. Generate documentation for - intrinsics. - * config/arm/neon-gen.ml: New file. Generate arm_neon.h header. - * config/arm/arm_neon.h: New (autogenerated). - * config/arm/neon-testgen.ml: New file. Generate NEON tests - automatically. - * config/arm/neon.md: New file. Define NEON instructions. - * config/arm/neon.ml: New file. Abstract description of NEON - instructions, used to generate arm_neon.h header, documentation and - tests. - * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md. - * vec-common.md: New file. Shared parts for iWMMXt and NEON vector - support. - * doc/extend.texi (ARM Built-in Functions): Rename and remove - extraneous comma. - (ARM NEON Intrinsics): New subsection. - * doc/arm-neon-intrinsics.texi: New (autogenerated). - -2007-07-25 Danny Smith - - * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove - prototype. - -2007-07-24 Jan Hubicka - - * regclass.c (move_table): New type. - (move_cost, may_move_in_cost, may_move_out_cost): Use it. - (init_move_cost): Break out from ... - (init_reg_sets_1): ... here; simplify computation of - have_regs-of_mode and contains_reg_of_mode. - (record_reg_classes): Unswitch internal loops. - (copy_cost): Trigger lazy initialization of move cost - (record_address_regs): Likewise. - -2007-07-24 Daniel Berlin - - * config/darwin.c (darwin_override_options): Don't force on - flag_var_tracking_uninit when no debug info is requested. - -2007-07-25 Zdenek Dvorak - - * cfgloop.c (init_loops_structure): New function. - (flow_loops_find): Create root of the loop tree unconditionally. - -2007-07-24 Daniel Jacobowitz - - * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert. - -2007-07-24 Jan Hubicka - - * caller-save.c: Include ggc.h, gt-caller-save.h - (reg_save_code, reg_restore_code): Rename to ... - (cached_reg_save_code, cached_reg_restore_code): ... those. - (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New. - (reg_save_code, reg_restore_code): New functions. - (init_caller_save): Do not intialize - reg_save_code/reg_restore_code tables. - * Makefile.in: (gt-caller-save.h): New. - -2007-07-24 Andreas Krebbel - - * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand - with the mode of the original operand instead of - integer_one_node. - -2007-07-23 Jan Hubicka - - * config/i386/i386.c (ix86_secondary_memory_needed): Break out to... - (inline_secondary_memory_needed): ... here. - (ix86_memory_move_cost): Break out to ... - (inline_memory_move_cost): ... here; add support for IN value of 2 for - maximum of input and output; fix handling of Q_REGS on 64bit. - (ix86_secondary_memory_needed): Microoptimize. - -2007-07-23 Sebastian Pop - - * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr, - create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices, - stmts_from_loop, known_dependences_p, build_rdg): New. - * tree-data-ref.h: Depends on graphds.h. - (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New. - (build_rdg): Declared. - * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h. - -2007-07-23 Daniel Berlin - - * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with - ccp_min_invariant. - -2007-07-23 Peter Bergner - Jakub Jelinek - - PR middle-end/PR28690 - * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow - EQ compares. - * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER - and MEM_POINTER operands over REG and MEM operands. - (swap_commutative_operands_p): Change return value to bool. - * rtl.h: Update the corresponding prototype. - * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary - instead of gen_rtx_PLUS. - * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return - value to bool. Change function arguments to rtx's and update code - to match. - (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp - calls to match the new declaration. - * simplify-rtx.c (simplify_associative_operation): Don't - reorder simplify_binary_operation arguments. - -2007-07-23 Richard Sandiford - - * config/mips/mips.c (override_options): Use mips_costs to derive - the default branch cost. - * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather - than mips_costs. - * config/mips/mips.opt (mbranch-cost=): New option. - * doc/invoke.texi (-mbranch-cost): Document new MIPS option. - -2007-07-23 Richard Sandiford - - * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete. - (SECONDARY_MEMORY_NEEDED): Delete commented-out definition. - * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p - instead of GR_REG_CLASS_P and COP_REG_CLASS_P. - -2007-07-23 Richard Sandiford - - * config/mips/constraints.md (ks): New constraint. - * config/mips/mips.md (*add3_sp1, *add3_sp2): Fold into... - (*add3_mips16): ...here. - -2007-07-21 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_signbit. - (signbit_optab): Define corresponding macro. - (enum insn_code signbit_optab[]): Remove array. - * optabs.c (init_optabs): Initialize signbit_optab using init_optab. - (expand_copysign_absneg): If back end provides signbit insn, use it - instead of bit operations on floating point argument. - * builtins.c (enum insn_code signbit_optab[]): Remove array. - (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code - for availability of signbit insn. - - * config/i386/i386.md (signbit2): New insn pattern to implement - signbitf, signbit and signbitl built-ins as inline x87 intrinsics when - SSE mode is not active. - (isinf2): Disable for mfpmath=sse,387. - -2007-07-22 Ben Elliston - - * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to - `class' parameter. - * struct-equiv.c (note_local_live): Likewise for `y_regno'. - -2007-07-20 Richard Guenther - - * tree-cfg.c (verify_expr): COND_EXPRs can have any - integral typed condition. - * tree-ssa.c (useless_type_conversion_p): Do not preserve - booleanness. Only preserve conversions from a non-base - type to a base type, not in general between types with - different TYPE_MIN_VALUE or TYPE_MAX_VALUE. - * tree.def (COND_EXPR): Document that the condition - can be of any integral type. - -2007-07-20 Nigel Stephens - Richard Sandiford - - * config/mips/mips.h (mips_dwarf_regno): Declare. - (DBX_REGISTER_NUMBER): Remove redundant brackets. - (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way. - (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM) - (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete. - (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. - (REG_CLASS_NAMES): Update accordingly. - * config/mips/mips.c (mips_dwarf_regno): New array. - (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG. - (mips_subword): Remove special handling for accumulator registers. - (override_options): Initiailize mips_dwarf_regno. Remove use - of ACC_HI_REG_P. - (mips_swap_registers): New function. - (mips_conditional_register_usage): Swap accumulator registers - around if TARGET_LITTLE_ENDIAN. - (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS. - * config/mips/constraints.md (h, l): Use the endianness to choose - between MD0_REG and MD1_REG. - * config/mips/mips.md (*mfhilo__macc): Use a fixed-string, - alternative-dependent template. - -2007-07-20 Richard Sandiford - - * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of - no_new_pseudos. - -2007-07-20 Zdenek Dvorak - - * function.c (thread_prologue_and_epilogue_insns): Fix exit - predecessor fallthru flags. - -2007-07-20 Zdenek Dvorak - - * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands - of compare to the same type. - * cfgloopmanip.c (add_loop): Update information about loop exits. - (loop_version): Remove the innermost loop requirement. - * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds - to sizetype for pointers. - -2007-07-18 H.J. Lu - - * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd. - (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd. - (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td. - - * config/dfp-bit.c: Empty for TFmode conversions. - -2007-07-18 Caroline Tice - - * var-tracking.c (find_src_status): Check for COND_EXEC insns - and handle them correctly; check that src is not NULL before - trying to use it. - (find_src_set_src): Likewise. - -2007-07-18 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New. - (struct alignment_context, init_alignment_context): New. - (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New. - * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default. - (XCHAL_HAVE_S32C1I): Likewise. - (TARGET_RELEASE_SYNC, TARGET_S32C1I): New. - * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant. - (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise. - (ATOMIC, HQI): New macros. - (memory_barrier, *memory_barrier): New. - (sync_lock_releasesi): New. - (sync_compare_and_swapsi, sync_compare_and_swap): New. - (sync_lock_test_and_set): New. - (sync_): New. - (sync_old_, sync_new_): New. - * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New. - (xtensa_expand_atomic): New. - -2007-07-18 Kaveh R. Ghazi - - PR target/30652 - - * builtins.c (expand_builtin_interclass_mathfn): Provide a generic - transformation for builtin ISNORMAL. - (expand_builtin): Handle BUILT_IN_ISNORMAL. - * builtins.def (BUILT_IN_ISNORMAL): New. - * doc/extend.texi: Document isnormal. - -2007-07-18 Kaveh R. Ghazi - - PR target/30652 - - * builtins.c (expand_builtin_interclass_mathfn): Allow for missing - optabs infrastructure. Provide generic implementation for - FINITE/ISFINITE. - (expand_builtin): Handle FINITE/ISFINITE. - (fold_builtin_classify): Make ISFINITE canonical instead of FINITE. - (fold_builtin_1): Likewise. - - * builtins.def (BUILT_IN_ISFINITE): New. - - * doc/extend.texi: Document isfinite. - -2007-07-18 Kaveh R. Ghazi - - PR target/30652 - PR middle-end/20558 - - * builtins.c (expand_builtin_interclass_mathfn): Provide a - generic fallback for isinf. - * c-cppbuiltin.c (builtin_define_float_constants): Move FP max - calculation code ... - * real.c (get_max_float): ... to here. - * real.h (get_max_float): New. - -2007-07-18 Kaveh R. Ghazi - - PR middle-end/32668 - - * builtin-attrs.def (ATTR_TYPEGENERIC, - ATTR_CONST_NOTHROW_TYPEGENERIC): New. - - * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN, - BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, - BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER, - BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC. - - * c-common.c (handle_type_generic_attribute): New. - (c_common_attribute_table): Add "type generic". - - * c-typeck.c (convert_arguments): Handle "type generic" functions. - -2007-07-18 Daniel Berlin - - * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression - * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR - properly. - -2007-07-18 Rask Ingemann Lambertsen - - PR target/32808 - * config/cris/cris.c (cris_print_index): Don't use XEXP before - checking that the operand is an expression. - -2007-07-19 Christoph von Wittich - Danny Smith - - PR/other 30335 - * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put - file mapping object in local namespace if Windows version later - than NT4 - -2007-07-18 Richard Sandiford - - * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare. - * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to - arm_cannot_force_const_mem. - (arm_cannot_force_const_mem): New function. - * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro. - (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead - of arm_tls_referenced_p. - * config/arm/arm.md (movsi): Split out-of-section constants when - ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P. - * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define. - -2007-07-18 Richard Sandiford - - * config/mips/mips.md (clear_cache): Treat the size argument as Pmode. - -2007-07-18 Richard Sandiford - - * config/mips/mips.md (*extendqihi2): Convert the destination - to SImode. - -2007-07-17 John David Anglin - - * config/pa/fptr.c: Update license header. - * config/pa/milli64.S: Likewise. - -2007-07-17 Nick Clifton - - * COPYING_v3: New file. Contains version 3 of the GNU General - Public License. - * COPYING.LIB_v3: New file. Contains version 3 of the GNU - Lesser General Public License. - * doc/include/gpl_v3.texi: New file. Contains version 3 of - the GNU General Public License. - -2007-07-17 Zdenek Dvorak - - PR rtl-optimization/32773 - * cfglayout.c (force_one_exit_fallthru): New function. - (cfg_layout_finalize): Use it. - -2007-07-16 Richard Guenther - Uros Bizjak - - * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond" - before forcing it to gimple operand. - -2007-07-16 Sandra Loosemore - David Ung - - * config/mips/mips.h (TUNE_24K): Define. - (TUNE_MACC_CHAINS): Add TUNE_24K. - * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to - imadd. - * config/mips/74k.md (r74k_int_mult): Split madd/msub to .. - (r74k_int_madd): .. this new reservation. - (define_bypass): Fixed bypasses for r74k_int_madd to use - mips_linked_madd_p. - * config/mips/24k.md (define_bypass): Define new - r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p. - -2007-07-16 Sandra Loosemore - Nigel Stephens - - * config/mips/mips.md: Include 20kc.md. - * config/mips/20kc.md: New file. - * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs. - (mips_adjust_cost): Tweak for 20Kc. - (mips_issue_rate): Likewise. - * config/mips/mips.h (TUNE_20KC): Define. - -2007-07-16 David Edelsohn - - * config/rs6000/rs6000.c (struct processor_cost): Add - cache_line_size, l1_cache_lines, and simultaneous_prefetches - fields. - (*_cost): Add cache information. - (rs6000_override_options): Set cache parameters. - -2007-07-16 Rainer Orth - - PR bootstrap/3456 - * config.gcc (mips-sgi-irix[56]*): Enable pthread support. - * doc/install.texi (mips-sgi-irix6): pthread support works now. - -2007-07-16 Paul Brook - - PR target/32753 - * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn. - (cirrus_thumb2_movsi_insn): Ditto. - -2007-07-15 Geoffrey Keating - - * config/rs6000/darwin-fallback.c (interpret_libc): Change - CR2_REGNO to R_CR2. - -2007-07-15 Andrew Haley - - * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL - before looking in the context. - -2007-07-15 John David Anglin - - PR middle-end/32398 - PR middle-end/32769 - * pa-protos.h (pa_eh_return_handler_rtx): Declare. - * pa.c (pa_extra_live_on_entry, rp_saved): Declare. - (TARGET_EXTRA_LIVE_ON_ENTRY): Define. - (pa_output_function_prologue): Use rp_saved and - current_function_is_leaf to generate .CALLINFO statement. - (hppa_expand_prologue): Set rp_saved. - (hppa_expand_epilogue): Use rp_saved. - (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions. - * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx. - -2007-07-14 Dirk Mueller - - * omega.c (coalesce): Fix memory leak on early exit. - * matrix-reorg.c (check_allocation_function): Likewise. - * tree-vect-transform.c (vect_get_new_vect_var): free result - of concat(). - * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): - pass pointer to edge vector - (partition_hot_cold_basic_blocks): Fix memory leak. - * collect2.c (prefix_from_string): Free temporary storage. - * reload1.c (fixup_abnormal_edges): Free sbitmap. - -2007-07-14 Kaz Kojima - - * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype. - (DO_GLOBAL_DTORS_BODY): Likewise. - -2007-07-14 Sandra Loosemore - Nigel Stephens - - * config/mips/mips.c (mips_classify_symbol): Don't return - SYMBOL_SMALL_DATA for constant pool addresses if - TARGET_EMBEDDED_DATA is true. - -2007-07-14 Uros Bizjak - - * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins - except __builtin_ia32_emms, __builtin_ia32_ldmxcsr, - __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups, - __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps, - __builtin_ia32_storehps, __builtin_ia32_storelps, - __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence, - __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd, - __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, - __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq, - __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence, - __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor, - __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa, - __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins - using def_builtin_const. - -2007-07-14 Eric Botcazou - - PR tree-optimization/32705 - * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number. - (simplify_binary_expression): Use SSA_VAL consistently. - -2007-07-13 David Edelsohn - - * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition. - (SPEFSCR_REGNO): Delete definition. - * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO. - COUNT_REGISTER_REGNUM -> CTR_REGNO. - * config/rs6000/rs6000.h: Do not define *_REGNO. - LINK_REGISTER_REGNUM -> LR_REGNO. - COUNT_REGISTER_REGNUM -> CTR_REGNO. - * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO. - COUNT_REGISTER_REGNUM -> CTR_REGNO. - * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0, - R_VRSAVE, R_VSCR. Use them. - * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2, - R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them. - * config/rs6000/rs6000.md: Define REGNO constants. Use them. - * config/rs6000/aix.h: Define R_LR. Use it. - -2007-07-13 Caroline Tice - - * toplev.c (process_options): Turn flag_var_tracking_uninit off when - flag_var_tracking is explicitly turned off (i.e. when variable - tracking is not feasible); otherwise, turn flag_var_tracking on when - flag_var_tracking_uninit is on. - * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION - note definitions, to allow recording of initialization status in the - notes. - * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit. - (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to - determine if two note locations are equal. - (output_loc_list): Don't output list entries whose start & end labels - are the same. - (reg_loc_descriptor): Add parameter for initialization status; pass it - to other loc descriptor functions. - (one_reg_loc_descriptor): Add parameter for initialization status; - check its value and add DW_OP_GNU_uninit to returned loc descr if - appropriate. - (multiple_reg_loc_descriptor): Add parameter for initialization - status; - pass init status argument to other loc descriptor functions; check - value of intialization parameter and add DW_OP_GNU_uninit to returned - loc descr if appropriate. - (based_loc_descr): Add parameter for initialization status; add new - variable for return value; check value of initialization parameter and - add DW_OP_GNU_uninit to returned loc descr if appropriate. - (concatn_mem_loc_descriptor): Add parameter for initialization status; - pass init status argument to other loc descriptor functions; check - value of intialization parameter and add DW_OP_GNU_uninit to returned - loc descr if appropriate. - (mem_loc_descriptor): Likewise. - (concat_loc_descriptor): Likewise. - (concatn_loc_descriptor): Likewise. - (loc_descriptor): Add parameter for initialization status; pass it as - argument to other loc descriptor function calls. - (loc_descriptor_from_tree_1): Add appropriate initialization status - to loc descriptor function calls. - (add_location_or_const_value_attribute): Get initialization status - from VAR_LOCATION note; add initialization status to loc descriptor - function calls. - * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit. - * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if - status is uninitialized, add "[uninint]" to output. - * common.opt (fvar-tracking-uninit): New option, similar to - fvar-tracking, to turn on tracking of uninitialized variables; creates - a new global flag, flag_var_tracking_uninit. - * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field. - (enum var_init_status): New type, for var initialization status field. - * var-tracking.c (struct location_chain_def): Two new fields, init, - for initialization status, and set_src for the assignment value expr. - (unshare_variable): New parameter for initialization status; - initialize new init and set_src fields. - (var_reg_set): New parameters for initialization status and value; - pass them to set_variable_part. - (var_mem_set): Likewise. - (get_init_value): New function. - (var_reg_delete_and_set): New initialization status & value - parameters; add call to get_init_value if status is unknown; pass new - parameters to clobber_variable_part and var_reg_set. - (var_mem_delete_and_set): Likewise. - (var_reg_delete): Pass null set_src value to clobber_variable_part. - (var_mem_delete): Likewise. - (variable_union): Pass status to unshare_variable; initialize new init - and set_src fields. If flag_var_tracking_uninit is not set, force - status to initialized. - (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be - used later to get the set_src value. - (find_src_status): New function. - (find_src_set_src): New function. - (compute_bb_dataflow): Pass init status to calls to var_reg_set, - var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for - MO_SET, get set_src value and pass it to var_reg_delete_and_set - and var_mem_delete_and_set. - (dump_variable): Print out "[uninit]" if appropriate. - (set_variable_part): Add new initialization and set_src parameters; - pass status to unshare_variable; set node->init and node- >set_src - fields and modify slot in hash table appropriately; save the init and - set_src values if appropriate and assign to the new node. - (clobber_variable_part): New set_src parameter; if two nodes have - same variable and same location but different set_src (assignment) - values, clobber old node. - (delete_variable_part): Pass init status to unshare_variable. - (emit_note_insn_var_location): Add initialized var; assign var's init - status to new 'initialized'; pass new init status field to calls to - gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force - status to initialized. - (emit_notes_in_bb): Pass initialization status to calls to - var_reg_set, var_mem_set, var_reg_delete_and_set and - var_mem_delete_and_set; for MO_SET, get set_src value and pass it to - var_reg_delete_and_set and var_mem_delete_and_set; call - emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to - make up for change in add_stores. - (vt_add_function_parameters): Add status to calls to - set_variable_part. - * config/darwin.c (darwin_override_options): Turn on uninitialized - tracking automatically, if var_tracking is on and the system is - 10.5 or higher. - -2007-07-13 Sa Liu - - * config.gcc: Add options for arch and tune on SPU. - * config/spu/predicates.md: Add constant operands 0 and 1. - * config/spu/spu-builtins.def: Add builtins for double precision - floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, - si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1, - spu_testsv. - * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with - a CELLEDP target. - * config/spu/spu-protos.h: Add new function prototypes. - * config/spu/spu.c (spu_override_options): Check options -march and - -mtune. - (spu_comp_icode): Add comparison code for DFmode and vector mode. - (spu_emit_branch_or_set): Use the new code for DFmode and vector - mode comparison. - (spu_const_from_int): New. Create a vector constant from 4 ints. - (get_vec_cmp_insn): New. Get insn index of vector compare instruction. - (spu_emit_vector_compare): New. Emit vector compare. - (spu_emit_vector_cond_expr): New. Emit vector conditional expression. - * config/spu/spu.h: Add options -march and -mtune. Define processor - types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro - CANONICALIZE_COMPARISON. - * config/spu/spu.md: Add new insns for double precision compare - and double precision vector compare. Add vcond and smax/smin patterns - to enable DFmode vector conditional expression. - * config/spu/spu.opt: Add options -march and -mtune. - * config/spu/spu_internals.h: Add builtins for CELLEDP target: - si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for - both CELL and CELLEDP targets: spu_testsv. - * config/spu/spu_intrinsics.h: Add flag mnemonics for test special - values. - -2007-07-13 Richard Guenther - - PR tree-optimization/32721 - * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve - TREE_THIS_VOLATILE on the folded reference. - * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops - if the array reference has TREE_THIS_VOLATILE set. - -2007-07-13 H.J. Lu - - PR other/32188 - * doc/libgcc.texi: Update DFP intrinsics for DPD and BID. - -2007-07-13 Andreas Schwab - - * gengtype-lex.l: Allow declarations to be indented. - -2007-07-12 Geoffrey Keating - - * ginclude/tgmath.h: New. - * config.gcc: Use GCC's tgmath.h on non-glibc systems. - * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath. - * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath. - * configure: Regenerate. - -2007-07-13 Kaz Kojima - - * config/sh/linux-unwind.h (sh_fallback_frame_state): Use - correct index when setting register save state for xd - registers. - -2007-07-13 Kaz Kojima - - * config/sh/sh.c (mark_use): Remove. - -2007-07-12 Paul Brook - - * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch - reg does not overlap return value. - -2007-07-12 Daniel Berlin - - * tree-ssa-pre.c (get_expression_vuses): Move out side-effect. - (set_expression_vuses): Ditto. - (init_pre): Initialize expression_vuses. - -2007-07-12 Zdenek Dvorak - - * config/i386/sse.md (storentdf, storentsf): New. - -2007-07-12 Geoffrey Keating - - * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a - FUNCTION_DECL. - * tree.c (build_decl_stat): Move code from here... - (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN. - (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment - about using DECL_ALIGN of LABEL_DECL and CONST_DECL. - * tree.h (DECL_USER_ALIGN): Fix misplaced comment. - * varasm.c (assemble_start_function): Use DECL_ALIGN instead of - FUNCTION_BOUNDARY. - -2007-07-12 Dorit Nuzman - Devang Patel - - PR tree-optimization/25413 - * targhooks.c (default_builtin_vector_alignment_reachable): New. - * targhooks.h (default_builtin_vector_alignment_reachable): New. - * tree.h (contains_packed_reference): New. - * expr.c (contains_packed_reference): New. - * tree-vect-analyze.c (vector_alignment_reachable_p): New. - (vect_enhance_data_refs_alignment): Call - vector_alignment_reachable_p. - * target.h (vector_alignment_reachable): New builtin. - * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New. - * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New. - (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define. - -2007-07-12 Dorit Nuzman - - * target.h (builtin_vectorization_cost): Add new target builtin. - * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New. - * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New. - (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New. - * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze - uninitialized variables. - * tree-vect-transform.c (cost_for_stmt): New function. - (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of - using cost 1 for all scalar stmts. Be less conservative when - estimating the number of prologue/epulogue iterations. Call - targetm.vectorize.builtin_vectorization_cost. Return - min_profitable_iters-1. - (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for - initialization cost instead of TARG_VEC_STMT_COST. Use - TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction - epilogue code. Fix epilogue cost computation. - * config/spu/spu.c (spu_builtin_vectorization_cost): New. - (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement. - * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST): - (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST): - (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST): - (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define. - -2007-07-12 Richard Guenther - - * gimplify.c (gimplify_conversion): Make sure that the result - from maybe_fold_offset_to_reference is trivially convertible - to the desired type before doing the simplification. - (gimplify_expr): Likewise. - * fold-const.c (fold_binary): Use the correct types for - building the simplified expression. - -2007-07-12 Zdenek Dvorak - - PR rtl-optimization/32729 - * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks - that fallthru to exit. - -2007-07-12 Kaz Kojima - - * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis. - (symDTPOFF2reg): Likewise. - -2007-07-11 Daniel Berlin - - PR tree-optimization/32663 - - * tree.h (VALUE_HANDLE_VUSES): Remove. - (struct tree_value_handle): Remove vuses. - - * tree-vn.c (create_value_handle_for_expr): Don't set - VALUE_HANDLE_VUSES. - - * tree-ssa-pre.c (expression_vuses): New. - (alloc_expression_id): Set up expression_vuses. - (get_expression_vuses): New. - (set_expression_vuses): Ditto. - (clear_expression_ids): Modify for expression_vuses. - (phi_translate_1): Ditto. - (phi_translate_set): Ditto. - (value_dies_in_block_x): Ditto - (valid_in_sets): Ditto. - (add_to_sets): Ditto. - (find_existing_value_expr): Ditto. - (create_value_handle_for_expr): Ditto. - (make_values_for_stmt): Ditto. - (vuse_equiv): Remove. - -2007-07-11 Alexandre Oliva - - * Makefile.in (mostlyclean): Remove object files. - -2007-07-11 Kenneth Zadeck - - * toplev.c (no_new_pseudos): Deleted. - * rtl.h (no_new_pseudos): Deleted. - * tree-pass.h (pass_no_new_pseudos): Deleted. - * passes.c (pass_no_new_pseudos): Deleted. - * final.c (rest_of_clean_state): Removed no_new_pseudos. - (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted. - * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with - reload_completed. - * cfgcleanup.c (try_crossjump_to_edge): Ditto. - * rtlhooks.c (gen_lowpart_general): Ditto. - * optabs.c (prepare_operand): Ditto. - * mode-switching.c (rest_of_handle_mode_switching): Deleted set of - no_new_pseudos. - * modulo-sched.c (rest_of_handle_sms): Ditto. - * see.c (rest_of_handle_see): Ditto. - * ifcvt.c (if_convert): Ditto. - (gate_handle_if_after_combine): Replaced no_new_pseudos with - reload_completed. - * init-regs.c (gate_initialize_regs): Deleted set of - no_new_pseudos. - * lower-subreg.c (decompose_multiword_subregs): Ditto. - * bb-reorder.c (rest_of_handle_partition_blocks): Ditto. - * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p. - -2007-07-11 Uros Bizjak - - PR target/32661 - * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves. - (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT. - (*vec_extractv2di_1_rex64): New insn pattern. - -2007-07-11 David Daney - - * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite - return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN - for SIGNAL_UNWIND_RETURN_COLUMN. - * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove. - (DWARF_FRAME_REGNUM): Rewrite. - (DWARF_ALT_FRAME_RETURN_COLUMN) Define. - -2007-07-11 Nick Clifton - - * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous - delta and use gen_int_mode in place of GET_INT instead. - -2007-07-11 Uros Bizjak - - * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name - and letter field. - -2007-07-11 Douglas Gregor - - * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove. - (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical - types or not. - * params.h (VERIFY_CANONICAL_TYPES): Remove. - (USE_CANONICAL_TYPES): New. - * doc/invoke.texi (verify-canonical-types): Remove. - (use-canonical-types): Add. - -2007-07-11 Ulrich Weigand - - * config/spu/spu.c (spu_optimization_options): Remove setting of - parameter PARAM_MAX_COMPLETELY_PEEL_TIMES. - (spu_override_options): Move it here. - -2007-07-11 Richard Sandiford - - * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd. - * config/mips/mips.c (mips_cpu_info_table): Mention - MIPS_ISA_LEVEL_SPEC in the comment. - -2007-07-11 Eric Botcazou - - PR tree-optimization/32713 - * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST. - -2007-07-11 Paolo Carlini - - PR middle-end/30482 - * c-opts.c (c_common_post_options): Do not change flag_complex_method - conditional to flag_isoc99. - (c_common_init_options): Do it here, unconditionally. - -2007-07-11 Eric Botcazou - - PR tree-optimization/32589 - * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule. - * tree-gimple.c (is_gimple_min_invariant): Clarify head comment. - * tree-ssa-propagate.c (valid_gimple_expression_p): New - predicate, extracted from... - (set_rhs): ...here. Call it for the expression on entry. - * tree-ssa-propagate.h (valid_gimple_expression_p): Declare. - * tree-ssa-sccvn.c: Include tree-ssa-propagate.h. - (simplify_binary_expression): Use valid_gimple_expression_p - to validate the simplification. - * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h. - -2007-07-11 Danny Smith - - * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to - DWARF2_DEBUG on 32 bit target too. - (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. - -2007-07-11 Nick Clifton - - * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative - version for 64-bit hosts. - -2007-07-10 David Daney - - * config/mips/mips.h (ISA_HAS_SYNCI): New target capability - predicate. - (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library - call. - * config/mips/mips.c (mips_expand_synci_loop): New function. - * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant. - (UNSPEC_RDHWR): Same. - (UNSPEC_SYNCI): Same. - (UNSPEC_SYNC): Same. - (clear_cache): New expand. - (sync): New insn. - (synci): Same. - (rdhwr): Same. - (clear_hazard): Same. - * config/mips/mips-protos.h (mips_expand_synci_loop): Declare - function. - * testsuite/gcc.target/mips/clear-cache-1.c: New test. - * testsuite/gcc.target/mips/clear-cache-2.c: New test. - -2007-07-10 Ian Lance Taylor - - * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than - no_new_pseudos. - -2007-07-10 David Daney - - * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin. - * builtins.c (expand_builtin___clear_cache): New function. - (expand_builtin): Call expand_builtin___clear_cache for - BUILT_IN_CLEAR_CACHE case. - * doc/extend.texi (__builtin___clear_cache): Document new builtin. - * doc/md.texi (clear_cache): Document new instruction pattern. - * testsuite/gcc.dg/builtins-64.c: New test. - -2007-07-11 Hans-Peter Nilsson - - * config/cris/cris.md ("movsi"): Fix typo in last change. - -2007-07-09 Geoffrey Keating - - PR 32617 - * c-common.c (c_alignof_expr): Look at DECL_ALIGN of - FUNCTION_DECLs. - (handle_aligned_attribute): Allow use on FUNCTION_DECLs. - * varasm.c (assemble_start_function): Honor DECL_ALIGN - for FUNCTION_DECLs. Don't use align_functions_log if - DECL_USER_ALIGN. - * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN - even for FUNCTION_DECLs. - * c-decl.c (merge_decls): Propagate DECL_ALIGN even for - FUNCTION_DECLs. - * tree.h (DECL_ALIGN): Update for new location of 'align'. - (DECL_FUNCTION_CODE): Update for new location and name of - 'function_code'. - (DECL_OFFSET_ALIGN): Update for new location of 'off_align'. - (struct tree_decl_common): Move 'align' and 'off_align' out - of union, ensure they're still on a 32-bit boundary. Remove - other fields in union 'u1'. - (struct tree_function_decl): Add field 'function_code' replacing - 'u1.f' in tree_decl_common. - * tree.c (build_decl_stat): Set initial value of DECL_ALIGN. - * doc/extend.texi (Function Attributes): Add 'aligned' attribute. - (Variable Attributes): Cross-reference 'aligned' attribute - to Function Attributes. - * flags.h (force_align_functions_log): Delete. - * toplev.c (force_align_functions_log): Delete. - -2007-07-10 Uros Bizjak - - PR target/32708 - * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT. - (*vec_concatv2di_rex): New insn pattern. - -2007-07-10 Rainer Orth - - PR target/32538 - * config/mips/iris6.h (LIBGCC_SPEC): Add libm. - -2007-07-10 Ian Lance Taylor - - Replace no_new_pseudos in backends. - * rtl.h (can_create_pseudo_p): Define. - * config/darwin.c (machopic_indirect_data_reference): Use - can_create_pseudo_p () instead of no_new_pseudos. - (machopic_indirect_data_reference): Likewise. - (machopic_legitimize_pic_address): Likewise. - * config/alpha/alpha.c (alpha_legitimize_address): Likewise. - (alpha_emit_set_const_1): Likewise. - (alpha_emit_set_const): Likewise. - (alpha_emit_conditional_move): Likewise. - (alpha_split_conditional_move): Likewise. - * config/alpha/alpha.md (various splitters): Likewise. - (movti): Likewise. - * config/arm/arm.c (legitimize_pic_address): Likewise. - (arm_load_pic_register): Likewise. - * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise. - (movdi, movsi, movhi, movqi, movsf, movdf): Likewise. - * config/bfin/bfin.c (legitimize_pic_address): Likewise. - * config/cris/cris.c (cris_expand_pic_call_address): Likewise. - * config/cris/cris.md (movsi): Likewise. - * config/frv/frv.md (symGOT2reg_hilo): Likewise. - (symGOTOFF2reg_hilo): Likewise. - (symGPREL2reg, symGPREL2reg_hilo): Likewise. - * config/h8300/h8300.md (insv, extzv): Likewise. - * config/i386/i386.c (ix86_expand_move): Likewise. - (ix86_expand_vector_move): Likewise. - (ix86_prepare_fp_compare_args): Likewise. - (ix86_expand_carry_flag_compare): Likewise. - * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise. - (tls_dynamic_gnu2_combine_32): Likewise. - (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise. - * config/ia64/ia64.c (ia64_expand_move): Likewise. - (ia64_expand_movxf_movrf): Likewise. - * config/m32c/m32c.c (m32c_prepare_move): Likewise. - (m32c_split_move): Likewise. - (m32c_expand_insv): Likewise. - * config/m68k/m68k.md (movsi): Likewise. - * config/mips/mips.c (mips_force_temporary): Likewise. - (mips_split_symbol): Likewise. - (mips_move_integer): Likewise. - (mips_legitimize_const_move): Likewise. - * config/mn10300/mn10300.md (movsi): Likewise. - * config/pa/pa.c (emit_move_sequence): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. - (rs6000_got_register): Likewise. - (create_TOC_reference): Likewise. - (rs6000_machopic_legitimize_pic_address): Likewise. - * config/rs6000/rs6000.md (add3): Likewise. - (various splitters): Likewise. - (iorsi3, xorsi3, iordi3, xordi3): Likewise. - (movsi_got): Likewise. - * config/s390/s390.c (emit_symbolic_move): Likewise. - * config/s390/s390.md (movhi, movqi): Likewise. - (load_multiple, store_multiple): Likewise. - * config/score/score.c (score_force_temporary): Likewise. - * config/sh/sh.c (prepare_move_operands): Likewise. - (prepare_cbranch_operands): Likewise. - (emit_fpu_switch): Likewise. - (fpscr_set_from_mem): Likewise. - * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise. - (adddi3, subsi3): Likewise. - (various splitters): Likewise. - (divsi_inv_fp_combine): Likewise. - (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise. - (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise. - (sne): Likewise. - * config/sh/predicates.md (xor_operand): Likewise. - * config/sparc/sparc.c (legitimize_tls_address): Likewise. - * config/sparc/sparc.md (movsi_pic_label_ref): Likewise. - (movdi_pic_label_ref): Likewise. - * config/spu/spu.c (spu_split_immediate): Likewise. - * config/alpha/alpha.md (various splitters): Remove test - !no_new_pseudos || reload_completed. - * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set - no_new_pseudos. - * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. - * config/mips/mips.c (mips_output_mi_thunk): Likewise. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/score/score.c (th_output_mi_thunk): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. - -2007-07-10 Kaz Kojima - - PR rtl-optimization/32664 - * mode-switching.c (create_pre_exit): Skip barrier insns. - -2007-07-10 Zdenek Dvorak - - * tree-scalar-evolution.c (scev_const_prop): Add arguments to - force_gimple_operand_bsi. - * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr, - rewrite_use_compare): Ditto. - * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref): - Ditto. - * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto. - * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. - * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto. - * tree-profile.c (prepare_instrumented_value, - tree_gen_interval_profiler, tree_gen_pow2_profiler, - tree_gen_one_value_profiler, tree_gen_ic_profiler, - tree_gen_ic_func_profiler, tree_gen_average_profiler, - tree_gen_ior_profiler): Ditto. - * tree-ssa-reassoc.c (negate_value): Ditto. - * matrix-reorg.c (transform_access_sites, transform_allocation_sites): - Use force_gimple_operand_bsi. - * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto. - * tree-if-conv.c (add_to_dst_predicate_list, - find_phi_replacement_condition): Ditto. - * gimplify.c (force_gimple_operand_bsi): Add before and m arguments. - Call mark_symbols_for_renaming for new statements. - * tree-flow.h (force_gimple_operand_bsi): Declaration changed. - -2007-07-10 Zdenek Dvorak - - * cfghooks.c (remove_edge): New function. - (redirect_edge_and_branch, remove_branch, merge_blocks): Updated - loop exit rescans. - * cfghooks.h (remove_edge): Declare. - * cfg.c (remove_edge): Renamed to remove_edge_raw. - * basic-block.h (remove_edge): Declaration changed to remove_edge_raw. - -2007-07-09 Wolfgang Gellerich - - * optabs.h: Added declaration for signbit_optab. - * optabs.c: (init_optabs): Added initialization for signbit_optab. - * genoptinit.c (optabs): Added entry for signbit insns. - * builtins.c (expand_builtin_signbit): Added code to use a signbit - insn, if available. - * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant. - * config/s390/s390.md (signbit2): New expander. - -2007-07-09 Richard Guenther - - PR middle-end/32698 - * fold-const.c (fold_plusminus_mult_expr): Move constant - arguments second to allow decomposing. - -2007-07-09 Alexandre Oliva - - Revert: - 2007-07-06 Alexandre Oliva - PR debug/23551 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Disregard DECL_FROM_INLINE. - -2007-07-09 Uros Bizjak - - PR target/27855 - * doc/invoke.texi: Add ftree-reassoc flag. - * common.opt (ftree-reassoc): New flag. - * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function. - (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc. - -2007-07-09 Uros Bizjak - - PR tree-optimization/32681 - * tree-if-conv.c (find_phi_replacement_condition): Use the condition - saved in second_edge->aux when first_bb is a loop header. - -2007-07-09 Jan HUbicka - - * cse.c (cse_insn): Avoid invalid sharing on trial replacement. - -2007-07-09 Richard Guenther - - * c-decl.c (start_function): Do not promote return type. - -2007-07-08 Daniel Franke - - * function.c (do_warn_unused_parameter): Do not warn if - TREE_NO_WARNING is set. - -2007-07-08 Andreas Schwab - - * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo. - -2007-07-08 Sandra Loosemore - - Revert this patch: - 2007-07-06 Sandra Loosemore - - * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS - apply to assembly language, too. - * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. - -2007-07-07 Daniel Berlin - - Revert (note the sccvn portions are *not* reverted) - 2007-07-06 Daniel Berlin - - Fix PR tree-optimization/23488 - - * tree-vn.c (set_value_handle): Use decl_vh_map for decl value - handles. - * tree-flow-inline.h (get_value_handle): Ditto. - * tree-ssa-pre.c (decl_vh_map): New. - (decl_node_pool): New. - (can_value_number_operation): Support DECL_P. - (can_PRE_operation): Ditto. - (create_expression_by_pieces): Ditto. - (find_existing_value_expr): Modify to differnetiate between - addressing and top level. - (create_value_handle_for_expr): Handle DECL's. - (poolify_tree): Ditto. - (make_values_for_phi): Don't insert into PHI_GEN during FRE. - (make_values_for_stmt): Handle DECL's properly. - (init_pre): Reorg to not init useless things during FRE. - (fini_pre): Ditto. - * tree-flow.h: Include pointer-set.h. - (decl_vh_map): Declare. - * Makefile.in (TREE_FLOW_H): Add pointer-set.h - -2007-07-07 Eric Weddington - - * config/avr/constraints.md (define_memory_constraint "Q"): Fix - the constraint description. - * doc/md.texi: Update documentation of AVR constraints. - -2007-07-07 Kazu Hirata - - * auto-inc-dec.c, config/arm/arm.c, - config/m32r/constraints.md, config/mips/mips.md, - config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c, - df-problems.c, df-scan.c, df.h, dse.c, gimplify.c, - tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment - typos. Follow spelling conventions. - * doc/invoke.texi, doc/rtl.texi: Fix typos. - - * cfgrtl.c (delete_insn_chain_and_edges): Remove. - * rtl.h: Remove the prototype for delete_insn_chain_and_edges. - - * tree-ssa-operands.c (realloc_vop, realloc_vdef, - realloc_vuse): Remove. - * tree-ssa-operands.h: Remove the prototype for realloc_vdef - and realloc_vuse. - -2007-07-06 Daniel Berlin - - Fix PR tree-optimization/23488 - - * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration. - (try_to_simplify): Ditto. - (visit_use): Ditto. - * tree-vn.c (set_value_handle): Use decl_vh_map for decl value - handles. - * tree-flow-inline.h (get_value_handle): Ditto. - * tree-ssa-pre.c (decl_vh_map): New. - (decl_node_pool): New. - (can_value_number_operation): Support DECL_P. - (can_PRE_operation): Ditto. - (create_expression_by_pieces): Ditto. - (find_existing_value_expr): Modify to differnetiate between - addressing and top level. - (create_value_handle_for_expr): Handle DECL's. - (poolify_tree): Ditto. - (make_values_for_phi): Don't insert into PHI_GEN during FRE. - (make_values_for_stmt): Handle DECL's properly. - (init_pre): Reorg to not init useless things during FRE. - (fini_pre): Ditto. - * tree-flow.h: Include pointer-set.h. - (decl_vh_map): Declare. - * Makefile.in (TREE_FLOW_H): Add pointer-set.h - -2007-07-06 Sandra Loosemore - - * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS - apply to assembly language, too. - * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update. - -2007-07-06 Ian Lance Taylor - Zack Weinberg - - PR middle-end/32441 - * builtins.c (std_expand_builtin_va_start): Don't use make_tree. - -2007-07-06 Richard Sandiford - - * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP. - (prefetch): Likewise if "pref" would be used. - -2007-07-06 Josh Conner - - PR middle-end/32602 - PR middle-end/32603 - * calls.c (store_one_arg): Handle arguments which are partially - on the stack when detecting argument overlap. - -2007-07-06 Bernd Schmidt - - * reload1.c (choose_reload_regs): Set reload_spill_index for regs - chosen during find_reloads. - -2007-07-06 Richard Guenther - - * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over - TYPE_ARG_TYPES for verification of argument types. Use - DECL_ARG_TYPE instead of the PARM_DECL type. Take excess - parameters as variable arguments. - -2007-07-06 Andreas Krebbel - - * libgcc2.h (word_type): Type definition removed. - (cmp_return_type, shift_count_type): Type definitions added. - (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter - replaced with shift_count_type. - (__cmpdi2, __ucmpdi2): word_type of return type replaced with - cmp_return_type. - * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c - changed from word_type to Wtype. - (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter - replaced with shift_count_type. - (__cmpdi2, __ucmpdi2): word_type of return type replaced with - cmp_return_type. - * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return - and libgcc_shift_count attribute added. - * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE, - TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined. - (TARGET_INITIALIZER): New target hooks added. - * targhooks.c (default_libgcc_cmp_return_mode, - default_libgcc_shift_count_mode): Default implementations for the new - target hooks added. - * targhooks.h (default_libgcc_cmp_return_mode, - default_libgcc_shift_count_mode): Function prototypes added. - * target.h (struct gcc_target): Fields for the new target hooks added. - * optabs.c (expand_binop): Use shift_count_mode when expanding shift - as library call. - (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as - library call. - - * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE, - TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added. - - * config/s390/s390.c (s390_libgcc_cmp_return_mode, - s390_libgcc_shift_count_mode): Functions added. - (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE): - Target hooks defined. - -2007-07-06 Richard Sandiford - - * config/mips/mips.c (compute_frame_size): Restore the original - gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the - fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation. - Document why the difference is needed. - -2007-07-06 Richard Guenther - - * c-common.c (boolean_increment): Use correctly typed - constant. - -2007-07-06 Richard Sandiford - - * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that - the topmost argument register is not also included in the save mask. - (mips16e_collect_argument_save_p): Take a pointer to the argument - register, rather than a pointer to the number of arguments. - (mips16e_collect_argument_saves): Only include argument saves - that aren't in the register mask. - -2007-07-06 Uros Bizjak - - PR rtl-optimization/32450 - * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn - to ensure that instructions are not moved into the prologue when - profiling is on. Remove unused prologue_end variable. - (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx - as a scheduling barrier. - -2007-07-06 Alexandre Oliva - - PR debug/23551 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Disregard DECL_FROM_INLINE. - -2007-07-05 Adam Nemet - - * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or - IORing with a constant. - -2007-07-05 Seongbae Park - - PR rtl-optimization/32475 - * df-scan.c (df_def_record_1): Add a use of the stack pointer - for every definition of the stack pointer. - -2007-07-05 Richard Earnshaw - - * arm.c (vfp3_const_double_index): Copy signed results of - REAL_VALUE_TO_INT into unsigned vars. - -2007-07-05 Richard Guenther - - PR middle-end/32639 - * alias.c (get_alias_set): Tread METHOD_TYPE the same as - FUNCTION_TYPE. - * tree-ssa.c (useless_type_conversion_p): Check canonical - types early. - -2007-07-05 Anatoly Sokolov - - * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, - zero_extendhisi2): Change to define_insn_and_split. - (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New. - -2007-07-05 Paolo Bonzini - - * function.c (match_asm_constraints_1, rest_of_match_asm_constraints, - pass_match_asm_constraints): New. - * passes.c (init_optimization_passes): Add new pass. - * stmt.c (expand_asm_operands): Set cfun->has_asm_statement. - * function.h (struct function): Add has_asm_statement bit. - (current_function_has_asm_statement): New. - * tree-pass.h (pass_match_asm_constraints): New. - -2007-07-05 Richard Sandiford - - * config/mips/mips.c (mips_file_start): Avoid declaration - after code. - -2007-07-05 Sandra Loosemore - - * optabs.c (expand_binop_directly): Fix signed/unsigned comparison. - -2007-07-05 Uros Bizjak - - * rtl.def (NOTE): Change print format string to print - operand 5 as a note insn name. - -2007-07-05 Sandra Loosemore - David Ung - - * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors. - * doc/invoke.texi: (MIPS Options): Document them. - -2007-07-05 Sandra Loosemore - David Ung - - Add support for SmartMIPS ASE. - - * optabs.c (expand_binop_directly): New, broken out from... - (expand_binop): Here. Make it try rotating in the other - direction even when the second operand isn't constant. - * config/mips/mips.md (*lwxs): New. - * config/mips/mips.opt (msmartmips): New. - * config/mips/mips.c (mips_lwxs_address_p): New. - (mips_rtx_costs): Make it recognize scaled indexed addressing. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define - __mips_smartmips when compiling for TARGET_SMARTMIPS. - (ISA_HAS_ROR): Define for TARGET_SMARTMIPS. - (ISA_HAS_LWXS): New. - (ASM_SPEC): Add -msmartmips/-mno-smartmips. - * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips. - * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case. - * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case. - * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case. - * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case. - * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case. - -2007-07-05 Dorit Nuzman - - * tree-vectorizer.c (new_loop_vec_info): Initialize - LOOP_VINFO_COST_MODEL_MIN_ITERS. - * tree-vectorizer.h (_loop_vec_info): Added new filed - min_profitable_iters. - (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field. - (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation. - * tree-vect-analyze.c (vect_analyze_operations): Set - LOOP_VINFO_COST_MODEL_MIN_ITERS. - * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use - VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS. - Fix calculation of peel_iters_prologue. Move consideration of epilogue - and prologue cost to after they are computed. - (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of - TARG_VEC_STMT_COST. - (vect_model_simple_cost): Takes additional argument dt. Consider cost - of creating vectors from scalars according to dt. - (vect_model_store_cost): Likewise. - (vectorizable_call): Use dt array instead of scalar dt. Call - vect_model_simple_cost with additional argument dt. - (vectorizable_assignment): Likewise. - (vectorizable_operation): Likewise. - (vectorizable_type_demotion): Likewise. - (vectorizable_type_promotion): Likewise. - (vectorizable_store): Use dt array instead of scalar dt. Call - vect_model_store_cost with additional argument dt. - (vect_do_peeling_for_loop_bound): Don't call - vect_estimate_min_profitable_iters. Instead, lookup - LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print - "may not be profitable". - -2007-07-05 Dorit Nuzman - - PR testsuite/32014 - * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF): - (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New. - (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns. - (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. - -2007-07-05 Zdenek Dvorak - - * config/i386/i386.c (ix86_address_cost): Do not consider more complex - addressing modes cheaper. - -2007-07-05 Alexandre Oliva - - * dwarf2out.c (dw_ranges_by_label_ref): New typedef. - (dw_ranges_struct): Rename block_num to num. Adjust. - (dw_ranges_by_label_struct): New. - (ranges_by_label, ranges_by_label_allocated, - ranges_by_label_in_use): New variables. - (add_ranges_num): Factored most of the code out of... - (add_ranges): ... this one. Rewrite in terms of the former. - (add_ranges_by_labels): New. - (output_ranges): Output by-label ranges. - (dwarf2out_finish): Output range for multiple-section - compile_unit. Output standard DW_AT_low_pc in addition to - unexpected DW_AT_entry_pc. - -2007-07-04 Daniel Berlin - - PR tree-optimization/32604 - PR tree-optimization/32606 - - * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads. - (compute_antic_safe): Removed. - (ANTIC_SAFE_LOADS): Ditto. - (compute_antic_aux): Don't print ANTIC_SAFE_LOADS. - (execute_pre): Don't call compute_antic_safe. - (vuse_equiv): New function. - (make_values_for_stmt): Use it - * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is - not always true. - -2007-07-04 Anatoly Sokolov - - PR target/31331 - * config/avr/avr.c (avr_naked_function_p): Handle receiving a type - rather than a decl. - (avr_attribute_table): Make "naked" attribute apply to function types - rather than to decls. - (avr_handle_fntype_attribute): New function. - -2007-07-04 Joseph Myers - - * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace - after \. - -2007-07-04 David Ung - Joseph Myers - - * config/mips/mips.md (type): Add logical, signext and move. - (one_cmpl2, *and3, *and3_mips16, *ior3, - *ior3_mips16, two unnamed insns after *ior3_mips16, - *nor3, "Combiner patterns to optimize truncate/zero_extend - combinations", *zero_extend2, - *zero_extendqihi2, *extend2_mips16e, - *extend2_se, *movdi_64bit, - *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc, - *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16, - *movsf_hardfloat, *movsf_softfloat, *movsf_mips16, - *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, - movv2sf_hardfloat_64bit): Use the new types. - (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16, - *movdf_softfloat, *movdf_mips16): Use "multi". - (extendqihi2): Replace with a define_expand. - (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New. - Based on extend2 patterns. - * config/mips/74k.md (r74k_int_logical): New reservation and - bypasses. - (r74k_int_arith): Remove "slt". - * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md, - config/mips/5400.md, config/mips/5500.md, config/mips/5k.md, - config/mips/7000.md, config/mips/9000.md, config/mips/generic.md, - config/mips/sb1.md, config/mips/sr71k.md: Add new types to - reservations for "arith". - -2007-07-04 Richard Guenther - - * tree-ssa.c (useless_type_conversion_p): Add handling for - scalar float and vector types. Only call the types_compatible_p - langhook for aggregate types as last resort. Follow the - rules. - -2007-07-04 Richard Guenther - - * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR - the same as NOP_EXPR. - -2007-07-04 Nick Clifton - - * target.h (struct gcc_target): Add target_help field. - * target-def.h (TARGET_HELP): New. - (TARGET_INITIALIZER): Use TARGET_HELP. - * opts.c (command_handle_option): Invoke target_help function, if - defined, when the user has specified --target-help on the command - line. - * doc/invoke.texi: Mention that --target-help might print - additional information. - * doc/tm.texi: Document TARGET_HELP hook. - - * arm.c (TARGET_HELP): Override default definition. - (arm_target_help): New - display a wrapped list of cores and - architectures supported. - -2007-07-04 Rask Ingemann Lambertsen - - * config/v850/v850.c (expand_prologue): Make sure - GEN_INT() argument is sign extended rather than zero extended. - (expand_epilogue): Likewise. - (output_move_double): Delete. - * config/v850/v850-protos.h (output_move_double): Delete. - * config/v850/v850.md (movdi): Delete. - (*movdi_internal): Delete. - (movdf): Delete. - (*movdf_internal): Delete. - -2007-07-04 Richard Sandiford - - * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax - unless compiling RTP PIC. - -2007-07-04 Richard Guenther - - PR tree-optimization/32482 - * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the - original ssa name if we didn't find a shift expression. - Fix shift constant for bit zero test. - -2007-07-04 Richard Sandiford - - * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool. - -2007-07-04 Richard Sandiford - - * config.gcc (arm-wrs-vxworks): Don't include svr4.h. - * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define. - * config/arm/vxworks.h (ASM_SPEC): Delete. - (SUBTARGET_EXTRA_ASM_SPEC): Define. - -2007-07-04 Sebastian Pop - - * tree-data-ref.h (data_dependence_relation): New flag reversed_p. - (DDR_REVERSED_P): New. - * tree-data-ref.c (initialize_data_dependence_relation, - build_classic_dist_vector): Set DDR_REVERSED_P. - -2007-07-04 Sebastian Pop - - PR middle-end/32457 - * tree-data-ref.c (analyze_siv_subscript_cst_affine, - compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine, - init_omega_for_ddr_1): Use non conservative number of iterations - estimations. - (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int. - (analyze_siv_subscript): Remove FIXME and reinitialization of - last_conflicts to chrec_dont_know. - * testsuite/gfortran.dg/vect/pr32457.f90: New. - -2007-07-04 Douglas Gregor - - * tree.c (maybe_canonicalize_argtypes): Improve description. - -2007-07-04 Douglas Gregor - - * tree.c (maybe_canonicalize_argtypes): New. - (build_function_type): Set canonical type. - (build_method_type_directly): Ditto. - (reconstruct_complex_type): Rebuild the METHOD_TYPE node - properly. - -2007-07-03 Andrew Pinski - - * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR - like PLUS_EXPR. - (rewrite_use_nonlinear_expr): Likewise. - -2007-07-03 Seongbae Park - - * rtl.def (UNSPEC, USE, CLOBBER): More comments. - -2007-07-04 Ben Elliston - - * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top - of this file. - - * c-objc-common.c (c_types_compatible_p): Fix indentation. - - * doc/tm.texi (Run-time Target): Capitalise "CPU". - (Exception Handling): Likewise. - -2007-07-03 Jan Hubicka - - * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing. - -2007-07-03 Eric Christopher - - * doc/cppopts.texi: Add conflicting option note to -dM. - * doc/invoke.texi: Add note about possible conflicts with - -E for -dCHARS and note that -dM will not produce - any results if there is no machine dependent reorg. - -2007-07-03 Geoffrey Keating - - * tree.h (DECL_ALIGN): Back out previous change. - -2007-07-03 Joseph Myers - - * configure.ac: Test for .dtprelword support on MIPS. - * configure, config.in: Regenerate. - * config/mips/mips.c (mips_output_dwarf_dtprel): New. - (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. - -2007-07-03 Julian Brown - - * config.gcc (with_fpu): Allow --with-fpu=vfp3. - * config/arm/aout.h (REGISTER_NAMES): Add D16-D31. - * config/arm/aof.h (REGISTER_NAMES): Add D16-D31. - * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor - capability. - (all_fpus): Add FPUTYPE_VFP3. - (fp_model_for_fpu): Add VFPv3 field. - (arm_rtx_costs_1): Give cost to VFPv3 constants. - (vfp3_const_double_index): New function. Return integer index of - VFPv3 constant suitable for fconst[sd] insns, or -1 if constant - isn't suitable. - (vfp3_const_double_rtx): New function. True if VFPv3 is enabled - and argument represents a valid RTX for a VFPv3 constant. - (vfp_output_fldmd): Split fldmd with > 16 registers in the list into - two instructions. - (vfp_emit_fstmd): Similar, for fstmd. - (arm_print_operand): Implement new code 'G' for VFPv3 floating-point - constants, represented as integer indices. - (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE, - VFP_REGNO_OK_FOR_DOUBLE macros. - (arm_regno_class): Handle VFPv3 d0-d7, low, high register split. - (arm_file_start): Set float-abi attribute for VFPv3, and output - correct ".fpu" assembler directive. - (arm_dbx_register_numbering): Add FIXME. - * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3. - (fputype): Add FPUTYPE_VFP3. - (FIXED_REGISTERS): Add 32 registers for D16-D31. - (CALL_USED_REGISTERS): Likewise. - (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition - of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present. - (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3. - (D7_VFP_REGNUM): New. - (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM) - (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE) - (VFP_REGNO_OK_FOR_DOUBLE): Define new macros. - (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3. - (REG_ALLOC_ORDER): Adjust for VFPv3. - (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS. - (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS, - VFP_LO_REGS, VFP_HI_REGS. - (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS. - (IS_VFP_CLASS): Define macro. - (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use - IS_VFP_CLASS. - (REGISTER_MOVE_COST): Likewise. - * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype. - * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127. - (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp) - (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp) - (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp) - (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp) - (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp) - (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2) - (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2) - (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp) - (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't' - where appropriate for single-word registers. - (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp): - As above. Fix type attributes. - * config/arm/constraints.md (register_contraint "t"): Define. - (register_constraint "w"): Change to D0-D15, or D0-D31 for - VFPv3/NEON. - (register_constraint "x"): Define. - (constraint "Dv"): Define. - -2007-07-03 Geoffrey Keating - - * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL. - -2007-07-03 Tom Tromey - - * c-parser.c (objc_pq_context): Removed. - (objc_need_raw_identifier): Likewise. - (c_parser) : New field. - : Likewise. - (OBJC_NEED_RAW_IDENTIFIER): Removed. - (c_lex_one_token): Update. - (c_parser_objc_protocol_definition): Update. - (c_parser_objc_method_definition): Update. - (c_parser_objc_methodproto): Update. - (c_parser_declspecs): Update. - -2007-07-03 David Ung - - * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors. - -2007-07-03 David Ung - Richard Sandiford - - * doc/invoke.texi: Document -march=74kf3_2. - * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type. - (TUNE_74K): Check for it. - * config/mips/mips.c (mips_cpu_info): Add 74kf3_2. - (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2. - * config/mips/mips.md (cpu): Add 74kf3_2. - * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop) - (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo) - (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump) - (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add - 74kf3_2 to the CPU list. - (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore) - (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf) - (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df) - (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1) - (r74kf3_2_fxfer_from_c1): New insn reservations. - -2007-07-03 Richard Sandiford - David Ung - - * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and - -march=24kx with -march=24kf1_1. Likewise 24ke[fx], 34k[fx] - and 74k[fx]. Document aliases for the new options. - * config/mips/mips.h (PROCESSOR_24KF): Rename to... - (PROCESSOR_24KF2_1): ...this. - (PROCESSOR_24KX): Rename to... - (PROCESSOR_24KF1_1): ...this. - (PROCESSOR_74KF): Rename to... - (PROCESSOR_74KF2_1): ...this. - (PROCESSOR_74KX): Rename to... - (PROCESSOR_74KF1_1): ...this. - (TUNE_74K): Update PROCESSOR_* names. - * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym - for 24kf. Add 24kf1_1 and 24kfx as synonyms for 24kx. Likewise - the 24ke*, 34k* and 74k* processors. Update PROCESSOR_* names. - (mips_rtx_cost_data): Update processor names in comments. - (mips_issue_rate): Update PROCESSOR_* names. - * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to - 24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1. - * config/mips/24k.md: Rename FPU-related r24k_* insn reservations - to r24kf2_1_*. Rename r24kx_* insn reservations to r24kf1_1_*. - Update cpu attribute names. - (r24k_fpu_iss): Rename this reservation to... - (r24kf2_1_fpu_iss): ...this and update all uses. - (r24kx_fpu_iss): Rename this reservation to... - (r24kf1_1_fpu_iss): ...this and update all uses. - * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations - to r74kf2_1_*. Rename r74kx_* insn reservations to r74kf1_1_*. - Update cpu attribute names. - -2007-07-01 Kaz Kojima - - * config/m32r/constraints.md: New file. - * config/m32r/m32r.c: Include tm-constrs.h. - (small_data_operand): Use satisfies_constraint_* instead of macro. - (addr24_operand, gen_compare): Likewise. - * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove. - (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT, - CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, - EXTRA_CONSTRAINT): Likewise. - * config/m32r/m32r.md: Include constraints.md. - (*movsi_insn): Use satisfies_constraint_* instead of macro. - (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise. - * config/m32r/predicates.md (conditional_move_operand): Likewise. - (two_insn_const_operand, int8_operand, uint16_operand, - reg_or_int16_operand, reg_or_uint16_operand, - reg_or_cmp_int16_operand, cmp_int16_operand, - seth_add3_operand): Likewise. - -2007-07-03 Eric Christopher - - * libgcc2.h: Conditionally declare __bswapsi2 and - __bswapdi2. - -2007-07-03 H.J. Lu - - * ddg.c (check_sccs): Define only if ENABLE_CHECKING is - defined. - -2007-07-03 Rainer Orth - - PR target/28307 - * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK] - (__gthrw_pragma): Provide default definition. - (__gthrw2): Use it. - * gthr-posix.c (__gthrw_pragma): Define. - -2007-07-03 Daniel Berlin - - * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p - before declaring inequality. - -2007-07-03 Rask Ingemann Lambertsen - - * combine.c (recog_for_combine): Log the success or failure of - matching new insn patterns against the machine description in - detailed dumps. - -2007-07-03 Revital Eres - - * ddg.c (print_sccs): New function. - (check_sccs): New function. - (create_ddg_all_sccs): Use it. - * ddg.h (print_sccs): Declare. - * modulo-sched.c (sms_order_nodes): Call print_sccs. - -2007-07-03 Uros Bizjak - - * targhooks.h (default_mode_for_suffix): New function declaration. - * targhooks.c (default_mode_for_suffix): New default target hook. - * target.h (struct c): New structure in the targetm struct. - (mode_for_suffix): New target hook as part of struct c. - target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as - default_mode_for_suffix. - (TARGET_C): New define. - * c-lex.c: Include "target.h". - (interpret_float): Use targetm.c.mode_for_suffix to determine - the mode for a given non-standard suffix. - Makefile.in (c-lex.o): Depend on $(TARGET_H). - - * config/i386/i386.c (ix86_c_mode_for_suffix): New static function. - (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix. - - * doc/extend.texi (Floating Types): New node. Document __float80 and - __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes. - -2007-07-03 Kaz Kojima - - PR target/32506 - * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand - predicate instead of target_operand. - (divsi3_i1_media, divsi3_media_2): Likewise. - -2007-07-02 Eric Botcazou - - * tree.h (alias_sets_might_conflict_p): Rename into - alias_sets_must_conflict_p. - * alias.c (alias_sets_might_conflict_p): Likewise. - (alias_sets_conflict_p): Use it. - (objects_must_conflict_p): Likewise. - * c-common.c (strict_aliasing_warning): Adjust. - -2007-07-02 Andrew Pinski - - * rtlhooks.c (gen_lowpart_if_possible): Check for - invalid subreg before calling gen_lowpart_SUBREG. - -2007-07-02 Geoffrey Keating - - * config/darwin9.h: Add copyright notice. - (LINK_COMMAND_SPEC): Add comment. - (DARWIN_LIBSYSTEM_HAS_UNWIND): Define. - * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on - DARWIN_LIBSYSTEM_HAS_UNWIND. - -2007-07-02 Jakub Jelinek - - PR libgomp/32468 - * omp-low.c (check_combined_parallel): New function. - (lower_omp_parallel): Call it via walk_stmts, set - OMP_PARALLEL_COMBINED if appropriate. - (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS - isn't the only statement in WS_ENTRY_BB or OMP_RETURN - the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED, - don't consider it as combined parallel. - -2007-07-02 Richard Sandiford - - * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). - (gcc_tooldir): Likewise. - * configure: Regenerate. - * Makefile.in (libsubdir_to_prefix): New variable, based on the - old configure.ac gcc_tooldir setting. - (prefix_to_exec_prefix): New variable. - (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) - rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. - -2007-07-02 Daniel Berlin - - Fix PR tree-optimization/32583 - Fix PR tree-optimization/32584 - * tree-ssa-pre.c (phi_translate): Always pass seen bitmap. - (phi_translate_set): Use phi_translate directly now. - (make_values_for_stmt): Don't value number RHS if we already know - it is constant. - -2007-07-02 Steve Ellcey - Jim Wilson - - PR target/31684 - * haifa-sched.c (add_to_speculative_block): Change copy_rtx to - copy_insn. - -2007-07-02 Sandra Loosemore - Richard Sandiford - Nigel Stephens - - * config/mips/mips-protos.h (mips16e_save_restore_info): New struct. - (mips16e_output_save_restore): Declare. - (mips16e_save_restore_pattern_p): Likewise. - * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro. - * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8 - for GENERATE_MIPS16E_SAVE_RESTORE. Return 0x400 for TARGET_MIPS16 - && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT. - (BITSET_P): New global macro, extracted from... - (mips_for_each_saved_reg): ...here. - (mips16e_save_restore_info): New struct. - (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables. - (mips16e_save_restore_regs): New variable. - (mips_split_plus, mips16e_find_first_register): New functions. - (mips16e_mask_registers): New function. - (compute_frame_size): Expand the commentary before the function. - Enforce the MIPS16e save and restore register range restrictions. - Pad the general register save area at the low end. - (mips16e_save_restore_reg, mips16e_build_save_restore) - (mips16e_save_restore_pattern_p, mips16e_add_register_range) - (mips16e_output_save_restore, mips16e_collect_propagate_value) - (mips16e_collect_argument_save, mips16e_collect_argument_saves): - New functions. - (mips_expand_prologue, mips_expand_epilogue): Handle - GENERATE_MIPS16E_SAVE_RESTORE. - * config/mips/mips.md (*mips16e_save_restore): New pattern. - -2007-07-02 Uros Bizjak - - PR tree-optimization/31966 - PR tree-optimization/32533 - * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not - "basic_block" description as its third argument. Update function - calls to get destination bb from "edge" argument. Save "cond" into - aux field of the edge. Update prototype for changed arguments. - (if_convertible_loop_p): Clear aux field of incoming edges if bb - contains phi node. - (find_phi_replacement_condition): Operate on incoming edges, not - on predecessor blocks. If there is a condition saved in the - incoming edge aux field, AND it with incoming bb predicate. - Return source bb of the first edge. - (clean_predicate_lists): Clean aux field of outgoing node edges. - (tree_if_conversion): Do not initialize cond variable. Move - variable declaration into the loop. - (replace_phi_with_cond_gimple_modify_stmt): Remove unneded - initializations of new_stmt, arg0 and arg1 variables. - -2007-07-02 Jakub Jelinek - - * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p, - SSA_NAMEs, RESULT_DECLs and PARM_DECLs. - -2007-07-02 Richard Guenther - - * tree-ssa.c (useless_type_conversion_p): Document - future intent as defining the middle-end type system. - Re-structure to call langhook last, group by type class, - mark questionable parts. - -2007-07-02 Richard Guenther - - * tree-flow.h (types_compatible_p): Declare. - * tree-ssa.c (types_compatible_p): New function. - * ipa-type-escape.c (discover_unique_type): Use - types_compatible_p instead of lang_hooks.types_compatible_p. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. - * tree-vn.c (expressions_equal_p): Likewise. - * tree.c (fields_compatible_p): Likewise. - * tree-ssa-dom.c (avail_expr_eq): Likewise. - (cprop_operand): Use useless_type_conversion_p instead of - lang_hooks.types_compatible_p. - * tree-inline.c (setup_one_parameter): Likewise. - (declare_return_variable): Likewise. - * tree-nrv.c (tree_nrv): Likewise. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. - (maybe_fold_offset_to_component_ref): Likewise. - (maybe_fold_offset_to_reference): Likewise. - * tree-ssa-copy.c (may_propagate_copy): Likewise. - (merge_alias_info): Likewise. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. - * tree-ssa-phiopt.c (conditional_replacement): Likewise. - * tree-ssa-reassoc.c (optimize_ops_list): Likewise. - * tree-tailcall.c (find_tail_calls): Likewise. - * tree-vect-generic.c (expand_vector_operations_1): Likewise. - * gimplify.c (canonicalize_addr_expr): Likewise. - (fold_indirect_ref_rhs): Likewise. - (gimplify_addr_expr): Likewise. Swap parameters to cpt_same_type. - (cpt_same_type): Likewise. - (check_pointer_types_r): Swap parameters to cpt_same_type - where appropriate. - * fold-const.c (fold_convert): Revert fix for PR15988. - * tree-inline.c (setup_one_parameter): Instead fix it here by - using fold_build1 instead of fold_convert and checking for - error_mark_node. Convert only if the conversion is necessary. - -2007-07-02 Joseph Myers - - * configure.ac: Check for .gnu_attribute on Power. - * configure: Regenerate. - * config/rs6000/rs6000.c (rs6000_file_start): If supported, output - attribute for floating-point ABI. - -2007-07-02 Ira Rosen - - PR tree-optimization/32230 - PR tree-optimization/32477 - * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base - address is a constant. - -2007-07-02 Richard Sandiford - - * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*) - (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*) - (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level - stanzas. Use the first part of the triplet to set MIPS_ISA_DEFAULT. - Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the - 64-bit targets. Add support for *-elfoabi*. - * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use - different settings if $(tm_defines) does not select the EABI. - (MULTILIB_EXCLUSIONS): Define in those circumstances. - * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro. - (MIPS_ARCH_OPTION_SPEC): Likewise. - (MIPS_ISA_LEVEL_SPEC): Likewise. - (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC. - * config/mips/elfoabi.h: New file. - -2007-07-02 Richard Guenther - - * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ... - (useless_type_conversion_p): ... this. - * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ... - (useless_type_conversion_p): ... this. - * builtins.c (fold_builtin_memory_op): Rename - tree_ssa_useless_type_conversion_1 to useless_type_conversion_p. - * tree-cfg.c (verify_expr): Likewise. - * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise. - * tree-ssa-ccp.c (ccp_fold): Likewise. - * tree-ssa-copy.c (may_propagate_copy): Likewise. - * tree-ssa-dom.c (eliminate_redundant_computations): Likewise. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. - * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise. - * tree-ssa-pre.c (eliminate): Likewise. - * tree-ssa.c (delete_tree_ssa): Likewise. - (tree_ssa_useless_type_conversion): Likewise. - * tree.c (build2_stat): Likewise. - -2007-07-01 Daniel Berlin - - Fix PR tree-optimization/32571 - * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid - simplifying them. - -2007-07-01 Daniel Berlin - - * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants - and other expected operations explicitly, change default to - gcc_unreachable. - -2007-07-01 Daniel Jacobowitz - - * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a - PARALLEL. - * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight) - (tls_load_dot_plus_eight): Move the label number into the unspec. - * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise. - -2007-07-01 Andreas Schwab - - * dwarf2out.c (initial_return_save): Define only if used. - -2007-07-01 Kenneth Zadeck - - Unreverting Richard's Revert of: - - 2007-06-27 Richard Sandiford - - * dce.c (deletable_insn_p_1): New function, split out from... - (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs - specially, not those inside PARALLELs. Remove BODY argument - and adjust recursive call accordingly. - (prescan_insns_for_dce): Update call to delete_insn_p. - -2007-07-01 Vladimir Yanovsky - Revital Eres - - * ddg.c (create_ddg_all_sccs): Fix missed - initialization of scc_nodes. - -2007-07-01 Uros Bizjak - - PR middle-end/32559 - * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or - X + ~X to 1 only for INTEGRAL_TYPE_P type. - -2007-06-30 Joseph Myers - - * configure.ac: Check for .gnu_attribute on MIPS. - * configure, config.in: Regenerate. - * config/mips/mips.c (mips_file_start): If supported, output - attribute for floating-point ABI. - -2007-06-30 Uros Bizjak - - PR target/32433 - * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE. - (ffs_cmove): New expander to expand using ctz pattern. - (*ffs_cmove): Remove pattern. - (*ffs_no_cmove): Enable only for !TARGET_CMOVE. - (ffsdi2): Expand using ctz pattern. - (*ffs_rex64): Remove pattern. - -2007-06-30 John David Anglin - - PR rtl-optimization/32296 - * pa.md (return): Delete pattern. - (return_internal): Remove "(const_int 1)" from pattern. - (epilogue): Use return_internal pattern for trivial returns. - * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration. - * pa.c (hppa_can_use_return_insn_p): Delete function. Include "df.h". - -2007-06-30 Daniel Berlin - - * tree-ssa-pre.c (is_exception_related): New function - (can_value_number_operation): Use it. - -2007-06-30 Daniel Berlin - - Fix PR tree-optimization/32540 - Fix PR tree-optimization/31651 - - * tree-ssa-sccvn.c: New file. - - * tree-ssa-sccvn.h: Ditto. - - * tree-vn.c: Include tree-ssa-sccvn.h - (val_expr_paid_d): Removed. - (value_table): Ditto. - (vn_compute): Ditto. - (val_expr_pair_hash): Ditto. - (val_expr_pair_expr_eq): Ditto. - (copy_vuses_from_stmt): Ditto. - (vn_delete): Ditto. - (vn_init): Ditto. - (shared_vuses_from_stmt): Ditto. - (print_creation_to_file): Moved up. - (sort_vuses): Ditto. - (sort_vuses_heap): Ditto. - (set_value_handle): Make non-static. - (make_value_handle): Ditto. - (vn_add): Rewritten to use sccvn lookups. - (vn_add_with_vuses): Ditto. - (vn_lookup): Ditto (and second argument removed). - (vn_lookup_with_vuses): Ditto. - (vn_lookup_or_add): Ditto (and second argument removed); - (vn_lookup_or_add_with_vuses): Ditto. - (vn_lookup_with_stmt): New. - (vn_lookup_or_add_with_stmt): Ditto. - (create_value_handle_for_expr): Ditto. - - * tree-ssa-pre.c: Include tree-ssa-sccvn.h. - (seen_during_translate): New function. - (phi_trans_lookup): Use iterative_hash_expr, not vn_compute. - (phi_trans_add): Ditto. - (constant_expr_p): FIELD_DECL is always constant. - (phi_translate_1): Renamed from phi_translate, add seen bitmap. - Use constant_expr_p. - Avoid infinite recursion on mutually valued expressions. - Change callers of vn_lookup_or_add. - (phi_translate): New function. - (compute_antic_safe): Allow phi nodes. - (create_component_ref_by_pieces): Update for FIELD_DECL change. - (find_or_generate_expression): Rewrite slightly. - (create_expression_by_pieces): Updated for vn_lookup_or_add - change. - Update VN_INFO for new names. - (insert_into_preds_of_block): Update for new names. - (add_to_exp_gen): New function. - (add_to_sets): Use vn_lookup_or_add_with_stmt. - (find_existing_value_expr): Rewrite to changed vn_lookup. - (create_value_expr_from): Ditto, and use add_to_exp_gen. - (try_look_through_load): Removed. - (try_combine_conversion): Ditto. - (get_sccvn_value): New function. - (make_values_for_phi): Ditto. - (make_values_for_stmt): Ditto. - (compute_avail): Rewritten for vn_lookup_or_add changes and to use - SCCVN. - (init_pre): Update for SCCVN changes. - (fini_pre): Ditto. - (execute_pre): Ditto. - - * tree-flow.h (make_value_handle): Declare. - (set_value_handle): Ditto. - (sort_vuses_heap): Ditto. - (vn_lookup_or_add_with_stmt): Ditto. - (vn_lookup_with_stmt): Ditto. - (vn_compute): Remove. - (vn_init): Ditto. - (vn_delete): Ditto. - (vn_lookup): Update arguments. - - * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h - (tree-vn.o): Ditto. - (tree-ssa-sccvn.o): New. - (OBJS-common): Add tree-ssa-sccvn.o - -2007-06-30 Manuel Lopez-Ibanez - - PR c/4076 - * c-typeck.c (build_external_ref): Don't mark as used if called - from itself. - * calls.c (rtx_for_function_call): Likewise. - -2007-06-30 Richard Sandiford - - Revert: - - 2007-06-27 Richard Sandiford - - * dce.c (deletable_insn_p_1): New function, split out from... - (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs - specially, not those inside PARALLELs. Remove BODY argument - and adjust recursive call accordingly. - (prescan_insns_for_dce): Update call to delete_insn_p. - -2007-06-30 Rask Ingemann Lambertsen - - * combine.c (combine_validate_cost): New parameter NEWOTHERPAT. - (try_combine): Move potential calls to undo_all() so they happen - before we commit to using the combined insns. - -2007-06-30 Jan Hubicka - - * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit - code. - -2007-06-30 Thomas Neumann - - * ipa.c (cgraph_postorder): Cast according to the coding conventions. - (cgraph_remove_unreachable_nodes): Likewise. - * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0. - * ipa-inline.c (update_caller_keys): Cast according to the coding - conventions. - (cgraph_decide_recursive_inlining): Likewise. - (cgraph_decide_inlining_of_small_function): Likewise. - (try_inline): Likewise. - (cgraph_decide_inlining_incrementally): Likewise. - * ipa-pure-const.c (get_function_state): Likewise. - (scan_function): Likewise. - (analyze_function): Likewise. - (static_execute): Likewise. - * ipa-reference.c (scan_for_static_refs): Likewise. - (merge_callee_local_info): Likewise. - (analyze_function): Use type safe memory macros. - (static_execute): Likewise. Cast according to the coding conventions. - * ipa-type-escape.c (scan_for_regs): Cast according to the coding - conventions. - * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable - names. - (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros. - * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as - variable names. - -2007-06-29 Andrew Pinski - - PR middle-end/30024 - * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0] - for complex modes (both int and real). - -2007-06-29 Jan Hubicka - - * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change. - -2007-06-29 Jan Hubicka - - PR middle-end/32372 - * cse.c (cse_insn): Avoid invalid sharing in between register note and - the insn pattern. - -2007-06-29 Anatoly Sokolov - - PR target/32335 - * config/avr/avr.c: Include dataflow header file. - (expand_prologue): Adjust for prologue insn change. - * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once - inside a insn. - -2007-06-29 Richard Guenther - - PR middle-end/32493 - * gimplify.c (gimplify_call_expr): Ignore variable argument parts - during type verification. - -2007-06-29 Jan Hubicka - - * recog.c (validate_change_rtx_1): Unshare TO argument. - -2007-06-29 Uros Bizjak - - PR tree-optimization/24659 - * tree-vect-transform.c (vectorizable_call): Handle - (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. - - * config/i386/sse.md (vec_pack_sfix_v2df): New expander. - * config/i386/i386.c (enum ix86_builtins) - [IX86_BUILTIN_VEC_PACK_SFIX]: New constant. - (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin - description. - (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as - const using def_builtin_const. - (ix86_expand_binop_builtin): Remove bogus assert() that insn wants - input operands in the same modes as the result. - (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT. - -2007-06-29 Richard Sandiford - - * df-problems.c (df_set_unused_notes_for_mw): Fix formatting. - (df_set_dead_notes_for_mw): Likewise. - -2007-06-29 Eric Botcazou - - * c-common.c (pointer_int_sum): Do the negation in sizetype. - -2007-06-28 DJ Delorie - - * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon. - -2007-06-28 Geoffrey Keating - - * doc/invoke.texi (C++ Dialect Options): Document - fvisibility-ms-compat. - * c.opt (fvisibility-ms-compat): New. - -2007-06-28 Andrew Pinski - - PR tree-opt/32417 - * tree-affine.c (aff_combination_add_elt): Handle - pointer addition specially. - -2007-06-28 Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure - decl is non-external for AIX ABI. - -2007-06-28 David Edelsohn - - * config/rs6000/predicates.md (current_file_function_operand): - Ensure the symbol is non-external for AIX ABI. - -2007-06-28 Nick Clifton - - * common.opt (fipa-matrix-reorg): Add Optimization attribute. - (fdce, fdse, fpredictive-commoning): Likewise. - -2007-06-28 Francois-Xavier Coudert - - PR other/31400 - * gcc.c (process_command): Recognize the new -static-libgfortran - option. - -2007-06-27 Rask Ingemann Lambertsen - - PR target/32418 - * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix: - Use a call clobbered hard reg instead of a pseudo reg. - -2007-06-27 Kaz Kojima - - * config/sh/sh.md (load_gbr): Use correct operand constraint. - -2007-06-27 Kaz Kojima - - PR target/32479 - * config/sh/sh.md (udivsi3): Don't wrap the sequence with - REG_LIBCALL and REG_RETVAL notes. - (divsi3, mulsi3): Likewise. - (mulhisi3): Likewise. Use emit_libcall_block. - (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise. - -2007-06-27 Seongbae Park - - PR rtl-optimization/32481 - * combine.c (adjust_for_new_dest): Rescan the changed insn. - -2007-06-27 Richard Sandiford - - * dce.c (deletable_insn_p_1): New function, split out from... - (deletable_insn_p): ...here. Only treat bare USEs and CLOBBERs - specially, not those inside PARALLELs. Remove BODY argument - and adjust recursive call accordingly. - (prescan_insns_for_dce): Update call to delete_insn_p. - -2007-06-27 Richard Guenther - - PR middle-end/32492 - * tree.h (fold_convertible_p): Declare. - * fold-const.c (fold_convertible_p): New function. - * gimplify.c (gimplify_call_expr): Use fold_convertible_p - instead of lang_hooks.types_compatible_p. - -2007-06-26 Jan Hubicka - - * fwprop.c (try_fwprop_subst): Use validate_unshare_change. - * postreload.c (reload_cse_simplify_set): Instead of copying the rtx - early use validate_unshare_change. - (reload_combine): Likewise. - * recog.c (change_t): New field unshare. - (validate_change_1): Rename from validate_change; add argument unshare. - (validate_change): Turn into wrapper of validate_change_1; update - prototype for bools. - (validate_unshare_change): New. - (confirm_change_group): Unshare changes if asked for; avoid unnecesary - calls of df_insn_rescan. - * recog.h (validate_change): Replace ints by bools. - (validate_unshare_change): Declare. - -2007-06-26 Kenneth Zadeck - - * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name. - -2007-06-26 Steve Ellcey - - * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode. - -2007-06-25 Jan Hubicka - - * ipa-inline.c (cgraph_mark_inline): Assert that we never inline - uninlinable call. - (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining, - cgraph_decide_inlining_incrementally): Move uninlinability checks to - places other call site specific checks are performed. - -2007-06-25 Andrew Pinski - - PR tree-opt/32421 - * tree-vect-transform.c (vectorizable_operation): Convert - POINTER_PLUS_EXPR over to PLUS_EXPR. - -2007-06-25 Chao-ying Fu - - * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ, - UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes. - Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM. - Document GET_MODE_IBIT, and GET_MODE_FBIT. - - * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT, - MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. - (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P, - SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P, - SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P, - ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P, - ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P, - SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P, - ALL_FIXED_POINT_MODE_P): New define. - (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM, - MODE_UACCUM. - (GET_MODE_IBIT, GET_MODE_FBIT): New define. - - * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, - MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, - MODE_VECTOR_UACCUM): New mode classes. - - * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE, - UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT. - Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, - USA, UDA, and UTA. - - * genmodes.c (struct mode_data): Add ibit and fbit fields. - (blank_mode): Initialize ibit and fbit. - (adj_ibit, adj_fbit): New to adjust ibit and fbit. - (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, - MODE_UACCUM. - (new_adjust): Change required_class to required_class_from and - required_class_to for testing within a range. - (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, - MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, - MODE_VECTOR_UACCUM. - (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define. - (make_fixed_point_mode): New. - (_ADD_ADJUST): Change C to C1 and C2. - (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to - use a range for machine classes. - (ADJUST_IBIT, ADJUST_FBIT): New. - (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and - CONST_MODE_FBIT. - (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, - MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. - Emit adjustment for ibit and fbit. - (emit_mode_ibit, emit_mode_fbit): New. - (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit. - -2007-06-25 Nathan Froyd - - * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand - as the source of the set. - -2007-06-25 Roman Zippel - - * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P, - FP_REGNO_P): Use IN_RANGE. - (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove. - (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New. - (DATA_REG_P): Use DATA_REGNO_P. - (FP_REG_P): Use FP_REGNO_P. - (ADDRESS_REG_P): Use ADDRESS_REGNO_P. - * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use - REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P. - -2007-06-24 Jan Hubicka - - PR middle-end/30563 - * cgraphunit.c (cgraph_analyze_function): Fix ordering problem. - -2007-06-24 Sebastian Pop - - PR middle-end/32461 - * fold-const.c (fold_binary): Strip nops of operand 0 - of BIT_NOT_EXPR before calling operand_equal_p. - * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New. - * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New. - -2007-06-23 Mark Mitchell - - * doc/extend.texi: Document that dllimport and dllexport imply - default visibility. - * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the - imported or exported declaration, including type declarations. - * c-common.c (handle_visibility_attribute): Check for conflicts - with dllimport/dllexport. - (c_determine_visibility): Handle dllimport/dllexport as an - explicit visibility atttribute. - -2007-06-23 Richard Guenther - - PR tree-optimization/16876 - PR middle-end/29478 - * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag - for CALL_EXPRs. - * tree-inline.c (initialize_inlined_parameters): Do not call - lang_hooks.tree_inlining.convert_parm_for_inlining. - * cgraphbuild.c (initialize_inline_failed): Set inline failed - reason for mismatched types. - * gimplify.c (gimplify_call_expr): Verify the call expression - arguments match the called function type signature. Otherwise - mark the call expression to be not considered for inlining - using CALL_CANNOT_INLINE_P flag. - * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the - edges call expression. - (cgraph_decide_inlining_of_small_function): Likewise. - (cgraph_decide_inlining): Likewise. - * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): - Remove define. - * c-tree.h (c_convert_parm_for_inlining): Remove declaration. - * c-typeck.c (c_convert_parm_for_inlining): Remove. - * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining): - Remove declaration. - (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define. - * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): - Remove. - * langhooks.h (struct lang_hooks_for_tree_inlining): Remove - convert_parm_for_inlining member. - -2007-06-23 Richard Earnshaw - - PR target/31152 - * arm.md (negscc): Match the correct operand for optimized LT0 test. - Remove optimization for GT. - -2007-06-23 Kenneth Zadeck - - PR middle-end/32437 - * dce.c (deletable_insn_p): Add extra parameter and recurse if insn - is a PARALLEL. - (prescan_insns_for_dce): Add extra parameter. - -2007-06-23 Jan Hubicka - - PR middle-end/31541 - * gimplify.c (mark_addressable): New function. - (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it. - -2007-06-22 Uros Bizjak - - PR middle-end/32374 - * expr.c (store_constructor): Do not clobber non-zeroed memory. - -2007-06-22 Uros Bizjak - - PR target/32413 - * config/i386/i386.c (ix86_register_move_cost): Rise the cost of - moves between MMX/SSE registers to at least 8 units to prevent - ICE caused by non-tieable SI/HI/QImodes in SSE registers. - -2007-06-22 Uros Bizjak - - * config/i386/i386.c (override_options): Correct x86_sahf - setting condition. - -2007-06-21 David Daney - - PR target/32406 - * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER - to UNSPEC_NONLOCAL_GOTO_RECEIVER globally. - (exception_receiver): Renamed to ... - (nonlocal_goto_receiver): ... this. - -2007-06-22 Roman Zippel - - * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE. - (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for - partial register accesses. - -2007-06-21 Adam Nemet - - * fold-const.c (debug_fold_checksum): Move it under - ENABLE_FOLD_CHECKING. - -2007-06-21 Sebastian Pop - - PR middle-end/20623 - * tree.h (debug_fold_checksum): Declared. - * fold-const.c (build_fold_addr_expr_with_type_1): New. - (build_fold_addr_expr_with_type, build_fold_addr_expr): Use - build_fold_addr_expr_with_type_1. - (fold_addr_expr, debug_fold_checksum): New. - (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME. - (fold_unary, fold_comparison, split_address_to_core_and_offset): - Use fold_addr_expr. - -2007-06-21 Sebastian Pop - - PR tree-optimization/19590 - * tree-vrp.c (adjust_range_with_scev): Set the range when the result - of scev is a constant. - -2007-06-21 Kenneth Zadeck - - * df-problems.c (df_note_bb_compute): Made computation of live - info consistent with df_lr. - -2007-06-21 Richard Guenther - - PR tree-optimization/32453 - * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR - for pointer anti-range. - -2007-06-21 H.J. Lu - - * config/i386/i386.c (processor_target_table): Increase maximum - skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and - default 64bit. - - * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8 - byte alignment if > 8 byte alignment is preferred. - * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. - -2007-06-21 Jakub Jelinek - - PR tree-optimization/31866 - * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing - if ASM_EXPR's input is not a SSA_NAME. - - PR middle-end/32362 - * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL, - but decl is a global var, instead return decl. - * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses - even for is_global_var decls, if they are private in some outer - context. - -2007-06-21 Richard Guenther - - PR tree-optimization/32451 - * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags. - -2007-06-21 Christian Bruel - - * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare. - * config/sh/sh.c (sh_loads_bankedreg_p): New function. - (push_regs): Changed saving order or banked registers. - (sh_expand_epilogue): Likewise. - * config/sh/sh.h (BANKED_REGISTER_P): New macro. - (FIRST_BANKED_REG): Likewise. - (LAST_BANKED_REG): Likewise. - * config/sh/sh.md (banked) New attribute. - (in_delay_slot): Check banked attribute. - -2007-06-20 Sebastian Pop - - PR tree-optimization/32075 - * tree-data-ref.c (subscript_dependence_tester_1, - analyze_miv_subscript, analyze_overlapping_iterations, - add_distance_for_zero_overlaps, build_classic_dist_vector, - subscript_dependence_tester_1, analyze_overlapping_iterations, - subscript_dependence_tester, access_functions_are_affine_or_constant_p, - compute_affine_dependence, compute_all_dependences): Pass loop_nest - to evolution_function_is_affine_multivariate_p. - -2007-06-20 Eric Botcazou - - * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs. - -2007-06-20 Rask Ingemann Lambertsen - - PR target/32335 - * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue - for TARGET_A16. - * config/m32c/prologue.md (epilogue_exitd_16): New. - (epilogue_reit_16): New. - (epilogue_exitd): Rename to epilogue_exitd_24. - (epilogue_reit): Rename to epilogue_reit_24. - -2007-06-20 Seongbae Park - Maxim Kuvyrkov - - * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg): - New counters. - * haifa-sched.c (queue_to_ready): Don't requeue next insn - if dbg_cnt (sched_insn) reaches the limit. - (choose_ready): New parameter INSN_PTR and new return value. - (schedule_block): Handle dbg_cnt (sched_insn). Handle - the new return value from choose_ready. - * global.c (global_aloc): New dbgcnt global_alloc_at_reg. - (rest_of_handle_global_alloc): New global_alloc_at_func. - -2007-06-20 Adam Nemet - - PR tree-optimization/25737 - * tree.h (struct tree_struct_field_tag): Add new field alias_set. - (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros. - * tree-flow.h (struct fieldoff): Add new field alias_set. - * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new - argument addressable_type. Set alias_set of fieldoff. - * tree-ssa-alias.c (create_sft): Add new argument alias_set. - (create_overlap_variables_for): Pass alias_set from fieldoff to - create_sft. - * alias.c (get_alias_set): Use alias_set from SFT if set. - -2007-06-20 Hui-May Chang - - * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size - of a variable as an unsigned HOST_WIDE_INT integer. - -2007-06-20 Zdenek Dvorak - - PR rtl-optimization/32405 - * loop-iv.c (iv_get_reaching_def): Fail for partial defs. - -2007-06-20 Jakub Jelinek - - * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H). - - PR middle-end/31959 - * builtins.c: Include diagnostic.h. - (expand_builtin_expect): Make gcc_assert more permissive. - * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H). - - PR inline-asm/32109 - * gimplify.c (gimplify_asm_expr): Issue error if type is addressable - and !allows_mem. - - PR middle-end/32285 - * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments - if ACCUMULATE_OUTGOING_ARGS. - -2007-06-19 Rask Ingemann Lambertsen - - * config/m68hc11/m68hc11.c: Include dataflow header file. - (m68hc11_reorg): Port to dataflow. - -2007-06-19 Kenneth Zadeck - - * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. - (struct df_problem.free_blocks_on_set_blocks): New field. - (struct dataflow.optional_p): New field. - (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. - (df_live_set_all_dirty): New function. - * df-scan.c (df_scan_alloc): Initialize optional_p. - (problem_SCAN): Initialize free_blocks_on_set_blocks. - * df-core.c (df_set_blocks): Removed use of - DF_FIRST_OPTIONAL_PROBLEM. Now uses - df_problem.free_blocks_on_set_blocks to determine which blocks are - recycled. - (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM. - (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM. Now - uses dataflow.optional_p to determine if problem should be - deleted. - (rest_of_handle_df_initialize): Only start live problem if - -02 or above. - (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed. - * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc, - df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p. - (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN, - problem_NOTE): Initialize free_blocks_on_set_blocks. - (df_lr_bb_local_compute): Recompute luids if df_live problem is - not active. - (df_live_set_all_dirty, df_note_alloc): New function. - * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to - df_get_live_*. - * sched_ebb.c (compute_jump_reg_dependencies): Ditto. - * postreload.c (reload_combine): Ditto. - * cse.c (cse_extended_basic_block): Ditto. - * regmove.c (mark_flags_life_zones): Ditto. - * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq, - erase_matching_seqs): Ditto. - * bt-load.c (compute_defs_uses_and_gen): Ditto. - * integrate (allocate_initial_values): Ditto. - * combine.c (reg_dead_at_p): Ditto. - * resource.c (mark_target_live_regs): Ditto. - * sched-rgn.c (check_live_1, update_live_1): Ditto. - * config/sh/sh.c (find_r0_life_regions): Ditto. - * global.c (rest_of_handle_global_alloc): Only add back df_live - for -O > 1. - * local-alloc.c (rest_of_handle_local_alloc): Only remove - df_live for -O > 1. - * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to - df_get_live_*. - (if_convert): Make sure df_live is there at -O == 1. - (pass_if_after_combine): Cleanup flags. - * init-regs.c (initialize_uninitialized_regs): Make sure df_live - is there at -O == 1. - -2007-06-19 Seongbae Park - - * config/arm/arm.c (arm_get_frame_offsets): Set - offsets->locals_base to avoid negative stack size. - (thumb1_expand_prologue): Assert on negative stack size. - -2007-06-19 Sebastian Pop - - PR tree-optimization/32367 - * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side - of the chrec has no evolution in that loop. - * testsuite/gcc.dg/tree-ssa/pr32367.c: New. - -2007-06-19 Bob Wilson - - * config/xtensa/xtensa.c: Include "df.h". - (xtensa_builtin_saveregs): Use adjust_address instead of - change_address. - (xtensa_va_start): Invoke make_tree with sizetype for - expand_builtin_saveregs and then convert the result to a pointer. - Use POINTER_PLUS_EXPR. Use size_int instead of build_int_cst. - (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst. - Subtract argument size from index value as integers and then use - POINTER_PLUS_EXPR to add the result to the array address. - -2007-06-19 Rask Ingemann Lambertsen - - PR target/32335 - * config/m32c/m32c.c: Include dataflow header file. - (m32c_emit_prologue): Adjust for prologue insn change. - * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO - once inside a PARALLEL. Assume frame size passed in operand 0 - includes space to save the fb register. - (prologue_enter_24): Likewise. - (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL. - -2007-06-19 David Daney - - PR target/32369 - * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix. - (frv_ifcvt_modify_insn): Likewise. - -2007-06-19 Richard Guenther - - * tree-ssa-structalias.c (handle_ptr_arith): Make sure to - only handle positive offsets that fit in a HOST_WIDE_INT. - -2007-06-19 Uros Bizjak - - * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity - result of rsqrt insn for zero input argument to avoid NaN. - -2007-06-19 Richard Guenther - - PR middle-end/31950 - * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs. - -2007-06-19 Jakub Jelinek - - PR tree-optimization/32353 - * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL. - -2007-06-19 Nick Clifton - - * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread. - -2007-06-18 Uros Bizjak - - PR target/32389 - * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL. - * config/i386/i386.c (assign_386_stack_local): Assert that - SLOT_VIRTUAL is valid only before virtual regs are instantiated. - (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]: - Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP. - * config/i386/i386.md (truncdfsf2, truncxf2): Ditto. - -2007-06-18 Steve Ellcey - - * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New. - -2007-06-18 Seongbae Park - - PR rtl-optimization/32321 - * gcse.c (replace_store_insn): Update the note before - calling emit_insn_after. - -2007-06-18 Kenneth Zadeck - - PR middle-end/32355 - * gcse (rest_of_handle_gcse): Add call to df_finish_pass after - cse_main. - * df-problems.c (df_note_bb_compute): Fix dumping info. - -2007-06-18 Kazu Hirata - - * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return - insn with emit_jump_insn. - -2007-06-18 Uros Bizjak - - PR tree-optimization/32383 - * targhooks.c (default_builtin_reciprocal): Add new bool argument. - * targhooks.h (default_builtin_reciprocal): Update prototype. - * target.h (struct gcc_target): Update builtin_reciprocal. - * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description. - * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements - where arg1 is not SSA_NAME. Pass true to targetm.builtin_reciprocal - when fndecl is in BUILT_IN_MD class. - (execute_convert_to_rsqrt): Ditto. - - * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool - argument. Convert IX86_BUILTIN_SQRTPS code only when md_fn is true. - Convert BUILT_IN_SQRTF code only when md_fn is false. - -2007-06-18 Kaz Kojima - - * bt-load.c (move_btr_def): Fix the order of arguments - to validate_replace_rtx. - -2007-06-18 Nathan Sidwell - - * config/m68k/m68k-devices.def: Add 54450..54455. - -2007-06-17 Uros Bizjak - - PR rtl-optimization/32366 - * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE, - FLOAT_EXTEND]: Prevent non-scalar modes from entering - significand_size. - -2007-06-17 Kenneth Zadeck - - PR middle-end/32349 - * modulo-sched (generate_reg_moves): Added rescan parameter and if - this is true, rescan insn being modified. - (sms_schedule): Added rescan parameter. - (rest_of_handle_sms): Moved freeing of dominance info to before - getting out of cfg_layout. - -2007-06-17 Nathan Sidwell - - * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New. - * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as - appropriate. - - * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and - FL_CF_EMAC from the entry for isac. - - * config/m68k/predicates.md (const_call_operand): Adjust comment. - (const_sibcall_operand): New. - (sibcall_operand): Use it. - * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible. - (m68k_isas): ISAC does not imply FPU or EMAC. - (override_options): Add ISA_C logic for symbolic jump & call. - -2007-06-17 Eric Botcazou - - * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the - return mode from the builtin itself. - (sparc_fold_builtin): Fix cast of zero constant. - -2007-06-16 Uros Bizjak - - * targhooks.c (default_builtin_reciprocal): New default target hook. - * targhooks.h (default_builtin_reciprocal): Add prototype. - * hooks.c (hook_tree_tree_bool_null): Remove hook. - * hooks.h (hook_tree_tree_bool_null): Remove prototype. - * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as - default_builtin_reciprocal. - -2007-06-16 Uros Bizjak - - PR middle-end/31723 - * hooks.c (hook_tree_tree_bool_null): New hook. - * hooks.h (hook_tree_tree_bool_null): Add prototype. - * tree-pass.h (pass_convert_to_rsqrt): Declare. - * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt. - * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b) - and convert it to reciprocal a*rfunc(b). - (execute_convert_to_rsqrt): New function. - (gate_convert_to_rsqrt): New function. - (pass_convert_to_rsqrt): New pass definition. - * target.h (struct gcc_target): Add builtin_reciprocal. - * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define. - (TARGET_INITIALIZER): Initialize builtin_reciprocal with - TARGET_BUILTIN_RECIPROCAL. - * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document. - - * config/i386/i386.h (TARGET_RECIP): New define. - * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf - for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and - flag_unsafe_math_optimizations are set, flag_trapping_math is unset - and not optimizing for size. - (*rcpsf2_sse): New insn pattern. - (*rsqrtsf2_sse): Ditto. - (rsqrtsf2): New expander. Expand by calling ix86_emit_swsqrtsf - for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and - flag_unsafe_math_optimizations are set, flag_trapping_math is unset - and not optimizing for size. - (sqrt2): Expand SFmode operands by calling ix86_emit_swsqrtsf - for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and - flag_unsafe_math_optimizations are set, flag_trapping_math is unset - and not optimizing for size. - * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf - for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and - flag_unsafe_math_optimizations are set, flag_trapping_math is unset - and not optimizing for size. - (*sse_rsqrtv4sf2): Do not export. - (sqrtv4sf2): Ditto. - (sse_rsqrtv4sf2): New expander. Expand by calling ix86_emit_swsqrtsf - for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and - flag_unsafe_math_optimizations are set, flag_trapping_math is unset - and not optimizing for size. - (sqrtv4sf2): Ditto. - * config/i386/i386.opt (mrecip): New option. - * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare. - (ix86_emit_swsqrtsf): Ditto. - * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant. - (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New - builtin definition. - (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using - ix86_expand_unop1_builtin. - (ix86_emit_swdivsf): New function. - (ix86_emit_swsqrtsf): Ditto. - (ix86_builtin_reciprocal): New function. - (TARGET_BUILTIN_RECIPROCAL): Use it. - (ix86_vectorize_builtin_conversion): Rename from - ix86_builtin_conversion. - (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function. - * doc/invoke.texi (Machine Dependent Options): Add -mrecip to - "i386 and x86_64 Options" section. - (Intel 386 and AMD x86_64 Options): Document -mrecip. - -2007-06-15 Andrew Pinski - Zdenek Dvorak - Richard Guenther - Kaz Kojima - - * tree-vrp.c (compare_values_warnv): Convert val2 to - the type of val1. - (extract_range_from_assert): Create - POINTER_PLUS_EXPR for pointer types. - (extract_range_from_binary_expr): Handle - only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR - for pointer types. - * doc/c-tree.texi (POINTER_PLUS_EXPR): Document. - * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle - POINTER_PLUS_EXPR as PLUS_EXPR. - (number_of_iterations_lt_to_ne): - For pointer types, use sizetype when - creating MINUS_EXPR/PLUS_EXPRs. - (assert_loop_rolls_lt): For pointer types, use sizetype when - creating MINUS_EXPR/PLUS_EXPRs. - (number_of_iterations_le): Likewise. - (expand_simple_operations): POINTER_PLUS_EXPR are simple also. - (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just - like PLUS_EXPR and MINUS_EXPR. - * tree-pretty-print.c (dump_generic_node): Handle - POINTER_PLUS_EXPR. - (op_prio): Likewise. - (op_symbol_1): Likewise. - * optabs.c (optab_for_tree_code): Likewise. - * tree-ssa-loop-manip.c (create_iv): Handle pointer base - specially. - * tree-tailcall.c (process_assignment): Mention - POINTER_PLUS_EXPR in a TODO comment. - * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or - MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR - not used with a pointer and an integer type. - * tree-scalar-evolution.c (add_to_evolution_1): Convert the - increment using chrec_convert_rhs instead of chrec_convert. - (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like - PLUS_EXPR except for the right hand side's type will be - sizetype. - (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR. - (fold_used_pointer_cast): Kill. - (pointer_offset_p): Kill. - (fold_used_pointer): Kill. - (pointer_used_p): Kill. - (analyze_scalar_evolution_1 ): Don't - call fold_used_pointer. - (instantiate_parameters_1): Convert the increment - using chrec_convert_rhs instead of chrec_convert. - Handle POINTER_PLUS_EXPR as PLUS_EXPR. - * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR - instead of PLUS_EXPR. - (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of - PLUS_EXPR for pointers. - (std_gimplify_va_arg_expr): Likewise. - (fold_builtin_memory_op): Likewise. - (fold_builtin_strstr): Likewise. - (fold_builtin_strchr): Likewise. - (fold_builtin_strrchr): Likewise. - (fold_builtin_strpbrk): Likewise. - (expand_builtin_memory_chk): Likewise. - (fold_builtin_memory_chk): Likewise. - (std_expand_builtin_va_start): Use - sizetype for the call to make_tree and then convert - to the pointer type. - (fold_builtin_memchr): Use POINTER_PLUS_EXPR - instead of PLUS_EXPR for adding to a pointer. - (std_gimplify_va_arg_expr): Use fold_build2 for - the creating of POINTER_PLUS_EXPR. For the BIT_AND_EXPR, cast - the operands to sizetype first and then cast the BIT_AND_EXPR - back to the pointer type. - * fold-const.c (build_range_check): Handle pointer types - specially. - (extract_array_ref): Look for POINTER_PLUS_EXPR instead - of PLUS_EXPR's. Make sure the offset is converted to - sizetype. - (try_move_mult_to_index): Strip the NOPs from the offset. - Remove code argument and replace all uses with PLUS_EXPR. - (fold_to_nonsharp_ineq_using_bound): Handle pointer types - specially. Don't use a pointer type for MINUS_EXPR. - (fold_unary): Handle for (T1)(X op Y), - only p+ as that is the only as that can be handled for - binary operators now. - (fold_binary ): Add folding of - POINTER_PLUS_EXPR. - : Add folding of PTR+INT into - PTR p+ INT. - Don't call try_move_mult_to_index. - : Fold (PTR0 p+ A) - (PTR1 p+ B) - into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into - (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies. - Don't call try_move_mult_to_index. - (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR. - (tree_expr_nonzero_p): Likewise. - (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead - of PLUS_EXPR for the complex expression folding. - * tree-chrec.c (chrec_fold_plus_poly_poly): If the - first chrec is a pointer type, then the second should - be sizetype and not the first's type. - For POINTER_PLUS_EXPR, use a different right hand side type. - Handle POINTER_PLUS_EXPR like PLUS_EXPR. - (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a - different right hand side type. - Handle POINTER_PLUS_EXPR like PLUS_EXPR. - (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR - instead of PLUS_EXPR. - When either operand is zero, convert the other operand. - (chrec_apply): Use chrec_convert_rhs - on the argument x instead of chrec_convert. - (reset_evolution_in_loop): For pointer types, the new_evol - should be sizetype. - (convert_affine_scev): For POINTER_PLUS_EXPR, use a - different right hand side type. - Handle POINTER_PLUS_EXPR like PLUS_EXPR. - (chrec_convert_rhs): New function. - (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a - different right hand side type. - Handle POINTER_PLUS_EXPR like PLUS_EXPR. - * tree-chrec.h (chrec_convert_rhs): New prototype. - (build_polynomial_chrec): For pointer types, the right hand - * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for - POINTER_PLUS_EXPR instead of PLUS_EXPR's. - Remove subtraction case as it is always addition now. - Make sure the offset is converted to sizetype. - (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially. - Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before. - * tree-ssa-loop-ivopts.c (determine_base_object): Abort for - PLUS_EXPR in pointer type. - Handle POINTER_PLUS_EXPR. - (tree_to_aff_combination): Likewise. - (force_expr_to_var_cost): Likewise. - (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR - instead of PLUS_EXPR for pointers. - * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR - instead of PLUS_EXPR of pointer types. - * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR - as PLUS_EXPR. - (check_va_list_escapes): Likewise. - (check_all_va_list_escapes): Likewise. - * dwarf2out.c (loc_descriptor_from_tree_1): - Handle POINT_PLUS_EXPR as a PLUS_EXPR. - * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR. - (string_constant): Likewise. - * tree-ssa-address.c (tree_mem_ref_addr): When adding - the offset to the base, use POINTER_PLUS_EXPR. - (add_to_parts): Convert the index to sizetype. - (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case. - * matrix-reorg.c (collect_data_for_malloc_call): Stmt - will now only be either INDIRECT_REF and POINTER_PLUS_EXPR. - Offset only holds something for PLUS_EXPR. - (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as - a PLUS_EXPR. - (analyze_transpose): POINTER_PLUS_EXPR will only show up now - and not PLUS_EXPR. - (analyze_accesses_for_modify_stmt): Likewise. - Remove comment about the type being integral type as it is - wrong now. - (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as - PLUS_EXPR. - (transform_access_sites): POINTER_PLUS_EXPR will only show up now - and not PLUS_EXPR. - Correct the type which the artimentic is done in (is now - sizetype). - Reindent one loop. - * tree-data-ref.c (split_constant_offset): Handle - POINTER_PLUS_EXPR - * tree-affine.c (tree_to_aff_combination): Likewise. - * c-typeck.c (build_unary_op): For pointers create the increment - as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR - for pointers. - * gimplify.c (gimplify_self_mod_expr): Create a - POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. - (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR. - * tree.def (POINTER_PLUS_EXPR): New tree code. - * tree-predcom.c (ref_at_iteration): If we have a pointer - type do the multiplication in sizetype. - * tree-mudflap.c (mf_xform_derefs_1): Create a - POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. - * tree-ssa-forwprop.c - (forward_propagate_addr_into_variable_array_index): - Don't expect there to be a cast for the index as that - does not exist anymore. - (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR - instead of PLUS_EXPR. - Don't check for the first operand of the POINTER_PLUS_EXPR - was the index as it cannot be. - Call forward_propagate_addr_into_variable_array_index with - the SSA_NAME instead of the statement. - * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR. - (compare_constant): Likewise. - (copy_constant): Likewise. - (compute_reloc_for_constant): Likewise. - (output_addressed_constants): Likewise. - (initializer_constant_valid_p): Likewise. - * tree-ssa.c (tree_ssa_useless_type_conversion_1): - Convert the MIN/MAX of the inner type to the outer - type before comparing them. - * tree-ssa-loop-prefetch.c (idx_analyze_ref): Handle - POINTER_PLUS_EXPR instead of PLUS_EXPR. - (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead - of PLUS_EXPR for pointers. - * tree-inline.c (estimate_num_insns_1): Handle - POINTER_PLUS_EXPR. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): - Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. - (bump_vector_ptr): Create a POINTER_PLUS_EXPR - instead of PLUS_EXPR for the pointer increment statement. - (vect_update_ivs_after_vectorizer): For pointer types, create - POINTER_PLUS_EXPR instead of PLUS_EXPR and also create - MULT_EXPR in sizetype. - (vect_gen_niters_for_prolog_loop): Add a cast when creating - byte_misalign. - * tree-object-size.c (plus_expr_object_size): Handle - POINTER_PLUS_EXPR instead of PLUS_EXPR. Removing all the extra - code which is trying to figure out which side is a pointer and - is the index. - (check_for_plus_in_loops_1): Likewise. - (check_for_plus_in_loops): Likewise. - * c-common.c (pointer_int_sum): Create a - POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers. - * tree-ssa-structalias.c (handle_ptr_arith): Handle - only POINTER_PLUS_EXPR. Removing all the extra - code which is trying to figure out which side is a pointer and - is the index. - * tree-cfg.c (verify_expr): Add extra checking for pointers and - PLUS_EXPR and MINUS_EXPR. - Also add checking to make sure the operands of POINTER_PLUS_EXPR - are correct. - * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype - with make_tree, instead of a pointer type. - * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR - for pointers instead of PLUS_EXPR. - (s390_gimplify_va_arg): Likewise. - * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR - instead of PLUS_EXPR when doing addition on pointer - types. Use sizetype for the second operand. - (spu_gimplify_va_arg_expr): Likewise. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Use - POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was - a pointer. Don't create a BIT_AND_EXPR for pointer types. - * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR - for the pointer addition and also use size_int/sizetype - for the offset. - (ix86_gimplify_va_arg): Likewise. - Perform BIT_AND_EXPR on sizetype arguments. - * config/sh/sh.c (sh_va_start): Call make_tree with sizetype - and convert its result to a pointer type. Use POINTER_PLUS_EXPR - for the pointer additions and also use size_int for the offsets. - (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer - additions and also use size_int for the offsets. Perform - BIT_AND_EXPR on sizetype arguments. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Use - POINTER_PLUS_EXPR for pointers and create the - BIT_AND_EXPR in sizetype. - * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR - instead of PLUS_EXPR for pointer addition. - (rs6000_va_start): Likewise. - Also use sizetype for the offset. - * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR - as PLUS_EXPR/MINUS_EXPR. - (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or - PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR. - Don't use BIT_AND_EXPR on a pointer type, convert the - expression to sizetype first. - * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR - for pointers. - (mips_gimplify_va_arg_expr): Likewise. - Don't create BIT_AND_EXPR in a pointer type. - -2007-06-15 Eric Christopher - - * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc. - (x86_64-*-darwin*): Ditto. - * config/i386/darwin.h (CRTEND_SPEC): New. Add support - for above. - -2007-06-15 Matthew Wilcox - - * doc/extend.texi: Document behavior of __attribute__((aligned)) - on typedefs. - -2007-06-15 Mark Mitchell - - * rtlanal.c (note_stores): Improve documentation. - -2007-06-15 Bernd Schmidt - - * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL, - LOCAL_LABEL_PREFIX): Delete. - * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete. - (bfin_internal_label): Delete. - -2007-06-15 Uros Bizjak - - * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3, - define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128, - otherwise define to LIBGCC2_TF_CEXT. - * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define. - (LIBGCC_TF_CEXT): Ditto. - (TF_SIZE): Ditto. - -2007-06-14 Seongbae Park - - PR rtl-optimization/32339 - * df-scan.c (df_uses_record): Don't modify flags but just add to - it for df_ref_record. - -2007-06-14 Andrew Pinski - - * tree-mudflap.c: Fix whitespace issues. - -2007-06-15 Kazu Hirata - - * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove. - -2007-06-14 Eric Christopher - - * config/i386/sse.md (movdi_to_sse): Rewrite body. - (movv4sf): Use gcc_unreachable instead of abort. - -2007-06-14 Uros Bizjak - - PR target/32268 - * config/i386/sfp-machine.h (CMPtype): New define. - (mach stubs): Use CMPtype instead of int as a return type. - -2007-06-14 Uros Bizjak - - * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c, - config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c, - config/soft-fp/gesf2.c, config/soft-fp/getf2.c, - config/soft-fp/ledf2.c, config/soft-fp/lesf2.c, - config/soft-fp/letf2.c, config/soft-fp/unorddf2.c, - config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c, - config/soft-fp/soft-fp.h: Update from glibc CVS. - -2007-06-14 Bernd Schmidt - - * config/bfin/uclinux.h (MFWRAP_SPEC): New. - -2007-06-14 Rask Ingemann Lambertsen - - PR target/32341 - * config/v850/v850.c: Include dataflow header file. - (substitute_ep_register): Fix typo. - -2007-06-14 Paolo Bonzini - - * configure.ac: Fix earlier checkin. - * configure: Regenerated. - -2007-06-14 Paolo Bonzini - - * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove. - * aclocal.m4: Regenerate. - * configure.ac: Use ACX_PROG_CC_WARNING_OPTS, - ACX_PROG_CC_WARNINGS_ARE_ERRORS, - ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER. - * configure: Regenerate. - * Makefile.in (LOOSE_WARN): Subst loose_warn. - - * Makefile.in (quickstrap): Build libgcc too. - -2007-06-14 Paolo Bonzini - - * configure.ac: Add --enable-checking=df. Explicitly mention that - the variables are initialized as for "release". - * df-core.c: Use it. - * configure: Regenerate. - * config.in: Regenerate. - -2007-06-14 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use - validate_replace_rtx instead of replace_rtx. - (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx. - -2007-06-14 Danny Smith - - * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define. - (DWARF2_UNWIND_INFO): Override default if configured with - SJLJ EH disabled. - * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o. - (ENDFILE_SPEC): Add crtend.o. - * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o. - (ENDFILE_SPEC): Add crtend.o. - (TARGET_USE_JCR_SECTION): Define. - (MD_UNWIND_SUPPORT): Define for 32-bit target. - - * config/i386/cygming-crtbegin.c: New file. - * config/i386/cygming-crtend.c: New file. - -2007-06-14 Pascal Obry Pascal Obry - - * config/i386/w32-unwind.h: New file. - -2007-06-13 Eric Christopher - - * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let - the user set a value below STACK_BOUNDARY. - -2007-06-13 Thiemo Seufer - - * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always - imply -lpthread for -pthread. - -2007-06-13 Kazu Hirata - - * basic-block.h: Remove the prototype for - free_basic_block_vars. - * cfglayout.h: Remove the prototype for - insn_locators_initialize. - * tree.h: Remove the prototype for emit_line_note. - - * tree-ssa-pre.c (mergephitemp): Remove. - (init_pre): Don't use mergephitemp. - -2007-06-13 Eric Christopher - - * config/i386/i386.c (override_options): If we've specified - an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs. - -2007-06-13 Bob Wilson - - * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM - is defined. - -2007-06-13 Bernd Schmidt - - * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem. - * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant. - (eh_store_handler): New pattern. - (eh_return): Emit it instead of a plain move. - -2007-06-13 Uros Bizjak - - * config/i386/i386.c (ix86_init_mmx_sse_builtins) - [__builtin_infq, __builtin_fabsq]: Define usign def_builtin. - [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using - def_builtin_const. - -2007-06-13 Bernd Schmidt - - * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables. - (find_next_insn_start, find_load): New functions. - (bfin_reorg): Use them to deal with the fact that parallel insns are - no longer represented as a SEQUENCE. - -2007-06-13 Eric Botcazou - - * config/sparc/sparc.c (sparc_override_options): Initialize - fpu mask correctly. - -2007-06-13 Dave Korn - - * config/i386/i386.c (ix86_eax_live_at_start_p): Use df_get_live_out. - -2007-06-13 Kazu Hirata - - * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S, - config/sh/divcost-analysis, dbgcnt.def, df-core.c, - df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c, - tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c, - tree-vect-transform.c: Fix comment typos. Follow spelling - conventions. - -2007-06-12 Seongbae Park - - * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer - to the exit block use set. - (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". - * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode. - * config/sparc/sparc.c (sparc_check_64): Check df != NULL. - -2007-06-12 Seongbae Park - - * opts.c (common_handle_option): Handle new option -fdbg-cnt-list. - * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value - to indicate an error. - (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters): - New functions. - (dbg_cnt_process_opt): Print an error on a bad argument. - * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration. - * common.opt (-fdbg-cnt-list): New. - * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New. - -2007-06-12 Eric Botcazou - - * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything - flag on ref-all pointers. - -2007-06-12 Andrew Pinski - - PR middle-end/31579 - * expr.c (expand_expr_addr_expr_1): Call expand_expr - for the offset with the modifier as EXPAND_INITIALIZER - if the modifier is EXPAND_INITIALIZER. - (expand_expr_real_1 ): Don't force to - a register if we had an overflow. - -2007-06-12 Kaveh R. Ghazi - - * real.c (real_isfinite): New. - (real_sqrt): Use it. - * real.h (real_isfinite): New. - * builtins.c: Use it. - -2007-06-12 Ian Lance Taylor - Daniel Berlin - - PR libstdc++/29286 - * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR. - * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define. - (CHANGE_DYNAMIC_TYPE_LOCATION): Define. - (DECL_NO_TBAA_P): Define. - (struct tree_decl_common): Add no_tbaa_flag field. - * tree-ssa-structalias.c (struct variable_info): Add - no_tbaa_pruning field. - (new_var_info): Initialize no_tbaa_pruning field. - (unify_nodes): Copy no_tbaa_pruning field. - (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR. - (dump_solution_for_var): Print no_tbaa_pruning flag. - (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all - callers. - (compute_tbaa_pruning): New static function. - (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes. - Call compute_tbaa_pruning. - * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers. - * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR. - * gimple-low.c (lower_stmt): Likewise. - * tree-gimple.c (is_gimple_stmt): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - * tree-inline.c (estimate_num_insns_1): Likewise. - (copy_result_decl_to_var): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag. - * omp-low.c (omp_copy_decl_2): Likewise. - * print-tree.c (print_node): Print DECL_NO_TBAA_P flag. - * doc/c-tree.texi (Expression trees): Document - CHANGE_DYNAMIC_TYPE_EXPR. - -2007-06-12 Kaveh R. Ghazi - - * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation - with !HONOR_NANS and !HONOR_INFINITIES. - * simplify-rtx.c (simplify_binary_operation_1): Likewise. - -2007-06-12 Tristan Gingold - - * gcov.c: Comments updated. - (source_info): Add file_time field. - (source_index): New variable. - (mutiple_files): New variable. - (generate_results): New function extracted from process_file. - (process_file): Save and restore chain of functions, generate - results and free structures only if not merging results. - (release_structures): File names are now freed in create_file_names - (create_file_names): Free previous file names. - (find_source): File date is now read here and modifications in - source files is checked here. - (read_graph_file): Only reverse order of functions for the current - object file. - (make_gcov_file_name): Do not generate long names if input_name is - NULL. - (output_lines): If merging results do not display graph, data and - runs informations. - Checking source file modification is done in find_source. - - * doc/gcov.texi: Append an s to sourcefile. - -2007-06-12 Bernd Schmidt - - * config/bfin/bfin.md (UNSPEC_NOP): New constant. - (forced_nop): New pattern. - * config/bfin/bfin.c: Include "df.h". - (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live. - (bfin_discover_loop): Use df_get_live_in instead of - global_live_at_start. - (bfin_reorder_loops): Pass 0 to cfg_layout_initialize. Call - df_analyze when done. - (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on - the insns. Use QImode for the final insn in a bundle. Call - df_insn_rescan on generated NOPs; use gen_forced_nop instead of - gen_nop. - (reorder_var_tracking_notes): New function. - (bfin_reorg): Pass no argument to split_all_insns. Don't call - update_life_info. Call df_analyze after scheduling and bundle - generation. Call reorder_var_tracking_notes if generating these - notes. Call df_finish_pass at the end. - -2007-06-12 Dirk Mueller - - * optabs.c (debug_optab_libfuncs): fix gcc_assert to - a comparison, not an assignment. - -2007-06-12 Olivier Hainque - - * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR. - Request walking the subtrees only, leaving the current is_lhs/val_only - untouched. - (convert_non_local_reference): Likewise. - -2007-06-12 Nathan Sidwell - - * config/m68k/m68k-devices.def (52221, 52223, 5253): New. - -2007-06-12 Richard Guenther - - PR tree-optimization/15353 - PR tree-optimization/31657 - * passes.c (init_optimization_passes): Add pass_tree_ifcombine. - * timevar.def: Add TV_TREE_IFCOMBINE. - * tree-pass.h (pass_tree_ifcombine): Declare. - * tree-ssa-ifcombine.c: New file. - * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export. - * tree-flow.h (blocks_in_phiopt_order): Declare. - * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o. - (tree-ssa-ifcombine.o): New dependencies. - -2007-06-12 Uros Bizjak - - PR rtl-optimization/32293 - * combine.c (simplify_if_then_else): Truncate return from - nonzero_bits() to correct mode. - -2007-06-12 Uros Bizjak - - * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c) - into a*cbrt(c/b) if flag_unsafe_math_optimizations is set. - -2007-06-11 Diego Novillo - - * Makefile.in (reload1.o-warn): Remove. - -2007-06-11 Seongbae Park - - * combine.c (subst): Use reg_overlap_mentioned_p - instead of comparing register numbers directly. - -2007-06-11 Kenneth Zadeck - - * reload1.c (mark_home_live_1): Use the mode parameter. - -2007-06-11 Kenneth Zadeck - - * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all, - df_process_deferred_rescans, df_notes_rescan): Fixed spelling of - word "deferred". - * df-core.c: Ditto. - -2007-06-11 Daniel Berlin - - * Merge dataflow-branch into mainline (see ChangeLog.dataflow) - -2007-06-11 Uros Bizjak - - * config/i386/i386.md ("*movtf_internal): Penalize moves to and - from integer registers. - (FP mode splitters): Handle TFmode. - -2007-06-11 Eric Botcazou - - * tree-ssa-structalias.c (find_what_p_points_to): Return false - for ref-all pointers that point-to anything. - -2007-06-11 Joseph Myers - - * config/arm/arm.c (arm_output_dwarf_dtprel, - TARGET_ASM_OUTPUT_DWARF_DTPREL): New. - -2007-06-11 Bernd Schmidt - - * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn, - movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant - to memory moves. - -2007-06-11 Rafael Avila de Espindola - - * tree.c (signed_or_unsigned_type_for): New. - (unsigned_type_for): Use signed_or_unsigned_type_for. - (signed_type_for): Use signed_or_unsigned_type_for. - * tree.h (signed_or_unsigned_type_for): New. - (get_signed_or_unsigned_type): Remove. - * fold-const.c (fold_negate_expr): Use signed_type_for instead of - lang_hooks.types.signed_type - (size_diffop): Likewise. - (all_ones_mask_p): Likewise. - (build_range_check): Likewise. - (fold_cond_expr_with_comparison): Likewise. - (fold_cond_expr_with_comparison): Likewise. - (unextend): Likewise. - (extract_muldiv_1): Likewise. - (fold_single_bit_test_into_sign_test): Likewise. - (fold_binary): Likewise. - (fold_ternary): Likewise. - (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for - instead of get_signed_or_unsigned_type. - * c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove. - (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. - * expr.c (signed_or_unsigned_type_for): Use - signed_or_unsigned_type_for instead of get_signed_or_unsigned_type. - * langhooks.c (get_signed_or_unsigned_type): Remove. - (lhd_signed_or_unsigned_type): Remove. - * langhooks.h (lang_hooks_for_types): Remove signed_type and - signed_or_unsigned_type. - (lhd_signed_or_unsigned_type): Remove. - * expmed.c (make_tree): Use signed_type_for instead of - lang_hooks.types.signed_type. - * c-common.c (same_scalar_type_ignoring_signedness): Use - c_common_signed_type instead of lang_hooks.types.signed_type. - (c_common_unsigned_type): New. - (c_common_signed_type): Just call c_common_signed_or_unsigned_type. - (shorten_compare): Use c_common_unsigned_type instead of - c_common_signed_or_unsigned_type. - (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of - unsigned_type_for. - * convert.c (convert_to_integer): Use signed_type_for instead of - lang_hooks.types.signed_type. - * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove. - (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and - LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE. - * c-format.c (check_format_types): Use c_common_unsigned_type - instead of unsigned_type_for. - * c-decl.c (groakdeclarator): Likewise. - * c-typeck.c (convert_for_assignment): Likewise. - * c-common.h (c_common_unsigned_type): New. - -2007-06-11 Uros Bizjak - - PR target/32280 - * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ... - * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here. - -2007-06-11 Uros Bizjak - - PR middle-end/32279 - * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c) - into a*sqrt(c/b) if flag_unsafe_math_optimizations is set. - -2007-06-10 Jan Sjodin - Sebastian Pop - - * lambda-code.c (remove_iv): New. - (lambda_loopnest_to_gcc_loopnest): Use remove_iv. - -2007-06-10 Zdenek Dvorak - - * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL. - * tree-predcom.c (mark_virtual_ops_for_renaming): Exported. - * tree-ssa-loop-prefetch.c: Include optabs.h. - (FENCE_FOLLOWING_MOVNT): New macro. - (struct mem_ref): Add independent_p and storent_p fields. - (record_ref): Initalize the new fields. - (gather_memory_references_ref): Return true if the reference - could be analysed. - (gather_memory_references): Check whether all memory accesses - in loop were recorded. - (should_issue_prefetch_p): Return false for nontemporal stores. - (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop, - may_use_storent_in_loop_p, mark_nontemporal_stores): New functions. - (determine_loop_nest_reuse): Detect independent memory references. - (loop_prefetch_arrays): Call mark_nontemporal_stores. - * tree-flow.h (mark_virtual_ops_for_renaming): Declare. - * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency. - * config/i386/i386.h (x86_mfence): Declare. - (FENCE_FOLLOWING_MOVNT): Return x86_mfence. - * config/i386/i386.c (x86_mfence): New variable. - (ix86_init_mmx_sse_builtins): Initialize x86_mfence. - - * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores. - * optabs.c (init_optabs): Initialize storent_optab. - * optabs.h (enum optab_index): Add OTI_storent. - (storent_optab): Declare. - * genopinit.c (optabs): Add initialization for storent_optab. - * tree.h (MOVE_NONTEMPORAL): New macro. - * expr.c (expand_assignment, store_expr, store_constructor_field, - store_constructor, store_field, expand_expr_real_1): Propagate - nontemporality of the expanded store. - (emit_storent_insn): New function. - * expr.h (expand_assignment, store_expr): Declaration changed. - * function.c (assign_parm_setup_reg): Pass false as nontemporality - to expand_assignment. - * stmt.c (expand_asm_expr): Ditto. - * calls.c (initialize_argument_information): Pass false as - nontemporality to store_expr. - * config/i386/sse.md (storentv4sf, storentv2df, storentv2di, - storentsi): New. - -2007-06-09 Daniel Berlin - - * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd - parameter, use it. - (find_what_p_points_to): Pass new parameter to set_uids_in_ptset. - -2007-06-09 Daniel Berlin - - * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b, - and allow DECL_P here. - -2007-06-09 Zdenek Dvorak - - * tree-scalar-evolution.c (follow_ssa_edge_in_rhs, - follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise - track of the size of the expression. - * cfghooks.c (merge_blocks): Remove block from loops structure only - after call of the merge_blocks hook. - -2007-06-09 Tom Tromey - - * c-decl.c (grokdeclarator): Added 'deprecated_state' argument. - (deprecated_state): Removed. - (start_decl): Update. - (enum deprecated_states): Moved earlier. - (groktypename): Update. - (push_parm_decl): Likewise. - (grokfield): Likewise. - (start_function): Likewise. - -2007-06-09 Ian Lance Taylor - - PR tree-optimization/32169 - * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and - CONVERT_EXPR, check whether min and max both converted to an - overflow infinity representation. - -2007-06-08 Eric Botcazou - - * reload1.c (fixup_abnormal_edges): Clear bb field for insns - not inserted on the edge. - -2007-06-08 Bob Wilson - - * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide - instructions if they are supported. - (__divsi3, __umodsi3, __modsi3): Likewise. - (__ashldi3, __ashrdi3, __lshrdi3): New. - * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions. - -2007-06-08 Harsha Jagasia - Tony Linthicum - - * doc/invoke.texi: Add fvect-cost-model flag. - * common.opt (fvect-cost-model): New flag. - * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside - cost fields in stmt_vec_info struct for STMT. - * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost - fields in stmt_vec_info struct and access functions for the same. - (TARG_COND_BRANCH_COST): Define cost of conditional branch. - (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding - load, store and vector to scalar operation. - (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation. - (TARG_VEC_LOAD_COST): Define cost of aligned vector load. - (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load. - (TARG_VEC_STORE_COST): Define cost of vector store. - (vect_estimate_min_profitable_iters): Define new function. - * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time - check to evaluate if loop iterations are less than minimum profitable - iterations determined by cost model or minimum vect loop bound defined - by user, whichever is more conservative. - * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a - run-time check to evaluate if loop iterations are less than minimum - profitable iterations determined by cost model or minimum vect loop - bound defined by user, whichever is more conservative. - (vect_estimate_min_profitable_iterations): New function to estimate - mimimimum iterartions required for vector version of loop to be - profitable over scalar version. - (vect_model_reduction_cost): New function. - (vect_model_induction_cost): New function. - (vect_model_simple_cost): New function. - (vect_cost_strided_group_size): New function. - (vect_model_store_cost): New function. - (vect_model_load_cost): New function. - (vectorizable_reduction): Call vect_model_reduction_cost during - analysis phase. - (vectorizable_induction): Call vect_model_induction_cost during - analysis phase. - (vectorizable_load): Call vect_model_load_cost during analysis phase. - (vectorizable_store): Call vect_model_store_cost during analysis phase. - (vectorizable_call, vectorizable_assignment, vectorizable_operation, - vectorizable_promotion, vectorizable_demotion): Call - vect_model_simple_cost during analysis phase. - -2007-06-08 Simon Baldwin - - * reg-stack.c (get_true_reg): Readability change. Moved default case - label into direct switch statement scope. - -2007-06-08 Simon Baldwin - - * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment - in gcc_assert() with '==' comparison. - -2007-06-08 Uros Bizjak - - * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and - TARGET_ABM handling of x86_popcnt variable. - -2007-06-08 Uros Bizjak - - * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq, - __builtin_copysignq and __builtin_infq built-in functions. - -2007-06-08 Uros Bizjak - - * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in - SSE4.2 section. Correct built-in function names in SSE4A section. - -2007-06-08 Uros Bizjak - - PR tree-optimization/32243 - * tree-vect-transform.c (vectorizable_type_promotion): Move check - for ncopies after ratio check between nunits_out and nunits_in. - (vectorizable_type_demotion): Remove single-use variable "scalar_type". - -2007-06-08 Dorit Nuzman - - PR tree-optimization/32224 - * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail - vectorization upon a non GIMPLE_MODIFY_STMT. - -2007-06-08 Christian Bruel - - PR target/29953 - * config/sh/sh.md (doloop_end): New pattern and splitter. - * loop-iv.c (simple_rhs_p): Check for hardware registers. - -2007-06-08 Zdenek Dvorak - - PR middle-end/32209 - * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New - functions. - (verify_dominators): Do not change dominance tree. - -2007-06-08 Kaz Kojima - - * config/sh/constraints.md: New file. - * config/sh/sh.c: Include tm-constrs.h. - (reg_class_from_letter): Remove. - (prepare_cbranch_operands): Use satisfies_constraint_* - function instead of macro. - (andcosts, broken_move, sh_secondary_reload): Likewise. - * config/sh/predicates.md (trapping_target_operand): Likewise. - (and_operand, arith_operand, arith_reg_or_0_operand, - cmp_operand, logical_operand, target_operand, - ua_address_operand, ua_offset, xor_operand): Likewise. - * config/sh/sh.md: Include constraints.md. - (*movsicc_t_false): Use satisfies_constraint_* function - instead of macro. - (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m, - lshrsi3_k, movsi_const_16bit+2, *movhi_media+1, - movdi_const_16bit+1, beq, bne, *ptb): Likewise. - * config/sh/sh.h (reg_class_from_letter): Remove prototype. - (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter. - (REG_CLASS_FROM_CONSTRAINT): Remove. - (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I, - CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K, - CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M, - CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P, - CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. - (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_* - function instead of macro. - (SECONDARY_INPUT_RELOAD_CLASS): Likewise. - (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A, - EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B, - EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove. - (IS_PC_RELATIVE_LOAD_ADDR_P): New macro. - (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise. - (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise. - (IS_NON_EXPLICIT_CONSTANT_P): Likewise. - (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W, - EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C, - EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0, - EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S, - EXTRA_CONSTRAINT_STR): Likewise. - (GO_IF_LEGITIMATE_INDEX): Fix indentation. - -2007-06-07 Geoffrey Keating - - * config/i386/darwin.h (STACK_BOUNDARY): Define. - -2007-06-07 Simon Martin - - PR c++/30759 - * c-common.h (flag_cpp0x): Replaced by... - (cxx_dialect): ... this new variable specifying the C++ dialect that - is used. - * c-common.c (flag_cpp0x): Removed. - (cxx_dialect): Defined. - * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of - cxx_dialect. - * c-opts.c (c_common_post_options): Likewise. - (set_std_cxx98): Set cxx_dialect to cxx98. - (set_std_cxx0x): Set cxx_dialect to cxx0x. - -2007-06-07 Geoffrey Keating - Hui-May Chang - - * doc/invoke.texi (Darwin Options): Update documentation for - -mmacosx-version-min. - * config.gcc (*-*-darwin*): Set extra_gcc_objs. - * config/darwin-driver.c: New file. - * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New. - * config/t-darwin (darwin-driver.o): New rule. - - * config/darwin-c.c (version_as_macro): Ignore low digit. - -2007-06-07 Uros Bizjak - - * config/i386/i386.md (standard sse constant splitter): Handle TFmode. - (negtf2, abstf2, *absnegtf2_sse): New insn patterns. - (CSGNMODE): New mode macro. - (CSGNVMODE): New mode attribute. - (copysign3): Rename from copysingsf3 and copysigndf3. Macroize - expander using CSGNMODE mode macro. Handle TFmode. - (copysign3_const): Rename from copysignsf3_const and - copysigndf3_const. Macroize pattern using CSGNMODE mode macro. - Handle TFmode. - (copysign3_var): Rename from copysignsf3_var and - copysigndf3_var. Macroize pattern using CSGNMODE mode macro. - Handle TFmode. - (copysign3_var splitter): Macroize pattern using CSGNMODE - mode macro. Handle TFmode. - * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns. - (iortf3, *iortf3): Ditto. - (xortf3, *xortf3): Ditto. - * config/i386/i386.c (ix86_build_signbit_mask): Create scalar - TFmode and TImode masks. - (ix86_expand_copysign): Expand TFmode copysign insn. - (IX86_BUILTIN_INFQ): New. - (IX86_BUILTIN_FABSQ): Ditto. - (IX86_BUILTIN_COPYSIGNQ): Ditto. - (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition. - [__builtin_fabsq]: Ditto. - [__builtin_copysignq]: Ditto. - (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin. - [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin(). - [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using - ix86_expand_binop_builtin(). - -2007-06-07 Bob Wilson - - * config/xtensa/lib1funcs.asm: Clean up whitespace. - -2007-06-07 Steve Ellcey - - PR target/31850 - * rtl.h (push_to_sequence2): New. - * emit-rtl.c (push_to_sequence2): New. - * function.c (assign_parm_data_all): Add new fields. - (assign_parm_setup_block): Call push_to_sequence2 instead of - push_to_sequence. - (assign_parm_setup_reg): Ditto. - (assign_parm_setup_stack): Ditto. - (assign_parms_unsplit_complex): Ditto. - (assign_parms): Change field name. - -2007-06-07 Zdenek Dvorak - - PR tree-optimization/32220 - * tree-predcom.c (eliminate_temp_copies): Handle the case that loop - phi node is reached before defining statement. - -2007-06-06 Andrew Pinski - - PR tree-opt/32231 - * tree-vect-transform.c (vectorizable_call): Call update_stmt - after changing the right hand side of the assignment. - -2007-06-06 Eric Christopher - - * config.gcc (i?86-*-darwin*): Remove arch parameter. - (x86_64-*-darwin*): Ditto. - * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define. - (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. - -2007-06-06 Thomas Neumann - - * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the - coding conventions. - (add_key): Likewise. - * tree-ssa.c (init_tree_ssa): Use type safe memory macros. - * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as - variable names. - * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory - macros. - (add_cost_one_coalesce): Likewise. - * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as - variable names. Rename orig to orig_name for consistency. - * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the - coding conventions. - (cprop_into_successor_phis): Avoid using C++ keywords as variable - names. - (record_equivalences_from_stmt): Likewise. - * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to - the coding conventions. - (memory_ssa_name_same): Likewise. - (dse_optimize_stmt): Likewise. - (dse_record_phis): Likewise. - (dse_finalize_block): Likewise. - * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++ - keywords as variable names. - (may_move_till): Cast according to the coding conventions. - (force_move_till_expr): Avoid using C++ keywords as variable names. - (force_move_till): Cast according to the coding conventions. - (memref_hash): Likewise. - (memref_eq): Likewise. - (gather_mem_refs_stmt): Likewise. - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid - using C++ keywords as variable names. - (idx_find_step): Cast according to the coding conventions. - (idx_record_use): Likewise. - (find_depends): Likewise. - (prepare_decl_rtl): Likewise. - (mbc_entry_hash): Likewise. - (mbc_entry_eq): Likewise. - * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp. - (simplify_replace_tree): Avoid using C++ keywords as variable names. - (idx_infer_loop_bounds): Cast according to the coding conventions. - * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise. - * tree-ssa-math-opts.c (occ_new ): Likwise. - * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory - macros. - * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as - variable names. - (add_use_op): Likewise. - (add_vop): Likewise. - (add_vuse_op): Likewise. - (add_vdef_op): Likewise. - (get_expr_operands): Likewise. - (push_stmt_changes): Use type safe memory macros. - * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++ - keywords as variable names. - (conditional_replacement): Likewise. - (minmax_replacement): Likewise. - (abs_replacement): Likewise. - * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the - coding conventions. - (insert_fake_stores): Avoid using C++ keywords as variable names. - * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding - conventions. - * tree-ssa-structalias.c (heapvar_lookup): Likewise. - (heapvar_insert): Use type safe memory macros. - (new_var_info): Cast according to the coding conventions. - (new_constraint): Likewise. - (remove_preds_and_fake_succs): Use type safe memory macros. - * tree-ssa-threadupdate.c (thread_block): Cast according to the coding - conventions. - (thread_single_edge): Likewise. - (thread_through_loop_header): Likewise. - -2007-06-06 Eric Christopher - - * config/i386/i386.c (override_options): Move handling - of TARGET_SUBTARGET* earlier. - -2007-06-06 Paolo Bonzini - - * genmodes.c (tagged_printf, emit_insn_modes_h): Don't - use %n on printf. - -2007-06-06 Zdenek Dvorak - - * haifa-sched.c (restore_bb_notes): Clear bb field of the notes - emited outside of basic block. - * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between - the created blocks. - * rtl.h (delete_insn_chain): Declaration changed. - * cfgrtl.c (delete_insn_chain): Add option to clear bb field for - non-removed insns. - (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain. - (delete_insn_chain_and_edges, try_redirect_by_replacing_jump, - rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false - to delete_insn_chain. - (rtl_verify_flow_info_1): Verify that the insns in header and footer - do not have bb field set. - (rtl_verify_flow_info): Verify that insns between basic blocks do not - have bb field set. - * recog.c (peephole2_optimize): Add argument to delete_insn_chain call. - * cfgcleanup.c (try_optimize_cfg): Ditto. - -2007-06-06 Thomas Neumann - - * lambda-code.c (struct lambda_lattice_s): Add a name to the struct. - (lambda_body_vector_new): Use type safe memory macros. - (lambda_linear_expression_new): Likewise. - (lambda_loopnest_new): Likewise. - (lambda_lattice_new): Likewise. - (replace_uses_equiv_to_x_with_y): Cast according to the coding - conventions. Use type safe memory macros. - * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct. - (lambda_body_vector_s): Likewise. - * lambda-mat.c (lambda_matrix_new): Use type safe memory macros. - * lambda-trans.c (lambda_trans_matrix_new): Likewise. - -2007-06-06 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2 - if we need to schedule cfg_cleanup. - (tree_ssa_forward_propagate_single_use_vars): Do so. - -2007-06-06 Ian Lance Taylor - - * fold-const.c (merge_ranges): If range_successor or - range_predecessor fail, just return 0. - -2007-06-06 Uros Bizjak - - PR tree-optimization/32216 - * tree-vectorizer.c (supportable_widening_operation): Determine - signedness of FIX_TRUNC_EXPR from output operand. - (supportable_narrowing_operation): Ditto. - * tree-vect-generic.c (expand_vector_operations_1): Determine - signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR - from input operand. - -2007-06-06 Thomas Neumann - - * config/i386/i386.c (enum pta_flags): Move out of struct scope... - (struct pta): ...from here. Change flags to unsigned to avoid - excessive casting (as it is used as a bit mask). - (override_options): Add casts according to the coding convenventions. - (x86_64_elf_unique_section): Likewise. - (examine_argument): Avoid using C++ keywords as variable names. - (construct_container): Likewise. - (legitimize_pic_address): Likewise. - (get_dllimport_decl): Cast according to the coding conventions. Use - type safe memory macros. - (legitimize_address): Cast according to the coding conventions. - (emit_i387_cw_initialization): Corrected the type of slot to enum - ix86_stack_slot. - (ix86_init_machine_status): Use type safe memory macros. - (bdesc_pcmpestr): Use UNKNOWN instead of integer 0. - (bdesc_pcmpistr): Likewise. - (bdesc_crc32): Likewise. - (bdesc_sse_3arg): Likewise. - (bdesc_2arg): Likewise. - (bdesc_1arg): Likewise. - (ix86_expand_sse_pcmpestr): Cast according to the coding conventions. - (ix86_expand_sse_pcmpistr): Likewise. - (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0. - (ix86_builtin_vectorized_function): Change the type of fn to unsigned - int to match the langhook definition. - (ix86_builtin_conversion): Change the type of code to unsigned init to - match the langhook definition. - (ix86_preferred_reload_class): Avoid using C++ keywords as variable - names. - (ix86_preferred_output_reload_class): Likewise. - (ix86_cannot_change_mode_class): Likewise. - (ix86_memory_move_cost): Likewise. - (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to - avoid excessive casting later on. - (x86_output_mi_thunk): Avoid using C++ keywords as variable names. - -2007-06-06 Uros Bizjak - - * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm - as flags setting insn. - (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn. - -2007-06-06 Uros Bizjak - - * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove. - (UNSPEC_ROUND): New. - ("sse4_1_round2"): New insn pattern. - ("rint2"): Expand using "sse4_1_round2" pattern for - SSE4.1 targets. - ("floor2"): Rename from floordf2 and floorsf2. Macroize - expander using SSEMODEF mode macro. Expand using - "sse4_1_round2" pattern for SSE4.1 targets. - ("ceil2"): Rename from ceildf2 and ceilsf2. Macroize - expander using SSEMODEF mode macro. Expand using - "sse4_1_round2" pattern for SSE4.1 targets. - ("btrunc2"): Rename from btruncdf2 and btruncsf2. Macroize - expander using SSEMODEF mode macro. Expand using - "sse4_1_round2" pattern for SSE4.1 targets. - * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use - UNSPEC_ROUND instead of UNSPEC_ROUNDP. - ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of - UNSPEC_ROUNDS. - -2007-06-06 Jan Sjodin - Sebastian Pop - - * lambda.h (build_linear_expr): New. - * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression): - Use build_linear_expr, call fold and force_gimple_operand. - (lambda_loopnest_to_gcc_loopnest): Check that there is - something to insert. - * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New. - -2007-06-05 Joerg Wunsch - - PR preprocessor/23479 - * doc/extend.texi: Document the 0b-prefixed binary integer - constant extension. - -2007-06-05 Uros Bizjak - - PR tree-optimization/32215 - * tree-vectorizer.c (supportable_widening_operation): Return false - for unsupported FIX_TRUNC_EXPR tree code. - (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code. - -2007-06-06 Nathan Froyd - - * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch - register on SPE targets. Change documentation to reflect - reality. - * config/rs6000/rs6000.c (rs6000_conditional_register_usage): - Change FIXED_SCRATCH to 14 and document why we're keeping r14 - out of the register allocation pool. - (rs6000_reg_live_or_pic_offset_p): New function. - (rs6000_emit_prologue): Move the actual saving of LR up to free - r0 for holding r11. Split saving of SPE 64-bit registers into - its own case. Ensure that offsets will always be in-range for - 'evstdd' by using r11 as a scratch register to point at the start - of the SPE save area. Save r11 if necessary, as it is the static - chain register. - (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers - into its own case. Ensure that offsets will always be in-range - for 'evldd' by using r11 as a scratch register to point at the - start of the SPE save area. Also adjust r11 when restoring - the stack pointer to compensate for pre-loading r11. - -2007-06-05 Thomas Neumann - - * cfg.c (init_flow): Use type safe memory macros. - (alloc_block): Likewise. - (unchecked_make_edge): Likewise. - (dump_flow_info): Avoid using C++ keywords as variable names. - (copy_original_table_clear): Cast according to the coding conventions. - (copy_original_table_set): Likewise. - * cfgexpand (label_rtx_for_bb): Likewise. - (expand_gimple_basic_block): Likewise. - * cfghooks.c (dump_bb): Likewise. - (lv_adjust_loop_header_phi): Avoid using C++ keywords as - variable names. - (lv_add_condition_to_bb): Likewise. - * cfglayout (relink_block_chain): Cast according to the coding - conventions. - (fixup_reorder_chain): Likewise. - (fixup_fallthru_exit_predecessor): Likewise. - * cfgloop.c (glb_enum_p): Likewise. - (get_exit_description): Likewise. - (dump_recorded_exit): Likewise. - * cfgloop.h (enum loop_estimation): Move out of struct scope... - (struct loop): ... from here. - * cfgloopmanip.c (rpe_enum_p): Cast according to the coding - conventions. - * cfgrtl.c (rtl_create_basic_block): Likewise. - (rtl_split_block): Likewise. - (rtl_dump_bb): Likewise. - (cfg_layout_split_block): Likewise. - (init_rtl_bb_info): Use typesafe memory macros. - - * graphds.h (struct graph_edge): Renamed edge to graph_edge. - * graphds.h: Updated all usages of edge to graph_edge. - * graphds.c: Likewise. - * cfgloopanal.c: Likewise. - -2007-06-05 Ian Lance Taylor - - * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a - PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p. - (extract_range_from_assert): Set TREE_NO_WARNING when creating an - expression. - (test_for_singularity): Likewise. - -2007-06-05 H.J. Lu - - * config/i386/constraints.md ("Y2"): Replaced by ... - ("Yt"): This. - * config/i386/i386.md: Likewise. - * config/i386/mmx.md: Likewise. - * config/i386/sse.md: Likewise. - -2007-06-05 H.J. Lu - - * config/i386/constraints.md ("z"): Replaced by ... - ("Y0"): This. - * config/i386/sse.md (sse4_1_blendvpd): Likewise. - (sse4_1_blendvps): Likewise. - (sse4_1_pblendvb): Likewise. - (sse4_2_pcmpestr): Likewise. - (sse4_2_pcmpestrm): Likewise. - (sse4_2_pcmpestr_cconly): Likewise. - (sse4_2_pcmpistr): Likewise. - (sse4_2_pcmpistrm): Likewise. - (sse4_2_pcmpistr_cconly): Likewise. - -2007-06-05 Razya Ladelsky - - * matrix-reorg.c (transform_access_sites): Fix computation. - (transform_allocation_sites): Same. - -2007-06-05 Uros Bizjak - - * config/i386/i386.c (override_options): Use - TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags. - -2007-06-05 Uros Bizjak - - * config/i386/predicates.md (reg_not_xmm0_operand): New predicate. - (nonimm_not_xmm0_operand): Ditto. - * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand" - as operand[0] and operand[1] predicate. Use "nonimm_not_xmm0_operand" - as operand[2] predicate. Require "z" class XMM register for - operand[3]. Adjust asm template. - ("sse4_1_blendvpd"): Ditto. - ("sse4_1_pblendvb"): Ditto. - * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not - force op2 into xmm0 register for variable blend instructions. - -2007-06-04 Tom Tromey - - * c-tree.h (start_enum): Update. - (build_enumerator): Likewise. - * c-decl.c (enum_next_value): Removed. - (enum_overflow): Likewise. - (start_enum): Add c_enum_contents argument. Don't use globals. - (build_enumerator): Likewise. - * c-tree.h (struct c_enum_contents): New struct. - -2007-06-04 Tom Tromey - - * c-common.c (c_common_get_alias_set): Fix indentation. - -2007-06-04 Ian Lance Taylor - - * tree-vrp.c (adjust_range_with_scev): When loop is not expected - to overflow, reduce overflow infinity to regular infinity. - (vrp_var_may_overflow): New static function. - (vrp_visit_phi_node): Check vrp_var_may_overflow. - -2007-06-04 Kazu Hirata - - * stor-layout.c (layout_type): Remove duplicate code. - -2007-06-04 Uros Bizjak - - PR c/32191 - * c-common.c (c_define_builtins): Call targetm.init_builtins () - before build_common_builtin_nodes (). - -2007-06-04 Steve Ellcey - - PR target/31733 - * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier. - -2007-06-04 Jan Hubicka - - * tree-predcom.c (replace_ref_with, initialize_root_vars_lm, - reassociate_to_the_same_stmt): Call build_gimple_modify_stmt - instead of _stat version. - -2007-06-03 Zdenek Dvorak - - PR tree-optimization/32194 - * tree-predcom.c (determine_offset): Check that both references have - the same type. - -2007-06-03 Zdenek Dvorak - - * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge): - Change dom_bbs to vector. Add argument to iterate_fix_dominators call. - * loop-unroll.c (unroll_loop_runtime_iterations): Ditto. - * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector. - Add argument to iterate_fix_dominators call. - (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom. - * gcse.c (hoist_code): Change domby to vector. - * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector. - Add argument to iterate_fix_dominators call. - * loop-doloop.c (doloop_modify): Changed recount_dominator to - recompute_dominator. - * lambda-code.c (perfect_nestify): Ditto. - * cfgloopanal.c: Include graphds.h. - (struct edge, struct vertex, struct graph, dump_graph, new_graph, - add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c. - (mark_irreducible_loops): Use graphds_scc. Remove argument from - add_edge call. - * graphds.c: New file. - * graphds.h: New file. - * dominance.c: Include vecprim.h, pointer-set.h and graphds.h. - (get_dominated_by, get_dominated_by_region): Change return type to - vector. - (verify_dominators): Recompute all dominators and compare the results. - (recount_dominator): Renamed to ... - (recompute_dominator): ... this. Do not check that the block is - dominated by entry. - (iterate_fix_dominators): Reimplemented. - (prune_bbs_to_update_dominators, root_of_dom_tree, - determine_dominators_for_sons): New functions. - * et-forest.c (et_root): New function. - * et-forest.h (et_root): Declare. - * Makefile.in (graphds.o): Add. - (cfgloopanal.o): Add graphds.h dependency. - (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency. - * basic-block.h (get_dominated_by, get_dominated_by_region, - iterate_fix_dominators): Declaration changed. - (recount_dominator): Renamed to ... - (recompute_dominator): ... this. - * tree-ssa-threadupdate.c (thread_block): Free dominance info. - (thread_through_all_blocks): Do not free dominance info. - -2007-06-03 Andreas Schwab - - * config/m68k/m68k.c (override_options): Don't override - REAL_MODE_FORMAT. - * config/m68k/m68k-modes.def (SF, DF): Define to use - motorola_single_format and motorola_double_format, resp. - * real.c (motorola_single_format): Renamed from - coldfire_single_format. - (motorola_double_format): Renamed from coldfire_double_format. - (encode_ieee_extended): Generate a proper canonical NaN image - respecting canonical_nan_lsbs_set. - (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to - true. - * real.h: Adjust declarations. - -2007-06-03 Kaz Kojima - - PR target/32163 - * config/sh/sh.md (symGOT_load): Don't schedule insns when - the symbol is generated with the stack protector. - -2007-06-03 Kazu Hirata - - * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt". - (m68k_get_function_kind): Return m68k_fk_interrupt_handler on - "interrupt". - * doc/extend.texi (interrupt): Mention m68k. - -2007-06-02 Uros Bizjak - - * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call - safe_vector_operand() if input operand is VECTOR_MODE_P operand. - (ix86_expand_sse_pcmpestr): Do not check operands for - "register_operand", when insn operand predicate is "register_operand". - (ix86_expand_sse_pcmpistr): Ditto. - -2007-06-02 H.J. Lu - Uros Bizjak - - * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New. - (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS. - (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string. - (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class. - * config/i386/constraints.md ("z"): New register constraint - for members of SSE_FIRST_REG class. - * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes. - * config/i386/i386.c (regclass_map): Change class of %xmm0 to - SSE_FIRST_REG class. - (put_condition_code) [EQ, NE]: Output suffixes for new compare modes. - (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes. - (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2. - (IX86_BUILTIN_PCMPESTRM128): Likewise. - (IX86_BUILTIN_PCMPESTRA128): Likewise. - (IX86_BUILTIN_PCMPESTRC128): Likewise. - (IX86_BUILTIN_PCMPESTRO128): Likewise. - (IX86_BUILTIN_PCMPESTRS128): Likewise. - (IX86_BUILTIN_PCMPESTRZ128): Likewise. - (IX86_BUILTIN_PCMPISTRI128): Likewise. - (IX86_BUILTIN_PCMPISTRM128): Likewise. - (IX86_BUILTIN_PCMPISTRA128): Likewise. - (IX86_BUILTIN_PCMPISTRC128): Likewise. - (IX86_BUILTIN_PCMPISTRO128): Likewise. - (IX86_BUILTIN_PCMPISTRS128): Likewise. - (IX86_BUILTIN_PCMPISTRZ128): Likewise. - (struct builtin_description): Change "flag" field to unsigned. - (bdesc_pcmpestr): New builtin description table. - (bdesc_pcmpistr): Likewise. - (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int, - v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int. - Initialize pcmp[ei]str[im] insns for SSE4.2. - (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin. - (ix86_expand_sse_pcmpistr): Likewise. - (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2. - * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2. - (UNSPEC_PCMPISTR): Likewise. - * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter. - (sse4_2_pcmpestri):New isns pattern. - (sse4_2_pcmpestrm): Likewise. - (sse4_2_pcmpestr_cconly): Likewise. - (sse4_2_pcmpistr): New insn patern and splitter. - (sse4_2_pcmpistri):New isns pattern. - (sse4_2_pcmpistrm): Likewise. - (sse4_2_pcmpistr_cconly): Likewise. - * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics - in SSE4.2. - -2007-06-01 David Daney - - * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not - LOADGP_ABSOLUTE and not binds_local_p. - -2007-06-01 Geoffrey Keating - - * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker. - -2007-06-01 Ian Lance Taylor - - * tree-vrp.c (compare_name_with_value): Always set - used_strict_overflow if we get a result from the variable itself. - -2007-06-01 Ian Lance Taylor - - PR rtl-optimization/31455 - * lower-subreg.c (find_decomposable_subregs): Don't decompose - subregs which have a cast between modes which are not tieable. - -2007-06-01 Uros Bizjak - - * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove - breaks after return statements. - -2007-06-01 Kaz Kojima - - * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg - only after no_new_pseudos. - -2007-05-31 Eric Christopher - - * expr.c (convert_move): Assert that we don't have a BLKmode - operand. - (store_expr): Handle BLKmode moves by calling emit_block_move. - -2007-05-31 Daniel Berlin - - * c-typeck.c (build_indirect_ref): Include type in error message. - (build_binary_op): Pass types to binary_op_error. - * c-common.c (binary_op_error): Take two type arguments, print out - types with error. - * c-common.h (binary_op_error): Update prototype. - -2007-05-31 H.J. Lu - - * config/i386/i386.c: Correct coments on -mno-sse4. - -2007-05-31 H.J. Lu - - * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers. - (x86_64-*-*): Likewise. - * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New. - (OPTION_MASK_ISA_3DNOW_UNSET): Likewise. - (OPTION_MASK_ISA_SSE_UNSET): Likewise. - (OPTION_MASK_ISA_SSE2_UNSET): Likewise. - (OPTION_MASK_ISA_SSE3_UNSET): Likewise. - (OPTION_MASK_ISA_SSSE3_UNSET): Likewise. - (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise. - (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise. - (OPTION_MASK_ISA_SSE4): Likewise. - (OPTION_MASK_ISA_SSE4_UNSET): Likewise. - (OPTION_MASK_ISA_SSE4A_UNSET): Likewise. - (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET. Handle SSE4.2. - (override_options): Support SSE4.2. - (ix86_build_const_vector): Support SImode and DImode. - (ix86_build_signbit_mask): Likewise. - (ix86_expand_int_vcond): Support V2DImode. - (IX86_BUILTIN_CRC32QI): New for SSE4.2. - (IX86_BUILTIN_CRC32HI): Likewise. - (IX86_BUILTIN_CRC32SI): Likewise. - (IX86_BUILTIN_CRC32DI): Likewise. - (IX86_BUILTIN_PCMPGTQ): Likewise. - (bdesc_crc32): Likewise. - (bdesc_sse_3arg): Likewise. - (ix86_expand_crc32): Likewise. - (ix86_init_mmx_sse_builtins): Support SSE4.2. - (ix86_expand_builtin): Likewise. - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define - __SSE4_2__ for -msse4.2. - * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2. - (CRC32MODE): Likewise. - (crc32modesuffix): Likewise. - (crc32modeconstraint): Likewise. - (sse4_2_crc32): Likewise. - (sse4_2_crc32di): Likewise. - * config/i386/i386.opt (msse4.2): New for SSE4.2. - (msse4): Likewise. - * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file. - * config/i386/smmintrin.h: Add SSE4.2 intrinsics. - * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2. - (vcond): Use SSEMODEI instead of SSEMODE124. - (vcondu): Likewise. - * doc/extend.texi: Document SSE4.2 built-in functions. - * doc/invoke.texi: Document -msse4.2/-msse4. - -2007-05-31 Zdenek Dvorak - - PR tree-optimization/32160 - * tree-predcom.c (predcom_tmp_var): New function. Mark created - variable as gimple reg. - (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var. - -2007-05-31 Kazu Hirata - - * gcc.c (main): Don't consider linker options when issuing the - warning about a linker input file not being used. - -2007-05-30 Ralf Wildenhues - - * tree-vrp.c (compare_names): Initialize sop. - -2007-05-30 Dirk Mueller - - * cgraphunit.c (cgraph_analyze_function): Remove - computation of inline parameters. - -2007-05-30 Uros Bizjak - - * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define. - -2007-05-30 Richard Sandiford - - * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file. - Add vx-common.h. Include vxworks.h between vx-common.h and - arm/vxworks.h. - * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before - redefining. - * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise. - (TARGET_ASM_DESTRUCTOR): Likewise. - * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale - instead of arm_is_xscale. Use VXWORKS_OS_CPP_BUILTINS. - (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. - (CC1_SPEC): Add -tstrongarm. Line up backslashes. - (VXWORKS_ENDIAN_SPEC): Define. - (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC. - (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their - VXWORKS_* equivalents. - (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC. - (ASM_FILE_START): Delete. - (TARGET_VERSION): Reformat. - (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define. - (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define. - * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define. - (FPBIT, DPBIT): Define. - (fp-bit.c, dp-bit.c): New rules. - (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs. - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define. - * config/arm/arm-protos.h (arm_emit_call_insn): Declare. - * config/arm/arm.h: Include vxworks-dummy.h. - * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor): - Mark with ATTRIBUTE_UNUSED. - (arm_override_options): Do not allow VxWorks RTP PIC to be used - for Thumb. Force r9 to be the PIC register for VxWorks RTPs and - make it incompatible with -msingle-pic-base. - (arm_function_ok_for_sibcall): Return false for calls that might - go through a VxWorks PIC PLT entry. - (require_pic_register): New function, split out from... - (legitimize_pic_address): ...here. Do not use GOTOFF accesses - for VxWorks RTPs. - (arm_load_pic_register): Handle the VxWorks RTP initialization - sequence. Use pic_reg as a shorthand for cfun->machine->pic_reg. - (arm_emit_call_insn): New function. - (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP. - * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number. - (pic_offset_arm): New pattern. - (call, call_value): Use arm_emit_call_insn. - (call_internal, call_value_internal): New expanders. - * config/arm/lib1funcs.asm (__PLT__): Define to empty for - VxWorks unless __PIC__. - -2007-05-30 Eric Christopher - - * genrecog.c: Include regs.h in generated file. - * genemit.c: Ditto. Fix up formatting. - * config/mn10300/constraints.md: New. - * config/mn10300/mn10300.md: Include. - * config/mn10300/mn10300.c(mn10300_secondary_reload_class): - Fix up for removed macro. - * config/mn10300/predicates.md (call_address_operand): Ditto. - * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_I): Ditto. - (CONST_OK_FOR_J): Ditto. - (CONST_OK_FOR_K): Ditto. - (CONST_OK_FOR_L): Ditto. - (CONST_OK_FOR_M): Ditto. - (CONST_OK_FOR_N): Ditto. - (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto. - (OK_FOR_Q): Ditto. - (OK_FOR_R): Ditto. - (OK_FOR_T): Ditto. - (EXTRA_CONSTRAINT): Ditto. - -2007-05-30 Uros Bizjak - - * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*): - Remove defines. - * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to - OPTION_MASK_ISA_64BIT. - * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*. - -2007-05-30 Richard Guenther - - PR middle-end/32152 - * gimplify.c (gimplify_omp_atomic_pipeline): Use correct - types for comparison. - * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison - with original typed arguments. - * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches. - -2007-05-30 Jakub Jelinek - - PR tree-optimization/31769 - * except.c (duplicate_eh_regions): Clear prev_try if - ERT_MUST_NOT_THROW region is inside of ERT_TRY region. - -2007-05-30 Zdenek Dvorak - - * tree-scalar-evolution.c (scev_const_prop): Do not create labels. - * tree-ssa-sink.c (statement_sink_location): Return basic block and - bsi of the location where statements should be inserted. - (sink_code_in_bb): Take bsi from statement_sink_location. - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels - instead of bsi_start. - * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to - bsi_insert_after. - * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after. - (bsi_move_before): Document inconsistency with bsi_move_after. - (tree_redirect_edge_and_branch): Do not create labels if not necessary. - -2007-05-30 Uros Bizjak - - * config/i386/i386.h (TARGET_ABM): New define. - (TARGET_POPCNT): Ditto. - (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*): - New temporary defines to redefine from OPTION_ISA_* defines. - (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*): - New temporary defines to redefine from OPTION_MASK_ISA_* defines. - (ix86_isa_flags): New extern int declaration. - (TARGET_SUBTARGET_DEFAULT): New define. - (TARGET_SUBTARGET_ISA_DEFAULT): Ditto. - (TARGET_SUBTARGET32_DEFAULT): Ditto. - (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto. - (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto. - * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define. - * config/i386/darwin.h: Change TARGET_64BIT define to - OPTION_ISA_64BIT. - - * config/i386/i386.opt (m3dnowa): Define as undocumented option - using existing "ix86_isa_flags" varible. - (m32, m64): Use existing "ix86_isa_flags" variable. - (mmmx, m3dnow): Ditto. - (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto. - (mabm): Define as non-negative option using "x86_abm" variable. - (mpopcnt): Define as non-negative option using "x86_popcnt" variable. - - * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]: - Rewrite feature test bitmap. - (ix86_isa_flags): New initialized global int varible. - (ix86_isa_flags_explicit): New static int variable. - (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow, - msse, msse2, msse3, msse4.1 and msse4a option is processed. Change - i86_isa_flags and ix86_isa_flags_explicit, not target_flags and - target_flags_explicit. - (override_options): Remove "target_enable" and "target_disable" fields - from "struct ptt". Update processor_target_table accordingly. Remove - PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is - defined and rearrange PTA_* bits. Use "ix86_isa_flags" instead of - "target_flags" and "ix86_isa_flags_explicit" instead of - "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX, - MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*. Set "x86_abm" to true when - PTA_ABM is set in processor_alias_table flags entry. Set "x86_popcnt" - to true when either of PTA_POPCNT or PTA_ABM is set in - processor_alias_table flags entry. Set "x86_prefetch_sse" to true - when either of PTA_PREFETCH_SSE or PTA_SSE is set in - processor_alias_table flags entry. Remove handling of - "target_enable" and "target_disable" fields of processor_target_table. - Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit - targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets. - Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit - targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets. - (def_builtin): Mask "mask" variable with "ix86_isa_flags", not - "target_flags". - (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT. - -2007-05-29 David Daney - - PR gcc/31975 - * config/mips/mips.c (mips_output_mi_thunk): Emit - NOTE_INSN_PROLOGUE_END at beginning of the thunk. - -2007-05-29 Hui-May Chang - * config/i386/i386.c (ix86_function_regparm): Added checking of - ix86_force_align_arg_pointer to determine the number of - register parameters. - -2007-05-29 Zdenek Dvorak - - * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer. - (SET_DR_MISALIGNMENT): New. - * tree-vect-analyze.c (vect_compute_data_ref_alignment, - vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment): - Use SET_DR_MISALIGNMENT. - * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from - pointer. - * tree-data-ref.c (create_data_ref, compute_all_dependences, - find_loop_nest): Export. - * tree-data-ref.h (struct data_reference): Change aux field to pointer. - (create_data_ref, compute_all_dependences, find_loop_nest): Declare. - * tree-ssa-loop-prefetch.c: Include tree-data-ref.h. - (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION): - New macros. - (struct mem_ref): Add field reuse_distance. - (find_or_create_group, record_ref): Use XNEW instead of xcalloc. - Initialize reuse_distance field. - (issue_prefetch_ref): Select temporality of prefetch according to - reuse_distance. - (volume_of_references, volume_of_dist_vector, add_subscript_strides, - self_reuse_distance, determine_loop_nest_reuse): New functions. - (loop_prefetch_arrays): Call determine_loop_nest_reuse. - (tree_ssa_prefetch_arrays): Dump L2 cache size. - * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H - dependency. - -2007-05-29 Daniel Berlin - - * tree-ssa-alias.c: Add aliasing overview. - -2007-05-29 Zuxy Meng - Danny Smith - - PR target/29498 - * config/i386/t-crtfm: Compile crtfastmath.o with - -minline-all-stringops. - * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o. - * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o. - -2007-05-28 John David Anglin - - * doc/md.texi: Document constraints on HP PA-RISC. - - * pa/constraints.md: New file. - * pa.md: Include constraints.md. - * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P. - (integer_store_memory_operand, ldil_cint_p): New functions. - * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare. - * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, - IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove. - * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove. - * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove. - -2007-05-28 Andrew Pinski - - PR c/31339 - * c-typeck.c (build_unary_op ): Return the error_mark_node - if either the real or imaginary parts would an - error_mark_node. - -2007-05-28 Daniel Berlin - - * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA - name when we remove it from a call. - -2007-05-28 Kazu Hirata - - * targhooks.c (default_narrow_bitfield): Remove. - * targhooks.h: Remove the prototype for - default_narrow_bitfield. - - * langhooks-def.h: Remove the prototype for - hook_get_alias_set_0. - * langhooks.c (hook_get_alias_set_0): Remove. - - * global.c (EXECUTE_IF_CONFLICT): Remove. - -2007-05-28 Andrew Pinski - - PR tree-opt/32100 - * fold-const.c (tree_expr_nonnegative_warnv_p): Don't - return true when truth_value_p is true and the type - is of signed:1. - -2007-05-28 Gerald Pfeifer - - * doc/install.texi (Prerequisites): We no longer require Autoconf - 2.13 for the top-level. - -2007-05-28 Uros Bizjak - - * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned - memory access via x86_expand_vector_move_misalign() only for - TImode values on 32-bit targets. - -2007-05-28 Razya Ladelsky - - * matrix-reorg.c: New file. Implement matrix flattening and - transposing optimization. - * tree-pass.h: Add matrix reorg pass. - * common.opt: Add fipa-mreorg flag. - * Makefile.in: Add matrix-reorg.c. - * passes.c: Add matrix reorg pass. - * varpool.c (add_new_static_var): New function. - * cgraph.h (add_new_static_var): Declare. - -2007-05-27 Eric Christopher - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Update - sp_offset depending on stack size. Save r12 depending - on registers we're saving later. - (rs6000_emit_epilogue): Update sp_offset depending only - on stack size. - -2007-05-27 Zdenek Dvorak - - * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL. - * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto. - * ifcvt.c (if_convert): Ditto. - * tree-ssa-threadupdate.c (thread_block): Ditto. - (thread_through_all_blocks): Ditto. Assert that loops were analysed. - * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, - verify_loop_closed_ssa): Check number_of_loops instead of - current_loops. - * predict.c (tree_estimate_probability): Ditto. - * tree-if-conv.c (main_tree_if_conversion): Ditto. - * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. - * modulo-sched.c (sms_schedule): Ditto. - * tree-scalar-evolution.c (scev_const_prop): Ditto. - (scev_finalize): Do not do anything if scev analysis was not - initialized. - * cfgloopanal.c (mark_irreducible_loops): Do not check whether - current_loops == NULL. - (mark_loop_exit_edges): Check number_of_loops instead of current_loops. - * loop-init.c (loop_optimizer_init): Do not free current_loops when - there are no loops. - (loop_optimizer_finalize): Assert that loops were analyzed. - (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops, - rtl_doloop): Check number_of_loops instead of current_loops. - * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether - current_loops == NULL. - (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch, - gate_tree_vectorize tree_linear_transform, check_data_deps, - tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, - tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts): - Check number_of_loops instead of current_loops. - (tree_ssa_loop_done): Do not check whether current_loops == NULL. - * tree-ssa-pre.c (fini_pre): Do not take do_fre argument. Always - free loops if available. - (execute_pre): Do not pass do_fre to fini_pre. - -2007-05-27 Tobias Burnus - - PR middle-end/32083 - * real.c (mpfr_from_real): Fix sign of -Inf. - -2007-05-27 H.J. Lu - - * tree-vect-transform.c (vectorizable_conversion): Initialize - tree_code variables to ERROR_MARK. - (vectorizable_type_demotion): Likewise. - (vectorizable_type_promotion): Likewise. - -2007-05-26 Uros Bizjak - - PR target/32065 - * config/i386/i386.md (movti): Handle push operands via - ix86_expand_push(). - -2007-05-26 Kazu Hirata - - * basic-block.h: Remove the prototype for merge_seq_blocks. - * cfgcleanup.c (merge_seq_blocks): Remove. - - * tree-flow.h: Remove the prototype for is_aliased_with. - * tree-ssa-alias.c (is_aliased_with): Remove. - -2007-05-26 H.J. Lu - - * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New. - - * config/i386/i386.c (ix86_expand_sse4_unpack): New. - - * config/i386/sse.md (vec_unpacku_hi_v16qi): Call - ix86_expand_sse4_unpack if SSE4.1 is enabled. - (vec_unpacks_hi_v16qi): Likewise. - (vec_unpacku_lo_v16qi): Likewise. - (vec_unpacks_lo_v16qi): Likewise. - (vec_unpacku_hi_v8hi): Likewise. - (vec_unpacks_hi_v8hi): Likewise. - (vec_unpacku_lo_v8hi): Likewise. - (vec_unpacks_lo_v8hi): Likewise. - (vec_unpacku_hi_v4si): Likewise. - (vec_unpacks_hi_v4si): Likewise. - (vec_unpacku_lo_v4si): Likewise. - (vec_unpacks_lo_v4si): Likewise. - -2007-05-26 Kazu Hirata - - * c-typeck.c, config/arm/arm.c, config/darwin.c, - config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c, - omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and - follow spelling conventions in various - warning/error/diagnostic messages. - - * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c, - df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h, - fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h, - tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c, - tree-vrp.c: Fix comment typos. Follow spelling conventions. - * doc/tm.texi: Follow spelling conventions. - -2007-05-25 Andrew Pinski - - PR tree-opt/32090 - * tree-ssa-forwprop.c - (forward_propagate_addr_into_variable_array_index): Remove - the lhs argument. Use the type of def_rhs instead of lhs. - (forward_propagate_addr_expr_1): Update use of - forward_propagate_addr_into_variable_array_index. - -2007-05-25 Sandra Loosemore - Nigel Stephens - - * config/mips/mips.c (mips_attribute_table): Add "near" and "far" - function attributes, "far" being an alias for "long_call". - (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes. - (mips_near_type_p, mips_far_type_p): New. - (mips_comp_type_attributes): New function to check that attributes - attached to a function type are compatible. - (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than - TARGET_LONG_CALLS when deciding whether we can do a direct sibcall - to the target function of the thunk. - (mips_encode_section_info): Check for "near" and "far" function - attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly. - - * config/mips/predicates.md (const_call_insn_operand): Test only - SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS. - - * doc/extend.texi (Function Attributes): Document MIPS "near" and - "far" attributes. - - * testsuite/gcc.target/mips/near-far-1.c: New test case. - * testsuite/gcc.target/mips/near-far-2.c: New test case. - * testsuite/gcc.target/mips/near-far-3.c: New test case. - * testsuite/gcc.target/mips/near-far-4.c: New test case. - -2007-05-25 Eric Christopher - - * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp - to x86-darwin configurations. - * config/i386/t-darwin: Add softfp support. - * config/i386/t-darwin64: Ditto. - * config/i386/sfp-machine.h: If mach then don't use - aliasing, emit a stub to call. - -2007-05-25 Kazu Hirata - - * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c, - haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c, - tree-predcom.c, tree-ssa-alias-warnings.c, - tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix - comment typos. Follow spelling conventions. - * doc/cpp.texi, doc/invoke.texi: Fix typos. - -2007-05-26 Uros Bizjak - - PR target/32065 - * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of - constants into memory. Expand unaligned memory references for - SSE modes via x86_expand_vector_move_misalign() function. - -2007-05-25 Uros Bizjak - - * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate - "memory" attribute for "sseishft" type insn without operands[2]. - -2007-05-25 Dirk Mueller - Marcus Meissner - - * doc/extend.texi (alloc_size): New attribute. - * c-common.c (handle_alloc_size_attribute): New. - * tree-object-size.c (alloc_object_size): Use alloc_size - attribute, if available. - -2007-05-25 H.J. Lu - - * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it - with MASK_SSE2. - (__builtin_ia32_vec_ext_v2di): Likewise. - (__builtin_ia32_vec_ext_v4si): Likewise. - (__builtin_ia32_vec_ext_v8hi): Likewise. - (__builtin_ia32_vec_ext_v16qi): Likewise. - (__builtin_ia32_vec_set_v8hi): Likewise. - -2007-05-25 H.J. Lu - - * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift. - -2007-05-25 Richard Sandiford - - * config/arm/arm-protos.h (arm_encode_call_attribute): Delete. - (arm_is_longcall_p): Rename to... - (arm_is_long_call_p): ...this. Take a single tree argument and - return a bool. - * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete. - (CUMULATIVE_ARGS): Remove call_cookie. - (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P) - (ENCODED_LONG_CALL_ATTR_P): Delete. - (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and - LONG_CALL_FLAG_CHAR cases. - (ARM_DECLARE_FUNCTION_SIZE): Delete. - * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use - ARM_DECLARE_FUNCTION_SIZE. - * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie. - (arm_function_arg): Return const0_rtx for VOIDmode arguments. - (arm_encode_call_attribute, current_file_function_operand): Delete. - (arm_function_in_section_p): New function. - (arm_is_longcall_p): Rename to... - (arm_is_long_call_p): ...this. Take the target function as a single - argument and return a bool. Do not rely on call cookies. Check - whether the target symbol is in the same section as the current - function, not just the same compilation unit. - (arm_function_ok_for_sibcall): Use arm_is_long_call_p. - (arm_encode_section_info): Don't encode a call type. - * config/arm/arm.md (call, call_value): Update calls to - arm_is_long(_)call_p. Simplify logic. - (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn): - Update calls to arm_is_long(_)call_p. - -2007-05-25 Richard Guenther - - PR tree-optimization/31982 - * tree-ssa-forwprop.c - (forward_propagate_addr_into_variable_array_index): Handle arrays - with element size one. - -2007-05-24 Andrew Pinski - - * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. - (umulsi3_highpart): Likewise. - -2007-05-24 Ian Lance Taylor - - PR rtl-optimization/32069 - * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx - is NULL. - -2007-05-24 Ollie Wild - - * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__ - description. - -2007-05-24 Richard Sandiford - - * postreload-gcse.c (reg_changed_after_insn_p): New function. - (oprs_unchanged_p): Use it to check all registers in a REG. - (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE. - (reg_set_between_after_reload_p): Delete. - (reg_used_between_after_reload_p): Likewise. - (reg_set_or_used_since_bb_start): Likewise. - (eliminate_partially_redundant_load): Use reg_changed_after_insn_p - and reg_used_between_p instead of reg_set_or_used_since_bb_start. - Use reg_set_between_p instead of reg_set_between_after_reload_p. - * rtlanal.c (reg_set_p): Check whether REG overlaps - regs_invalidated_by_call, rather than just checking the - membership of REGNO (REG). - -2007-05-24 Zdenek Dvorak - - * doc/passes.texi: Document predictive commoning. - * doc/invoke.texi (-fpredictive-commoning): Document. - * opts.c (decode_options): Enable flag_predictive_commoning on -O3. - * tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow - adding indices to the generated name. - (schedule_sm): Pass 0 to get_lsm_tmp_name. - * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export. - * tree-pretty-print.c (op_symbol_1): Renamed to ... - (op_symbol_code): ... and exported. - (dump_omp_clause, op_symbol): Use op_symbol_code - instead of op_symbol_1. - * tree-pass.h (pass_predcom): Declare. - * timevar.def (TV_PREDCOM): New timevar. - * tree-ssa-loop.c (run_tree_predictive_commoning, - gate_tree_predictive_commoning, pass_predcom): New. - * tree-data-ref.c (find_data_references_in_loop): Find the - references in dominance order. - (canonicalize_base_object_address): Ensure that the result has - pointer type. - (dr_analyze_innermost): Export. - (create_data_ref): Code to fail for references with invariant - address moved ... - (find_data_references_in_stmt): ... here. - * tree-data-ref.h (dr_analyze_innermost): Declare. - * tree-affine.c: Include tree-gimple.h and hashtab.h. - (aff_combination_find_elt, name_expansion_hash, - name_expansion_eq, tree_to_aff_combination_expand, - double_int_constant_multiple_p, aff_combination_constant_multiple_p): - New functions. - * tree-affine.h (aff_combination_constant_multiple_p, - tree_to_aff_combination_expand): Declare. - * tree-predcom.c: New file. - * common.opt (fpredictive-commoning): New option. - * tree-flow.h (op_symbol_code, tree_predictive_commoning, - stmt_dominates_stmt_p, get_lsm_tmp_name): Declare. - * Makefile.in (tree-predcom.o): Add. - (tree-affine.o): Add TREE_GIMPLE_H dependency. - * passes.c (init_optimization_passes): Add dceloop after - copy propagation in loop optimizer. Add predictive commoning - to loop optimizer passes. - -2007-05-24 H.J. Lu - - * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct - default hook. - -2007-05-24 Jan Hubicka - - * gengenrtl.c (gendecl, gendef): Output the gens annotated for - statistics. - (genheader): Include statistics.h. - - * doc/invoke.texi (-fdump-unnumbered): Update docs when line number - notes are gone. - * print-rtl.c (flag_dump_unnumbered): Update comments. - (print_rtl): Fix my previous change. - * emit-rtl.c (emit_note_before, emit_note_after): Clear out note - specific data. - -2007-05-24 Zdenek Dvorak - - PR middle-end/32018 - * tree-ssa-threadupdate.c (thread_through_loop_header): Use - set_loop_copy. - (thread_through_all_blocks): Call initialize_original_copy_tables - and free_original_copy_tables. - * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge): - Use set_loop_copy. - * tree-cfg.c (tree_duplicate_sese_region): Ditto. - * cfghooks.c (duplicate_block): Use get_loop_copy. - * cfg.c: Include cfgloop.h. - (loop_copy): New hash table. - (initialize_original_copy_tables): Initialize loop_copy table. - (free_original_copy_tables): Free loop_copy table. - (copy_original_table_clear, copy_original_table_set, - set_loop_copy, get_loop_copy): New functions. - (set_bb_original, set_bb_copy): Use copy_original_table_set. - * cfgloop.h (struct loop): Remove copy field. - * Makefile.in (cfg.o): Add CFGLOOP_H dependency. - * basic-block.h (set_loop_copy, get_loop_copy): Declare. - -2007-05-24 H.J. Lu - - * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for - -msse/-msse2/-msse3. - -2007-05-24 H.J. Lu - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark - __builtin_ia32_vec_set_v2di with MASK_64BIT. - -2007-05-24 Danny Smith - - PR target/27067 - * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document. - * targhooks.h (default_mangle_decl_assembler_name): Declare - default hook. - * targhooks.c (default_mangle_decl_assembler_name): Define - default hook. - * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to - default hook. - * target.h (struct gcc_target): Add mangle_decl_assembler_name field. - * langhooks.c (lhd_set_decl_assembler_name): Call - targetm.mangle_decl_assembler_name for names with global scope. - - * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override - default. - (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME. - * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name): - Declare. - * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name): - New. Factored out of i386_pe_encode_section_info. - (gen_stdcall_or_fastcall_suffix): Get name identifier as argument. - Move check for prior decoration of stdcall - symbols to i386_pe_encode_section_info. - (i386_pe_encode_section_info): Adjust call to - gen_stdcall_or_fastcall_suffix. Use - i386_pe_maybe_mangle_decl_assembler_name, if needed. - (i386_pe_mangle_decl_assembler_name): New. Wrap - i386_pe_maybe_mangle_decl_assembler_name. - -2007-05-16 Rafael Avila de Espindola - - * c-common.c (c_common_signed_or_unsigned_type): Delay the check for - INTEGRAL_TYPE_P and TYPE_UNSIGNED. - * langhooks.c (get_signed_or_unsigned_type): Don't check for - INTEGRAL_TYPE_P or TYPE_UNSIGNED. - (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and - TYPE_UNSIGNED. - -2007-05-23 Sandra Loosemore - Nigel Stephens - Richard Sandiford - - Fix up MIPS16 hard float and add support for complex. - - * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New. - (TARGET_SOFT_FLOAT_ABI): New. - (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and - __mips_soft_float to reflect the ABI in use, not whether the - FPU is directly accessible (e.g., in MIPS16 mode). - (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI. - (UNITS_PER_FPVALUE): Likewise. - - * config/mips/mips.c (mips_expand_call): Remove redundant - TARGET_MIPS16 check. - (mips_arg_regno): New. - (function_arg_advance): When setting bits in cum->fp_code for - MIPS16, don't subtract 1 from cum->arg_number, since it is now - zero-based. - (function_arg): Use mips_arg_regno. - (mips_return_mode_in_fpr_p): New. - (mips16_call_stub_mode_suffix): New. - (mips16_cfun_returns_in_fpr_p): New. - (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p. - (mips_output_function_prologue): Test mips16_hard_float, not - !TARGET_SOFT_FLOAT, to decide when a function stub is required. - (mips_expand_epilogue): Call MIPS16 helper routines to copy - return value into a floating-point register. - (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p. - (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p. - (mips16_fp_args): Handle MIPS32r2 ISA which supports - TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant - word of double arguments from or to the high bits of 64-bit - floating point registers. - (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl. - (mips16_fpret_double): New helper function. - (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p. Add - support for complex modes. Fill in DECL_RESULT for stubdecl. - (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check. - - * config/mips/mips16.S - (RET, ARG1, ARG2): New. - (MERGE_GPRf, MERGE_GPRt): New. - (DELAYt, DELAYf): New. - (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New. - (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New. - (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New. - (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New. - (SFOP): Renamed to... - (OPSF3): This, and macro-ified. Updated all uses. - (SFOP2): Renamed to... - (OPSF2): This, and macro-ified. Updated all uses. - (SFCMP): Renamed to... - (CMPSF): This, and macro-ified. Updated all uses. - (SFREVCMP): Renamed to... - (REVCMPSF): This, and macro-ified. Updated all uses. - (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified. - (LDDBL1, LDDBL2, RETDBL): Deleted. - (DFOP): Renamed to... - (OPDF3): This, and macro-ified. Updated all uses. - (DFOP2): Renamed to... - (OPDF2): This, and macro-ified. Updated all uses. - (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified. - (DFCMP): Renamed to... - (CMPDF): This, and macro-ified. Updated all uses. - (DFREVCMP): Renamed to... - (REVCMPDF): This, and macro-ified. Updated all uses. - (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified. - (RET_FUNCTION): New. - (__mips16_ret_sf, __mips16_ret_df): Macro-ified. - (__mips16_ret_sc, __mips16_ret_dc): New. - (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2, - STUB_ARGS_6, STUB_ARGS_10): New. - (CALL_STUB_NO_RET): New. - (__mips16_call_stub_1): Macro-ified. - (__mips16_call_stub_5): Macro-ified. - (__mips16_call_stub_2): Macro-ified. - (__mips16_call_stub_6): Macro-ified. - (__mips16_call_stub_9): Macro-ified. - (__mips16_call_stub_10): Macro-ified. - (CALL_STUB_RET): New. - (__mips16_call_stub_sf_0): Macro-ified. - (__mips16_call_stub_sf_1): Macro-ified. - (__mips16_call_stub_sf_5): Macro-ified. - (__mips16_call_stub_sf_2): Macro-ified. - (__mips16_call_stub_sf_6): Macro-ified. - (__mips16_call_stub_sf_9): Macro-ified. - (__mips16_call_stub_sf_10): Macro-ified. - (__mips16_call_stub_df_0): Macro-ified. - (__mips16_call_stub_df_1): Macro-ified. - (__mips16_call_stub_df_5): Macro-ified. - (__mips16_call_stub_df_2): Macro-ified. - (__mips16_call_stub_df_6): Macro-ified. - (__mips16_call_stub_df_9): Macro-ified. - (__mips16_call_stub_df_10): Macro-ified. - (__mips16_call_stub_sc_0): New. - (__mips16_call_stub_sc_1): New. - (__mips16_call_stub_sc_5): New. - (__mips16_call_stub_sc_2): New. - (__mips16_call_stub_sc_6): New. - (__mips16_call_stub_sc_9): New. - (__mips16_call_stub_sc_10): New. - (__mips16_call_stub_dc_0): New. - (__mips16_call_stub_dc_1): New. - (__mips16_call_stub_dc_5): New. - (__mips16_call_stub_dc_2): New. - (__mips16_call_stub_dc_6): New. - (__mips16_call_stub_dc_9): New. - (__mips16_call_stub_dc_10): New. - - * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs. - * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise. - * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise. - -2007-05-23 Ian Lance Taylor - - * doc/invoke.texi (Invoking GCC): Document that the order of the - -l option matters. - -2007-05-23 Chen Liqin - - PR target/30987 - * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove. - * config/score/predicate.md (const_pow2, const_npow2): Remove. - * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL - undef. - - PR target/30474 - * config/score/score.c (score_print_operand): Make sure that only - lower bits are used. - -2007-05-22 Ian Lance Taylor - - * tree-vrp.c (avoid_overflow_infinity): New static function, - broken out of set_value_range_to_value. - (set_value_range_to_value): Call avoid_overflow_infinity. - (extract_range_from_assert): Likewise. - -2007-05-22 Andrew Pinski - - PR middle-end/31095 - * builtins.c (expand_builtin_memmove_args): Strip nops that don't - change the type before looking for a COMPOUND_EXPR. - -2007-05-22 Ian Lance Taylor - - * lower-subreg.c (decompose_multiword_subregs): If we change an - insn, call remove_retval_note on it. - -2007-05-22 Richard Sandiford - - * regs.h (end_hard_regno): New function. - (END_HARD_REGNO, END_REGNO): New macros. - (add_to_hard_reg_set): New function. - (remove_from_hard_reg_set): Likewise. - (in_hard_reg_set_p): Likewise. - (overlaps_hard_reg_set_p): Likewise. - * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p. - (note_btr_set): Use END_HARD_REGNO. - * caller-save.c (setup_save_areas): Use end_hard_regno. - (mark_set_regs): Use END_HARD_REGNO. - (add_stored_regs): Use end_hard_regno. - (mark_referenced_regs): Use add_to_hard_reg_set. - * combine.c (update_table_tick): Use END_REGNO. - (record_value_for_reg): Likewise. - (record_dead_and_set_regs): Likewise. - (get_last_value_validate): Likewise. - (use_crosses_set_p): Likewise. - (reg_dead_at_p_1): Likewise. - (reg_dead_at_p): Likewise. - (mark_used_regs_combine): Use add_to_hard_reg_set. - (move_deaths): Use END_HARD_REGNO. - (reg_bitfield_target_p): Use end_hard_regno. - (distribute_notes): Use END_HARD_REGNO. - * cse.c (mention_regs): Use END_REGNO. - (insert): Use add_to_hard_reg_set. - (invalidate): Use END_HARD_REGNO. - (invalidate_for_call): Likewise. - (exp_equiv_p): Use END_REGNO. - (cse_insn): Likewise. - * cselib.c (cselib_invalidate_regno): Use end_hard_regno. - * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO. - * df-scan.c (df_ref_record): Use END_HARD_REGNO. - * function.c (keep_stack_depressed): Use end_hard_regno. - * global.c (global_alloc): Use end_hard_regno. - (global_conflicts): Use add_to_hard_reg_set instead of - mark_reg_live_nc. - (find_reg): Likewise. - (mark_reg_store): Likewise. - (mark_reg_conflicts): Likewise. - (mark_reg_death): Use remove_from_hard_reg_set. - (mark_reg_live_nc): Delete. - (set_preference): Use end_hard_regno. - * local-alloc.c (mark_life): Use add_to_hard_reg_set and - remove_from_hard_reg_set. - (post_mark_life): Use add_to_hard_reg_set. - * mode-switching.c (reg_dies): Use remove_from_hard_reg_set. - (reg_becomes_live): Use add_to_hard_reg_set. - * recog.c (reg_fits_class_p): Use in_hard_reg_set_p. - (peep2_find_free_register): Use add_to_hard_reg_set. - * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO. - * regclass.c (record_reg_classes): Use in_hard_reg_set_p. - * regrename.c (note_sets): Use add_to_hard_reg_set. - (clear_dead_regs): Use remove_from_hard_reg_set. - (regrename_optimize): Use add_to_hard_reg_set. - (find_oldest_value_reg): Use in_hard_reg_set_p. - * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno. - (hard_reg_set_here_p): Use end_hard_regno. - (decompose): Likewise. - (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO. - (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno. - * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set. - (mark_home_live): Use end_hard_regno. - (spill_hard_reg): Likewise. - (clear_reload_reg_in_use): Likewise. - * reorg.c (delete_prior_computation): Use END_REGNO. - * resource.c (update_live_status): Use END_HARD_REGNO. - (mark_referenced_resources): Use add_to_hard_reg_set. - (mark_set_resources): Likewise. - (mark_target_live_regs): Likewise. Use remove_from_hard_reg_set. - * rtlanal.c (refers_to_regno_p): Use END_REGNO. - (reg_overlap_mentioned_p): Likewise. - (dead_or_set_p): Likewise. Use an exclusive upper loop bound. - (covers_regno_no_parallel_p): Use END_REGNO. - (find_regno_note): Likewise. - (find_reg_fusage): Use END_HARD_REGNO. - * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p. - * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno. - -2007-05-22 Richard Sandiford - - * mode-switching.c (reg_dies): Change type of second argument to - "HARD_REG_SET *". - (optimize_mode_switching): Update accordingly. - -2007-05-22 Richard Sandiford - - * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete - in favor of... - (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p) - (hard_reg_set_empty_p): ...these new functions. - * bt-load.c (choose_btr): Use hard_reg_subset_p instead of - GO_IF_HARD_REG_SUBSET. - * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p - instead of GO_IF_HARD_REG_EQUAL. - * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p - instead of GO_IF_HARD_REG_EQUAL. - * global.c (find_reg): Use hard_reg_set_empty_p instead of - GO_IF_HARD_REG_SUBSET. - (modify_reg_pav): Use hard_reg_set_empty_p instead of - GO_IF_HARD_REG_EQUAL. - * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead - of GO_IF_HARD_REG_SUBSET. - * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p - instead of GO_IF_HARD_REG_EQUAL. - * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use - hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET. - (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead - of GO_IF_HARD_REG_SUBSET, - * reload1.c (finish_spills): Use hard_reg_subset_p instead of - GO_IF_HARD_REG_SUBSET. - * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p - instead of GO_IF_HARD_REG_EQUAL. - * config/sh/sh.c (push_regs, calc_live_regs): Use - hard_reg_sets_intersect_p instead of hard_regs_intersect_p. - (hard_regs_intersect_p): Delete. - -2007-05-22 Janis Johnson - - * doc/sourcebuild.texi (Test Directives) Add dg-message. - -2007-05-22 H.J. Lu - Richard Henderson - - * config.gcc (i[34567]86-*-*): Add smmintrin.h to - extra_headers. - (x86_64-*-*): Likewise. - - * config/i386/i386-modes.def (V2QI): New. - - * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and - SSE4A. - (override_options): Support SSE4.1. - (IX86_BUILTIN_BLENDPD): New for SSE4.1. - (IX86_BUILTIN_BLENDPS): Likewise. - (IX86_BUILTIN_BLENDVPD): Likewise. - (IX86_BUILTIN_BLENDVPS): Likewise. - (IX86_BUILTIN_PBLENDVB128): Likewise. - (IX86_BUILTIN_PBLENDW128): Likewise. - (IX86_BUILTIN_DPPD): Likewise. - (IX86_BUILTIN_DPPS): Likewise. - (IX86_BUILTIN_INSERTPS128): Likewise. - (IX86_BUILTIN_MOVNTDQA): Likewise. - (IX86_BUILTIN_MPSADBW128): Likewise. - (IX86_BUILTIN_PACKUSDW128): Likewise. - (IX86_BUILTIN_PCMPEQQ): Likewise. - (IX86_BUILTIN_PHMINPOSUW128): Likewise. - (IX86_BUILTIN_PMAXSB128): Likewise. - (IX86_BUILTIN_PMAXSD128): Likewise. - (IX86_BUILTIN_PMAXUD128): Likewise. - (IX86_BUILTIN_PMAXUW128): Likewise. - (IX86_BUILTIN_PMINSB128): Likewise. - (IX86_BUILTIN_PMINSD128): Likewise. - (IX86_BUILTIN_PMINUD128): Likewise. - (IX86_BUILTIN_PMINUW128): Likewise. - (IX86_BUILTIN_PMOVSXBW128): Likewise. - (IX86_BUILTIN_PMOVSXBD128): Likewise. - (IX86_BUILTIN_PMOVSXBQ128): Likewise. - (IX86_BUILTIN_PMOVSXWD128): Likewise. - (IX86_BUILTIN_PMOVSXWQ128): Likewise. - (IX86_BUILTIN_PMOVSXDQ128): Likewise. - (IX86_BUILTIN_PMOVZXBW128): Likewise. - (IX86_BUILTIN_PMOVZXBD128): Likewise. - (IX86_BUILTIN_PMOVZXBQ128): Likewise. - (IX86_BUILTIN_PMOVZXWD128): Likewise. - (IX86_BUILTIN_PMOVZXWQ128): Likewise. - (IX86_BUILTIN_PMOVZXDQ128): Likewise. - (IX86_BUILTIN_PMULDQ128): Likewise. - (IX86_BUILTIN_PMULLD128): Likewise. - (IX86_BUILTIN_ROUNDPD): Likewise. - (IX86_BUILTIN_ROUNDPS): Likewise. - (IX86_BUILTIN_ROUNDSD): Likewise. - (IX86_BUILTIN_ROUNDSS): Likewise. - (IX86_BUILTIN_PTESTZ): Likewise. - (IX86_BUILTIN_PTESTC): Likewise. - (IX86_BUILTIN_PTESTNZC): Likewise. - (IX86_BUILTIN_VEC_EXT_V16QI): Likewise. - (IX86_BUILTIN_VEC_SET_V2DI): Likewise. - (IX86_BUILTIN_VEC_SET_V4SF): Likewise. - (IX86_BUILTIN_VEC_SET_V4SI): Likewise. - (IX86_BUILTIN_VEC_SET_V16QI): Likewise. - (bdesc_ptest): New. - (bdesc_sse_3arg): Likewise. - (bdesc_2arg): Likewise. - (bdesc_1arg): Likewise. - (ix86_init_mmx_sse_builtins): Support SSE4.1. Handle SSE builtins - with 3 args. - (ix86_expand_sse_4_operands_builtin): New. - (ix86_expand_unop_builtin): Support 2 arg builtins with a constant - smaller than 8 bits as the 2nd arg. - (ix86_expand_sse_ptest): New. - (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins. - (ix86_expand_vector_set): Support SSE4.1. - (ix86_expand_vector_extract): Likewise. - - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define - __SSE4_1__ for -msse4.1. - - * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1. - (UNSPEC_INSERTPS): Likewise. - (UNSPEC_DP): Likewise. - (UNSPEC_MOVNTDQA): Likewise. - (UNSPEC_MPSADBW): Likewise. - (UNSPEC_PHMINPOSUW): Likewise. - (UNSPEC_PTEST): Likewise. - (UNSPEC_ROUNDP): Likewise. - (UNSPEC_ROUNDS): Likewise. - - * config/i386/i386.opt (msse4.1): New for SSE4.1. - - * config/i386/predicates.md (const_pow2_1_to_2_operand): New. - (const_pow2_1_to_32768_operand): Likewise. - - * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header - file. - - * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for - SSE4.1. - (sse4_1_insertps): Likewise. - (*sse4_1_extractps): Likewise. - (sse4_1_ptest): Likewise. - (sse4_1_mulv2siv2di3): Likewise. - (*sse4_1_mulv4si3): Likewise. - (*sse4_1_smax3): Likewise. - (*sse4_1_umax3): Likewise. - (*sse4_1_smin3): Likewise. - (*sse4_1_umin3): Likewise. - (sse4_1_eqv2di3): Likewise. - (*sse4_1_pinsrb): Likewise. - (*sse4_1_pinsrd): Likewise. - (*sse4_1_pinsrq): Likewise. - (*sse4_1_pextrb): Likewise. - (*sse4_1_pextrb_memory): Likewise. - (*sse4_1_pextrw_memory): Likewise. - (*sse4_1_pextrq): Likewise. - (sse4_1_blendpd): Likewise. - (sse4_1_blendps): Likewise. - (sse4_1_blendvpd): Likewise. - (sse4_1_blendvps): Likewise. - (sse4_1_dppd): Likewise. - (sse4_1_dpps): Likewise. - (sse4_1_movntdqa): Likewise. - (sse4_1_mpsadbw): Likewise. - (sse4_1_packusdw): Likewise. - (sse4_1_pblendvb): Likewise. - (sse4_1_pblendw): Likewise. - (sse4_1_phminposuw): Likewise. - (sse4_1_extendv8qiv8hi2): Likewise. - (*sse4_1_extendv8qiv8hi2): Likewise. - (sse4_1_extendv4qiv4si2): Likewise. - (*sse4_1_extendv4qiv4si2): Likewise. - (sse4_1_extendv2qiv2di2): Likewise. - (*sse4_1_extendv2qiv2di2): Likewise. - (sse4_1_extendv4hiv4si2): Likewise. - (*sse4_1_extendv4hiv4si2): Likewise. - (sse4_1_extendv2hiv2di2): Likewise. - (*sse4_1_extendv2hiv2di2): Likewise. - (sse4_1_extendv2siv2di2): Likewise. - (*sse4_1_extendv2siv2di2): Likewise. - (sse4_1_zero_extendv8qiv8hi2): Likewise. - (*sse4_1_zero_extendv8qiv8hi2): Likewise. - (sse4_1_zero_extendv4qiv4si2): Likewise. - (*sse4_1_zero_extendv4qiv4si2): Likewise. - (sse4_1_zero_extendv2qiv2di2): Likewise. - (*sse4_1_zero_extendv2qiv2di2): Likewise. - (sse4_1_zero_extendv4hiv4si2): Likewise. - (*sse4_1_zero_extendv4hiv4si2): Likewise. - (sse4_1_zero_extendv2hiv2di2): Likewise. - (*sse4_1_zero_extendv2hiv2di2): Likewise. - (sse4_1_zero_extendv2siv2di2): Likewise. - (*sse4_1_zero_extendv2siv2di2): Likewise. - (sse4_1_roundpd): Likewise. - (sse4_1_roundps): Likewise. - (sse4_1_roundsd): Likewise. - (sse4_1_roundss): Likewise. - (mulv4si3): Don't expand for SSE4.1. - (smax3): Likewise. - (umaxv4si3): Likewise. - (uminv16qi3): Likewise. - (umin3): Likewise. - (umaxv8hi3): Rewrite. Only enabled for SSE4.1. - - * doc/extend.texi: Document SSE4.1 built-in functions. - - * doc/invoke.texi: Document -msse4.1. - -2007-05-22 Nathan Sidwell - - * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec. - * config/m68k/m68k-none.h (ASM_SPEC): Don't override here. - * config/m68k/m68k.h (ASM_PCREL_SPEC): New. - (ASM_SPEC): Add asm_pcrel_spec. - (EXTRA_SPECS): Add asm_pcrel_spec. - -2007-05-21 David Daney - - * doc/install.texi (Building a cross compiler): Add requirements - for Java cross compiler. - -2007-05-21 Andrew Pinski - - PR middle-end/31995 - * tree-chrec.c (evolution_function_is_affine_multivariate_p): - Add loopno argument. Use evolution_function_is_invariant_rec_p - instead of evolution_function_is_constant_p. - Update calls to evolution_function_is_affine_multivariate_p. - * tree-chrec.h (evolution_function_is_affine_multivariate_p): - Add loopno argument. - * tree-scalar-evolution.c (gather_chrec_stats): Call - evolution_function_is_affine_multivariate_p with a loop - number of 0. - * tree-data-ref.c (analyze_miv_subscript): Likewise. - (analyze_overlapping_iterations): Likewise. - (access_functions_are_affine_or_constant_p): Likewise. - (build_classic_dist_vector_1): If the access functions - are equal, don't do anything. - -2007-05-21 Paolo Bonzini - Paolo Carlini - Uros Bizjak - - * c-cppbuiltin.c (c_cpp_builtins): Define - __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, - __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, - __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate. - * doc/cpp.texi ([Standard Predefined Macros]): Document. - -2007-05-21 Mike Stump - - * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil - handling as well. - * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. - -2007-05-21 Uros Bizjak - - * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro - implementation if __OPTIMIZE__ is not defined. - (_mm_alignr_pi8): Ditto. - * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. - (_mm_inserti_si64): Ditto. - * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. - (_mm_slli_epi16): Ditto. - (_mm_slli_epi32): Ditto. - (_mm_slli_epi64): Ditto. - (_mm_srai_epi16): Ditto. - (_mm_srai_epi32): Ditto. - (_mm_srli_si128): Ditto. - (_mm_slli_si128): Ditto. - (_mm_srli_epi16): Ditto. - (_mm_srli_epi32): Ditto. - (_mm_srli_epi64): Ditto. - (_mm_extract_epi16): Ditto. - (_mm_insert_epi16): Ditto. - (_mm_shufflehi_epi16): Ditto. - (_mm_shufflelo_epi16): Ditto. - (_mm_shuffle_epi32): Ditto. - * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto. - (_m_pextrw): Ditto. - (_mm_insert_pi16): Ditto. - (_m_pinsrw): Ditto. - (_mm_shuffle_pi16): Ditto. - (_m_pshufw): Ditto. - (_mm_shufle_ps): Ditto. - (_mm_prefetch): Ditto. - -2007-05-21 Andreas Krebbel - - * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed. - * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed. - * real.c (encode_i370_single, decode_i370_single, - encode_i370_double, decode_i370_double): Functions removed. - (i370_single_format, i370_double_format): Initializations removed. - (real_maxval, round_for_format, exact_real_truncate, significand_size): - Consider the log2_b field to always be one. - (ieee_single_format, mips_single_format, coldfire_single_format, - ieee_double_format, mips_double_format, coldfire_double_format, - ieee_extended_motorola_format, ieee_extended_intel_96_format, - ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format, - ibm_extended_format, mips_extended_format, ieee_quad_format, - mips_quad_format, vax_f_format, vax_d_format, vax_g_format, - decimal_single_format, decimal_double_format, decimal_quad_format, - c4x_single_format, c4x_extended_format, real_internal_format): Remove - initialization of log2_b. - * real.h (i370_single_format, i370_double_format): Declarations - removed. - * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b - field to always be one. - -2007-05-21 Andreas Schwab - - * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of - NOTE_INSN_BASIC_BLOCK_P. - (process_for_unwind_directive): Likewise. - -2007-05-21 Nathan Sidwell - - * builtins.c (expand_builtin_setjmp_setup): Update comment. - * function.h (struct function): Move va_list_gpr_size, - va_list_fpr_size, function_frequency to front of bitfields. Add - calls_unwind_init. - (current_function_calls_unwind_init): New. - * except.c (expand_builtin_unwind_init): Set - current_function_calls_unwind_init not - current_function_has_nonlocal_label. - * reload1.c (has_nonexceptional_receiver): New. - (reload): Use it and current_function_calls_unwind_init to - determine whether call-saved regs must be saved. - -2007-05-20 Jan Hubicka - - * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of - NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. - * ddg.c (create_ddg): LIkewise. - * final.c (final): Remove hunk moving line number notes around since - they are no longer present at this stage. - (final_scan_insn): Use NOTE_KIND instead of - NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. - (output_asm_label): Likewise. - * reorg.c (dbr_schedule): Likewise. - * haifa-sched.c (unlink_other_notes): Likewise. - * mode-switching.c (optimize_mode_switching): Likewise. - * graph.c (start_bb): Likewise. - * rtl.def (NOTE): Update description. - * jump.c (squeeze_notes): Delete. - (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use - NOTE_INSN_BASIC_BLOCK_P when possible. - * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes. - * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of - NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible. - (dwarf2out_var_location): Likewise. - * cfgbuild.c (make_edges): Likewise. - (find_basic_blocks_1): Likewise. - * function.c (reorder_blocks_1): Likewise. - (epilogue_done): Likewise. - (reposition_prologue_and_epilogue_notes): Likewise. - * print-rtl.c (print_rtx): Likewise; drop code for printing - line number notes. - (print_rtl): Likewise. - (print_rtl_single): Likewise. - * gcse.c (insert_insn_start_bb): Likewise. - * alias.c (init_alias_analysis): Likewise. - * calls.c (fixup_tail_calls): Likewise. - * except.c (sjlj_emit_function_enter): Likewise. - * emit-rtl.c (add_insn_after): Likeiwse. - (emit_label_before): Likewise. - (emit_label_after): Likewise. - (emit_note_before, emit_note_after, emit_note): Update - parameter to be enum insn_note; do not deal with source - files. - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): - Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P - when possible. - (merge_blocks_move_successor_nojumps): Simplify now when - we don't have BLOCK notes. - (try_optimize_cfg): Likewise. - * cfglayout.c (skip_insns_after_block): Likewise. - (record_effective_endpoints): Likewise. - (duplicate_insn_chain): Likewise. - * varasm.c (output_constant_pool_1): Likewise. - * sched-deps.c (sched_analyze): Likewise. - * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS): - Exterminate. - (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone. - * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate. - (SET_INSN_DELETED): Simplify. - (NOTE_LINE_NUMBER): Exterminate. - (NOTE_LINE_KIND): New. - (NOTE_INSN_BASIC_BLOCK_P): Update. - (enum insn_note): Simplify. - (GET_NOTE_INSN_NAME) Simplify. - (emit_note_before, emit_note_after, emit_note): Update prototype. - (squeeze_notes): Remove. - * sched-int.h (NOTE_NOT_BB_P): Update. - * resource.c (mark_target_live_regs): Update. - * sched-rgn.c (debug_dependencies): Update. - * sched-vis.c (print_insn): Update. - * config/alpha/alpha.c (alpha_handle_trap_shadows): Update. - * config/i386/i386.c (ix86_output_function_epilogue): Update. - * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0. - (TARGET_ADJUST_UNROLL_MAX): Likewise. - (split_branches): Update. - (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc - 4.0.0. - (sh_adjust_unroll_max): Exterminate. - * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED. - * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise. - (m68hc11_reorg): Likewise. - * config/ia64/ia64.c (emit_insn_group_barriers): Update. - (emit_predicate_relation_info): Update. - (process_for_unwind_directive): Update. - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update. - (output_call): Update. - * config/pa/pa.c (output_lbranch): Update. - (output_millicode_call): Update. - (output_call): Update. - (pa_combine_instructions): Update. - * config/mips/mips.c (mips16_gp_pseudo_reg): Update. - * config/bfin/bfin.c (gen_one_bundle): Update. - * cfgrtl.c (can_delete_note_p): Update. - (delete_insn): Update. - (rtl_merge_blocks): Update. - (commit_one_edge_insertion): Update. - (rtl_verify_flow_info): Update. - * stmt.c (expand_case): Do not call squeeze_notes. - -2007-05-20 Manuel Lopez-Ibanez - - PR middle-end/7651 - PR c++/11856 - PR c/12963 - PR c/23587 - PR other/29694 - * c.opt (Wtype-limits): New. - * doc/invoke.texi (Wtype-limits): Document it. - (Wextra): Enabled by -Wextra. - * c-opts.c (c_common_post_options): Enabled by -Wextra. - * c-common.c (shorten_compare): Warn with Wtype-limits. - -2007-05-20 Uros Bizjak - - * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always - inlined function, not as a macro. - (_mm_alignr_pi8): Ditto. - * config/i386/ammintrin.h (_mm_extracti_si64): Ditto. - (_mm_inserti_si64): Ditto. - * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto. - (_mm_extract_epi16): Ditto. - (_mm_insert_epi16): Ditto. - (_mm_shufflehi_epi16): Ditto. - (_mm_shufflelo_epi16): Ditto. - (_mm_shuffle_epi32): Ditto. - * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant. - * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to - all functions. - (_m_from_float): Add __extension__ to conversion. Use 0.0f for - float constant. - (_m_to_float): Use C89 compatible assignment. - -2007-05-20 Martin Michlmayr - - PR target/32007 - * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines. - -2007-05-20 Manuel Lopez-Ibanez - - PR middle-end/7651 - * doc/invoke.texi (Wreturn-type): Complete description. - (Wextra): Delete item about return-type warning. - * c-decl.c: Delete redundant Wextra warning. - -2007-05-20 Uros Bizjak - - PR target/31585 - * config/i386/pmmintrin.h: Do not include xmmintrin.h - * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always - inlined function, not as a macro. - (_mm_prefetch): Ditto. - (_m_pextrw): Ditto. - (_mm_insert_pi16): Ditto. - (_m_pinsrw): Ditto. - (_mm_shuffle_pi16): Ditto. Add const to __N argument. - (_m_pshufw): Ditto. Add const to __N argument. - (_mm_shufle_ps): Ditto. Add const to __mask argument. - * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument. - (_mm_slli_epi32): Ditto. - (_mm_srli_si128): Implement as always inlined function, not as a - macro. Add __inline to function declaration. - (_mm_slli_si128): Ditto. - -2007-05-19 Uros Bizjak - - * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM, - FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT): - New constants. - (struct fenv): New structure. - (FP_HANDLE_EXCEPTIONS): New define. - (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants. - (_FP_DECL_EXP): New define. - (FP_INIT_ROUNDMODE): New define. - (FP_ROUNDMODE): New define. - -2007-05-19 Manuel Lopez-Ibanez - - * doc/invoke.texi (Warning Options): Add -Wconversion-sign. - (Wconversion): Update description. - (Wconversion-sign): New. - * c.opt (Wconversion-sign): New. - * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign - means disabled for C++. Otherwise, take the status of Wconversion. - * c-common.c (conversion_warning): Warn with either Wconversion or - Wconversion-sign. - (warnings_for_convert_and_check): Conditions are already checked by - conversion_warning. - (convert_and_check): Don't check warnings if the conversion failed. - -2007-05-19 Andy Hutchinson - Anatoly Sokolov - - * config/avr/avr-protos.h (expand_prologue, expand_epilogue, - avr_epilogue_uses) : Add declaration. - * config/avr/predicates.md (avr_sp_immediate_operand): New predicate. - * config/avr/constraints.md (R): New constraint. - config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI, - UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants. - (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ... - (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns. - (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt, - call_prologue_saves, epilogue_restores, return_from_epilogue, - return_from_main_epilogue, return_from_interrupt_epilogue, - return_from_naked_epilogue, prologue, epilogue): New patterns. - (jump): Handle symbol reference. - * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr, - avr_output_function_prologue, avr_output_function_epilogue): Remove - functions. - (avr_init_machine_status, expand_prologue, expand_epilogue, - avr_asm_function_end_prologue, avr_epilogue_uses, - avr_asm_function_begin_epilogue): New functions. - (prologue_size, epilogue_size, jump_tables_size): Remove global - variables. - (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove. - (TARGET_ASM_FUNCTION_END_PROLOGUE): Define. - (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define. - (avr_override_options): Initialise init_machine_status. - (output_movhi): Handle all stack pointer loads. - (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address. - (avr_output_addr_vec_elt): Do not use variable jump_tables_size. - * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New. - (EPILOGUE_USES) Redefine. - (machine_function) Declare. - -2007-05-19 Richard Sandiford - - * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment. - Use a single return statement. - -2007-05-19 Kaveh R. Ghazi - - PR middle-end/30250 - * builtins.c (do_mpfr_lgamma_r): New. - (fold_builtin_2): Handle builtin gamma_r/lgamma_r. - * tree.h (CASE_FLT_FN_REENT): New. - -2007-05-18 Geoffrey Keating - - * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. - (output_die): Use 'unsigned long' with %x. - * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and - HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. - * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. - - * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP. - -2007-05-18 H.J. Lu - - PR target/31989 - PR target/31681 - PR target/31666 - * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to - true if function has no argument. - -2007-05-18 DJ Delorie - - * config/mips/mips.c (mips_offset_within_alignment_p): New. - (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols. - -2007-05-18 Uros Bizjak - - * longlong.h (__x86_64__): Add definitions for add_ssaaaa, - sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and - count_trailing_zeros. - (__i386__): Implement count_leading_zeros using __builtin_clz(). - Implement count_trailing_zeros usign __builtin_ctz(). - -2007-05-18 Richard Sandiford - - * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine. - -2007-05-18 Uros Bizjak - - PR middle-end/31344 - * expr.c (emit_move_change_mode): Change mode of push operands here. - -2007-05-17 Ian Lance Taylor - - PR tree-optimization/31953 - * tree-vrp.c (set_value_range_to_value): Add equiv parameter. - Change all callers. - (set_value_range_to_null): Call set_value_range_to_value. - (extract_range_from_comparison): Likewise. - -2007-05-17 Kaveh R. Ghazi - - * toplev.c (print_version): Output GMP/MPFR version info. - - * builtins.c (CASE_MATHFN_REENT): New macro. - (mathfn_built_in): Use it. - * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R, - BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R, - BUILT_IN_LGAMMAL_R): New. - * doc/extend.texi: Document new builtins. - - PR middle-end/31796 - * builtins.c (do_mpfr_remquo): New. - (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER. - (fold_builtin_3): Handle BUILT_IN_REMQUO. - - PR middle-end/30251 - * builtins.c (fold_builtin_1): Handle y0, y1. - (fold_builtin_2): Handle yn. - - PR middle-end/30251 - * builtins.c (do_mpfr_bessel_n): New. - (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1. - (fold_builtin_2): Handle BUILT_IN_JN. - -2007-05-17 Danny Smith - - PR target/31965 - * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as - TYPE_PRECISION (intmax_type_node). - -2007-05-17 Steve Ellcey - - PR target/31850 - * reload.c (subst_reloads): Remove checking. - -2007-05-17 Eric Botcazou - - PR rtl-optimization/31691 - * combine.c (simplify_set): Build a new src pattern instead of - substituting its operands in the COMPARE case. - -2007-05-17 Zdenek Dvorak - - * tree-vrp.c (finalize_jump_threads): Do not care about dominance info. - (execute_vrp): Preserve loops through jump threading. - * tree-ssa-threadupdate.c (thread_single_edge, - dbds_continue_enumeration_p, determine_bb_domination_status, - thread_through_loop_header): New functions. - (create_edge_and_update_destination_phis, - create_edge_and_update_destination_phis): Set loops for the new blocks. - (prune_undesirable_thread_requests): Removed. - (redirect_edges): Do not pretend that redirect_edge_and_branch can - create new blocks. - (thread_block): Do not call prune_undesirable_thread_requests. - Update loops. - (mark_threaded_blocks): Select edges to thread here. - (thread_through_all_blocks): Take may_peel_loop_headers argument. - Thread edges through loop headers independently. - * cfgloopmanip.c (create_preheader, mfb_keep_just): Export. - * tree-pass.h (TODO_mark_first_instance): New. - (first_pass_instance): Declare. - * cfghooks.c (duplicate_block): Put the block to the original loop - if copy is not specified. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through - jump threading. Pass may_peel_loop_headers to - thread_through_all_blocks according to first_pass_instance. - * cfgloop.h (create_preheader): Declare. - * tree-flow.h (thread_through_all_blocks): Declaration changed. - * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare. - * passes.c (first_pass_instance): New variable. - (next_pass_1): Set TODO_mark_first_instance. - (execute_todo): Set first_pass_instance. - -2007-05-17 Uros Bizjak - - PR tree-optimization/24659 - * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi, - OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi, - OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and - OTI_vec_pack_ufix_trunc. - (vec_unpacks_float_hi_optab): Define new macro. - (vec_unpacks_float_lo_optab): Ditto. - (vec_unpacku_float_hi_optab): Ditto. - (vec_unpacku_float_lo_optab): Ditto. - (vec_pack_sfix_trunc_optab): Ditto. - (vec_pack_ufix_trunc_optab): Ditto. - * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab - and vec_pack_[s|u]fix_trunc_optab using - vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns - * tree-vectorizer.c (supportable_widening_operation): Handle - FLOAT_EXPR and CONVERT_EXPR. Update comment. - (supportable_narrowing_operation): New function. - * tree-vectorizer.h (supportable_narrowing_operation): Prototype. - * tree-vect-transform.c (vectorizable_conversion): Handle - (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases. - (vect_gen_widened_results_half): Move before vectorizable_conversion. - (vectorizable_type_demotion): Call supportable_narrowing_operation() - to check for target support. - * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab - for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab - for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab - for VEC_PACK_FIX_TRUNC_EXPR. - (expand_binop): Special case mode of the result for - vec_pack_[u|s]fix_trunc_optab. - (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and - vec_pack_[u|s]fix_trunc_optab. - - * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR, - VEC_PACK_FIX_TRUNC_EXPR): New tree codes. - * tree-pretty-print.c (dump_generic_node): Handle - VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and - VEC_PACK_FIX_TRUNC_EXPR. - (op_prio): Ditto. - * expr.c (expand_expr_real_1): Ditto. - * tree-inline.c (estimate_num_insns_1): Ditto. - * tree-vect-generic.c (expand_vector_operations_1): Ditto. - - * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander. - (vec_unpacks_float_lo_v8hi): Ditto. - (vec_unpacku_float_hi_v8hi): Ditto. - (vec_unpacku_float_lo_v8hi): Ditto. - (vec_unpacks_float_hi_v4si): Ditto. - (vec_unpacks_float_lo_v4si): Ditto. - (vec_pack_sfix_trunc_v2df): Ditto. - - * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]: - Document. - [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto. - [VEC_PACK_FIX_TRUNC_EXPR]: Ditto. - * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document. - [vec_pack_ufix_trunc]: Ditto. - [vec_unpacks_float_hi]: Ditto. - [vec_unpacks_float_lo]: Ditto. - [vec_unpacku_float_hi]: Ditto. - [vec_unpacku_float_lo]: Ditto. - -2007-05-16 Uros Bizjak - - * soft-fp/README: Update for new files. - * soft-fp/floattisf.c: New file. - * soft-fp/floattidf.c: New file. - * soft-fp/floattitf.c: New file. - * soft-fp/floatuntisf.c: New file. - * soft-fp/floatuntidf.c: New file. - * soft-fp/floatuntitf.c: New file. - * soft-fp/fixsfti.c: New file. - * soft-fp/fixdfti.c: New file. - * soft-fp/fixtfti.c: New file. - * soft-fp/fixunssfti.c: New file. - * soft-fp/fixunsdfti.c: New file. - * soft-fp/fixunstfti.c: New file. - * soft-fp/extendxftf.c: New file. - * soft-fp/trunctfxf.c: New file. - - * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section. - (__trunctfxf2): Ditto. - - * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2, - __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti, - __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf, - __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2, - __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2, - __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets. - - * config/i386/t-fprules-softfp64: New file. - * config/i386/sfp-machine.h: New file. - * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, - x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64 - and soft-fp/t-softfp to tmake_file. - (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, - i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all. - - * config/i386/t-linux64 (softfp_wrap_start): New. - (softfp_wrap_end): New. - * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is - supported for TARGET_64BIT. - -2007-05-16 Rafael Avila de Espindola - - * c-common.c (c_common_signed_or_unsigned_type): Emulate - c_common_unsigned_type behavior. - -2007-05-16 Paolo Bonzini - - * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr - calls as pure. - -2007-05-16 Eric Christopher - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register - saving after stack push. Set sp_offset whenever we push. - (rs6000_emit_epilogue): Move altivec register restore before - stack push. - -2007-05-16 Richard Sandiford - - * configure.ac: Allow sysroots to be relocated under $prefix as - well as $exec_prefix. - * configure: Regenerate. - -2007-05-16 Richard Sandiford - - Revert: - - 2007-05-12 Richard Sandiford - - * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). - (gcc_tooldir): Likewise. - * configure: Regenerate. - * Makefile.in (libsubdir_to_prefix): New variable, based on the - old configure.ac gcc_tooldir setting. - (prefix_to_exec_prefix): New variable. - (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) - rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. - -2007-05-14 Janis Johnson - - * c-typeck.c (build_binary_op): Return early for error. - -2007-05-15 Zdenek Dvorak - - * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate - struct nb_iter_bound. - (free_numbers_of_iterations_estimates_loop): Use ggc_free. - * gengtype.c (open_base_files): Add cfhloop.h to the list of includes. - * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated. - * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h. - (struct scev_info_str, scalar_evolution_info): Add GTY markers. - (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str. - (del_scev_info): Use ggc_free. - (scev_initialize): Allocate scalar_evolution_info in gc memory. - * loop-init.c: Include ggc.h. - (loop_optimizer_init): Use GGC_CNEW to allocate struct loops. - (loop_optimizer_finalize): Use ggc_free. - * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize, - pass_linear_transfom, pass_empty_loop, pass_complete_unroll, - pass_iv_optimize): Add TODO_ggc_collect. - * function.h (struct function): Remove skip marker from - x_current_loops. - * cfgloop.c: Include ggc.h. - (flow_loops_free, flow_loop_free): Free the loop descriptions in gc - memory. - (establish_preds): Vector superloops is gc allocated. - (alloc_loop): Allocate loop using GGC_CNEW. Allocate head of - loop->exits list. - (flow_loops_find): Vector larray is gc allocated. - (loop_exit_free): Use ggc_free. - (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit. Reflect - that head of exits list is now not a part of struct loop. - (record_loop_exits): Allocate exits table in gc memory. - (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect - that head of exits list is now not a part of struct loop. - * cfgloop.h (struct lpt_decision, struct nb_iter_bound, - struct loop_exit): Add GTY marker. - (struct loop): Add GTY marker. Make superloops vector gc allocated. - Add skip marker to aux field. Make head of exits list a separate - object. - (struct loops): Add GTY marker. Make larray vector gc allocated. - Add param marker to exits table. - (get_loops): Type changed. - * Makefile.in (tree-scalar-evolution.o): Add - gt-tree-scalar-evolution.h dependency. - (cfgloop.o, loop-init.o): Add ggc.h dependency. - (GTFILES): Add cfgloop.h and tree-scalar-evolution.c. - * basic-block.h (struct basic_block_def): Remove skip marker from - loop_father field. - -2007-05-14 Uros Bizjak - - * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead - of 0 in the call to expand_expr(). - (expand_builtin_mathfn_3): Ditto. - (expand_builtin_interclass_mathfn): Ditto. - (expand_builtin_cexpi): Ditto. - (expand_builtin_int_roundingfn): Ditto. - (expand_builtin_int_roundingfn_2): Ditto. - (expand_builtin_pow): Ditto. - (expand_builtin_powi): Ditto. - (expand_builtin_bswap): Ditto. - (expand_builtin_unop): Ditto. - (expand_builtin_fabs): Ditto. - (get_builtin_sync_mem): Use NULL_RTX instead of NULL in - the call to expand_expr(). - (expand_builtin_sync_operation): Ditto. - (expand_builtin_compare_and_swap): Ditto. - (expand_builtin_lock_test_and_set): Ditto. - * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL - instead of 0 in the call to expand_expr(). - (expand_builtin_extract_return_addr): Ditto. - (expand_builtin_eh_return): Ditto. - (expand_eh_return): Ditto. - * explow.c (expr_size): Ditto. - * expr.c (optimize_bitfield_assignment_op): Ditto. - (expand_assignement): Ditto. - (store_expr): Ditto. - (store_field): Ditto. - (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in - the call to expand_expr(). - (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0 - in the call to expand_expr(). - [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR, - BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto. - [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead - of expand_expr(). - * optabs.c (expand_vec_shift_expr): Ditto. - (expand_vec_cond_expr): Ditto. - (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the - call to expand_expr(). - * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0 - in the call to expand_expr(). - -2007-05-14 Dave Korn - - * genautomata.c (gen_regexp_el): Allocate correct size for regexp. - -2007-05-14 Rafael Avila de Espindola - - * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for - instead of c_common_unsigned_type. - (c_common_unsigned_type): Remove. - (shorten_compare): Use c_common_signed_or_unsigned_type instead of - c_common_unsigned_type. - (c_common_nodes_and_builtins): Use unsigned_type_for instead of - c_common_unsigned_type. - * c-common.h (c_common_unsigned_type): Remove. - * c-decl.c (grokdeclarator): Use unsigned_type_for instead of - c_common_unsigned_type. - * c-format.c (check_format_types): Use unsigned_type_for instead of - c_common_unsigned_type. - * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. - * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead - of c_common_unsigned_type. - * convert.c (convert_to_integer): Use unsigned_type_for instead of - lang_hooks.types.unsigned_type. - * expmed.c (make_tree): Use unsigned_type_for instead of - lang_hooks.types.unsigned_type. - * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of - lang_hooks.types.unsigned_type. - (build_range_check): Likewise. - (fold_unary): Likewise. - (fold_binary): Likewise. - (fold_ternary): Likewise. - * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove. - * langhooks.h (lang_hooks_for_types): Remove unsigned_type. - * tree.c (get_unsigned_type): New. - (unsigned_type_for): Use get_unsigned_type instead of - lang_hooks.types.unsigned_type. - -2007-05-14 Kazu Hirata - - * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p - to m68k_get_function_kind. Update its prototype. - * config/m68k/m68k.c (m68k_attribute_table): Add an entry for - interrupt_thread. - (m68k_interrupt_function_p): Return enum m68k_function_type - instead of bool. Rename to m68k_get_function_kind. - (m68k_handle_fndecl_attribute): Reject interrupt_thread if the - target is not fido. - (m68k_compute_frame_layout): Don't mark any register for save - if an interrupt_thread attribute is specified. - (m68k_hard_regno_rename_ok): Update a use of - m68k_interrupt_function_p. - * config/m68k/m68k.h (EPILOGUE_USES): Update a use of - m68k_interrupt_function_p. - (m68k_function_type): New. - * config/m68k/m68k.md (*return): Output a 'sleep' instruction - for a function with an interrupt_thread attribute. - * doc/extend.texi: Document the interrupt_thread attribute. - -2007-05-13 Daniel Berlin - - Fix PR tree-optimization/31911 - * tree-ssa-pre.c (phi_translate): Make sure to cache results even - if they didn't change the expression. - -2007-05-13 Zdenek Dvorak - - * tree-scalar-evolution.c (resolve_mixers): Exported. - * tree-scalar-evolution.h (resolve_mixers): Declare. - * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p, - ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, - record_record_differ_p, record_array_differ_p, array_ptr_differ_p, - base_object_differ_p, base_addr_differ_p, analyze_array_indexes, - init_array_ref, init_pointer_ref, analyze_indirect_ref, - strip_conversion, analyze_offset_expr, address_analysis, - object_analysis, analyze_offset): Removed. - (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias, - split_constant_offset, canonicalize_base_object_address, - object_address_invariant_in_loop_p, disjoint_objects_p, - dr_may_alias_p, dr_address_invariant_p): New functions. - (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices - and dr_analyze_alias. - (initialize_data_dependence_relation): Use dr_may_alias_p - and object_address_invariant_in_loop_p. - (compute_self_dependence): Handle the case when - DDR_ARE_DEPENDENT (ddr) is chrec_dont_know. - (find_data_references_in_stmt): Restrict the analysis of data - references to the given loop nest. - (find_data_references_in_loop): Made static. Pass loop nest to - find_data_references_in_stmt. - (compute_data_dependences_for_loop): Use DR_VOPS. - (free_data_ref): Free DR_VOPS. - * tree-data-ref.h (struct first_location_in_loop): Replaced by ... - (struct innermost_loop_behavior): ... new. - (struct base_object_info): Replaced by ... - (struct indices): ... new. - (struct dr_alias): New. - (enum data_ref_type): Removed. - (struct data_reference): Consist of struct innermost_loop_behavior, - struct indices and struct dr_alias. - (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed. - (DR_MEMTAG): Renamed to ... - (DR_SYMBOL_TAG): ... this. - (find_data_references_in_loop): Declaration removed. - * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT - instead of DR_OFFSET_MISALIGNMENT. DR_ALIGNED_TO is never NULL. - (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG. - * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. - -2007-05-13 Revital Eres - - * tree-ssa-dse.c (get_use_of_stmt_lhs): New function - which walks virtual def-use chains to find redundant stores. - (dse_optimize_stmt): Call it. - -2007-05-12 Steven Bosscher - - * gcse.c (gcse_main): Do jump bypassing in CPROP2. - * passes.c (init_optimization_passes): Move pass_jump_bypass - after loop2. - - * basic-block.h (bb_has_eh_pred): Fix style issue. - -2007-05-12 Steven Bosscher - - PR rtl-optimization/31848 - * loop-invariant.c (move_invariant_reg): If we move an insn - with a REG_EQUAL note, and that insn is not always executed, - remove the REG_EQUAL note. - -2007-05-12 Richard Guenther - - PR tree-optimization/31797 - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not - propagate into a stmt that has volatile ops. - -2007-05-12 Richard Sandiford - - * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix). - (gcc_tooldir): Likewise. - * configure: Regenerate. - * Makefile.in (libsubdir_to_prefix): New variable, based on the - old configure.ac gcc_tooldir setting. - (prefix_to_exec_prefix): New variable. - (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix) - rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX. - -2007-05-11 Silvius Rus - - * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o. - * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic. - * c-common.h (strict_aliasing_warning): Change return type. - * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing. - * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. - (build_c_cast): Condition call to strict_aliasing_warning. - * doc/invoke.texi: Update description of -Wstrict-aliasing[=n]. - * flags.h (set_Wstrict_aliasing): Declare. - * opts.c (set_Wstrict_alising): Define, add call to. - * tree-flow.h (strict_aliasing_warning_backend): Declare. - * tree-ssa-alias-warnings.c: New file. - * tree-ssa-alias.c (compute_may_aliases): Add call to - strict_aliasing_warning_backend. - -2007-05-11 Zdenek Dvorak - - * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): - Use loop_depth and loop_outer accessor functions. - * tree-ssa-loop-im.c (outermost_invariant_loop, set_level, - determine_invariantness_stmt, move_computations_stmt): Ditto. - * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path, - add_loop, loopify, unloop, fix_loop_structure): Ditto. - * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto. - * tree-scalar-evolution.c (interpret_loop_phi, - compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop, - instantiate_parameters_1, scev_const_prop): Ditto. - * cfghooks.c (make_forwarder_block): Ditto. - * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto. - * modulo-sched.c (loop_canon_p): Ditto. - * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg, - slpeel_can_duplicate_loop_p): Ditto. - * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto. - * tree-cfg.c (tree_duplicate_sese_region): Ditto. - * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit, - cancel_loop, verify_loop_structure): Ditto. - (flow_loop_nested_p, superloop_at_depth, flow_loop_free, - add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the - superloops vector instead of "pred" array. - (establish_preds): Take father loop as an argument. Initialize the - superloops vector. - (flow_loop_tree_node_add): Pass father loop to establish_preds. - Do not initialize loop->outer. - (flow_loop_tree_node_remove): Truncate the superloops vector. - * cfgloop.h (struct loop): Removed field "outer", fields "depth" and - "pred" merged to "superloops" vector. - (loop_depth, loop_outer): New. - (fel_init): Use loop_outer. - -2007-05-11 Jan Hubicka - - * cgraphunit.c: Include gt-cgraphunit.h - (static_ctors, static_dtors): New static vars. - (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions, - based on implementation in c-common.c - (cgraph_finalize_function): Call record_cdtor_fn. - (cgraph_optimize): Call cgraph_build_cdtor_fns. - * decl.c (finish_function): Do not call c_record_cdtor_fn. - (c_write_global_declarations): Do not call c_build_cdtor_fns. - * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn, - build_cdtor, c_build_cdtor_fns): Remove. - * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn, - c_build_cdtor_fns): Remove prototype. - -2007-05-11 Paolo Carlini - - PR other/31852 - * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE. - * builtins.def: Add BUILT_IN_MEMCHR, use the latter. - * builtins.c (fold_builtin_memchr): New. - (expand_builtin_memchr): Call the latter. - (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR. - * doc/extend.texi ([Other built-in functions provided by GCC]): - Document memchr. - -2007-05-11 Andreas Krebbel - - * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM, - PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF, - PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT, - PFPO_OP1_TYPE_SHIFT): Constants added. - (DFP_ALL): Mode macro defined. - ("*trunc2", "*trunc2", - "*extend2", "*extend2"): - Insn definitions added. - ("trunc2", "trunc2", - "extend2", "extend2"): - Expanders added. - -2007-05-10 Zdenek Dvorak - - PR tree-optimization/31885 - * tree-chrec.c (chrec_contains_undetermined): Do not consider - NULL_TREE to be undetermined. - (automatically_generated_chrec_p): Return false for NULL. - -2007-05-08 Bernd Schmidt - - * config/bfin/bfin.h (MOVE_RATIO): Define. - -2007-05-10 Richard Sandiford - - * config.gcc (sparc-wrs-vxworks): New target. - * config/sparc/vxworks.h, config/sparc/t-vxworks: New files. - * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare. - * config/sparc/sparc.h: Include vxworks-dummy.h. - (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to - include LABEL_REFs too. - * config/sparc/sparc.c (sparc_expand_move): Don't assume that - _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on - VxWorks. - (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs - on VxWorks. - (load_pic_register): Use gen_vxworks_load_got for VxWorks. - (sparc_emit_call_insn): New function. - (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding - functions when generating VxWorks PIC. - * config/sparc/sparc.md (vxworks_load_got): New pattern. - (call, call_value): Use sparc_emit_call_insn instead of - emit_call_insn. - -2007-05-09 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if. - -2007-05-09 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits - for floating-point values if HOST_BITS_PER_LONG > 32. Use - split_double instead of operand_subword. - -2007-05-08 Bernd Schmidt - - * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define. - * config/bfin/bfin.c (bfin_local_alignment): New function. - * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it. - -2007-05-08 Chao-ying Fu - - * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document. - * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes. - (smsub_widen_optab, umsub_widen_optab): Define. - * optabs.c (init_optabs): Initialize smsub_widen_optab and - umsub_widen_optab. - * genopinit.c (optabs): Fill in smsub_widen_optab and - umsub_widen_optab. - * expr.c (expand_expr_real_1): Try to use smsub_widen_optab - and umsub_widen_optab to implement multiply-subtract sequences. - * config/mips/mips.md (*msac_di): Rename to... - (msubsidi4): ...this. Extend condition to include - GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint - of operand 0 to "ka" and use the three-operand form of msub - for TARGET_DSPR2. - * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert - to define_expands. - -2007-05-08 Kaz Kojima - - PR rtl-optimization/28011 - * reload.c (push_reload): Set dont_share if IN appears in OUT - also when IN is a PLUS rtx. - (reg_overlap_mentioned_for_reload_p): Return true if X and IN - are same PLUS rtx. - -2007-05-08 Kazu Hirata - - * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL. Don't - call unshare_all_decls. - (unshare_all_rtl): Adjust the call to unshare_all_rtl_1. - (unshare_all_decls): Remove. - -2007-05-08 Simon Martin - - PR 31847 - * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree - dumps. - -2007-05-08 Sandra Loosemore - Nigel Stephens - - * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC. - Update comments and all uses. - (MIN_FPRS_PER_FMT): Define. - * config/mips/mips.c (function_arg): Fix to correctly handle - the -mips32r2 -mfp64 -mabi=32 case. - (override_options): Enable use of odd-numbered registers for - SFmode values on MIPS32. - (mips_save_reg_p): Save whole floating-point register pair if - either half is used. - (compute_frame_size): Fix comment. - -2007-05-08 Jie Zhang - - * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third - argument of type bool. - * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth - argument. Safely select temporary P register according to it. - (do_link): Change call site of add_to_reg accordingly. - (do_unlink): Add epilogue_p as a fourth argument and pass it - to add_to_reg. - (expand_interrupt_handler_epilogue): Change call of do_unlink - accordingly. - (bfin_expand_prologue): Add a third argument sibcall_p. - * config/bfin/bfin.md (epilogue): Change call of - bfin_expand_epilogue accordingly. - (sibcall_epilogue): Likewise. - (eh_return_internal): Likewise. - - * config/bfin/bfin-protos.h (enum bfin_cpu): Add - BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561. - * config/bfin/bfin.c (bfin_handle_option): Handle - -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): - Support bf534, bf536 and bf561. - * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim. - -2007-05-08 Uros Bizjak - - PR target/31854 - * config/i386/i386.c (ix86_function_regparm): Process local - functions only when TREE_CODE (decl) equals FUNCTION_DECL. - -2007-05-07 Mike Stump - - * doc/invoke.texi (Warning Options): Document that -Wempty-body - also checks for and while statements in C++. - -2007-05-07 Nathan Froyd - - * gcc.c (at_file_supplied): New variable. - (main): Set it if we expanded argv. - (do_spec_1): Pass an @-file to the linker if we were called with - an @-file argument and HAVE_GNU_LD. - * collect2.c (at_file_supplied): New variable. - (response_file): New variable. - (collect_exit): Unlink response_file if necessary. - (handler): Likewise. - (do_wait): Likewise. - (main): Set at_file_supplied if we expanded argv. - (collect_execute): Pass an @-file to subprocesses if we were called - with an @-file argument. - * configure.ac: Add define for HAVE_GNU_LD. - * configure: Regenerate. - * config.in: Regenerate. - -2007-05-07 Naveen.H.S - - * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd - operand to HI mode. - (mulsi3): New. - (divsi3): New. - (udivsi3): New. - -2007-05-07 Jayant Sonar - - * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define. - (TARGET_ENCODE_SECTION_INFO): Re-define. - (m32c_encode_section_info): New - (function_vector_handler): New - (current_function_special_page_vector): New - (m32c_special_page_vector_p): New. - * config/m32c/m32c-protos.h (m32c_special_page_vector_p): - Prototype. - * config/m32c/jump.md: Added instruction JSRS for functions - with attribute "function_vector". - * doc/extend.texi (function_vector): Added description - for M16C, M32C targets. - -2007-05-07 DJ Delorie - - PR 31794 - * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3, - ashrpsi3, lshrpsi3): Update shift count constraint. - -2007-05-07 Danny Smith - Nathan Froyd - - PR 22133 - * c-incpath.c (add_path): Strip trailing path separators. - -2007-05-07 Eric Botcazou - - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered. - Free dominance info before purging EH edges. - (eliminate_degenerate_phis): Likewise. - (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1. - -2007-05-07 Jan Hubicka - - * gimplify.c (gimplify_expr): Do not crash when folding - (void *)(int)&a + 4. - -2007-05-07 Francois-Xavier Coudert - - PR driver/31694 - * c-opts.c (lang_fortran): Make it non static. - * c-common.h (lang_fortran): New prototype. - * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the - -lang-fortran option was passed by the driver. - -2007-05-06 Eric Botcazou - - * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead - of ASSERT_CHECKING. Tweak message. - -2007-05-06 Revital Eres - - PR 30957 - * loop-unroll.c (insert_var_expansion_initialization): - Initialize the expansions with -zero instead of +zero. - -2007-05-05 Aurelien Jarno - - * config/pa/pa.md: Split tgd_load, tld_load and tie_load - into pic and non-pic versions. Mark r19 as used for - tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used - for tgd_load, tld_load and tie_load . - * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic - version of tgd_load, tld_load and tie_load depending on the - value of flag_pic. - -2007-05-04 Ulrich Drepper - Jakub Jelinek - - * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro. - (__do_global_dtors_aux): Use more paranoid loop to run - destructors if HIDDEN_DTOR_LIST_END. - (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END. - -2007-05-04 Jakub Jelinek - - * varasm.c (align_variable): Don't increase alignment for - DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through - DATA_ALIGNMENT or CONSTANT_ALIGNMENT. - -2007-05-04 Josh Conner - - * basic-block.h (cdi_direction): Assign values to all enumeration - constants. - (dom_computed): Remove. - (dom_info_state): New. - (set_dom_info_availability): New. - * tree-ssa-loop-im.c (determine_invariantness): Initialize - walk_data.dom_direction. - * cfghooks.c (delete_basic_block): Use dom_info_available_p() - instead of dom_computed[]. - (split_edge): Likewise. - (create_basic_block): Likewise. - (merge_blocks): Likewise. - * ifcvt.c (find_if_header): Likewise. - * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise. - * tree-ssa-dce.c (remove_dead_stmt): Likewise. - * tree-ssa.c (verify_ssa): Likewise. - * tree-cfg.c (tree_verify_flow_info): Likewise. - (remove_edge_and_dominated_blocks): Likewise. - * dominance.c (dom_computed): Make static. - (calc_dfs_tree_nonrec): Change third param to a bool. - (calc_dfs_tree): Change second param to a bool. - (calc_idioms): Change second param to a bool. Use - dom_convert_dir_to_idx. - (init_dom_info): Validate dir before using. - (dom_convert_dir_to_idx): New. - (calculate_dominance_info): Use dom_convert_dir_to_idx. New - variable 'reverse' used for calling calc_dfs_tree and calc_idoms. - (free_dominance_info): Use dom_convert_dir_to_idx. - (get_immediate_dominator): Likewise. - (set_immediate_dominator): Likewise. - (get_dominated_by): Likewise. - (redirect_immediate_dominators): Likewise. - (nearest_common_denominator): Likewise. - (dominated_by_p): Likewise. - (bb_dom_dfs_in): Likewise. - (bb_dom_dfs_out): Likewise. - (recount_dominator): Likewise. - (iterate_fix_dominators): Likewise. - (add_to_dominance_info): Likewise. - (delete_from_dominance_info): Likewise. - (first_dom_son): Likewise. - (next_dom_son): Likewise. - (dom_info_available_p): Likewise. - (dom_info_state): New. - (set_dom_info_availability): New. - -2007-05-04 Andreas Krebbel - - * config/s390/s390.md ("fix_truncdi2", "fix_truncsi2"): - Expander removed. - ("fix_trunc2"): Expander added. - -2007-05-04 Bob Wilson - - * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete. - (subdi3, subdi_carry): Delete. - -2007-05-04 Jan Hubicka - Richard Guenther - - * opts.c (decode_options): Do not fiddle with inlining - parameters in case of optimizing for size. - * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing - for size do nothing. - (cgraph_decide_inlining_of_small_function): When optimizing for - size never inline functions increasing caller size. - (cgraph_early_inlining): Inline for size when optimizing for size. - -2007-05-04 Bernd Schmidt - - * config/bfin/bfin.md (di3): Now a define_expand which expands - logical operations piecewise. - (di_zesidi_di, di_sesidi_di, negdi2, one_cmpldi2, - zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi, - subdi_sesidi_di): Delete. - (add_with_carry): Produce carry in CC instead of a DREG to shorten - the generated sequence. Allow three-reg add in constraints. Rewrite - the rtl expression for carry to avoid zero_extend of a constant. - (sub_with_carry): New pattern. - (adddi3, subdi3): Change into define_expand. For subtract, generate a - different sequence not involving jumps. - (notbi): Now a named pattern. - -2007-05-04 Bradley Lucier - - * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]: - Add the note about a significant loss of accuracy of some - mathematical routines when these options are used. - -2007-05-04 Maxim Kuvyrkov - - * haifa-sched.c (rtx_vec_t): New typedef. - (contributes_to_priority_p): Extract piece of priority () into new - static function. - (priority): Use the function. Add assertion. - (rank_for_schedule, set_priorities): Add assertion to check that - insn's priority is initialized. - (clear_priorities, calc_priorities): Change signature. Make it update - all relevant insns. Update all callers ('add_to_speculative_block ()' - and 'create_block_check_twin ()'). - * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'. - Add new field 'priority_status'. - (INSN_PRIORITY_STATUS): New macro. - (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS. - -2007-05-04 Maxim Kuvyrkov - - * sched-ebb.c (debug_ebb_dependencies): New static function. - (init_ready_list): Use it. - - * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()' - with changed signature and 'debug_rgn_dependencies ()'. - (debug_rgn_dependencies): New static function. - (init_ready_list): Use it. - - * sched-int.h (debug_dependencies): Declare. - -2007-05-04 Andreas Krebbel - - * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section. - -2007-05-04 Dirk Mueller - - * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++. - -2007-05-03 Jan Hubicka - - * fold-const.c (fold_unary): Convert (T1)(X op Y) into - ((T1)X op (T1)Y), for pointer type in more cases than before. - - * gimplify.c (gimplify_expr): Fold (void *)&a + 4. - - * tree-object-size.c (plus_expr_object_size): When operand size is - unknown, return unknown. - -2007-05-03 Dirk Mueller - - * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove. - - * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated - options. - - * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove. - -2007-05-03 Janis Johnson - - * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors. - -2007-05-03 Joseph Myers - - * config/soft-fp/double.h, config/soft-fp/extended.h, - config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c, - config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c, - config/soft-fp/op-2.h, config/soft-fp/op-4.h, - config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from - glibc CVS. - -2007-05-03 Ian Lance Taylor - - * config/rs6000/rs6000.c (rs6000_override_options): Don't set - MASK_PPC_GFXOPT for 8540 or 8548. - -2007-05-03 Uros Bizjak - - * tree-vect-transform.c (vect_update_inits_of_drs): Use - vect_print_dump_info() to output debug information. - -2007-05-03 Uros Bizjak - - PR target/31768 - * config/i386/i386.c (print_operand) ['z']: Output 'w' for - operands of size 2 when operand is not MEM_P. - -2007-05-03 Zdenek Dvorak - - PR tree-optimization/30565 - * lambda-code.c (perfect_nestify): Fix updating of dominators. - -2007-05-03 Bernd Schmidt - - * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns. - (umulsi3_highpart): Use them. - * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move - for final accumulator to D regisster tranfser. - -2007-05-03 Dorit Nuzman - - PR tree-optimization/31699 - * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove - wrong code. - (vect_enhance_data_refs_alignment): Compute peel amount using - TYPE_VECTOR_SUBPARTS instead of vf. - * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise. - -2007-05-02 Brooks Moses - - PR bootstrap/31776 - * system.h: Remove inclusion of double-int.h - * tree.h: Include double-int.h - * gengtype.c: Likewise - * cfgloop.h: Likewise - * Makefile.in: Adjust dependencies on double-int.h - -2007-05-02 Eric Christopher - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate - -shared to -Zdynamiclib. - -2007-05-02 Seongbae Park - - PR c++/31663 - * c-common.c (strip_pointer_or_array_types): New function. - * c-common.h (strip_pointer_or_array_types): New function declaration. - -2007-05-03 Zdenek Dvorak - - PR tree-optimization/31771 - * tree-cfg.c (move_block_to_fn): Assign bb to the correct index. - -2007-05-02 Paul Brook - - * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow. - -2007-05-02 Andrew Pinski - - PR middle-end/29715 - * fold-const.c (fold_comparision): Remove the "foo++ == CONST" - transformation. - -2007-05-02 Nick Clifton - - * config/frv/predicates.md (symbolic_operand): Accept CONSTs. - -2007-05-02 Richard Guenther - - PR tree-optimization/31146 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New - argument, single_use_p. If we have a single use that is - a conversion to the definition rhs type, propagate that rhs. - (forward_propagate_addr_expr): Pass single_use_p argument - to forward_propagate_addr_expr_1. - -2007-05-01 H.J. Lu - - * config/i386/i386.c (ix86_expand_sse_comi): Remove unused - variable. - -2007-05-01 Dwarakanath Rajagopal - - * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of - 'AMD Family 10 core'. - -2007-05-01 Dwarakanath Rajagopal - - * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 - and athlon64-sse3 as improved versions of k8, opteron and athlon64 - with SSE3 instruction set support. - * doc/invoke.texi: Likewise. - -2007-05-01 Dwarakanath Rajagopal - - * config/i386/i386.c (override_options): Tuning 32-byte loop - alignment for amdfam10 architecture. Increasing the max loop - alignment to 24 bytes. - -2007-05-01 Kazu Hirata - - * config/m68k/constraints.md: New. - * config/m68k/m68k.h (REG_CLASS_FROM_LETTER, - CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, - EXTRA_CONSTRAINT): Remove. - * config/m68k/m68k.md: Include constraints.md. - * expr.c (expand_expr_real_1): Copy DECL_RTL before using it. - -2007-05-01 Ian Lance Taylor - - PR tree-optimization/31739 - * tree-vrp.c (vrp_val_is_max): New static function. - (vrp_val_is_min): New static function. - (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than - copying the node. - (set_value_range): Use vrp_val_is_{max,min}. - (extract_range_from_assert): Likewise. - (extract_range_from_binary_expr): Likewise. - (extract_range_from_unary_expr): Likewise. - (dump_value_range, vrp_meet): Likewise. - (vrp_visit_phi_node): Likewise. - * tree.c (build_distinct_type_copy): Revert change of 2007-04-27. - -2007-05-01 Mark Mitchell - - * config/i386/gmon-sol2.c (size_t): New type. - (intptr_t): Likewise. - (s_textsize): Declare as size_t. - (sbrk): Declare. - (monstartup): Use size_t for sizes. - (_mcount): Save and restore registers. - (internal_mcount): Pass 0 as the first argument to monstartup - in 64-bit mode. - (moncontrol): Convert pointer to appropriately sized integer - before passing to profil. - -2007-05-01 Joseph Myers - - * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if - __NO_FPRS__, not just if _SOFT_DOUBLE. - * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise. - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord - also for E500 double. - * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt, - suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT - && !TARGET_FPRS). - -2007-05-01 Richard Guenther - - * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt - is NULL. - -2007-05-01 Joseph Myers - - * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo. - -2007-05-01 Jan Hubicka - - * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is - invariant. - -2007-05-01 Jan Hubicka - - * tree.h (maybe_fold_offset_to_component_ref): Remove. - (maybe_fold_offset_to_reference): Declare. - * fold-const.c (fold_unary): Do not fold - (type *)&A into &A->field_of_type_and_offset_0 - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type - size is unknown, give up. - (maybe_fold_offset_to_component_ref): Ignore firelds with unknown - offsets. - (maybe_fold_offset_to_reference): New. - (maybe_fold_stmt_indirect): Use it. - (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset. - * gimplify.c (gimplify_conversion): Canonicalize conversions to - field references. - (gimplify_expr): Likewise for plus_expr. - -2007-05-01 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use - bsi_after_labels. Always insert statements before bsi. - * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. - * predict.c (apply_return_prediction): Check for empty blocks. - * cfgexpand.c (lab_rtx_for_bb): New variable. - (label_rtx_for_bb): Do not create new tree labels. - (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb. - (tree_expand_cfg): Initialize lab_rtx_for_bb. - * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after - creating edges. - (label_for_bb): Add field used. - (update_eh_label, main_block_label): Mark the label used. - (cleanup_dead_labels): Remove unused labels. - -2007-05-01 Richard Guenther - - * tree-vrp.c (set_value_range): Do not allocate equiv bitmap - if it is not about to be set. - (get_value_range): Do not pre-allocate equiv bitmap. - (update_value_range): No need to clear equiv field. - (add_equivalence): Change prototype to get bitmap pointer. - Allocate bitmap here if it is not already. - (extract_range_from_assert): Do not allocate bitmap here. - Update callers to add_equivalence. - (extract_range_from_ssa_name): Likewise. - (get_vr_for_comparison): New static helper. - (compare_name_with_value): Handle NULL equiv bitmap by - peeling the first iteration of the comparison loop. - Use get_vr_for_comparison. - (compare_names): Handle NULL equiv bitmaps by using fake - ones. Use get_vr_for_comparison. - -2007-04-30 Brooks Moses - - * double-int.c (mpz_set_double_int): Moved from - tree-ssa-loop-niter.c. - (mpz_get_double_int): Likewise; also, add option to wrap - out-of-range integers. - * double-int.h: New prototypes for above. - * tree.c (get_static_type_bounds): Moved from - tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and - TYPE_MAX_VALUE if they exist.. - * tree.h: New prototype for above. - * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and - get_type_bounds calls. - (mpz_set_double_int): Move to double-int.c. - (get_type_bounds): Move to tree.c, rename to - get_static_type_bounds. - (mpz_to_double_int): Move to double-int.c, rename to - mpz_get_double_int. - -2007-04-30 Bob Wilson - - * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that - DIV0 exception can fall through to a normal return. - -2007-04-30 Alexandre Oliva - - PR middle-end/22156 - Temporarily revert: - 2007-04-06 Andreas Tobler - * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. - 2007-04-05 Alexandre Oliva - * tree-sra.c (try_instantiate_multiple_fields): Needlessly - initialize align to silence bogus warning. - 2007-04-05 Alexandre Oliva - * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove - all_no_warning. - (struct sra_walk_fns): Remove use_all parameter from use. - (sra_hash_tree): Handle BIT_FIELD_REFs. - (sra_elt_hash): Don't hash bitfld blocks. - (sra_elt_eq): Skip them in parent compares as well. Handle - BIT_FIELD_REFs. - (sra_walk_expr): Don't maintain or pass down use_all_p. - (scan_use): Remove use_all parameter. - (scalarize_use): Likewise. Re-expand assignment to - BIT_FIELD_REF of gimple_reg. De-scalarize before input or - output, and re-scalarize after output. Don't mark anything - for no warning. - (scalarize_ldst): Adjust. - (scalarize_walk_gimple_modify_statement): Likewise. - (build_element_name_1): Handle BIT_FIELD_REFs. - (instantiate_element): Don't warn for any element whose parent - is used as a whole. - (instantiate_missing_elements_1): Return the sra_elt. - (canon_type_for_field): New. - (try_instantiate_multiple_fields): New. - (instantiate_missing_elemnts): Use them. - (mark_no_warning): Removed. - (generate_one_element_ref): Handle BIT_FIELD_REFs. - (REPLDUP, sra_build_elt_assignment): New. - (generate_copy_inout): Use them. - (generate_element_copy): Likewise. Handle bitfld differences. - (generate_element_zero): Don't recurse for blocks. Use - sra_build_elt_assignment. - (generate_one_element_int): Take elt instead of var. Use - sra_build_elt_assignment. - (generate_element_init_1): Adjust. - (scalarize_use, scalarize_copy): Use REPLDUP. - (scalarize_ldst): Move assert before dereference. - (dump_sra_elt_name): Handle BIT_FIELD_REFs. - -2007-04-30 Andrew Pinski - - PR C++/31721 - * tree.c (reconstruct_complex_type): Reconstruct a reference - correctly. - Also use the same mode for the pointer as the old pointer type. - -2007-04-30 Francois-Xavier Coudert - - * doc/trouble.texi (Interoperation): Remove note about Ultrix - Fortran compiler. - -2007-04-29 Zdenek Dvorak - - PR rtl-optimization/31676 - * df-scan.c (record_nonlocal_goto_receiver_defs): New function. - (df_refs_record): Call it. - -2007-04-29 Bernd Schmidt - - * rtl.def (SS_ABS): New code. - * config/bfin/bfin.c (print_operand): New modifier 'v'. - (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32, - BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32, - BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32. - (bfin_init_builtins): Define them. - (bdesc_1arg, bdesc_2arg): Add some of them here, ... - (bfin_expand_builtin): ... and handle the others here. - * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3, - flag_mul_macv2hi_parts_acconly_andcc0): New patterns. - (ss_absv2hi2): Renamed from absv2hi; use ss_abs code. - (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count - operand is only HImode. - -2007-04-29 Steven Bosscher - - * regclass.c (scan_one_insn): Remove splitting of - two address insns. - -2007-04-28 Sandra Loosemore - Nigel Stephens - - * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16. - -2007-04-28 Jan Hubicka - - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use - insn_locators_alloc instead of insn_locators_initialize; - call reset_block_changes. - * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. - * config/sh/sh.c (sparc_output_mi_thunk): Likewise. - * config/is64/ia64.c (ia64_output_mi_thunk): Likewise. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/score/score.c (th_output_mi_thunk): Likewise. - * config/mips/mips.c (mips_output_mi_thunk): Likewise. - * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block): - tolerate uninitialized locator info. - - Re-apply: - * function.c (init_function_start): Don't init line number info. - (expand_function_end): Update. - (reset_block_changes, record_block_change, finalize_block_changes, - check_block_change, free_block_changes): Kill. - * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): - Remove prototypes. - (struct function): Remove ib_boundaries_block. - * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): - Use curr_insn_locator to initialize locator. - (emit_line_note): Remove. - * cfgexpand.c (expand_gimple_cond_expr): Update. - (construct_exit_block): Likewise. - (tree_expand_cfg): Initialize/finalize locators. - * expr.c (expand_expr_real): Update. - * cfglayout.c (line_locators_locs, line_locators_lines, - file_locators_locs, file_locators_files): Remove. - (set_block_levels): Move to cfgexpand.c. - (insn_locators_initialize): Remove. - (pass_insn_locators_initialize): Remove. - (locations_locators_locs, locations_locators_vals): New static vars. - (curr_location, last_location, curr_block, last_block, curr_rtl_loc): - Likewise. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - New functions. - (locator_location): New. - (locator_line, locator_file): Rewrite. - * rtl.h (emit_line_note): Kill. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - Declare. - * tree-inline.c (initialize_cfun): Do not initialize - ib_boundaries_block. - * passes.c (pass_insn_locators_initialize): Remove. - -2007-04-28 Zdenek Dvorak - - * tree-cfg.c (move_block_to_fn): Release bb from dominance - info. Update last_basic_block correctly. - -2007-04-27 Kaz Kojima - - PR target/31701 - * config/sh/sh.c (output_stack_adjust): Avoid using the frame - register itself to hold the offset constant. Tell flow the use - of r4 and r5 when they are used. - -2007-04-27 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track - if we simplified anything. - (tree_ssa_forward_propagate_single_use_vars): Defer overflow - warnings until we did a simplification and the stmt was not - marked as TREE_NO_WARNING. - -2007-04-27 Mike Stump - - * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove. - -2007-04-27 Ian Lance Taylor - - PR middle-end/31710 - * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or - TYPE_MAX_VALUE exist, convert them to the new type. - -2007-04-27 Zdenek Dvorak - - * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info - if it claims to be available. - * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when - edge is redirected. - (perform_tree_ssa_dce): Always free postdominators. - -2007-04-27 Richard Henderson - - * config/alpha/predicates.md (aligned_memory_operand): Mark - as define_special_predicate. - (unaligned_memory_operand, normal_memory_operand): Likewise. - (reg_or_unaligned_mem_operand): Remove. - (any_memory_operand): Match the documentation and check for - non-renumbered pseudos during reload. - * config/alpha/alpha.c (alpha_secondary_reload): Rename from - alpha_secondary_reload_class, update to new interface, make static. - Handle CQImode like HImode. Remove FP subreg check. - (alpha_expand_mov): Use replace_equiv_address. - (alpha_expand_mov_nobwx): Use any_memory_operand. - (TARGET_SECONDARY_RELOAD): New. - * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove. - (SECONDARY_OUTPUT_RELOAD_CLASS): Remove. - * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ... - * config/alpha/alpha.md: ... here. - (RELOAD12, reloadmode): New. - (movcqi): New. - (reload_in): Macro-ize from reload_inqi, reload_inhi. - Don't handle the aligned case here. - (reload_out): Macro-ize from reload_outqi, reload_outhi. - (reload_in_aligned): Macro-ize from reload_inqi_help, - reload_inhi_help. Don't expect a scratch register. - (reload_out_aligned): Macro-ize from reload_outqi_help, - reload_outhi_help. - * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove. - -2007-04-27 Richard Guenther - - * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo. - -2007-04-27 Richard Guenther - - PR tree-optimization/30965 - PR tree-optimization/30978 - * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H). - * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove. - (find_equivalent_equality_comparison): Likewise. - (simplify_cond): Likewise. - (get_prop_source_stmt): New helper. - (get_prop_dest_stmt): Likewise. - (can_propagate_from): Likewise. - (remove_prop_source_from_use): Likewise. - (combine_cond_expr_cond): Likewise. - (forward_propagate_comparison): New function. - (forward_propagate_into_cond): Rewrite to use fold for - tree combining. - (tree_ssa_forward_propagate_single_use_vars): Call - forward_propagate_comparison to propagate comparisons. - -2007-04-27 Richard Guenther - - PR tree-optimization/31715 - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make - sure to do computation on the offset in an appropriate - signed type. - -2007-04-27 Richard Sandiford - - * reload.h (elimination_target_reg_p): Declare. - * reload.c (find_reloads): Don't apply the reg_rtx move - optimization if the SET_DEST satisfies elimination_target_reg_p. - * reload1.c (elimination_target_reg_p): New function. - (gen_reload): In the move/add2 fallback, make sure that op0 - does not overlap the destination register. - -2007-04-27 Zdenek Dvorak - - * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to - transform only GIMPLE_MODIFY_STMTs. - * tree-complex.c (expand_complex_operations_1): Ditto. - (expand_complex_div_wide): Do not create gotos in COND_EXPR branches. - * tree-ssa-loop-manip.c (build_if_stmt): Removed. - (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR - branches. - * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2, - tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto. - * omp-low.c (expand_parallel_call, expand_omp_for_generic, - expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto. - * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes, - slpeel_add_loop_guard): Ditto. - * tree-mudflap.c (mf_build_check_statement_for): Ditto. - * lambda-code.c (perfect_nestify): Ditto. - * tree-iterator.c (tsi_split_statement_list_before): Fix splitting - before the first statement. - * tree-optimize.c (execute_free_datastructures): Fix comments. - (execute_free_cfg_annotations): Do not call disband_implicit_edges. - * tree-flow.h (disband_implicit_edges): Declaration removed. - * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR - branches. - (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle - COND_EXPRs without gotos. - (disband_implicit_edges, has_label_p): Removed. - (tree_verify_flow_info): Verify that COND_EXPR branches are empty. - (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR - branches. - * tree.c (build3_stat): Mark COND_EXPRs used as statements as having - side effects. - * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges - also for COND_EXPRs. - * cfgexpand.c (label_rtx_for_bb): New function. - (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches. - Use label_rtx_for_bb to find the labels. - (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the - last block. Detect fallthru edges. - -2007-04-26 Ian Lance Taylor - - PR target/28675 - * reload.c (find_reloads_subreg_address): If the address was valid - in the original mode but not in the new mode, reload the whole - address. - -2007-04-27 Zdenek Dvorak - - * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable. - (remove_fallthru_edge): Use remove_edge_and_dominated_blocks. - (cleanup_control_expr_graph): Do not invalidate dominance info. - Record altered blocks. - (cleanup_control_flow, cleanup_forwarder_blocks): Removed. - (cleanup_control_flow_bb, split_bbs_on_noreturn_calls, - cleanup_tree_cfg_bb): New functions. - (remove_forwarder_block): Do not maintain the worklist of blocks. - Record altered blocks. - (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs, - not over whole cfg. - (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1. Only call - delete_unreachable_blocks if dominators are not available. - * tree-inline.c (optimize_inline_calls): Free dominance information - earlier. - * tree-flow.h (remove_edge_and_dominated_blocks, - cfgcleanup_altered_bbs): Altered. - * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered - blocks. - (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New - functions. - (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks, - do not invalidate dominators. - -2007-04-26 Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and - ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture. - * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). - * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). - -2007-04-26 Steve Ellcey - - * config/ia64/ia64.md (ip_value): Fix itanium_class attribute. - -2007-04-26 Richard Guenther - - PR tree-optimization/31703 - * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use - the right type for the target of the bittest. - -2007-04-26 Richard Sandiford - - * config/i386/vx-common.h (RETURN_IN_MEMORY): Use - ix86_sol10_return_in_memory. - -2007-04-26 Richard Sandiford - - * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused - variables. - -2007-04-26 Jakub Jelinek - - PR c++/31598 - * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE. - - PR tree-optimization/30558 - * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW - clear this_state.prev_try. - -2007-04-26 Richard Sandiford - Mark Mitchell - - * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare. - * config/i386/i386.c (ix86_sol10_return_in_memory): New function. - * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it. - -2007-04-26 Richard Sandiford - - PR driver/31107 - * doc/invoke.texi (%:print-asm-header): Document. - * gcc.c (asm_options): Use %:print-asm-header() for --target-help - and -ftarget-help. - (static_spec_functions): Add print-asm-header. - (main): Print a banner before the --target-help linker options. - (print_asm_header_spec_function): New function. - -2007-04-25 Kaz Kojima - - PR target/31403 - * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A. - (movsf_ie): Likewise. - -2007-04-25 Paolo Carlini - - * doc/extend.texi ([Type Traits]): Adjust per N2255. - -2007-04-25 Bob Wilson - - * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an - exception for divide-by-zero. - (__umodsi3, __modsi3): Likewise. - -2007-04-25 Dirk Mueller - - * c-typeck.c (build_compound_expr): Annotate warning() - call with OPT_Wunused_value. - * tree-ssa.c (warn_uninit): Annotate warning with - OPT_Wunintialized. - * c-common.c (handle_sentinel_attribute): Annotate warning - call with OPT_Wattributes. - -2007-04-25 Thiemo Seufer - - * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options. - (mips16): Fix typo. - * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx - on to the assembler. Improve handling of -mno-mips16. Add handling - of -mno-mips3d, -mno-dsp, -mno-dspr2. - * doc/invoke.texi (MIPS Options): Whitespace cleanup. Fix wrong use - of @itemx. Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx, - -mno-mdmx, -mno-mips3d, -mmt and -mno-mt. - -2007-04-25 Danny Smith - - PR target/31680 - * config/i386/winnt.c (i386_pe_file_end): Strip only - USER_LABEL_PREFIX when writing export name. - -2007-04-25 Richard Sandiford - - * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h. Include - sh/elf.h, vx-common.h and vxworks.h. - * config/sh/sh.h: Include config/vxworks-dummy.h. - (SUBTARGET_OVERRIDE_OPTIONS): Define. - (OVERRIDE_OPTIONS): Use it. - * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs. - (vxworks_picreg): New pattern. - * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use - VXWORKS_OS_CPP_BUILTINS. - (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine - to their VXWORKS_* equivalents. - (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define. - (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define. - * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC. - (set_fpscr, ic_invalidate): Add VxWorks PIC sequences. - * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and - -mrtp/-fPIC multilibs. - (MULTILIB_EXCEPTIONS): Generalize globs accordingly. - (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define. - (MULTILIB_OSDIRNAMES): Delete. - -2007-04-25 Anatoly Sokolov - - PR target/18989 - * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine. - -2007-04-24 Brooks Moses - - * real.c (mpfr_from_real): Handle Inf and NaN, and allow the - rounding mode to be specified by the caller. - (real_to_mpfr) Likewise. - * real.h: Update mpfr_from_real, mpfr_to_real prototypes to - include new arguments. - * builtins.c: Update mpfr_from_real, mpfr_to_real calls. - -2007-04-24 Ian Lance Taylor - - PR tree-optimization/31605 - * tree-vrp.c (set_value_range): Check that min and max are not - both overflow infinities. - (set_value_range_to_value): New static function. - (extract_range_from_binary_expr): Call set_value_range_to_value. - (extract_range_from_cond_expr): Likewise. - (extract_range_from_expr): Likewise. - (extract_range_from_unary_expr): Likewise. Don't create a range - which overflows on both sides. - (vrp_meet): Check for a useless range. - (vrp_visit_phi_node): If we see a constant which looks like an - overflow infinity, turn off the TREE_OVERFLOW flag. - -2007-04-24 Ian Lance Taylor - - * flow.c (elim_reg_cond): Handle a comparison of a subreg. - -2007-04-24 Simon Martin - - PR diagnostic/25923 - * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a - diagnostic message is being built. - * tree-pretty-print.c (dump_generic_node): Only write the - formatted text into BUFFER's stream if we are not building a - diagnostic message. - * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to - dump_generic_node. - * Makefile.in (toplev.o): Depend on tree-pass.h. - -2007-04-24 Ian Lance Taylor - - PR tree-optimization/31602 - * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for - conditionals in the copied loop header. - * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow - warnings if TREE_NO_WARNING is set. - * doc/invoke.texi (Warning Options): Clarify that - -Wstrict-overflow does not warn about loops. - -2007-04-24 Janis Johnson - - * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI, - expand on the comment about _Decimal128 arguments and check the - integer result of the modulus operation; for 64-bit ELF ABI, ensure - that _Decimal128 argument uses even/odd register pair. - (function_arg): Ditto. - -2007-04-24 Hui-May Chang - - * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER - instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction. - -2007-04-24 Richard Guenther - Olga Golovanevsky - - * fold-const.c (multiple_of_p): Check for bottom - to be zero. - -2007-04-24 Richard Henderson - - * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from - IS_IBM_EXTENDED. Also define in terms of WIDEST_HARDWARE_FP_SIZE. - * libgcc2.c (__floatdisf): Avoid double-word arithmetic when - looking for non-zero bits shifted out. Avoid a recursive call - when constructing the scalar. - (__floatundisf): Likewise. - -2007-04-24 Nathan Froyd - - * dwarf2out.c (field_byte_offset): Move the existing logic - under the control of PCC_BITFIELD_TYPE_MATTERS and just use - the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS. - -2007-04-24 Andreas Krebbel - - PR target/31641 - * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant - length argument of 0 for memset. - (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use - unsigned shift instead of the signed variant. - -2007-04-24 Andreas Krebbel - - * config/s390/s390.md ("*cmp_ccs_0_ibm", "*cmp_ccs_ibm", - "fix_trunc2_ieee", "fix_truncdfsi2_ibm", - "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm", - "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", - "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm", - "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee", - "*extendsftf2_ibm", "*add3", "*add3_ibm", "*sub3_ibm", - "*mul3", "*mul3_ibm", "*div3", "*div3_ibm", - "*neg2_ibm", "*abs2_ibm"): Insn definitions removed. - ("fix_trunc2_bfp", "floatsi2", - "truncdfsf2", "trunctf2", "add3", "sub3", - "mul3", "div3"): Insn definitions added. - ("fixuns_trunc2", "fix_truncdi2", - "fix_truncsi2"): gen_fix_trunc2_ieee renamed - to gen_fix_trunc2_bfp. - ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2", - "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add3", - "sub3", "mul3", "div3"): Expander removed. - ("fix_truncsi2", "extend2"): Expander added. - * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT, - TARGET_FLOAT_FORMAT): Macro definitions removed. - (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore. - * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost, - z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der. - (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches. - (s390_gen_rtx_const_DI): Function removed. - * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed. - -2007-04-24 Richard Sandiford - - * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions - over an external ffs function. - -2007-04-24 Chao-ying Fu - Richard Sandiford - - * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document. - * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes. - (smadd_widen_optab, umadd_widen_optab): Define. - * optabs.c (init_optabs): Initialize smadd_widen_optab and - umadd_widen_optab. - * genopinit.c (optabs): Fill in smadd_widen_optab and - umadd_widen_optab. - * expr.c (expand_expr_real_1): Try to use smadd_widen_optab - and umadd_widen_optab to implement multiply-add sequences. - * config/mips/mips.md (*mul_acc_di): Rename to... - (maddsidi4): ...this. Extend condition to include - GENERATE_MADD_MSUB and TARGET_DSPR2. Change the constraint - of operand 0 to "ka" and use the three-operand form of madd - for TARGET_DSPR2. - * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert - to define_expands. - * config/mips/constraints.md (ka): New register constraint. - -2007-04-24 Jan Hubicka - - Revert: - - 2007-04-23 Jan Hubicka - * function.c (init_function_start): Don't init line number info. - (expand_function_end): Update. - (reset_block_changes, record_block_change, finalize_block_changes, - check_block_change, free_block_changes): Kill. - * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): - Remove prototypes. - (struct function): Remove ib_boundaries_block. - * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): - Use curr_insn_locator to initialize locator. - (emit_line_note): Remove. - * cfgexpand.c (expand_gimple_cond_expr): Update. - (construct_exit_block): Likewise. - (tree_expand_cfg): Initialize/finalize locators. - * expr.c (expand_expr_real): Update. - * cfglayout.c (line_locators_locs, line_locators_lines, - file_locators_locs, file_locators_files): Remove. - (set_block_levels): Move to cfgexpand.c. - (insn_locators_initialize): Remove. - (pass_insn_locators_initialize): Remove. - (locations_locators_locs, locations_locators_vals): New static vars. - (curr_location, last_location, curr_block, last_block, curr_rtl_loc): - Likewise. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - New functions. - (locator_location): New. - (locator_line, locator_file): Rewrite. - * rtl.h (emit_line_note): Kill. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - Declare. - * tree-inline.c (initialize_cfun): Do not initialize - ib_boundaries_block. - * passes.c (pass_insn_locators_initialize): Remove. - -2007-04-24 Daniel Franke - - * doc/invoke.texi: Removed leading '-' from option index entries. - -2007-04-23 Zdenek Dvorak - - * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node): - Use phi_nodes_ptr. - (create_phi_node): Use set_phi_nodes. - * omp-low.c (expand_omp_parallel): Use bb_stmt_list. - * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes. - (combine_blocks): Use bb_stmt_list and set_bb_stmt_list. - * tree-flow-inline.h (phi_nodes, set_phi_nodes, - (bsi_start, bsi_last): Use bb_stmt_list. - (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions. - * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list. - Traverse the statements using tsi iterator. - * basic-block.h (struct basic_block_def): Fields stmt_list - and phi_nodes moved to ... - (struct tree_bb_info): ... new structure. - * tree-cfg.c (create_bb): Allocate il.tree. Use set_bb_stmt_list. - (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list. - (remove_bb): Handle blocks with NULL stmt list. Clear il.tree field. - (tree_verify_flow_info): Verify that il.tree is not set for - entry and exit block. - (tree_split_block): Use set_bb_stmt_list. - -2007-04-23 Mike Stump - - * config/i386/i386.c (ix86_tune_features - [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on - nocona and core2. - -2007-04-23 H.J. Lu - - * config/i386/i386.md (prefix_extra): New attribute. - (length): Add prefix_extra. - - * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16. - (sse2_movntv2di): Likewise. - (sse2_cvtps2dq): Likewise. - (sse2_cvtpd2pi): Likewise. - (sse2_cvttpd2pi): Likewise. - (*sse2_cvtpd2ps): Likewise. - (*add3): Likewise. - (sse2_ssadd3): Likewise. - (sse2_usadd3): Likewise. - (*sub3): Likewise. - (sse2_sssub3): Likewise. - (sse2_ussub3): Likewise. - (*mulv8hi3): Likewise. - (*smulv8hi3_highpart): Likewise. - (*umulv8hi3_highpart): Likewise. - (sse2_umulv2siv2di3): Likewise. - (sse2_pmaddwd): Likewise. - (ashr3): Likewise. - (lshr3): Likewise. - (ashl3): Likewise. - (sse2_ashlti3): Likewise. - (sse2_lshrti3): Likewise. - (*umaxv16qi3): Likewise. - (*smaxv8hi3): Likewise. - (*uminv16qi3): Likewise. - (*sminv8hi3): Likewise. - (sse2_eq3): Likewise. - (sse2_gt3): Likewise. - (*and3): Likewise. - (sse2_nand3): Likewise. - (*ior3): Likewise. - (*xor3): Likewise. - (sse2_packsswb): Likewise. - (sse2_packssdw): Likewise. - (sse2_packuswb): Likewise. - (sse2_punpckhbw): Likewise. - (sse2_punpcklbw): Likewise. - (sse2_punpckhwd): Likewise. - (sse2_punpcklwd): Likewise. - (sse2_punpckhdq): Likewise. - (sse2_punpckldq): Likewise. - (sse2_punpckhqdq): Likewise. - (sse2_punpcklqdq): Likewise. - (*sse2_pinsrw): Likewise. - (*sse2_pextrw): Likewise. - (sse2_pshufd_1): Likewise. - (sse2_uavgv16qi3): Likewise. - (sse2_uavgv8hi3): Likewise. - (sse2_psadbw): Likewise. - (sse2_pmovmskb): Likewise. - (*sse2_maskmovdqu): Likewise. - (*sse2_maskmovdqu_rex64): Likewise. - (sse4a_extrqi): Likewise. - (sse4a_extrq): Likewise. - (sse3_lddqu): Set prefix_rep. - (sse3_addsubv4sf3): Likewise. - (sse3_haddv4sf3): Likewise. - (sse3_hsubv4sf3): Likewise. - (sse_cvtss2si): Likewise. - (sse_cvtss2si_2): Likewise. - (sse_cvtss2siq): Likewise. - (sse_cvtss2siq_2): Likewise. - (sse_cvttss2si): Likewise. - (sse_cvttss2siq): Likewise. - (sse2_cvttps2dq): Likewise. - (sse3_movshdup): Likewise. - (sse3_movsldup): Likewise. - (sse2_cvtsd2si): Likewise. - (sse2_cvtsd2si_2): Likewise. - (sse2_cvtsd2siq): Likewise. - (sse2_cvtsd2siq_2): Likewise. - (sse2_cvttsd2si): Likewise. - (sse2_cvttsd2siq): Likewise. - (*sse2_cvtpd2dq): Likewise. - (*sse2_cvttpd2dq): Likewise. - (sse2_pshuflw_1): Likewise. - (sse2_pshufhw_1): Likewise. - (sse4a_insertqi): Likewise. - (sse4a_insertq): Likewise. - (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra. - (ssse3_phadddv4si3): Likewise. - (ssse3_phaddswv8hi3): Likewise. - (ssse3_phsubwv8hi3): Likewise. - (ssse3_phsubdv4si3): Likewise. - (ssse3_phsubswv8hi3): Likewise. - (ssse3_pmaddubswv8hi3): Likewise. - (ssse3_pmulhrswv8hi3): Likewise. - (ssse3_pshufbv16qi3): Likewise. - (ssse3_psign3): Likewise. - (ssse3_palignrti): Likewise. - (abs2): Likewise. - (ssse3_phaddwv4hi3): Set prefix_extra. - (ssse3_phadddv2si3): Likewise. - (ssse3_phaddswv4hi3): Likewise. - (ssse3_phsubwv4hi3): Likewise. - (ssse3_phsubdv2si3): Likewise. - (ssse3_phsubswv4hi3): Likewise. - (ssse3_pmaddubswv4hi3): Likewise. - (ssse3_pmulhrswv4hi3): Likewise. - (ssse3_pshufbv8qi3): Likewise. - (ssse3_psign3): Likewise. - (ssse3_palignrdi): Likewise. - (abs2): Likewise. - (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF. - (*vec_dupv2df): Set mode to V2DF instead of V4SF. - (sse2_pmovmskb): Set mode to SI instead of V2DF. - -2007-04-23 Nick Clifton - - * params.def: Fix formatting of emacs local variables. - -2007-04-23 H.J. Lu - - * config/i386/sse.md (sse2_stored): Don't split to inter-unit - move if inter-unit move isn't allowed. - Don't split moving the first element of V2DI to DI to inter-unit - move if inter-unit move isn't allowed. - -2007-04-23 Richard Guenther - - * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS - and CDI_POST_DOMINATORS separately. - -2007-04-23 Nick Clifton - - * c.opt (Wformat-contains-nul): Add warning attribute. - -2007-04-23 Jan Hubicka - - * function.c (init_function_start): Don't init line number info. - (expand_function_end): Update. - (reset_block_changes, record_block_change, finalize_block_changes, - check_block_change, free_block_changes): Kill. - * function.h (reset_block_changes, record_block_change, - finalize_block_changes, check_block_change, free_block_changes): - Remove prototypes. - (struct function): Remove ib_boundaries_block. - * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): - Use curr_insn_locator to initialize locator. - (emit_line_note): Remove. - * cfgexpand.c (expand_gimple_cond_expr): Update. - (construct_exit_block): Likewise. - (tree_expand_cfg): Initialize/finalize locators. - * expr.c (expand_expr_real): Update. - * cfglayout.c (line_locators_locs, line_locators_lines, - file_locators_locs, file_locators_files): Remove. - (set_block_levels): Move to cfgexpand.c. - (insn_locators_initialize): Remove. - (pass_insn_locators_initialize): Remove. - (locations_locators_locs, locations_locators_vals): New static vars. - (curr_location, last_location, curr_block, last_block, curr_rtl_loc): - Likewise. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - New functions. - (locator_location): New. - (locator_line, locator_file): Rewrite. - * rtl.h (emit_line_note): Kill. - (insn_locators_alloc, insn_locators_finalize, - set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): - Declare. - * tree-inline.c (initialize_cfun): Do not initialize - ib_boundaries_block. - * passes.c (pass_insn_locators_initialize): Remove. - -2007-04-22 Andrew Pinski - - PR middle-end/31448 - * expr.c (reduce_to_bit_field_precision): Handle - CONST_INT rtx's. - -2007-04-22 Uros Bizjak - - PR tree-optimization/24659 - * optabs.h (enum optab_index) [OTI_vec_unpacks_hi, - OTI_vec_unpacks_lo]: Update comment to mention floating point operands. - (vec_pack_trunc_optab): Rename from vec_pack_mod_optab. - * genopinit.c (optabs): Rename vec_pack_mod_optab - to vec_pack_trunc_optab. - * tree-vect-transform.c (vectorizable_type_demotion): Do not fail - early for scalar floating point operands for NOP_EXPR. - (vectorizable_type_promotion): Ditto. - * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return - vec_pack_trunc_optab. - (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab. - - * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR. - * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]: - Rename from VEC_PACK_MOD_EXPR. - (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto. - * expr.c (expand_expr_real_1): Ditto. - * tree-inline.c (estimate_num_insns_1): Ditto. - * tree-vect-generic.c (expand_vector_operations_1): Ditto. - - * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander. - (vec_unpacks_lo_v4sf): Ditto. - (vec_pack_trunc_v2df): Ditto. - (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi. - (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. - (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di. - - * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from - vec_pack_mod_v8hi. - (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si. - - * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]: - Rename from VEC_PACK_MOD_EXPR. This expression also represent - packing of floating point operands. - [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also - represent unpacking of floating point operands. - * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation. - [vec_unpacks_hi]: Ditto. - [vec_unpacks_lo]: Ditto. - -2007-04-22 Jan Hubicka - - * final.c (rest_of_handle_final): Call - targetm.asm_out.constructor/targetm.asm_out.destructor - * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set - proper priority via decl_*_priority_insert. - * c-common.c (c_expand_body): Likewise. - -2007-04-22 Richard Guenther - - PR tree-optimization/29789 - * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts. - (rewrite_reciprocal): New helper split out from - determine_invariantness_stmt. - (rewrite_bittest): Likewise. - (determine_invariantness_stmt): Rewrite (A >> B) & 1 to - A & (1 << B) if (1 << B) is loop invariant but (A >> B) - is not. - -2007-04-22 Revital Eres - - * loop-unroll.c (var_to_expand): New field to support also - insns of the form x = something + x. - (analyze_insn_to_expand_var): Use it. - (expand_var_during_unrolling): Likewise. - -2007-04-21 Zdenek Dvorak - - * predict.c: Include pointer-set.h. - (bb_predictions): New variable. - (tree_predicted_by_p, tree_predict_edge, - remove_predictions_associated_with_edge): Use bb_predictions map - instead of bb->predictions. - (clear_bb_predictions, assert_is_empty): New functions. - (combine_predictions_for_bb): Use bb_predictions map. Call - clear_bb_predictions. - (tree_estimate_probability): Create and free bb_predictions map. - * Makefile.in (predict.o): Add pointer-set.h dependency. - * basic-block.h (struct basic_block_def): Remove predictions - field. - * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions. - -2007-04-21 Kaz Kojima - - PR target/31480 - * config/sh/sh.md (length): Check if prev_nonnote_insn (insn) - is null. - -2007-04-21 Andrew Pinski - - * timevar.c (timevar_print): Change reference of --disable-checking to - --enable-checking=release. Also warn if assert checking is disabled. - -2007-04-21 Andrew Pinski - - PR C/30265 - * c-gimplifier.c (gimplify_compound_literal_expr): Mark the - decl as addressable if the compound literal was marked as - addressable. - Mark the decl as a gimple register if it is a complex or - vector decl and does not live in memory. - -2007-04-21 Andrew Pinski - - * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs. - (GENERIC_NEXT): New function macro. - (PHI_CHAIN): Use phi_node's new chain variable. - (tree_phi_node): Change tree_common to tree_base - and add the chain field. - * tree-phinodes.c (make_phi_node): Don't set - TREE_TYPE on the new node. - * c-decl.c (lang_tree_node): Use GENERIC_NEXT - instead of checking GIMPLE_TUPLE_P in chain_next. - * tree-vect-transform.c - (get_initial_def_for_induction): Look at - PHI_RESULT_TREE for the type of the phi node. - (update_vuses_to_preheader): Use PHI_CHAIN - instead of TREE_CHAIN on the phi node. - * tree-ssa-structalias.c (compute_points_to_sets): - Likewise. - (ipa_pta_execute): Likewise. - -2007-04-21 Richard Guenther - - PR middle-end/31136 - * fold-const.c (fold_unary): Call fold_convert_const on the - original tree. - -2007-04-21 Alexandre Oliva - - * gcse.c (store_killed_in_insn): Handle PARALLELs. - (store_killed_in_pat): New. - -2007-04-20 Richard Henderson - - PR target/31628 - * config/i386/i386.c (type_has_variadic_args_p): Look for any - TREE_LIST with a void_type_node value, not void_list_node exactly. - -2007-04-21 Douglas Gregor - - * doc/standards.texi: Re-arrange into language-specific - subsections. Add a C++ section, documenting which standards we - support. - -2007-04-21 Zdenek Dvorak - - * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex. - * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops. - -2007-04-20 Daniel Jacobowitz - - * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include - ecrti.o and crtbegin.o. - (LIB_DEFAULT_SPEC): Include -lc. - (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o. - -2007-04-20 Richard Henderson - - PR target/28623 - * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset - argument; update all callers. - (get_unaligned_offset): New. - * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use - get_unaligned_address, just pass on the address directly. - (unaligned_extendqidi): Use gen_lowpart instead of open-coding - the subreg in the helper patterns. - (unaligned_extendqidi_le): Use get_unaligned_offset. - (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise. - (unaligned_extendhidi_be): Likewise. - (unaligned_extendhidi): Tidy. - * config/alpha/alpha-protos.h: Update. - -2007-04-20 Richard Henderson - - * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove. - (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove. - * config/alpha/linux.h (CPP_SPEC): Undef before redefine. - * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. - * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. - (CPP_SPEC): Don't include %(cpp_subtarget). - * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC. - (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS. - * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly. - -2007-04-20 Jakub Jelinek - - * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED - for __builtin_ia32_cmpordss. - - PR tree-optimization/31632 - * fold-const.c (fold_binary): Use op0 and op1 instead of arg0 - and arg1 for optimizations of comparison against min/max values. - Fold arg0 to arg1's type for optimizations of comparison against - min+1 and max-1 values. - -2007-04-19 Bernd Schmidt - - * reload.c (combine_reloads): When trying to use a dying register, - check whether it's uninitialized and don't use if so. - -2007-04-19 Brooks Moses - - * fold-const.c: Remove prototypes for native_encode_expr and - native_interpret_expr. - (native_encode_expr): Make non-static. - (native_interpret_expr): Likewise. - * tree.h: Add prototypes for the above. - -2007-04-19 Joseph Myers - - * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2, - *mov_si_e500_subreg0, *mov_si_e500_subreg0_2, - *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2, - spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr, - tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr): - Add length attributes. - -2007-04-19 Janis Johnson - - * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined, - not that it is 1. - - * c-cppbuiltin.c (c_cpp_builtins): Remove definition of - __STDC_WANT_DEC_FP__. - -2007-04-19 Joseph Myers - - * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu* - for long double compatibility. - * configure: Regenerate. - -2007-04-19 Eric Botcazou - - PR rtl-optimization/29841 - * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional - trap instructions. - * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions - that may cause control flow transfer from being moved. - -2007-04-18 Jan Hubicka - - * fold-const.c (div_if_zero_remainder): Do signed divide for pointer - types. - -2007-04-18 Eric Christopher - - * config/rs6000/darwin.md (load_macho_picbase): Use link register - only. Update operands. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller. - * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from - link register to pic register. - -2007-04-18 Dirk Mueller - - PR diagnostic/31227 - * tree-vrp.c (search_for_addr_array): New. - (check_array_bounds): Suppress warning about - address taken of array refs if its not de-referenced. - -2007-04-18 Dorit Nuzman - - * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL. - * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux. - - * tree-vectorizer.h (NITERS_KNOWN_P): New. - * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P - instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info. - - * tree-vect-analyze.c (vect_determine_vectorization_factor): Add - dump print. - (vect_analyze_operations): Fix indenetation. Fix a comment. Fix a - print message. - (vect_analyze_scalar_cycles): Fix indentation. - (vect_enhance_data_refs_alignment): Fix check in case of peeling. - (vect_mark_relevant): Include phis in relevance analysis. - - * tree-vect-transform.c (vect_transform_loop): Add an assert. - -2007-04-18 Anatoly Sokolov - - * config/avr/avr.c (ptrreg_to_str): Replace error() with - output_operand_lossage(). - -2007-04-18 Dorit Nuzman - - * tree-vect-transform.c (get_initial_def_for_reduction): Clean away - the unused code for reduction without adjust-in-epilog to simplify the - function. - -2007-04-18 Wolfgang Gellerich - - * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant. - (S390_TDC_NEGATIVE_ZERO): New constant. - (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant. - (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant. - (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant. - (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant. - (S390_TDC_POSITIVE_INFINITY): New constant. - (S390_TDC_NEGATIVE_INFINITY): New constant. - (S390_TDC_POSITIVE_QUIET_NAN): New constant. - (S390_TDC_NEGATIVE_QUIET_NAN): New constant. - (S390_TDC_POSITIVE_SIGNALING_NAN): New constant. - (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant. - (S390_TDC_INFINITY): New constant. - * config/s390/s390.c (s390_canonicalize_comparison): Renamed - UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like - optimization for UNSPEC_CCZ_TO_INT. - * config/s390/s390.md ("*TDC_insn_"): New insn. - ("*ccz_to_int"): New insn. - ("isinf2"): New insn. - (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT. - (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT. - (UNSPEC_CCZ_TO_INT): New constant. - -2007-04-18 Richard Guenther - - PR tree-optimization/19431 - PR tree-optimization/21463 - * tree-pass.h (pass_phiprop): Declare. - * passes.c (init_optimization_passes): New phiprop pass. - * tree-ssa-forwprop.c (struct phiprop_d): New structure. - (phivn_valid_p): New helper function. - (phiprop_insert_phi): Likewise. - (propagate_with_phi): Likewise. - (tree_ssa_phiprop): New propagator propagating loads - through phi nodes if profitable. - -2007-04-18 Dorit Nuzman - - * tree-vect-analyze.c (process_use): New function. - (vect_mark_stmts_to_be_vectorized): Factor out code to process_use. - Check phis in all bbs. - * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant - assert. - -2007-04-18 Bernd Schmidt - - * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way - we use REG_EQUAL. - -2007-04-17 Anatoly Sokolov - - PR target/30483 - * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with - error(). - -2007-04-17 H.J. Lu - - * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand - on "0". - (sse_vmmulv4sf3): Likewise. - (sse2_vmaddv2df3): Likewise. - (sse2_vmmulv2df3): Likewise. - -2007-04-17 Zdenek Dvorak - - PR rtl-optimization/31360 - * cfgloopanal.c (target_small_cost, target_pres_cost): Removed. - (target_reg_cost): New. - (init_set_costs): Initialize target_reg_cost. Add comments - regarding the rationale of the costs. - (global_cost_for_size): Renamed to... - (estimate_reg_pressure_cost): ... and simplify. Decrease importance - of register pressure. - * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use - estimate_reg_pressure_cost. Add number of ivs. - (determine_set_costs): Dump target_reg_cost. - * loop-invariant.c (gain_for_invariant): Use - estimate_reg_pressure_cost. Removed n_inv_uses argument. - (best_gain_for_invariant, find_invariants_to_move): Remove - n_inv_uses. - * cfgloop.h (target_small_cost, target_pres_cost): Removed. - (target_reg_cost): Declare. - (global_cost_for_size): Declaration removed. - (estimate_reg_pressure_cost): Declare. - -2007-04-17 Peter Bergner - - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode - regnos into even/odd register pairs. - * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and - TDmode similar to the other floating point modes. - [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode. - * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New - define_expand's. - (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr, - nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's. - (movdd_hardfloat64): Use TARGET_MFPGPR. - -2007-04-17 Bernd Schmidt - - * reload1.c (delete_output_reload): Don't count output in n_inherited. - - Revert - 2005-01-05 Richard Henderson - PR rtl-opt/10692 - * reload1.c (do_input_reload): Restrict the optimization deleteing - a previous output reload to RELOAD_FOR_INPUT. - -2007-04-17 Dorit Nuzman - - * tree-vectorizer.h (stmt_vec_info_type): Add enum value - induc_vec_info_type. - (vectorizable_induction): New function declaration. - * tree-vect-transform.c (get_initial_def_for_induction): No need to - check if already vectorized. Find first place in BB where new stmts - can be inserted. Takes only one argument. - (vectorizable_induction): New function. - (vect_transform_stmt): Add case for induc_vec_info_type to call - vectorizable_induction. - (vect_transform_loop): Consider phis for vectorization. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify - condition. - (analyze_operations): Call vectorizable_induction when analyzing phis. - Fix comment. - (vect_mark_stmts_to_be_vectorized): Remove redundant checks. - (vect_mark_relevant): Include phis in relevance analysis. - (vect_mark_stmts_to_be_vectorize): Likewise. - * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts. - -2007-04-16 Lawrence Crowl - - * doc/invoke.texi (Debugging Options): Add documentation for the - -femit-struct-debug options -femit-struct-debug-baseonly, - -femit-struct-debug-reduced, and - -femit-struct-debug-detailed[=...]. - - * c-opts.c (c_common_handle_option): Add - OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced, - and OPT_femit_struct_debug_detailed_. - * c.opt: Add specifications for - -femit-struct-debug-baseonly, -femit-struct-debug-reduced, - and -femit-struct-debug-detailed[=...]. - * opts.c (set_struct_debug_option): Parse the - -femit-struct-debug-... options. - * opts.c (matches_main_base, main_input_basename, - main_input_baselength, base_of_path, matches_main_base): Add - variables and functions to compare header base name to compilation - unit base name. - * opts.c (should_emit_struct_debug): Add to determine to emit a - structure based on the option. - (dump_struct_debug) Also disabled function to debug this - function. - * opts.c (handle_options): Save the base name of the - compilation unit. - - * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add. - This hook indicates if a type is generic. Set it by default - to "never generic". - * langhooks.h (struct lang_hooks_for_types): Add a new hook - to determine if a struct type is generic or not. - * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook. - * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook. - * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook - with live C++ hook. - - * flags.h (enum debug_info_usage): Add an enumeration to describe - a program's use of a structure type. - * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter - to indicate the program's usage of the type. Filter structs based - on the -femit-struct-debug-... specification. - (gen_type_die): Split into two routines, gen_type_die and - gen_type_die_with_usage. gen_type_die is now a wrapper - that assumes direct usage. - (gen_type_die_with_usage): Replace calls to gen_type_die - with gen_type_die_with_usage adding the program usage of - the referenced type. - (dwarf2out_imported_module_or_decl): Suppress struct debug - information using should_emit_struct_debug when appropriate. - -2007-04-16 Ian Lance Taylor - - PR tree-optimization/31522 - * tree-vrp.c (vr_phi_edge_counts): New static variable. - (vrp_initialize): Allocate vr_phi_edge_counts. - (vrp_visit_phi_node): Don't push to infinity if we saw a new - executable edge. Drop test for all constants. - (vrp_finalize): Free vrp_phi_edge_counts. - - * doc/cpp.texi (Common Predefined Macros): Clarify description of - __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__. - - * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer - predecessors at head rather than tail. - -2007-04-16 Matthias Klose - - * config/alpha/linux.h (CPP_SPEC): Define. - * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend. - -2007-04-16 Aldy Hernandez - - * function.h: Remove sequence_stack extern declaration. - -2007-04-16 Kazu Hirata - - * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on - TARGET_FIDOA. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is - defined. - -2007-04-16 Anatoly Sokolov - - * config/avr/avr.c (avr_arch_types): Rearranging array. - (enum avr_arch): Add. - (avr_mcu_types): Use avr_arch enumeration constants instead of - numbers. - * config/avr/avr.h (LINK_SPEC): Simplify. - -2007-04-16 Kazu Hirata - - * config/m68k/m68k.c (m68k_libcall_value, - m68k_function_value): Use macros for register names more. - - * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG - instead. - (M68K_REGNAME): Use A6_REG. - * config/m68k/m68k.md (FP_REG): Rename to A6_REG. - -2007-04-16 Maxim Kuvyrkov - - PR middle-end/28071 - * sched-int.h (struct deps): Split field 'pending_lists_length' into - 'pending_read_list_length' and 'pending_write_list_length'. Update - comment. - * sched-deps.c (add_insn_mem_dependence): Change signature. Update - to handle two length counters instead of one. Update all uses. - (flush_pending_lists, sched_analyze_1, init_deps): Update to handle - two length counters instead of one. - * sched-rgn.c (propagate_deps): Update to handle two length counters - instead of one. - -2007-04-16 H.J. Lu - - PR target/31582 - * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a - copy of source, pass it to ix86_expand_vector_set and return - it as target. - -2007-04-16 David Ung - Joseph Myers - - * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF, - PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define. - * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data): - Add 74K processor information. - * config/mips/mips.md: Include 74k.md. - (cpu): Add 74kc,74kf,74kx. - (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout. - * config/mips/74k.md: New. - * doc/invoke.texi (MIPS Options): Document 74K support. - -2007-04-16 Dorit Nuzman - - * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to - vectorizable_* functions. - * tree-vect-transform.c (vectorizable_call): Add check for - STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P. - (vectorizable_store): likewise. - (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE. - Add comments. - (vectorizable_operation, vectorizable_type_demotion): Likewise. - (vectorizable_type_promotion, vectorizable_load): Likewise. - (vectorizable_live_operation, vectorizable_condition): Likewise. - (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and - STMT_VINFO_LIVE_P. - (vect_transform_stmt): Reorganize calls to vectorizable_* functions. - -2007-04-15 Kazu Hirata - - * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for - register numbers more. - * config/m68k/m68k.h (STACK_POINTER_REGNUM, - FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM, - M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE, - FUNCTION_VALUE_REGNO_P): Likewise. - * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM, - STATIC_CHAIN_REGNUM): Likewise. - * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise. - * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM, - STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise. - * config/m68k/m68k.md (FP_REG): New. - -2007-04-15 Kazu Hirata - - * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit - alignment on fido. - -2007-04-15 Kazu Hirata - - * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md, - tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix - comment typos. - -2007-04-11 Zdenek Dvorak - - * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore - cold loops. - -2007-04-14 Andrew Pinski - - PR c/31520 - * c-decl.c (finish_decl): Grab the type of the decl after the call - to store_init_value. - -2007-04-14 Steven Bosscher - - * common.opt (fforward-propagate): Fix "Optimization" annotation. - -2007-04-14 Jakub Jelinek - - PR c++/25874 - * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free - dominators, post dominators and cleanup cfg before returning. - -2007-04-14 Bernd Schmidt - - * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied. - * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives. - -2007-04-14 Kazu Hirata - - * config.gcc: Recognize fido. - * config/m68k/m68k-devices.def (fidoa): New. - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define - __mfido__. - (FL_FIDOA, TARGET_FIDOA): New. - * config/m68k/m68k.opt (mfidoa): New. - -2007-04-13 John David Anglin - - PR middle-end/31322 - * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall - when a personality function is used. - -2007-04-13 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN. - -2007-04-13 Mike Stump - - * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so - we can... - * config/darwin.opt (fapple-kext): Make C++ only. - * config/darwin.c (darwin_override_options): Remove code to ensure - -fapple-kext is given for C++ only. - -2007-04-13 Richard Sandiford - - * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define. - * config/mips/mips.c (override_options): Call - SUBTARGET_OVERRIDE_OPTIONS, if defined. - -2007-04-13 H.J. Lu - - * config/i386/i386.opt (msvr3-shlib): Removed. - - * doc/invoke.texi: Remove -msvr3-shlib. - -2007-04-13 H.J. Lu - - * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction - with "popcnt" instruction. - -2007-04-13 Richard Guenther - - PR tree-optimization/21258 - * tree-vrp.c (compare_case_labels): New helper. - (find_switch_asserts): New function. - (find_assert_locations): Call it for SWITCH_EXPRs. - -2007-04-13 Uros Bizjak - - * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387. - * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this - check is now implied in X87_FLOAT_MODE_P. - (*cmpfp_u, *cmpfp_, *cmpfp_i_i387): Ditto. - (*cmpfp_iu_387, fix_trunc_fisttp_i386_1): Ditto. - (fix_trunc_i386_fisttp): Ditto. - (fix_trunc_i387_fisttp_with_temp): Ditto. - (*fix_trunc_i387_1, fix_truncdi_i387): Ditto. - (fix_truncdi_i387_with_temp, fix_trunc_i387): Ditto. - (fix_trunc_i387_with_temp, *fp_jcc_1_387): Ditto. - (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto. - (*fp_jcc_7_387, *fp_jcc_8_387): Ditto. - (unnamed_splitters): Ditto. - * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG - for X87_FLOAT_MODE_P mode. Override FIRST_FLOAT_REG with - FIRST_SSE_REG for local functions when SSE math is enabled or - for functions with sseregparm attribute. - (standard_80387_constant_p): Return -1 if mode is not - X87_FLOAT_MODE_P. - (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P. - (ix86_expand_compare): Ditto. - (ix86_expand_carry_flag_compare): Ditto. - (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead - of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not - DECIMAL_FLOAT_MODE_P. - (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead - of SCALAR_FLOAT_MODE_P. - (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ... - [MINUS]: ... here. Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P - checks before FLOAT_MODE_P. - [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks - before FLOAT_MODE_P. - [DIV]: Ditto. - [NEG]: Ditto. - [ABS]: Ditto. - [SQRT]: Ditto. - [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P. - -2007-04-12 Paolo Bonzini - Charles Wilson - - * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove. - (libgcc.mvars): Don't depend on them. - * configure.ac (as, collect-ld, nm): Create from exec-tool.in. - * exec-tool.in: New. - -2007-04-12 Brooks Moses - - * doc/invoke.text (--help): Document --help=common. - -2007-04-12 Thomas Neumann - - * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords. - -2007-04-12 Richard Sandiford - - * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H). - * genemit.c (main): Emit #include "integrate.h". - * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type. - (LOADGP_RTP): New mips_loadgp_style. - * config/mips/mips.h: Include config/vxworks-dummy.h. - (TARGET_RTP_PIC): New macro. - (TARGET_USE_GOT): Return true for TARGET_RTP_PIC. - (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP. - (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables - for TARGET_RTP_PIC. - * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define. Pass down - -mvxworks-pic when using -mrtp and a PIC option. - * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP - for RTP PIC. - (mips_symbolic_constant_p, mips_symbolic_address_p) - (mips_symbol_insns): Handle SYMBOL_HALF. - (override_options): Warn about -G and -mrtp being used together. - Initialize mips_lo_relocs[SYMBOL_HALF]. - (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC. - (mips_emit_loadgp): Handle LOADGP_RTP. - (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP. - * config/mips/mips.md (loadgp_rtp): New insn and splitter. - (tablejump): Handle function-relative case table entries if - TARGET_RTP_PIC. - * config/mips/predicates.md (symbol_ref_operand): New predicate. - -2007-04-12 Richard Sandiford - - * config/mips/mips.md (load_call): Allow any general register. - destination. - (sibcall_value_internal, sibcall_value_multiple_internal) - (call_value_internal, call_value_split, call_value_multiple_internal) - (call_value_multiple_split): Remove constraints from operand 0. - -2007-04-12 Richard Sandiford - - * config/mips/mips-protos.h: In comments, refer to loadgp_absolute - rather than loadgp_noshared. - * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute - instead of gen_loadgp_noshared. Use gen_loadgp_newabi instead of - gen_loadgp. - * config/mips/mips.md (loadgp): Rename to... - (loadgp_newabi): ...this. - (loadgp_noshared): Rename to... - (loadgp_absolute): ...this. - -2007-04-12 Richard Sandiford - - * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return - false for locally-binding symbols. - (mips_dangerous_for_la25_p): Check mips_global_symbol_p. - -2007-04-12 Richard Sandiford - - * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to... - (SYMBOL_GOT_PAGE_OFST): ...this. - (SYMBOL_GOT_GLOBAL): Rename to... - (SYMBOL_GOT_DISP): ...this. - (SYMBOL_GOTOFF_GLOBAL): Rename to... - (SYMBOL_GOTOFF_DISP): ...this. Update comments accordingly. - * config/mips/mips.c (mips_global_symbol_p): New function. - (mips_symbol_binds_local_p): Likewise. - (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP - and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST. Use - mips_global_symbol_p and mips_symbol_binds_local_p. - (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) - (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP, - SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to - SYMBOL_GOTOFF_DISP. - (mips_ok_for_lazy_binding_p): New function. - (mips_load_call_address, mips_expand_call): Use it. - (mips_dangerous_for_la25_p): Likewise. - * config/mips/mips.md (*xgot_hi, *xgot_lo) - (*got_disp): Use got_disp_operand instead of - global_got_operand. Use SYMBOL_GOTOFF_DISP instead of - SYMBOL_GOTOFF_GLOBAL. - (*got_page): Use got_page_ofst_operand instead of - local_got_operand. - * config/mips/predicates.md (const_call_insn_operand): Use - SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL. - (global_got_operand): Rename to... - (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of - SYMBOL_GOT_GLOBAL. - (local_got_operand): Rename to... - (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead - of SYMBOL_GOT_LOCAL. - -2007-04-12 Richard Sandiford - - * config/mips/mips.h (TARGET_SPLIT_CALLS): Check - TARGET_CALL_CLOBBERED_GP. - (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS. - (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros. - (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise. - (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead - of TARGET_ABICALLS && !TARGET_NEWABI. - (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS. - * config/mips/mips.c (mips_load_call_address): Check - TARGET_CALL_SAVED_GP instead of TARGET_NEWABI. - (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS. - Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI. - (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of - TARGET_ABICALLS && TARGET_NEWABI. - (mips_current_loadgp_style): Check TARGET_USE_GOT instead of - TARGET_ABICALLS. - (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI. - (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of - TARGET_ABICALLS && TARGET_NEWABI. - (mips_output_mi_thunk): Check TARGET_USE_GOT instead of - TARGET_ABICALLS. Check TARGET_CALL_SAVED_GP instead of - TARGET_NEWABI. Use TARGET_USE_PIC_FN_ADDR_REG to decide - whether indirect calls must use $25. - (mips_extra_live_on_entry): Check TARGET_GOT instead of - TARGET_ABICALLS. - * config/mips/mips.md (jal_macro): Check flag_pic and - TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI. - (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT - instead of TARGET_ABICALLS. - (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of - TARGET_ABICALLS && TARGET_OLDABI. - (load_call): Check TARGET_USE_GOT instead of TARGET_ABICALLS. - (sibcall): In the comment above the define_insn, mention - TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS. - * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG - instead of TARGET_ABICALLS. - -2007-04-12 Bernd Schmidt - - * doc/md.texi (Blackfin family constraints): Document PA and PB. - * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB. - (MACFLAGS_MATCH_P): New macro. - * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M. - (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS. - * config/bfin/bfin.md (MACFLAG_IS_M): New constant. Renumber some of - the other MACFLAG constants. - (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns. - (flag_machi): Tighten constraints. Renumber some of the operands. - (flag_machi_acconly): Tighten constraints. Correct operand numbers in - output template. - (flag_machi_parts_acconly): New pattern. - (flag_macinithi): Tighten constraints. Allow any accumulator to be - used. - (flag_macinit1hi): Tighten constraints. - (flag_mul_macv2hi_parts_acconly): New pattern. - - * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart): - Use a more efficient implementation. - * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit - inline sequences when not optimizing for size. - - * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low, - movhi_high2low): Delete, merge functionality into... - (packv2hi): ... this pattern. - - 2007-02-11 Jie Zhang - * config/bfin/bfin.opt (msim): New option. - (mcpu=): New option. - * config/bfin/bfin-protos.h (enum bfin_cpu): New. - (bfin_cpu_t): Typedef of enum bfin_cpu. - (bfin_cpu_type): New declaration. - * config/bfin/elf.h (STARTFILE_SPEC): Add support for - -msim and -mcpu= options. - (LIB_SPEC): Likewise. - * config/bfin/bfin.c (bfin_cpu_type): Define. - (bfin_handle_option): Handle -mcpu= option. - * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532. - (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__, - __ADSPBF533__ or __ADSPBF537__ according to the cpu type. - -2007-04-12 Richard Sandiford - - * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza. - (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks) - (powerpc-wrs-vxworksae): Use ${tm_file}. - (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h - after elfos.h. Remove i386/sysv4.h and add i386/vx-common.h. - * config/i386/vx-common.h: New file. - -2007-04-12 Richard Sandiford - - * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead - of crt0.o%s. - -2007-04-12 Andreas Krebbel - - * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of - ldxtr. - -2007-04-12 Douglas Gregor - - PR c++/31078 - PR c++/31103 - * c-common.c (c_build_qualified_type): Set canonical type - appropriately. - -2007-04-12 Richard Guenther - - * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF - lower bound and element size if lower bound is not zero - or either of the ARRAY_REF operands is set. - -2007-04-12 Richard Guenther - - PR tree-optimization/24689 - PR tree-optimization/31307 - * fold-const.c (operand_equal_p): Compare INTEGER_CST array - indices by value. - * gimplify.c (canonicalize_addr_expr): To be consistent with - gimplify_compound_lval only set operands two and three of - ARRAY_REFs if they are not gimple_min_invariant. This makes - it never at this place. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. - -2007-04-11 John David Anglin - - * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not - null before emitting a .nsubspa directive. - -2007-04-11 Diego Novillo - - * tree-ssa-alias.c (dump_mem_ref_stats): Do not call - need_to_partition_p if there are no memory statements in the - function. - -2007-04-11 Zdenek Dvorak - - * tree-data-ref.c (chrec_steps_divide_constant_p): Removed. - (gcd_of_steps_may_divide_p): New function. - (analyze_miv_subscript): Use gcd_of_steps_may_divide_p. - -2007-04-11 Bernd Schmidt - - * reload.c (find_reloads_toplev, find_reloads_address, - find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p, - not a pointer equality test, to decide if we need to call - push_reg_equiv_alt_mem. - -2007-04-11 Sebastian Pop - - * tree-data-ref.c (affine_function_zero_p, constant_access_functions, - insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps): - New. - (build_classic_dist_vector): Call add_distance_for_zero_overlaps. - -2007-04-11 Zdenek Dvorak - - * tree-data-ref.c (add_multivariate_self_dist): Force the distance - vector to be positive. - -2007-04-11 Diego Novillo - - PR 30735 - PR 31090 - * doc/invoke.texi: Document --params max-aliased-vops and - avg-aliased-vops. - * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions, - debug_memory_partitions): Move to tree-flow.h - * params.h (AVG_ALIASED_VOPS): Define. - * tree-ssa-alias.c (struct mp_info_def): Remove. Update all - users. - (mp_info_t): Likewise. - (get_mem_sym_stats_for): New. - (set_memory_partition): Move from tree-flow-inline.h. - (mark_non_addressable): Only clear the set of symbols for the - partition if it exists. - (dump_memory_partitions): Move from tree-ssa-operands.c - (debug_memory_partitions): Likewise. - (need_to_partition_p): New. - (dump_mem_ref_stats): New. - (debug_mem_ref_stats): New. - (dump_mem_sym_stats): New. - (debug_mem_sym_stats): New. - (update_mem_sym_stats_from_stmt): New. - (compare_mp_info_entries): New. - (mp_info_cmp): Call it. - (sort_mp_info): Change argument to a list of mem_sym_stats_t - objects. - (get_mpt_for): Move from tree-ssa-operands.c. - (find_partition_for): New. - (create_partition_for): Remove. - (estimate_vop_reduction): New. - (update_reference_counts): New. - (build_mp_info): New. - (compute_memory_partitions): Refactor. - Document new heuristic. - Call build_mp_info, update_reference_counts, - find_partition_for and estimate_vop_reduction. - (compute_may_aliases): Populate virtual operands before - calling debugging dumps. - (delete_mem_sym_stats): New. - (delete_mem_ref_stats): New. - (init_mem_ref_stats): New. - (init_alias_info): Call it. - (maybe_create_global_var): Remove alias_info argument. - Get number of call sites and number of pure/const call sites - from gimple_mem_ref_stats(). - (dump_alias_info): Call dump_memory_partitions first. - (dump_points_to_info_for): Show how many times a pointer has - been dereferenced. - * opts.c (decode_options): For -O2 set --param - max-aliased-vops to 500. - For -O3 set --param max-aliased-vops to 1000 and --param - avg-aliased-vops to 3. - * fortran/options.c (gfc_init_options): Remove assignment to - MAX_ALIASED_VOPS. - * tree-flow-inline.h (gimple_mem_ref_stats): New. - * tree-dfa.c (dump_variable): Dump memory reference - statistics. - Dump NO_ALIAS* settings. - (referenced_var_lookup): Tidy. - (mem_sym_stats): New. - * tree-ssa-copy.c (may_propagate_copy): Return true if DEST - and ORIG are different SSA names for a memory partition. - * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats. - * tree-flow.h (struct mem_sym_stats_d): Define. - (mem_sym_stats_t): Define. - (struct mem_ref_stats_d): Define. - (struct gimple_df): Add field mem_ref_stats. - (enum noalias_state): Define. - (struct var_ann_d): Add bitfield noalias_state. - (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats, - debug_mem_ref_stats, debug_memory_partitions, - debug_mem_sym_stats): Declare. - * tree-ssa-structalias.c (update_alias_info): Update call - sites, pure/const call sites and asm sites in structure - returned by gimple_mem_ref_stats. - Remove local variable IS_POTENTIAL_DEREF. - Increase NUM_DEREFS if the memory expression is a potential - dereference. - Call update_mem_sym_stats_from_stmt. - If the memory references memory, call - update_mem_sym_stats_from_stmt for all the direct memory - symbol references found. - (intra_create_variable_infos): Set noalias_state field for - pointer arguments according to the value of - flag_argument_noalias. - * tree-ssa-structalias.h (struct alias_info): Remove fields - num_calls_found and num_pure_const_calls_found. - (update_mem_sym_stats_from_stmt): Declare. - * params.def (PARAM_MAX_ALIASED_VOPS): Change description. - Set default value to 100. - (PARAM_AVG_ALIASED_VOPS): Define. - -2007-04-11 Richard Guenther - - PR middle-end/31530 - * simplify-rtx.c (simplify_binary_operation_1): Do not simplify - a * -b + c as c - a * b if we honor sign dependent rounding. - -2007-04-11 Bernd Schmidt - - * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from - bfin_expand_strmov. - * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address, - bfin_function_ok_for_sibcall, split_load_immediate): Remove unused - variables. - (initialize_trampoline): Don't use old-style function definition. - (bfin_secondary_reload): Mark IN_P argument as unused. - -2007-04-10 Sebastian Pop - - PR tree-optimization/31343 - * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec. - (build_polynomial_chrec): Return a scalar when the evolution is zero. - * testsuite/gcc.dg/vect/pr31343.c: New. - -2007-04-10 Eric Christopher - - * config/i386/i386.h (X87_FLOAT_MODE_P): New. - * config/i386/i386.md (*cmpfp0): Use. - (*cmpfp_u, *cmpfp_, *cmpfp_i_i387): Ditto. - (*cmpfp_iu_387, fix_trunc_fisttp_i386_1): Ditto. - (fix_trunc_i386_fisttp): Ditto. - (fix_trunc_i387_fisttp_with_temp): Ditto. - (*fix_trunc_i387_1, fix_truncdi_i387): Ditto. - (fix_truncdi_i387_with_temp, fix_trunc_i387): Ditto. - (fix_trunc_i387_with_temp, *fp_jcc_1_387): Ditto. - (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto. - (*fp_jcc_7_387, *fp_jcc_8_387): Ditto. - (unnamed_splitters): Ditto. - * config/i386/i386.c (output_fix_trunc): Assert that - we're not being passed a TFmode operand. - -2007-04-10 Zdenek Dvorak - - PR tree-optimization/31526 - * tree-inline.c (copy_cfg_body): Use last_basic_block instead of - n_basic_blocks to find newly added blocks. - -2007-04-10 Uros Bizjak - - * config/i386/i386.md (fix_truncdi_sse): Remove "x" from "xm" - alternative. - (fix_truncsi_sse): Ditto. - (*floatsisf2_mixed, *floatsisf2_sse): Ditto. - (*floatsidf2_mixed, *floatsidf2_sse): Ditto. - (*floatdisf2_mixed, *floatdisf2_sse): Ditto. - (*floatdidf2_mixed, *floatdidf2_sse): Ditto. - (floathi2): Rename from floathisf2 and floathidf2. Macroize - expander using SSEMODEF mode macro. - (floatsi2): Rename from floatsisf2 and floashidf2. Macroize - expander using SSEMODEF mode macro. - (*floathi2_i387): Rename from *floathisf2_i387 and - *floathidf2_i387. Macroize insn using X87MODEF12 mode macro. - (*floatsi2_i387): Rename from *floatsisf2_i387 and - *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro. - (*floatdi2_i387): Rename from *floatdisf2_i387 and - *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro. - (floatxf2): Rename from floathixf2, floatsixf2 and floatdixf2. - Macroize insn using X87MODEF mode macro. - -2007-04-09 H.J. Lu - - * config/i386/sse.md (sse2_pinsrw): Removed. - (sse2_pextrw): Renamed to ... - (*sse2_pextrw): This. - -2007-04-09 Jan Hubicka - - PR target/27869 - * config/i386/sse.md - (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier. - (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove. - (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier. - (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove. - -2007-04-09 Jan Hubicka - - * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into - multiple fields of union. - -2007-04-09 Zdenek Dvorak - - * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge. - (create_preheaders): Check that loops are available. - (fix_loop_structure): Clean up, improve comments. - * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): - Check that loops are available. Set LOOP_CLOSED_SSA to the loops - state flags. - * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info. - * predict.c (tree_estimate_probability): Do not call - calculate_dominance_info. Call create_preheaders. - * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call - rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state - flags. - * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders. - * cfgloop.h (LOOP_CLOSED_SSA): New constant. - * tree-cfg.c (tree_split_edge): Make an assert more precise. - * tree-ssa-threadedge.c (thread_across_edge): Comment the function - arguments. - -2007-04-08 Jan Hubicka - - * tree.h (maybe_fold_offset_to_component_ref): Declare. - * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export. - * fold-const.c (fold_unary): Use it. - -2007-04-08 Andrew Pinski - - * varasm.c (assemble_variable): Remove call to - lang_hooks.decls.prepare_assemble_variable. - * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill. - (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE. - * langhooks.h (lang_hooks_for_decls): Remove - prepare_assemble_variable. - -2007-04-08 Mike Stump - - * config/i386/i386.c: Use inc/dec on Core2. - -2007-04-08 Steven Bosscher - - * langhooks.c (lhd_tree_inlining_add_pending_fn_decls, - lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining, - lhd_tree_inlining_end_inlining): Remove. - * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then - add_pending_fn_decls, anon_aggr_type_p, start_inlining, and - end_inlining hooks. - * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls, - lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining, - lhd_tree_inlining_end_inlining): Remove prototypes. - (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS, - LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, - LANG_HOOKS_TREE_INLINING_START_INLINING, - LANG_HOOKS_TREE_INLINING_END_INLINING): Remove. - - * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do - not set it. - -2007-04-08 Anatoly Sokolov - - PR target/29932 - * config/avr/predicates.md (io_address_operand): Delete predicate. - (low_io_address_operand): Don't use 'mode' argument. - (higth_io_address_operand): Rename ... - (high_io_address_operand): ... to this. Don't use 'mode' argument. - * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust - for above change. - -2007-04-07 Daniel Berlin - - Revert change removing staticp. - -2007-04-07 Anatoly Sokolov - - PR target/30289 - * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as - earlyclobber. - -2007-04-07 Bruce Korb - - * c.opt: Add -Wformat-contains-nul. - * c-format.c (set_Wformat): Set warn_format_contains_nul to the - -Wformat setting. - (check_format_info_main): Check OPT_Wformat_contains_nul before emitting - the NUL byte warning. - -2007-04-07 H.J. Lu - - * config/i386/i386.c (ix86_handle_option): Handle SSSE3. - -2007-04-06 Daniel Berlin - - * tree.c (staticp): No longer use staticp langhook. - * langhooks.c (lhd_staticp): Removed. - * langhooks.h (struct lang_hooks): Remove staticp. - * c-common.c (c_staticp): Remove. - * c-common.h (c_staticp): Ditto. - * langhooks-defs.h (lhd_staticp): Ditto. - (LHD_HOOKS_STATICP): Ditto - * tree.h (gcc_assert_lowered): New macro. - -2007-04-06 Zdenek Dvorak - - * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use - argument "reliable". - (infer_loop_bounds_from_ref, infer_loop_bounds_from_array): - Add argument "reliable". Propagate it through calls. - (infer_loop_bounds_from_undefined): Derive number of iterations - estimates from references in blocks that do not dominate loop latch. - (gcov_type_to_double_int): New function. - (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int - and expected_loop_iterations_unbounded. - * cfgloopanal.c (expected_loop_iterations_unbounded): New function. - (expected_loop_iterations): Use expected_loop_iterations_unbounded. - * tree-data-ref.c (estimated_loop_iterations): Export. - (get_references_in_stmt): Fix -- do not return addresses of local - objects. - * cfgloop.h (expected_loop_iterations_unbounded, - estimated_loop_iterations): Declare. - -2007-04-06 Andreas Tobler - - * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift. - -2007-04-06 Uros Bizjak - - * config/i386/i386.md (extendxf2): Rename from extendsfxf2 - and extenddfxf2. Macroize expander using X87MODEF12 mode macro. - (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1): - Use output_387_reg_move(). - (*truncxf2): Rename from *truncxfsf2 and truncxfdf2. Macroize - expander using X87MODEF12 mode macro. - (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when - choosing register preferences. Use output_387_reg_move(). - (*truncxfdf2_mixed): Combine alternatives, use "r" alternative - instead of "x". Use output_387_reg_move(). - (*truncxf2_i387_noop): Rename from *truncxfsf2_i387_noop and - *truncxfdf2_i387_noop. Macroize insn using X87MODEF12 mode macro. - (*truncxf2_i387): Rename from *truncxfsf2_i387 and - *truncxfdf2_i387. Macroize insn using X87MODEF12 mode macro. - Use output_387_reg_move(). - (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12 - mode macro. - (*truncxf?f_i387 splitter): Ditto. - -2007-04-06 Daniel Berlin - - * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove - LANG_HOOKS_SAFE_FROM_P. - * expr.c (safe_from_p): Remove langhook call. - * langhooks.h (lang_hooks): Remove safe_from_p. - (lhd_safe_from_p): Remove prototype. - * langhooks.c (lhd_safe_from_p): Remove. - -2007-04-06 Jan Hubicka - - * cgraphunit.c (decide_is_function_needed): Do not keep always_inline - functions. - -2007-04-06 Uros Bizjak - - * config/i386/i386.c (output_387_reg_move): Handle memory operand[0]. - * config/i386/i386.md (*movsf_1, *movdf_nointeger, - *movdf_integer_rex64, *movdf_integer, *movxf_nointeger, - *movxf_integer): Use output_387_reg_move() for x87 reg->mem - alternative. - (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387, - *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto. - -2007-04-05 Richard Henderson - - * config/alpha/alpha.c (print_operand) [+]: Remove. - (alpha_end_function): Print nop if call at end of function. - * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +. - * config/alpha/alpha.md (UNSPEC_LDGP1): New. - (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New. - (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New. - (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into - the call pattern. Update peepholes to match. - -2007-04-05 Janis Johnson - - * doc/extend.texi (Other Builtins): Add decimal float variants - of signbit. - * builtins.def: Ditto. - * builtins.c (expand_builtin): Ditto. - -2007-04-05 Uros Bizjak - H.J. Lu - - PR target/31478 - * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead - of V8HImode when calling ix86_binary_operator_ok. - (sse2_pmaddwd): Call ix86_binary_operator_ok. - (sdot_prodv8hi): Operands 1 and 2 must be register. - -2007-04-05 Alexandre Oliva - - * tree-sra.c (try_instantiate_multiple_fields): Needlessly - initialize align to silence bogus warning. - -2007-04-05 Alexandre Oliva - - PR middle-end/22156 - * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove - all_no_warning. - (struct sra_walk_fns): Remove use_all parameter from use. - (sra_hash_tree): Handle BIT_FIELD_REFs. - (sra_elt_hash): Don't hash bitfld blocks. - (sra_elt_eq): Skip them in parent compares as well. Handle - BIT_FIELD_REFs. - (sra_walk_expr): Don't maintain or pass down use_all_p. - (scan_use): Remove use_all parameter. - (scalarize_use): Likewise. Re-expand assignment to - BIT_FIELD_REF of gimple_reg. De-scalarize before input or - output, and re-scalarize after output. Don't mark anything - for no warning. - (scalarize_ldst): Adjust. - (scalarize_walk_gimple_modify_statement): Likewise. - (build_element_name_1): Handle BIT_FIELD_REFs. - (instantiate_element): Don't warn for any element whose parent - is used as a whole. - (instantiate_missing_elements_1): Return the sra_elt. - (canon_type_for_field): New. - (try_instantiate_multiple_fields): New. - (instantiate_missing_elemnts): Use them. - (mark_no_warning): Removed. - (generate_one_element_ref): Handle BIT_FIELD_REFs. - (REPLDUP, sra_build_elt_assignment): New. - (generate_copy_inout): Use them. - (generate_element_copy): Likewise. Handle bitfld differences. - (generate_element_zero): Don't recurse for blocks. Use - sra_build_elt_assignment. - (generate_one_element_int): Take elt instead of var. Use - sra_build_elt_assignment. - (generate_element_init_1): Adjust. - (scalarize_use, scalarize_copy): Use REPLDUP. - (scalarize_ldst): Move assert before dereference. - (dump_sra_elt_name): Handle BIT_FIELD_REFs. - -2007-04-05 Steven Bosscher - - * regmove.c: Fix unused variable warnings due to previous commit. - -2007-04-05 Steven Bosscher - - * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize. - (regmove_bb_head): Remove. - (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD. - (regmove_optimize): Don't do unnecessary CFG fixes for non-existing - problems with fixup_match_1. - Don't initialize/free regmove_bb_head. - - (reg_is_remote_constant_p): If an insn is in the same basic block - but not before INSN, consider it remote, too. - -2007-04-05 Anatoly Sokolov - - PR target/25448 - * config/avr/avr.c (avr_handle_fndecl_attribute): Use the - DECL_ASSEMBLER_NAME, not the DECL_NAME. - -2007-04-05 H.J. Lu - - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat. - (CONDITIONAL_REGISTER_USAGE): Likewise. - -2007-04-04 Richard Henderson - - * config/alpha/lib1funcs.asm: Remove unused file. - -2007-04-04 Brooks Moses - - PR other/31356 - * opts.c (print_specific_help): Fix --help= - header line. - (common_handle_option): Support --help=common. - -2007-04-04 Brooks Moses - - PR other/31353 - * gcc.c (main): Do not run the linker if - print_subprocess_help indicates that it shouldn't be - run. - -2007-04-04 Brooks Moses - - PR doc/31355 - * doc/invoke.texi (--help=): Document value, fix - formatting in tables of values. - -2007-04-04 Danny Smith - - * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore - dllimport attribute of virtual methods. - -2007-04-04 Chen Liqin - - * config/score/crti.asm: Change _bss_start to __bss_start. - * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added. - (OUTGOING_REG_PARM_STACK_SPACE) update. - * config/score/score.opt: add options to make backend support - score5, score5u, score7 and score7d. - * config/score/score.md: Likewise. - * config/score/misc.md: Likewise. - * config/score/mac.md: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: update constraints define. - -2007-04-03 Richard Henderson - - * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield - an appropriate type, use the mode instead. - -2007-04-03 Richard Sandiford - - * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file. - Set the default --with-arch setting to mips2. - * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES) - (MULTILIB_EXCEPTIONS): Redefine with new multilibs. - (MULTILIB_OSDIRNAMES): Delete. - (MULTILIB_DIRNAMES): Define. - * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC. - (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define. - (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC - definitions, except for _WRS_R3K_EXC_SUPPORT. Call - VXWORKS_OS_CPP_BUILTINS. - (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC. - (MIPS_DEBUGGING_INFO): Undefine. - (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER. - -2007-04-03 Jakub Jelinek - - PR middle-end/30704 - * fold-const.c (native_encode_real): Encode real.c provided longs - as a series of 32-bit native integers. - (native_interpret_real): Interpret buffer as a series of 32-bit - native integers. - -2007-04-03 Richard Guenther - - * genpreds.c (write_insn_constraint_len): Write function - optimized for CONSTRAINT_LEN implementation. - (write_tm_preds_h): Output insn_constraint_len inline and - use it for CONSTRAINT_LEN. - (write_insn_preds_c): Don't output insn_constraint_len. - * doc/md.texi (define_register_constraint): Document multi-letter - constraints shall have the same length if they start with the same - letter. - -2007-04-03 Uros Bizjak - - PR target/31175 - * config/i386/i386.md (isinf2): Expand only when - TARGET_C99_FUNCTIONS is set. - -2007-04-03 Uros Bizjak - - * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file. - (x86_64-*-linux*): Ditto. - * config/i386/i386.opt (mpc): New option. - * config/i386/i386.c (overrride_options): Handle - ix87_precision_string. - * config/i386/crtprec.c: New file. - * config/i386/t-crtpc: Ditto. - * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64 - and -mpc80 options. - * config/i386/linux64.h (ENDFILE_SPEC): Ditto. - * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add - crtprec32.o, crtprec64.o and crtprec80.o. - - * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64 - and -mpc80 options. - (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options. - -2007-04-02 Eric Christopher - - * doc/invoke.texi (i386 and x86-64 Options): Document -m64 - limitations on darwin. - -2007-04-02 Anatoly Sokolov - - PR target/31137 - * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements. - -2007-04-02 Dave Korn - - * doc/tm.texi (FUNCTION_MODE): Update and extend documentation. - -2007-04-02 Dave Korn - - * libgcc2.h (exception_descriptor): Don't forward-declare. - (__get_eh_table_language, __get_eh_table_version): Delete - prototypes of long-dead functions. - -2007-04-01 Daniel Berlin - - * ebitmap.h: New file - * ebitmap.c: New file - * Makefile.in (ebitmap.o): New target. - -2007-04-01 Jan Hubicka - - * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit - before very first instruction. - -2007-04-01 Jan Hubicka - - * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid - waring on 64bit hosts. - * bitmap.h: Fix typo in bitmap_head_def. - -2007-04-01 Steven Bosscher - - PR rtl-optimization/31391 - * cfgcleanup.c (try_optimize_cfg): If a removed label is turned - into a DELETED_LABEL note, and the label is in an empty basic - block, update BB_END as well as BB_HEAD. - -2007-04-01 Richard Henderson - - PR tree-optimization/31169 - * tree-vrp.c (extract_range_from_binary_expr) : Drop - to varying if the range is outside [0, prec-1]. - -2007-04-01 Richard Sandiford - - PR target/31388 - * config/mips/mips.md (load_const_gp): New insn. - * config/mips/mips.c (mips_split_symbol): Avoid using or creating - the MIPS16 GP pseudo register if no_new_pseudos. - (mips16_gp_pseudo_reg): Use gen_load_const_gp. - -2007-03-31 Andrew Pinski - - PR target/31364 - * config/rs6000/rs6000.md (call): Convert to LR hard reg for - secureplt. - (call_value): Likewise. - -2007-03-31 Wolfgang Bangerth - Manuel Lopez-Ibanez - - PR 14737 - * doc/invoke.texi: (optimization options): Reword description - of -ffast-math. Document its primary purpose. - -2007-03-31 Richard Guenther - - * omp-low.c (splay-tree.h): Include. - (lookup_decl): Replace splay-tree usage by pointer-map. - (maybe_lookup_decl): Likewise. - (new_omp_context): Likewise. - (delete_omp_context): Likewise. - * gimplify.c (splay-tree.h): Include. - * tree-inline.c (insert_decl_map): Replace splay-tree usage by - pointer-map. - (remap_ssa_name): Likewise. - (remap_decl): Likewise. - (remap_type_1): Likewise. - (remap_type): Likewise. - (copy_body_r): Likewise. - (expand_call_inline): Likewise. - (clone_body): Likewise. - (copy_tree_r): Likewise. - (remap_save_expr): Likewise. - (unsave_r): Likewise. - (unsave_expr_now): Likewise. - (tree_function_versioning): Likewise. - (build_duplicate_type): Likewise. - * tree-inline.h (pointer-set.h): Include instead of splay-tree.h. - (struct copy_body_data): Replace splay-tree by pointer-map. - * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h, - not $(SPLAY_TREE_H). - (gimplify.o): Depend on $(SPLAY_TREE_H). - (omp-low.p): Likewise. - -2007-03-31 Anatoly Sokolov - - * config/avr/predicates.md (even_register_operand, - odd_register_operand): New predicates. - * config/avr/avr.md (movw peephole2): New. - (movw_r peephole2): New. - -2007-03-30 Rafael Avila de Espindola - - * tree.h (get_signed_or_unsigned_type): New. - * fold-const.c (operand_equal_for_comparison_p): Use - get_signed_or_unsigned_type instead of - lang_hooks.types.signed_or_unsigned_type. - * expr.c (store_expr): Ditto. - * langhooks.c (get_signed_or_unsigned_type): New. - (lhd_signed_or_unsigned_type): New. - * langhooks.h (lhd_signed_or_unsigned_type): New. - * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define. - -2007-03-30 Richard Henderson - - * tree-ssa-loop-ivopts.c: Include target.h. - (produce_memory_decl_rtl): Pass the rtx through encode_section_info. - (get_address_cost): Force SYMBOL_FLAG_LOCAL set. - (force_expr_to_var_cost): Use produce_memory_decl_rtl. - * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H. - -2007-03-30 Richard Henderson - Kai Tietz - - * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by - default for 64-bit. - (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit. - (TARGET_64BIT_MS_ABI): New. - (DBX_REGISTER_NUMBER): Handle 64-bit. - (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit. - (LONG_TYPE_SIZE): Force to 32. - (REG_PARM_STACK_SPACE): New. - (OUTGOING_REG_PARM_STACK_SPACE): New. - (REGPARM_MAX, SSE_REGPARM_MAX): New. - (HANDLE_PRAGMA_PUSH_POP_MACRO): New. - (STACK_BOUNDARY): Use 128 for 64-bit. - * config/i386/cygwin.asm: Use push/ret to preserve call stack. - Add 64-bit implementation. - * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor - argument unused. - * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New. - (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI. - Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm - for 64-bit; use TARGET_SUBTARGET64_DEFAULT. - (ix86_handle_cconv_attribute): Don't warn when ignoring if - TARGET_64BIT_MS_ABI. - (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI. - (ix86_pass_by_reference): Likewise. - (ix86_function_value_regno_p): Likewise. - (ix86_build_builtin_va_list): Likewise. - (ix86_va_start, ix86_gimplify_va_arg): Likewise. - (function_arg_advance_ms_64): New. - (function_arg_advance): Call it. - (function_arg_ms_64): New. - (function_arg): Call it. - (function_value_ms_64): New. - (ix86_function_value_1): Call it. - (return_in_memory_ms_64): New. - (ix86_return_in_memory): Call it. - (setup_incoming_varargs_ms_64): New. - (ix86_setup_incoming_varargs): Call it. - (ix86_expand_prologue): Handle 64-bit stack probing. - (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI. - (output_pic_addr_const): Likewise. - (x86_this_parameter): Likewise. - (x86_output_mi_thunk): Likewise. - (x86_function_profiler): Likewise. - (TARGET_STRICT_ARGUMENT_NAMING): New. - * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New. - (TARGET_64BIT_MS_ABI): New. - (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI. - * config/i386/i386.md (allocate_stack_worker): Remove. - (allocate_stack_worker_32): Rename from allocate_stack_worker_1; - describe the clobber of eax without a match_scratch. - (allocate_stack_worker_postreload): Remove. - (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64; - describe the clobbers of rax, r10, r11 properly; use __chkstk symbol. - (allocate_stack_worker_rex64_postreload): Remove. - (allocate_stack): Handle 64-bit. - * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove. - * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit. - (EXTRA_OS_CPP_BUILTINS): Handle 64-bit. - (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT. - (STANDARD_STARTFILE_PREFIX_1): Likewise. - * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New. - * config.build (x86_64-*-mingw*): New host. - * config.host (x86_64-*-mingw*): New host. - * config.gcc (x86_64-*-mingw*): New target. - * gthr-win32.h (__gthread_key_create): Mark dtor unused. - -2007-03-30 Richard Henderson - Kai Tietz - - * c-pragma.c (struct def_pragma_macro_value): New. - (struct def_pragma_macro): New. - (pushed_macro_table): New. - (dpm_hash, dpm_eq): New. - (handle_pragma_push_macro, handle_pragma_pop_macro): New. - (init_pragma): Install them. - * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New. - -2007-03-30 Anatoly Sokolov - - * config/avr/avr.c (avr_override_options): Clear - 'flag_delete_null_pointer_checks'. - -2007-03-30 Paolo Carlini - - PR c++/26099 - * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN, - RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY, - RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR, - RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR, - RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF, - RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM, - RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as - C++ extensions. - * doc/extend.texi (Extensions to the C++ Language): Add Type Traits. - -2007-03-30 Steven Bosscher - - * regmove.c: Move all of pass_stack_adjustments from here... - * combine-stack-adj.c: ...to this new file. - * Makefile.in: Add rules for combine-stack-adj.o. - -2007-03-30 Zdenek Dvorak - - PR tree-optimization/31383 - * tree-data-ref.c (affine_function_equal_p): Do not require the - vectors to have the same length. - -2007-03-30 Jan Hubicka - - PR middle-end/30700 - * dwarf2out.c (reference_to_unused): Ask cgraph for functions - availablility; add more sanity checking; ask varpool only about - VAR_DECL. - -2007-03-29 Richard Henderson - - * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG - to decide, but __SIZEOF_LONG_LONG__. - -2007-03-29 Richard Henderson - - * emutls.c (struct __emutls_array): New. - (emutls_destroy): Use it instead of casting element 0 from void*. - (__emutls_get_address): Likewise. - -2007-03-29 Richard Henderson - - * varasm.c (initializer_constant_valid_p): Don't deny - DECL_DLLIMPORT_P on functions. - - * config/i386/cygming.h: Remove function declarations. - (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first. - (ASM_OUTPUT_LABELREF): Remove. - (COMMON_ASM_OP): Remove. - (ASM_OUTPUT_COMMON): Remove. - (ASM_OUTPUT_ALIGNED_DECL_COMMON): New. - (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO): - Rename from TARGET_ENCODE_SECTION_INFO. - * config/i386/netware.h: Likewise. - * config/i386/i386-protos.h: Update. - * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef - of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if. - (legitimate_constant_p): Reject dllimports. - (dllimport_map, get_dllimport_decl): New. - (legitimize_dllimport_symbol): New. - (legitimize_address, ix86_expand_move): Use it. - (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES. - * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove. - (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New. - (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New. - * config/i386/predicates.md (constant_call_address_operand): Only - accept symbols; reject dllimport_p symbols. - * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use - i386_pe_maybe_record_exported_symbol. - * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove. - (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p. - (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p; - trust the setting of DECL_DLLIMPORT_P. - (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove. - (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove. - (gen_stdcall_or_fastcall_suffix): Return NULL if no change required; - tidy the argument scanning loop. - (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and - SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS. - (i386_pe_strip_name_encoding): Remove. - (i386_pe_binds_local_p): New. - (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding. - (i386_pe_output_labelref): Remove. - (i386_pe_asm_output_aligned_decl_common): New. - (i386_pe_maybe_record_exported_symbol): Rename from - i386_pe_record_exported_symbol; check for dllexported symbols. - -2007-03-29 Zack Weinberg - - * gengtype.c (oprintf): Mostly revert changes from 2007-03-26; - add comment explaining why vsnprintf cannot be used. - -2007-03-29 Douglas Gregor - - PR tree-optimization/30666 - * tree.c (build_complex_type): When creating type names for DWARF2 - debug info, create TYPE_DECLs for TYPE_NAME instead of - IDENTIFIER_NODEs. - (build_common_tree_nodes_2): Use build_complex_type when building - predefined complex types, to preserve canonical types. - -2007-03-29 Steven Bosscher - - * ifcvt.c (struct noce_if_info): Add then_else_reversed field. - (noce_get_alt_condition): Look at it to determine whether to - reverse the condition or not. - (noce_get_condition): Substitute the truth for lies. - (noce_find_if_block): Set the then_else_reversed field. - -2007-03-29 Lars Poeschel - - * config/fr30/fr30.md (movdi): Do not accept immediates as the - destination of this insn. - * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather - than calling gen_rtx_SET directly. Use r0 to hold the value of - 'address + 4' rather than a stack based temporary which can be - mis-optimized away. - -2007-03-29 Andreas Krebbel - - * config/s390/s390.c (s390_secondary_input_reload_class, - s390_secondary_output_reload_class): Functions removed. - (s390_secondary_reload): New function. - (TARGET_SECONDARY_RELOAD): Target macro defined. - * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS, - SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed. - * config/s390/s390.md ("reload_outti", "reload_outdi", - "reload_indi", "reload_insi", "reload_out", "reload_in", - "reload_out"): Expanders removed. - ("reload_plus", "reload_nonoffmem_in", - "reload_nonoffmem_out"): Expanders added. - -2007-03-29 Andreas Krebbel - - * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair - action if SRC->DEST replacement failed anyway. - -2007-03-28 Mike Stump - - * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add. - * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix. - * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef. - -2007-03-28 Dwarakanath Rajagopal - - * config.gcc: Accept barcelona as a variant of amdfam10. - * config/i386/i386.c (override_options): Likewise. - * doc/invoke.texi: Likewise. - -2007-03-28 Eric Botcazou - - * tree-dfa.c (get_ref_base_and_extent): Do not expect positive - offsets for BIT_FIELD_REF and COMPONENT_REF. - -2007-03-28 Richard Guenther - - * tree.c (is_global_var): Move ... - * tree-flow-inline.h (is_global_var): ... here. - * tree.h (is_global_var): Remove declaration. - -2007-03-28 Uros Bizjak - - * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning - option. - (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option. - * config/i386/i386.c (ix86_tune_features): Initialize new - tuning option. - * config/i386/predicates.md (promotable_binary_operator): Use - TARGET_TUNE_PROMOTE_HIMODE_IMUL. - -2007-03-28 Grigory Zagorodnev - - PR target/31380 - * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX. - -2007-03-28 Lars Poeschel - - * config/fr30/fr30.md (movsi_internal): Change destination - constraint from m to V and add m to the end. - -2007-03-28 Christian Bruel - - * config/sh/sh.md (movsi_i): Fix type attribute. - -2007-03-28 Christian Bruel - - * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length. - (movsf_ie): Likewise. - -2007-03-28 Christian Bruel - - * config.gcc: Add sh4-300 to multilib. - * config/sh/t-mlib-sh4-300: New file. - -2007-03-28 Andreas Krebbel - - * config/s390/s390.md ("fix_truncdi2"): New expander. - ("fix_truncdi2_dfp"): New insn definition renamed from - fix_truncdi2. - ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use - fix_truncdi2_dfp instead of fix_truncdi2. - ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2", - "fixuns_trunctddi2"): Whitespace fix. - -2007-03-28 Kaz Kojima - - * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after - the definition of struct sh_args. - (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT, - CALL_COOKIE_INT_REG_GET): Likewise. - -2007-03-28 Steven Bosscher - - * ifcvt.c (cond_exec_find_if_block): Return FALSE if no - transformations are applied successfully. - -2007-03-27 Douglas Gregor - - * tree.c (tree_contains_struct): Permit 512 tree codes. - * tree.h (tree_contains_struct): Ditto. - (MAX_TREE_CODES): Ditto. - (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add - SPARE member to store remaining padding bits. - -2007-03-27 Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4' - architecture. - -2007-03-27 Janis Johnson - - * configure.ac: Fix assembler test for powerpc*-linux decimal float. - * configure: Regenerate. - - * configure: Regenerate using the correct version of autoconf. - -2007-03-27 Anatoly Sokolov - - * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack - pointer regs. - * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__" - regs to "__SP_L__" and "__SP_H__". - -2007-03-27 Richard Guenther - - * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and - computations with it with a HOST_WIDE_INT variable. - -2007-03-26 Mike Stump - - * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add - objective-c-header, objective-c++-header and objc++-cpp-output - support. - * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise. - -2007-03-26 Richard Henderson - - PR target/31361 - * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128, - IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128, - IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128, - IX86_BUILTIN_PSRLQ128): New. - (ix86_init_mmx_sse_builtins): Add them. - (ix86_expand_builtin): Expand them. - * config/i386/sse.md (ashr3, lshr3, ashl3): Make - operand 2 be TImode. - * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16, - _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, - _mm_srli_epi64): Mark __B const. - (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions. - (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16, - _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use - new two-vector shift builtins. - -2007-03-26 Ian Lance Taylor - - PR tree-optimization/31345 - * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like - [+INF, +INF(OVF)] into VARYING. - -2007-03-26 Zack Weinberg - - * gengtype-parse.c: New file. - * gengtype-yacc.y: Delete. - * gengtype-lex.l: Don't include gengtype-yacc.h. - Define YY_DECL and yyterminate appropriately for recursive - descent parser. yylval is now a string out-parameter to yylex. - (HWS, EOID): New shorthand. - (IWORD): Add a couple more types. - (yylex): Add a setup stanza. Remove the complex rules for - detecting GTY'ed types and typedefs; replace with simple - keyword detectors. Adjust everything for the changed - definition of yylval. Ignore all pp-directives, not just #define. - (yyerror): Delete. - (parse_file): Rename yybegin; do not call yyparse. - (yyend): New. - * gengtype.c (xasprintf): Export again. - (this_file): New. Use everywhere __FILE__ was being used. - (get_lang_bitmap): Special case types defined in gengtype.c. - (do_typedef, new_structure): Suppress definition of certain types. - (new_structure): Improve diagnostics of duplicate definitions. - Make sure location_s is associated with input.h. - (nreverse_pairs, define_location_structures): New functions. - (main): Improve tagging of kludge types. Remove old kludges - for input.h types; use define_location_structures. - * gengtype.h: Update prototypes. Define token codes here. - * Makefile.in: Remove all references to gengtype-yacc. - Add rules for gengtype-parse.o. Adjust rules for gengtype-lex.o - and gengtype. - * bitmap.h (struct bitmap_head_def): Coalesce definitions, - add GTY((skip)) to the field that's only conditionally there. - * doc/install.texi: Document that Bison is no longer required - unless building treelang. - - * gengtype.c: Don't include gtyp-gen.h. - (srcdir): Declare here. - (base_files, lang_dir_names): Allocate dynamically. - (gt_files, num_gt_files, num_lang_dirs): New globals. - (measure_input_list, read_input_line, read_input_list) - (set_lang_bitmap): New functions. - (get_base_file_bitmap): Rename get_lang_bitmap and drastically - simplify, relying on read_input_list to set up the bitmaps. - (main): Arguments are no longer unused. Check for correct number - of command line arguments, set srcdir and srcdir_len, then call - read_input_list, before doing anything else. No need to worry - about duplicates in main loop. - * configure.ac: Simplify the calculation of all_gtfiles. - Put language tags in there. Don't set or substitute - all_gtfiles_files_langs or all_gtfiles_files_frags. - * Makefile.in: Revamp the way gengtype is invoked, now that it - takes a file on its command line with a much simpler format. - Remove or replace with gtyp-input.list all references to gtyp-gen.h. - (GTFILES): Remove duplicates and C source files. - * c-config-lang.in, cp/config-lang.in, objc/config-lang.in - * objcp/config-lang.in: Add c-pragma.h to gtfiles. - * configure: Regenerate. - - * gengtype.h: Remove all type definitions to gengtype.c; leave - only definitions of options_p, type_p, and pair_p as opaque - pointers. Update prototypes. - * gengtype.c: Many type definitions moved here from gengtype.h. - Consolidate type definitions at the top of the file. - (xvasprintf): Delete. - (xasprintf): Make static. - (create_nested_pointer_option): Add 'next' parameter. - (create_field_all, create_field_at): New functions. - (create_field): Now a thin wrapper around create_field_all. - (create_optional_field): Rename create_optional_field_ and add - line argument. Original name is now a macro which supplies - __LINE__. - (oprintf): Use vsnprintf directly. - (close_output_files): Use fatal rather than perror/exit. - (note_def_vec, note_def_vec_alloc): Use create_field_at. - (main): Set progname. Don't use exit. - * gengtype-yacc.y (struct_fields): Use create_field_at. - (option, optionseqopt): Delete. - (optionseq): Consolidate productions from option here so we - can use the first argument to create_option. - - * gengtype-lex.l: Distinguish unions from structures in the - token type. Don't call find_structure; return the tag as a string. - * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and - ENT_UNION. Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is - string. Reorganize typedef_struct production accordingly. - Use create_nested_ptr_option. - * gengtype.c (create_nested_ptr_option): New function. - * gengtype.h: Declare it. - - * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char. - (string_type): Don't declare. - (do_scalar_typedef): Declare. - (create_scalar_type): Update prototype. - * gengtype.c (string_type): Make static. - (scalar_nonchar, scalar_char): New. - (do_scalar_typedef): Export. Always use scalar_nonchar for the type. - (resolve_typedef): Use scalar_nonchar for error recovery. - (create_scalar_type): Remove name_len field. Return scalar_char - or scalar_nonchar as appropriate. - (adjust_field_type): Look at scalar_is_char boolean to decide whether - to use string_type. - (throughout): Use scalar_nonchar instead of calling - create_scalar_type, whenever possible. - (main): Initialize scalar_char and scalar_nonchar before calling - gen_rtx_next. - * gengtype-lex.l: Adjust for removal of second argument to - create_scalar_type. Use yylval.s instead of yylval.t when - returning SCALAR. - * gengtype-yacc.y: Type of SCALAR is string. Call - create_scalar_type from type:SCALAR rule. Adjust for removal of - second argument to create_scalar_type. - - * vec.h: Remove all #if IN_GENGTYPE blocks. - Add comment saying that changes may require adjustments to gengtype. - * gengtype.c: Don't include coretypes.h or tm.h. - Add comment to inclusion of errors.h. - (note_def_vec, note_def_vec_alloc): New functions. - * gengtype.h: Declare new functions. - * gengtype-lex.l: Don't include coretypes.h. - (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name): - Delete. - (update_lineno): Remove unnecessary prototype. - (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc. - (VEC rule): Just return VEC_TOKEN. - * gengtype-yacc.y (VEC_TOKEN): New token type. - (type): Add a production for VEC(a,b). - * Makefile.in: Update dependencies. - - * gengtype-lex.l: Remove rules for parsing pointer-to-function - typedefs that use the old PARAMS macro. - - * gengtype-lex.l: Remove all rules and states relating to yacc - input files. - * gengtype-yacc.y: Similarly. - * gengtype.c (note_yacc_type): Delete function. - * gengtype.h: Update prototypes. - -2007-03-26 Joseph Myers - - * tree-pretty-print.c (dump_generic_node): Report precision of - unnamed integer types. - -2007-03-26 Steven Bosscher - - * ifcvt.c (noce_try_store_flag_constants): Don't check - no_new_pseudos here. - (noce_try_store_flag_constants): Don't check no_new_pseudos. - (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith, - noce_try_cmove_arith, noce_try_minmax, noce_try_abs, - noce_try_sign_mask): Likewise. - (if_convert): Check no_new_pseudos here. - - (cond_exec_process_if_block, noce_process_if_block, find_if_block): - Remove prototypes. - (struct noce_if_info): Add then_bb, else_bb, join_bb members. - (noce_get_condition): Handle new then_else_reversed argument. - (noce_init_if_info): Remove, fold into noce_find_if_block. - (noce_process_if_block): Take a struct noce_if_info as the - argument. Don't set up one based on ce_if_info. Update pointer - references accordingly. - (cond_move_process_if_block): Likewise. - (process_if_block): Removed. - (find_if_block): Removed. Move functionality two new functions, - noce_find_if_block and cond_exec_find_if_block. - (noce_find_if_block): New function. Be aware of IF-THEN-JOIN - blocks and the symmetric IF-ELSE-JOIN case. - (cond_exec_find_if_block): Also new function mostly based on old - find_if_block and process_if_block. - (find_if_header): Replace find_if_block call with separately - guarded calls to noce_find_if_block and cond_exec_find_if_block. - (find_cond_trap): Update noce_get_condition call. - (dead_or_predicable): Likewise. - -2007-03-26 Jakub Jelinek - - * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD): - Remove. - (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, - IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, - IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove. - (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and - v4si_ftype_v4si_v2di. Remove __builtin_ia32_psllw128, - __builtin_ia32_pslld128, __builtin_ia32_psllq128, - __builtin_ia32_psrlw128, __builtin_ia32_psrld128, - __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and - __builtin_ia32_psrad128 builtins. - -2007-03-26 Uros Bizjak - - * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert(). - * config/i386/constraints.md - (define_constraint "I"): Use IN_RANGE macro. - (define_constraint "J"): Ditto. - (define_constraint "K"): Ditto. - (define_constraint "M"): Ditto. - (define_constraint "N"): Ditto. - (define_constraint "O"): Ditto. - * config/i386/predicates.md - (define_predicate "register_no_elim_operand"): Use IN_RANGE macro. - (define_predicate "const_0_to_3_operand"): Ditto. - (define_predicate "const_0_to_7_operand"): Ditto. - (define_predicate "const_0_to_15_operand"): Ditto. - (define_predicate "const_0_to_63_operand"): Ditto. - (define_predicate "const_0_to_255_operand"): Ditto. - (define_predicate "const_1_to_31_operand"): Ditto. - (define_predicate "const_2_to_3_operand"): Ditto. - (define_predicate "const_4_to_7_operand"): Ditto. - -2007-03-25 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR - in SImode for save_world. - * config/rs6000/altivec.md (save_world, restore_world): Convert to - LR hard reg. - -2007-03-25 Dorit Nuzman - - PR tree-optimization/30784 - * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case - BIT_FIELD_REF. - -2007-03-25 Revital Eres - - * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): - Fold movement_possibility function into it. - -2007-03-25 David Edelsohn - - * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0. - (load_macho_picbase_{si,di}): Convert to LR hard reg. - (call_indirect_nonlocal_darwin64): Same. - (call_nonlocal_darwin64): Same. - (call_value_indirect_nonlocal_darwin64): Same. - (call_value_nonlocal_darwin64): Same. - (sibcall_nonlocal_darwin64): Same. - (sibcall_value_nonlocal_darwin64): Same. - (sibcall_symbolic_64): Same. - (sibcall_value_symbolic_64): Same. - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove - LR pseudo. - (rs6000_emit_load_toc_table): Same. - * config/rs6000/altivec.md (restore_world): Convert to LR hard reg. - * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg. - (mull_call): Same. - (divss_call): Same. - (divus_call): Same. - (quoss_call): Same. - (quous_call): Same. - (load_toc_v4_pic_si): Same - (load_toc_v4_PIC_1): Same. - (load_toc_v4_PIC_1b): Same. - (call_indirect_aix{32,64}): Same. - (call_value_indirect_aix{32,64}): Same. - (call): Same. - (call_value): Same. - (call_local{32,64}): Same. - (call_value_local{32,64}): Same. - (call_indirect_nonlocal_aix{32,64}): Same. - (call_nonlocal_aix{32,64}): Same. - (call_value_indirect_nonlocal_aix{32,64}): Same. - (call_value_nonlocal_aix{32,64}): Same. - (call_indirect_nonlocal_sysv): Same. - (call_nonlocal_sysv): Same. - (call_value_indirect_nonlocal_sysv): Same. - (call_value_nonlocal_sysv): Same. - (sibcall): Same. - (sibcall_local{32,64}): Same. - (sibcall_value_local{32,64}): Same. - (sibcall_nonlocal_aix{32,64}): Same. - (sibcall_value_nonlocal_aix{32,64}): Same. - (sibcall_nonlocal_sysv): Same. - (sibcall_value): Same. - (sibcall_value_nonlocal_sysv): Same. - -2007-03-24 Paul Brook - - * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push. - * config/arm/linux-eabi.h: Remove legacy syscall hack. - -2007-03-24 Richard Henderson - - * config/ia64/constraints.md: New file. - * config/ia64/predicates.md: Replace CONST_OK_FOR_? with - satisfies_constraint_?. - * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p, - ia64_reload_gp, spill_restore_mem, ia64_expand_prologue, - ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs, - ia64_output_mi_thunk): Likewise. - (ia64_const_ok_for_letter_p): Remove. - (ia64_const_double_ok_for_letter_p): Remove. - (ia64_extra_constraint): Remove. - * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove. - (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, - CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P, - CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G, - CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT, - EXTRA_MEMORY_CONSTRAINT): Remove. - * config/ia64/ia64.md: Include constriants.md. Replace - CONST_OK_FOR_? with satisfies_constraint_?. - -2007-03-23 Michael Meissner - H.J. Lu - - * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the - DPD or BID name. - (name macros): Use DPD_BID_NAME to convert names properly. - - * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current - decimal floating point format. - (init_floating_libfuncs): Change decimal functions so that they - have a "bid_" prefix if the decimal system uses the BID format, - and "dpd_" prefix if the decimal system uses the DPD format. - (init_interclass_conv_libfuncs): Ditto. - (init_intraclass_conv_libfuncs): Ditto. - - * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are - using the BID format. - - * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say - whether we are using the BID decimal format. - * configure: Regenerate. - - * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if - the compiler has decimal floating point enabled. Define - __DECIMAL_BID_FORMAT__ if BID decimal floating point is used - instead of DPD. - - * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are - using the BID format. - - * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say - whether we are using the BID decimal format. - * configure: Regenerate. - - * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if - the compiler has decimal floating point enabled. Define - __DECIMAL_BID_FORMAT__ if BID decimal floating point is used - instead of DPD. - - * doc/install.texi (--enable-decimal-float): Document BID and DPD - options, and that it is enabled for i386/x86_64 systems. - - * Makefile.in (enable_decimal_float): New. - (DECNUMFMT): New. - (DECNUMINC): Add -I$(DECNUMFMT). - (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h - to $(DECNUMFMT) from $(DECNUM). - - * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}. - Substitute enable_decimal_float. - * configure: Regenerated. - - PR other/30529 - * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of - unsigned long. - - * configure.ac: Enable decimal float for x86_64-*-linux*. - * configure: Regenerated. - - PR other/30530 - * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and - decimal128ClearSign to flip and clear the sign bit in decimal128. - (decimal_real_maxval): Set decimal128SetSign to set the sign - bit in decimal128. - -2007-03-23 Ian Lance Taylor - - * fold-const.c (fold_binary): Correct warning for X - c >= X. - -2007-03-23 Ian Lance Taylor - - * tree-dump.c (dump_files): Correct comment. - -2007-03-23 Ian Lance Taylor - - * tree-vrp.c (operand_less_p): Ignore fold overflow warnings. - -2007-03-23 Steven Bosscher - - * tracer.c (tracer): Don't take FLAGS argument. Assert we are - in cfglayout mode. Don't go into and out of cfglayout mode. - Link the blocks in the order of the constructed traces. - (rest_of_handle_tracer): Adjust call to tracer. - * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode. - Don't go into cfglayout mode. - (rtl_loop_done): Don't go out of cfglayout mode. - * cfglayout.c (relink_block_chain): New function, split out from... - (fixup_reorder_chain): ...here. Remove redundant checking. - (cfg_layout_finalize): Don't clear the header, footer, and aux - fields here, move the code to do so to relink_block_chain. Likewise - for free_original_copy_tables. - * rtl.h (tracer): Update prototype. - * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument. - Assert we are in cfglayout mode. Don't go into and out of cfglayout - mode. Use relink_block_chain to serialize the CFG according to the - new basic block order. Move targetm.cannot_modify_jumps_p check from - here... - (gate_handle_reorder_blocks): ...to here. - (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check - from here... - (gate_duplicate_computed_gotos): ...to here. - (rest_of_handle_reorder_blocks): Don't see if anything has changed, - something always changes when going into and out of cfglayout mode. - Perform an expensive cfg cleanup while going into cfglayout mode. - Always update liveness information on HAVE_conditional_execution - targets. Reserialize the basic blocks and go out of cfglayout mode. - * reg-stack.c: Include cfglayout.h. - (rest_of_handle_stack_regs): Go into and out of cfglayout mode around - the call to reorder_basic_blocks. - * basic-block.h (reorder_basic_blocks): Update prototype. - (relink_block_chain): New prototype. - * passes.c (pass_outof_cfg_layout_mode): Move after cse2. - -2007-03-23 Joseph Myers - - * config/mips/mips.md (type, hazard, *movdi_32bit, - *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc, - *movhi_internal, *movqi_internal, *movsf_hardfloat, - *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat, - movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high, - mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as - applicable. - (movcc): Change first xfer to multi. - * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md, - config/mips/5000.md, config/mips/5400.md, config/mips/5500.md, - config/mips/5k.md, config/mips/7000.md, config/mips/9000.md, - config/mips/generic.md: Change reservations using "xfer" to use - "mfc,mtc". - * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of - using match_operand. - (ir_sb1_mfxfer): Use "mfc" instead of using match_operand. - * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of - examining mode. - (ir_sr70_xfer_to): Use "mtc" instead of examining mode. - -2007-03-22 Richard Henderson - - * config/i386/i386.c: Remove unnecessary function declarations. - Move targetm definition, and all related macros, to the end of - the file. Resort some functions to put definitions before uses. - (ix86_attribute_table): Make static. Move to end of file. - (ix86_gimplify_va_arg): Make static. - -2007-03-22 Richard Henderson - - * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit; - don't increase local_regparm with force_align_arg_pointer check. - (ix86_function_sseregparm): Assert 32-bit. - (type_has_variadic_args_p): New. - (ix86_return_pops_args): Early exit for 64-bit. Reindent; use - type_has_variadic_args_p. - (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax. - (init_cumulative_args): Remove TARGET_DEBUG_ARG. Remove zero_cum; - use memset instead. Do maybe_vaarg check first; skip attribute - tests if true; skip attribute tests for 64-bit. - (construct_container): Remove TARGET_DEBUG_ARG. - (function_arg_advance_32, function_arg_advance_64): Split out ... - (function_arg_advance): ... from here. - (function_arg_32, function_arg_64): Split out ... - (function_arg): ... from here. - (ix86_pass_by_reference): Tidy. - (ix86_function_value_regno_p): Rearrange w/ switch on regno. - (function_value_32): New, from parts of ix86_function_value - and ix86_value_regno. - (function_value_64): New, from parts of ix86_function_value - and ix86_libcall_value. - (ix86_function_value_1): New. - (ix86_function_value, ix86_libcall_value): Use it. - (return_in_memory_32, return_in_memory_64): Split out ... - (ix86_return_in_memory): ... from here. - (ix86_struct_value_rtx): Skip for 64-bit. - (ix86_libcall_value, ix86_value_regno): Remove. - (setup_incoming_varargs_64): Split out ... - (ix86_setup_incoming_varargs): ... from here. - (ix86_va_start): Remove TARGET_DEBUG_ARG. - (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR. - * config/i386/i386-protos.h (ix86_function_value): Remove. - * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove. - -2007-03-22 Manuel Lopez-Ibanez - - PR other/23572 - * c-lex.c (interpret_float): On overflow, emit pedantic warning if - infinities not supported, otherwise emit warning if -Woverflow. On - underflow, emit warning if -Woverflow. - * real.c (real_from_string): Return -1 if underflow, +1 if overflow - and 0 otherwise. - * real.h (real_from_string): Update declaration - -2007-03-22 Kai Tietz - Richard Henderson - - * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default. - * calls.c (compute_argument_block_size, expand_call, - emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE. - * expr.c (block_move_libcall_safe_for_call_parm): Likewise. - * function.c (STACK_DYNAMIC_OFFSET): Likewise. - * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update. - * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h, - config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h, - config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h, - config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE): - Set to 1. - -2007-03-22 Joseph Myers - - * c-incpath.c (add_sysroot_to_chain): New. - (merge_include_chains): Add sysroot argument. Call - add_sysroot_to_chain if sysrooted. - (register_include_chains): Update call to merge_include_chains. - * doc/cppopts.texi: Document use of '=' in include directory - arguments. - -2007-03-22 Uros Bizjak - - * config/i386/i386.md (cmp): Rename from cmpsf and cmpdf. - Macroize expander using SSEMODEF mode macro. Use SSE_FLOAT_MODE_P. - (*cmpfp_): Rename from *cmpfp_sf and *cmpfp_df. Macroize - insn pattern using X87MODEF12 mode macro. - -2007-03-21 Seongbae Park - - * regmove.c (regmove_optimize): Use reg_mentioned_p - instead of reg_overlap_mentioned_p for DST. - -2007-03-21 Mike Stump - - * c.opt: Fixup for Objective-C/C++. - -2007-03-21 Steve Ellcey - - * explow.c (convert_memory_address): Fold memory reference when - POINTERS_EXTEND_UNSIGNED < 0 - -2007-03-21 Richard Henderson - - PR target/31245 - * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias. - * config/i386/mmintrin.h (__m64): Likewise. - * config/i386/xmmintrin.h (__m128): Likewise. - -2007-03-21 Richard Sandiford - - * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options. - (VXWORKS_OS_CPP_BUILTINS): Define. - * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into... - (TARGET_OS_CPP_BUILTINS): ...here. Use VXWORKS_OS_CPP_BUILTINS. - -2007-03-21 Richard Sandiford - - * rtl.h (constant_pool_reference_p): Delete. - (find_constant_src): Declare. - * rtlanal.c (find_constant_src): New function. - * simplify-rtx.c (constant_pool_reference_p): Delete. - * config/i386/i386.md: Use find_constant_src instead of - constant_pool_reference_p/avoid_constant_pool_reference pairs. - -2007-03-21 Richard Sandiford - - * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__. - * c-cppbuiltin.c (c_cpp_builtins): Define them. - -2007-03-20 Mark Mitchell - - * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define. - * config/arm/arm.c (arm_elf_asm_cdtor): New function. - (arm_elf_asm_constructor): Use it. - (arm_elf_asm_destructor): New function. - -2007-03-20 Bernd Schmidt - - * jump.c (mark_jump_label): Treat SEQUENCE specially. - -2007-03-20 Nathan Sidwell - - * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks. - -2007-03-19 Andrew Haley - - PR tree-optimization/31264 - * tree-vrp.c (register_edge_assert_for_1): Don't look though - VIEW_CONVERT_EXPRs. - -2007-03-19 Paolo Bonzini - - PR rtl-optimization/30907 - * fwprop.c (forward_propagate_into): Never propagate inside a loop. - (fwprop_init): Always call loop_optimizer_initialize. - (fwprop_done): Always call loop_optimizer_finalize. - (fwprop): We always have loop info now. - (gate_fwprop_addr): Remove. - (pass_fwprop_addr): Use gate_fwprop as gate. - - PR rtl-optimization/30841 - * df-problems.c (df_ru_local_compute, df_rd_local_compute, - df_chain_alloc): Call df_reorganize_refs unconditionally. - * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change - refs_organized to refs_organized_size. - (df_ref_create_structure): Use refs_organized_size instead of - bitmap_size if refs had been organized, and keep refs_organized_size - up-to-date. - * df.h (struct df_ref_info): Change refs_organized to - refs_organized_size. - (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of - bitmap_size. - -2007-03-19 Mark Mitchell - - * except.c (output_function_exception_table): Do not reference the - EH personality routine for functions that do not require an - exception table. - -2007-03-20 Jakub Jelinek - - PR c/30762 - * c-typeck.c (convert_for_assignment): Call comptypes for - RECORD_TYPE or UNION_TYPE. - - PR inline-asm/30505 - * reload1.c (reload): Do invalid ASM checking after - cleanup_subreg_operands. - -2007-03-19 Jeff Law - - * tree-cfg.c (find_taken_edge): Tighten conditions for - optimizing computed gotos. - -2007-03-19 Michael Matz - - * builtins.c (expand_builtin_sync_operation, - expand_builtin_compare_and_swap, - expand_builtin_lock_test_and_set): Care for extending CONST_INTs - correctly. - - * config/i386/sync.md (sync_double_compare_and_swapdi_pic, - sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint - for operand 3. - -2007-03-19 Andreas Krebbel - - * doc/tm.texi: Add brackets around the return type of - TARGET_SECONDARY_RELOAD. - -2007-03-19 Andrew Pinski - Richard Guenther - - PR tree-optimization/31254 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): - Use handled_component_p () where appropriate. Continue - propagating into the rhs if we propagated into an INDIRECT_REF - on the lhs. - -2007-03-19 Andreas Krebbel - - * config/s390/s390.md (op_type attribute): RRR instruction type added. - (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros. - (xde, xdee): Mode attributes adjusted to support DFP modes. - (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added. - ("cmp", "*cmp_css_0", "*cmp_ccs", TF move splitters, - DF move splitters, "floatdi2", "add3", "*add3", - "*add3_cc", "*add3_cconly", "sub3", "*sub3", - "*sub3_cc", "*sub3_cconly", "mul3", "*mul3", - "div3", "*div3", "*neg2_nocc", "*abs2_nocc", - "*negabs2_nocc", "copysign3"): Adjusted to support DFP - numbers. - ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31", - "movsf"): Insn definitions removed. - ("*mov_64", "*mov_31", "mov", "*mov_64dfp", - "*mov_64", "*mov_31", "fix_truncdi2", - "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn - definitions added. - ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov", - "reload_in", "reload_out"): Expander added. - ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"): - Expander removed. - -2007-03-19 Andreas Krebbel - - * config/s390/s390.md: Only non-functional changes. Renamed - FPR mode macro to BFP all over the file. - -2007-03-19 Andreas Krebbel - - * config/s390/s390.md (UNSPEC_COPYSIGN): New constant. - (op_type attribute): RRF instruction type added. - (fT0): New mode attribute. - ("*movdi_64dfp", "*movdf_64dfp", "*neg2_nocc", "*abs2_nocc", - "*negabs2_nocc", "copysign3"): Insn definitions added. - * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new - instruction no secondary memory is needed when moving DFmode values - between GPRs and FPRs. - -2007-03-19 Andreas Krebbel - - * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value - inverted and documentation adjusted. - ("mhard-dfp", "msoft-dfp"): New options. - * config/s390/s390.c (s390_handle_arch_option): New architecture - switch: z9-ec. - (override_options): Sanity checks for the new options added. - * config.gcc: New architecture switch: z9-ec. - * config/s390/s390.h (processor_flags): PF_DFP added. - (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added. - (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled - when the bit is NOT set so remove it from the defaults. - -2007-03-19 Andreas Krebbel - - * genemit.c (main): Print include statement for dfp.h. - * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum - is not available. - -2007-03-19 Hans-Peter Nilsson - - * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here. - -2007-03-19 Kaz Kojima - - PR target/31022 - * config/sh/sh.c (sh_adjust_cost): Use the result of single_set - instead of PATTERN. - -2007-03-18 John David Anglin - - * pa.c (output_deferred_plabels, output_bb, output_millicode_call, - attr_length_call, output_call, output_indirect_call): Cleanup - formatting of targetm calls. - -2007-03-19 Hans-Peter Nilsson - - * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1. - -2007-03-18 John David Anglin - - * pa.md: Add fpstore_load and store_fpload instruction types. Provide - reservation, bypass and anti-bypass descriptions for these - instructions. Update move patterns. - * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and - TYPE_FPSTORE. - -2007-03-18 Dorit Nuzman - - * tree-vect-transform.c (get_initial_def_for_induction): Replace - GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS. - (get_initial_def_for_reduction): Likewise. - -2007-03-16 Daniel Berlin - - Fix PR tree-optimization/29922 - * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members. - (get_representative): Removed. - (value_dies_in_block_x): Update for rvuse removal. - (valid_in_sets): Update for renaming of vuses_dies_in_block_x. - (compute_antic_aux): Handle when PHI nodes appear in - non-single-successors. - (dump_bitmap_of_names): Removed. - (compute_antic_safe): Renamed and removed rvuse calculation. - Calculate only antic safe. - (insert_into_preds_of_block): Remove assert. - (execute_pre): Update for renamed functions. - (defer_or_phi_translate_block): New function. - -2007-03-17 Kazu Hirata - - * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c, - config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment - typos. - * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos. - Follow spelling conventions. - - * tree-data-ref.h: Remove the prototype for analyze_array. - -2007-03-17 Dorit Nuzman - - PR tree-optimization/31041 - * tree-vect-transform.c (get_initial_def_for_induction): Call - force_gimple_operand. - -2007-03-17 Olga Golovanevsky - - * ipa-type-escape.c (look_for_casts) : Revert code to use - handled_component_p due to ada test a-numaux.adb. - -2007-03-17 Kazu Hirata - - * final.c (final_scan_insn): Alter the condition of a - conditional trap if we have nonstandard CC. - -2007-03-16 Alexandre Oliva - - * configure.ac: Remove excess quoting from asm line 0 test. - * configure: Rebuilt. - -2007-03-16 Manuel Lopez-Ibanez - - * doc/invoke.texi (-Wconversion): Document warnings specific to C++. - * c-common.c (convert_and_check): Move warning logic to... - (warnings_for_convert_and_check): ...here. Define. - * c-common.h (warnings_for_convert_and_check): Declare. - -2007-03-16 John David Anglin - - * pa.c (attr_length_call): Partially revert change of 2007-03-09. - (output_call): Likewise. - -2007-03-16 Richard Sandiford - - * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define. - -2007-03-16 Richard Sandiford - - * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define. - -2007-03-16 Uros Bizjak - - * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8, - opteron, athlon-64 and athlon-fx processor_alias_table entries. - -2007-03-16 Sebastian Pop - - PR tree-optimization/31183 - * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops): - Use double_int instead of unsigned int for representing access_strides. - * testsuite/gcc.dg/tree-ssa/pr31183.c: New. - -2007-03-16 Richard Guenther - - PR tree-optimization/31146 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure - to allow recursion of forward_propagate_addr_expr. - (forward_propagate_addr_into_variable_array_index): Likewise. - (forward_propagate_addr_expr): Likewise. - (tree_ssa_forward_propagate_single_use_vars): Likewise. - (forward_propagate_addr_expr_1): Recurse on simple copies - instead of propagating into them. Do so for useless conversions - as well. - (forward_propagate_addr_expr): Clean up unused statements after - recursion. - -2007-03-16 Richard Guenther - - * builtins.c (expand_builtin_cexpi): Use the right argument - for the expansion via cexp. - -2007-03-16 Alexandre Oliva - - * configure.ac: Don't require ELF binutils to tolerate # 0 "". - * configure: Rebuilt. - -2007-03-16 Alexandre Oliva - - PR debug/29906 - * dwarf2out.c (force_type_die): Adjust comment. - (dwarf2out_imported_module_or_decl): Handle base AT_import types. - -2007-03-15 DJ Delorie - - * config/frv/predicates.md (minmax_operator): Don't check operands - here. - -2007-03-15 Zdenek Dvorak - - * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument. - Update constant estimates of number of iterations. - (record_nonwrapping_iv): Add "upper" argument. "data_size_bounds_p" - argument renamed to "realistic". - (compute_estimated_nb_iterations): Removed. - (record_niter_bound): New function. - (idx_infer_loop_bounds): For possible but unlikely tail arrays, - call record_nonwrapping_iv with upper = false. - (infer_loop_bounds_from_signedness): Pass upper argument to - record_nonwrapping_iv. - (estimate_numbers_of_iterations_loop): Do not call - compute_estimated_nb_iterations. Record estimate based on profile - information. Initialize the constant estimates of number of - iterations. - * tree-data-ref.c (estimated_loop_iterations): Return the recorded - estimates. - * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when - number of iterations is too small. - * cfgloop.h (struct nb_iter_bound): Remove "realistic" field. - (EST_NOT_AVAILABLE): Removed. - (struct loop): Replace estimated_nb_iterations by any_upper_bound, - nb_iterations_upper_bound, any_estimate and nb_iterations_estimate - fields. - -2007-03-15 Zdenek Dvorak - - * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference): - Handle NE_EXPR guards. - -2007-03-15 Manuel Lopez-Ibanez - - PR c++/24924 - * c-opts.c (c_common_post_options): Handle C++ post-processing here. - Set also -pedantic-errors by default for the preprocessor unless - -fpermissive is given. - -2007-03-15 Richard Guenther - - PR middle-end/29719 - PR middle-end/31161 - * builtins.c (expand_builtin_cexpi): As a fallback if we - don't have builtins for sincos or cexp create a function - declaration for cexp and expand to a call to that. - (expand_builtin_int_roundingfn): Always fall - back to floor/ceil and its variants even if they may be - not available. - -2007-03-15 Steven Bosscher - - PR middle-end/31159 - * cfglayout.c (fixup_reorder_chain): Postpone deleting dead - jump tables, move the call to delete_dead_jumptables from here... - (cfg_layout_finalize): ...to here. But rebuild jump labels first. - * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing, - don't allow merging of blocks that try_redirect_by_replacing_jump - also does not handle when not optimizing. - -2007-03-15 Uros Bizjak - Francois-Xavier Coudert - - * config/i386/i386.md (x86_sahf_1): Correctly handle - HAVE_AS_IX86_SAHF. - -2007-03-15 Uros Bizjak - - PR target/31167 - * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use - x86_64_general_operand as operand[2] predicate. Remove "iF" - from operand constraints and use "e" constraint instead. - (*subti3_1, *subti3_1 splitter): Ditto. - (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as - operand[1] predicate. - -2007-03-14 Sebastian Pop - - * tree-loop-linear.c (gather_interchange_stats): For multidimensional - arrays, multiply the access strides by the size of the sub-array. - * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New. - -2007-03-14 Uros Bizjak - - * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether - the configured assembler supports the sahf mnemonic. - * configure: Regenerate. - * config.in: Regenerate. - - * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF, - emit "sahf" or ".byte\t0x9e" as asm template. - -2007-03-14 Michael Meissner - - PR 31018 - * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning - option to replace hard coded TARGET_xxx in md file. - (X86_TUNE_AVOID_VECTOR_DECODE): Ditto. - (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto. - (X86_TUNE_SLOW_IMUL_IMM8): Ditto. - (X86_TUNE_MOVE_M1_VIA_OR): Ditto. - (X86_TUNE_NOT_UNPAIRABLE): Ditto. - (X86_TUNE_NOT_VECTORMODE): Ditto. - (TUNE_SHORTEN_X87_SSE): Use new tuning option. - (TUNE_AVOID_VECTOR_DECODE): Ditto. - (TUNE_SLOW_IMUL_IMM32_MEM): Ditto. - (TUNE_SLOW_IMUL_IMM8): Ditto. - (TUNE_MOVE_M1_VIA_OR): Ditto. - (TUNE_NOT_UNPAIRABLE): Ditto. - (TUNE_NOT_VECTORMODE): Ditto. - - * config/i386/i386.c (ix86_tune_features): Fill in new tuning - options. - - * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new - tuning options instead of hard coded TARGET_xxx. - (fix ssemode peephole2's): Ditto. - (imul peephole2's): Ditto. - (movsi_or): Ditto. - (movdi_or_rex64): Ditto. - (move peephole2): Ditto. - (not peephole2's): Ditto. - -2007-03-14 Dirk Mueller - - * c-common.h (empty_body_warning): Rename to empty_if_body_warning. - * c-common.c (empty_if_body_warning): Rephrase diagnostic message. - * c-parser.c (c_parser_if_body): Always add an empty statement in case - of empty body. - * c-parser.c (c_parser_do_statement): Warn about empty body in - do/while statement. - * c-typeck (c_finish_if_stmt): Call empty_if_body_warning. - * doc/invoke.texi (-Wempty-body): Update documentation. - -2007-03-14 Manuel Lopez-Ibanez - - PR c/21438 - * c-common.h (warn_for_div_by_zero): Declare. - * c-common.c (warn_for_div_by_zero): Define. - * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of - warning. - -2007-03-14 Richard Sandiford - - * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators - to PREFIX and STANDARD_PREFIX. - -2007-03-14 Richard Sandiford - Phil Edwards - - * gthr-vxworks.h: Add an extern "C" wrapper for C++. - (__gthread_once_t): Remove busy field for RTPs. - (__GTHREAD_ONCE_INIT): Update accordingly. - -2007-03-14 Richard Sandiford - - * doc/invoke.texi: Document VxWorks options. - -2007-03-14 Uros Bizjak - - * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option. - -2007-03-13 Seongbae Park - - PR tree-optimization/30590 - * tree-nrv.c (tree_nrv): Check for the partial update of the - return value. - -2007-03-13 Alexandre Oliva - - * flags.h (flag_random_seed): Remove declaration, in favor of... - * toplev.h (get_random_seed, set_random_seed): ... these. - * tree.c (get_file_function_name): Use the former. - * opts.c (common_handle_option): Use the latter. - * toplev.c - -2007-03-13 Steven Bosscher - - PR middle-end/31127 - * cse.c (cse_find_path): Do not bail out if a basic block that - we already visited now becomes part of a path that starts at a - different basic block. Just disallow this, to make sure we - visit each basic block at most once. - -2007-03-13 Jan Hubicka - - * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold - attributes, when profile esitmate is present, calls with very low - frequency are cold. - -2007-03-13 Zdenek Dvorak - - PR tree-optimization/30730 - PR tree-optimization/26900 - * tree-ssa-loop-niter.c: Include gmp.h. - (bounds): New type. - (mpz_set_double_int, get_type_bounds, mpz_to_double_int, - split_to_var_and_offset, determine_value_range, - bound_difference_of_offsetted_base, refine_bounds_using_guard, - bound_difference, bounds_add, bounds_negate, - number_of_iterations_ne_max, dump_affine_iv): New functions. - (number_of_iterations_ne, number_of_iterations_lt_to_ne, - assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the - difference of initial and final value of control iv to validate - results. - (number_of_iterations_cond): Add loop parameter. Determine bounds - on the difference of the extremes of the control iv. Add dumps. - (expand_simple_operations): Handle phi nodes. - (simplify_using_initial_conditions): Do not record used conditions. - (number_of_iterations_exit): Pass loop to number_of_iterations_cond. - Do not set additional_info. - (implies_nonnegative_p, implies_ge_p): Removed. - (derive_constant_upper_bound): Do not use parameter `additional'. - (record_estimate): Parameter `additional' removed. Parameter - `i_bound' added. Do not call derive_constant_upper_bound. - (record_nonwrapping_iv): Use derive_constant_upper_bound to - bound the number of iterations estimate. - (estimate_numbers_of_iterations_loop): Pass the estimate from - the number of iterations analysis to record_estimate. - * tree.h (multiple_of_p): Declare. - * tree-scalar-evolution.c (expression_expensive_p): Removed. - (scev_const_prop): Do not check expression_expensive_p. - * fold-const.c (multiple_of_p): Exported. - * double-int.c (double_int_mask): Exported. - * double-int.h (double_int_mask): Declare. - * tree-flow.h (struct tree_niter_desc): Removed additional_info - field. Added max field. - -2007-03-13 David Taylor - - PR driver/12448 - * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass - default -MQ. - -2007-03-13 John David Anglin - - PR target/31123 - * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for - two unamed patterns. - -2007-03-13 Uros Bizjak - - * config/i386/i386.opt (mcx16, msahf): New options. - * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove. - (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC. - - * config/i386/driver-i386.c (bit_LAHF_LM): New define. - (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits. - Output -mcx16 and -msahf options when corresponding bit is set. - - * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16 - and -msahf options. - -2007-03-13 Alexandre Oliva - - * configure.ac: Test for assembler tolerance to # 0 "". - * configure, config.in: Rebuilt. - * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO. - -2007-03-13 Geoffrey Keating - - * doc/invoke.texi (Spec Files): Update for '%{,' spec. - - * config/rs6000/darwin-fallback.c: Compile file only on powerpc. - (handle_syscall): Handle direct system calls. - * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete. - -2007-03-12 Brooks Moses - - * doc/invoke.texi: Fix cpp.info cross-reference. - * doc/passes.texi: Fix gcc.info cross-reference. - -2007-03-12 Zdenek Dvorak - - PR tree-optimization/30835 - * lambda-code.c (can_convert_to_perfect_nest): Check whether - bb_for_stmt is not NULL before accessing it. - -2007-03-12 Joseph Myers - - * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for - some multilibs. - -2007-03-12 Brooks Moses - - PR 30635 - * doc/install.texi: Document --enable-stage1-languages - -2007-03-12 Steven Bosscher - - * tree-pass.h (pass_into_cfg_layout_mode, - pass_outof_cfg_layout_mode): Declare. - * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode, - pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New. - * passes.c (pass_into_cfg_layout_mode): Schedule before jump2. - (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt. - -2007-03-12 Seongbae Park - - * c-decl.c (warn_variable_length_array): New function. - Refactored from grokdeclarator to handle warn_vla - and handle unnamed array case. - (grokdeclarator): Refactored VLA warning case. - * c.opt (Wvla): New flag. - * doc/invoke.texi (Wvla): New warning. - -2007-03-12 Richard Henderson - - * config/alpha/alpha.c (alpha_elf_section_type_flags): New. - (TARGET_SECTION_TYPE_FLAGS): New. - -2007-03-12 Richard Henderson - - * config/darwin.c (machopic_reloc_rw_mask): New. - * config/darwin-protos.h (machopic_reloc_rw_mask): Declare. - * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New. - -2007-03-12 Mark Mitchell - - * cppdefault.c (cpp_EXEC_PREFIX): New variable. - * cppdefault.h (cpp_PREFIX): Document. - (cpp_PREFIX_len): Likewise. - (cpp_EXEC_PREFIX): New variable. - * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX. - * c-incpath.c (add_standard_paths): Correct logic for relocating - paths within prefix. - -2007-03-12 Uros Bizjak - - * config/i386/i386.md (fixuns_trunchi2): Implement from - fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF - mode macro. - (fix_truncdi_sse): Implement from fix_truncsfdi_sse and - fix_truncdfdi_sse using SSEMODEF mode macro. - (fix_truncsi_sse): Implement from fix_truncsfsi_sse and - fix_truncdfsi_sse using SSEMODEF mode macro. - (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro. - (fix_trunc?f?i_sse K8 peephole2): Fix register constraint. - -2007-03-12 Richard Sandiford - - * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add - elfos.h to tm_file. - -2007-03-12 Olga Golovanevsky - - * tree.h : Add multiple_of_p declaration. - * fold-const.c (multiple_of_p): Make multiple_of_p public. - * ipa-type-escape.c (results_of_malloc): Redundant. - (visited_stmts): New. Visited stmt for walk_use_def_chains. - (cast_type): Extended with new members. - (check_cast): Returns cast_type. - (cast): New structure for data of walk_use_def_chains. - (is_malloc_result, is_cast_from_non_pointer_1, - is_cast_from_non_pointer, - is_array_access_through_pointer_and_index): New functions. - (look_for_casts): Returns cast types. - (check_call): Returns void. - (okay_pointer_operation): Use support of pointer plus index, - pointer plus constant and allow all multiplications. - -2007-03-11 Richard Guenther - - PR tree-optimization/31115 - * tree-vrp.c (extract_range_from_binary_expr): Make sure - the shift count is positive and non-anti-range for RSHIFT_EXPR. - A shift count of zero is not special as with *_DIV_EXPR. - (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow - direction. - -2007-03-11 Ian Lance Taylor - - * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and - the *_DIV_EXPR codes correctly with overflow infinities. - -2007-03-11 Ira Rosen - - * tree-data-ref.c (analyze_offset): Add a return value (bool) to - indicate success/failure of the analysis. Add negation to subtrahend - in case of subtraction. Fail if both operands contain constants. - (create_data_ref): Fail if analyze_offset fails. - -2007-03-11 Uros Bizjak - - * config/i386/i386.md (frndintxf2): Rename to ... - (rintxf2): ... this. Remove expander having same name. - (rintsf2, rintdf2): Implement using SSEMODEF macro. - (roundsf2, rounddf2): Ditto. - (lrintdi2, lrintsi2): Implement using SSEMODEI24 macro. - (lrounddi2, lroundsi2): Ditto. - -2007-03-11 Steven Bosscher - - * lower-subreg.c: Include except.h. - (decompose_multiword_subregs): Verify that the only control flow - insns we can split are loads to multi-words pseudos. - Handle breaking such blocks after splitting, instead of calling - find_many_sub_basic_blocks. - - * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK - on the new basic block. Add a lengthy comment explaining why we - thought this was necessary. - * cfglayout.c (cfg_layout_finalize): Don't break superblocks. - -2007-03-10 Mark Mitchell - - PR c++/30924 - * tree.c (walk_type_fields): Recurse into the element type of - ARRAY_TYPEs if there is a pointer set. - -2007-03-10 Dirk Mueller - - * c-common.c (warn_logical_operator): Fix condition. - -2007-03-10 Tobias Schl�ter - - * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing - quotation mark. - * config/darwin.c (machopic_select_section): Remove superfluous - argument in call to categorize_decl_for_section. Remove unused - variable shlib. - -2007-03-10 Joseph Myers - - * configure.ac (glibc_header_dir): Set using with_build_sysroot if - defined. - * configure: Regenerate. - -2007-03-10 Uros Bizjak - - PR target/31101 - * config/i386/i386.md (UNSPEC_C2_FLAG): New constant. - (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG. - (fmodxf3, fmod3, remainderxf3, remainder3): - Add LABEL_NUSES to emitted label. - * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add - branch probability value to emitted jump insn. - * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG. - Do not check life information and do not re-arrange input operands - for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U. - -2007-03-10 Kaz Kojima - - * config/sh/sh.c (sh_insn_length_adjustment): Adjust for - the change of decode_asm_operands. - -2007-03-10 Kaz Kojima - - * mode-switching.c (create_pre_exit): Skip blockage insn. - -2007-03-09 Diego Novillo - - * tree-pass.h (TODO_update_smt_usage): Remove. - Update all users. - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove - argument SOME. - Update all users. - -2007-03-09 John David Anglin - - * pa.c (attr_length_call): Revise condition for long - pc-relative branch. - (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long - local calls on the SOM target. Don't use "LONG_PIC_PCREL" call - sequence on SOM target. - -2007-03-09 Geoffrey Keating - - * gcc.c: Document %{, in big comment at top. - (input_suffix_matches): Remove special handling for .s and - .S. - (input_spec_matches): New. - (handle_braces): Handle %{,. - (validate_switches): ',' indicates a value which is not a switch. - * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{. - to detect assembler input. - * config/i386/sol2.h (CPP_SPEC): Likewise. - * config/rs6000/sysv4.h (ASM_SPEC): Likewise. - * config/rs6000/vxworks.h (ASM_SPEC): Likewise. - * config/rs6000/lynx.h (ASM_SPEC): Likewise. - * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise. - * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus - -m64 causes deployment target to default to 10.5. - * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise. - -2007-03-09 Richard Henderson - - PR target/26090 - * target.h (targetm.asm.out.reloc_rw_mask): New. - * target-def.h (TARGET_ASM_RELOC_RW_MASK): New. - (TARGET_ASM_OUT): Use it. - * targhooks.c, targhooks.h (default_reloc_rw_mask): New. - * varasm.c (categorize_decl_for_section): Remove shlib argument; - use the new reloc_rw_mask target hook instead. - (default_section_type_flags_1): Merge into... - (default_section_type_flags): ... here. - (decl_readonly_section_1): Merge into... - (decl_readonly_section): ... here. - (default_elf_select_section_1): Merge into... - (default_elf_select_section): ... here. - (default_unique_section_1): Merge into... - (default_unique_section): ... here. - (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New. - (default_select_rtx_section): Use it. - (default_elf_select_rtx_section): Likewise. - * output.h: Update to match. - * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New. - * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New. - (TARGET_ASM_RELOC_RW_MASK): New. - * config/i386/i386.c (x86_64_elf_select_section): Adjust call - to categorize_decl_for_section. - (x86_64_elf_unique_section): Likewise. - * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION, - TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove. - (TARGET_ASM_RELOC_RW_MASK): New. - * config/ia64/ia64.c (ia64_rwreloc_select_section, - ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove. - (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New. - (TARGET_RWRELOC): Remove. - (ia64_section_type_flags): Adjust call to default_section_type_flags. - * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New. - * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove. - (rs6000_elf_select_section, rs6000_elf_unique_section): Remove. - (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New. - (rs6000_xcoff_select_section): Use decl_readonly_section. - (rs6000_xcoff_section_type_flags): Use default_section_type_flags. - * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New. - (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove. - (TARGET_SECTION_TYPE_FLAGS): Remove. - * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New. - -2007-03-09 Roger Sayle - - * fold-const.c (fold_comparison): Remove compile-time evaluation of - complex constant equality/inequality comparisons for here. - (fold_binary) : Simplify complex comparisons that are - known at compile-time or can be simplified to a scalar comparison. - (fold_relational_const): Move compile-time evaluation of complex - constant equality/inequality comparisons to here. - -2007-03-09 Alexandre Oliva - - PR rtl-optimization/30643 - * cse.c (cse_insn): Recompute dest_hash after insert_regs for - dest_addr_elt. - (fold_rtx): Recurse, like before 2006-11-03. - -2007-03-09 DJ Delorie - - * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to - m32c-pragma.o. - -2007-03-09 Aldy Hernandez - - PR tree-optimization/30375 - * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if - LHS of statements is not the same. - * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New. - -2007-03-09 Chao-ying Fu - - * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP - REV 2. - * doc/invoke.texi (-mdspr2): Document new option. - * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH): - New unspec for DSP REV 2. - (mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because - these instructions are extended in DSP REV 2. - (mips-dspr2.md): Include. - * config/mips/mips.opt (mdspr2): New option. - * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI, - MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI, - MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI. - (override_options): Check TARGET_DSPR2 to enable MASK_DSP. - (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3. - (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins. - (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1 - and 2 builtins. - (bdesc_map): Add one field of unsupported_target_flags. - (bdesc_arrays): Update entries to have extra fields. Add - dsp_32only_bdesc. - (mips_init_builtins): Initialize new function types. - Check unsupported_target_fileds to filter out builtins. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if - TARGET_DSPR2. - (ASM_SPEC): Pass mdspr2 to the assembler. - * config/mips/mips-dspr2.md: New file. - -2007-03-09 Sa Liu - - * config/rs6000/altivec.md: Fix vcond patterns using if_then_else. - -2007-03-09 Ian Lance Taylor - - * opts.c (common_handle_option): Treat -Wstrict-overflow (with no - argument) like -Wstrict-overflow=2. - * doc/invoke.texi (Warning Options): Update documentation. - -2007-03-09 Dirk Mueller - - PR c++/17946 - * doc/invoke.texi (-Wlogical-op): Document. - * common.opt (-Wlogical-op): New. - * c-common.h (warn_logical_operator): Declare. - * c-common.c (warn_logical_operator): Define. - * c-typeck.c (parser_build_binary_op): Call - warn_logical_operator. - -2007-03-09 Alexandre Oliva - - * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name. - * final.c (final_scan_insn): Test for non-"" file name. - -2007-03-09 Sebastian Pop - - * doc/loop.texi: Document the Omega linear constraints solver. - * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars, - omega-max-geqs, omega-max-eqs, omega-max-wild-cards, - omega-hash-table-size, omega-max-keys, and - omega-eliminate-redundant-constraints. - * tree-pass.h (pass_check_data_deps): Declared. - * omega.c: New. - * omega.h: New. - * timevar.def (TV_CHECK_DATA_DEPS): Declared. - * tree-ssa-loop.c (check_data_deps, gate_check_data_deps, - pass_check_data_deps): New. - * tree-data-ref.c (init_data_ref): Remove declaration. - (dump_data_dependence_relation): Dump DDR_INNER_LOOP. - (analyze_array): Renamed init_array_ref, move up initializations. - (init_data_ref): Renamed init_pointer_ref. Moved before its call. - Removed arguments that are set to NULL. - (analyze_indirect_ref): Correct indentation, correct call to - init_pointer_ref. - (object_analysis): Call init_array_ref instead of analyze_array. - (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP. - (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead - of DR_ACCESS_FNS_ADDR. - (init_omega_eq_with_af, omega_extract_distance_vectors, - omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr, - ddr_consistent_p): New. - (compute_affine_dependence): Check consistency of ddrs when - flag_check_data_deps is passed. - (analyze_all_data_dependences): Uncomment. - (tree_check_data_deps): New. - * tree-data-ref.h: Include omega.h. - (DR_ACCESS_FNS_ADDR): Removed. - (data_dependence_relation): Add inner_loop. - (DDR_INNER_LOOP): New. - * common.opt (fcheck-data-deps): New. - * tree-flow.h (tree_check_data_deps): Declare. - * Makefile.in (TREE_DATA_REF_H): Depend on omega.h. - (OBJS-common): Depend on omega.o. - (omega.o): Define. - * passes.c (pass_check_data_deps): Scheduled. - * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS, - PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS, - PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, - PARAM_VECT_MAX_VERSION_CHECKS, - PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New. - -2007-03-09 Richard Guenther - - PR tree-optimization/30904 - PR middle-end/31058 - * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR - the same way as *_DIV_EXPR. - -2007-03-09 Alexandre Oliva - - * recog.c (decode_asm_operands): No mixed declarations and code. - -2007-03-09 Alexandre Oliva - - * rtl.def (ASM_INPUT): Add location. - * rtl.h (ASM_INPUT_SOURCE_LOCATION): New. - (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New. - (decode_asm_operands): Add loc operand. - (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define. - * stmt.c (expand_asm): Rename to... - (expand_asm_loc): ... this. Add locus argument. Pass it on to - gen_rtx_ASM_INPUT_loc. - (expand_asm_expr): Adjust. - * recog.c (decode_asm_operands): Add loc operand. - (check_asm_operands, extract_insn): Adjust. - * reload1.c (maybe_fix_stack_asms): Likewise. - * final.c (asm_insn_count): Likewise. - (final_scan_insn): Output # line before and after asm. - -2007-03-09 Daniel Berlin - - * tree-ssa-structalias.c (variable_info): Remove - finished_solution. - (new_var_info): Ditto. - (shared_bitmap_info_t): New structure. - (shared_bitmap_table): New variable. - (shared_bitmap_hash): New function. - (shared_bitmap_eq): Ditto - (shared_bitmap_lookup): Ditto. - (shared_bitmap_add): Ditto. - (merge_smts_into): Change to take bitmap directly. - (find_what_p_points_to): Rewrite to use shared bitmap hashtable. - (init_alias_vars): Init shared bitmap hashtable. - (delete_points_to_sets): Delete shared bitmap hashtable. - * tree-ssa-operands.c (add_virtual_operand): Partially revert the - is_aliased removal as a change that was still necessary was - deleted. - -2007-03-09 Uros Bizjak - - * config/i386/i386.h (override_options): Conditionally disable - x86_sahf for 64bit targets only. - -2007-03-08 Andrew Pinski - - PR C/31072 - * c-decl.c (merge_decls): Don't call make_var_volatile. - * varasm.c (make_var_volatile): Remove. - * output.h (make_var_volatile): Remove. - -2007-03-08 Zdenek Dvorak - - PR tree-optimization/31085 - * tree-ssa-address.c (create_mem_ref): Fix test of type of base. - -2007-03-08 Kaveh R. Ghazi - - * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl, - llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with - ATTR_CONST_NOTHROW_LIST. - - * fold-const.c (tree_expr_nonnegative_warnv_p): Handle - FIX_TRUNC_EXPR. - -2007-03-08 Diego Novillo - - * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF. - -2007-03-08 Geoffrey Keating - - PR 31013 - * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME - is declared. - * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is - passed, use shared libgcc. - -2007-03-08 Roger Sayle - - * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt - instead of calling build2 with a GIMPLE_MODIFY_STMT. - (honor_protect_cleanup_actions, lower_try_finally_switch): - Likewise. - * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt, - ifc_temp_var): Likewise. - * tree-inline.c (setup_one_parameter): Likewise. - * tree-mudflap.c (mf_decl_cache_locals, - mf_build_check_statement_for): Likewise. - * tree-nested.c (init_tmp_var, save_tmp_var, - finalize_nesting_tree_1): Likewise. - * tree-outof-ssa.c (insert_copy_on_edge, - insert_backedge_copies): Likewise. - * tree-profile.c (tree_gen_edge_profiler, - tree_gen_ic_profiler): Likewise. - * tree-scalar-evolution.c (scev_const_prop): Likewise. - * tree-sra.c (sra_build_assignment): Likewise. - * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise. - * tree-ssa-math-opts.c (insert_reciprocals, - execute_cse_sincos_1): Likewise. - * tree-tailcall.c (adjust_accumulator_values, - adjust_return_value): Likewise. - * tree-vect-patterns.c (vect_pattern_recog_1): Likewise. - * tree-vect-transform.c (vect_create_data_ref_ptr, - bump_vector_ptr, vect_init_vector, get_initial_def_for_induction, - vect_create_epilog_for_reduction, vectorizable_reduction, - vectorizable_call, vectorizable_conversion, - vectorizable_assignment, vectorizable_operation, - vectorizable_type_demotion, vect_gen_widened_results_half, - vect_permute_store_chain, vectorizable_store, - vect_setup_realignment, vect_permute_load_chain, - vectorizable_load, vectorizable_condition, - vect_create_cond_for_align_checks): Likewise. - * tree-vrp.c (build_assert_expr_for): Likewise. - -2007-03-08 Ian Lance Taylor - - * tree-vrp.c: Include "intl.h". - (usable_range_p): New static function. - (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for - overflowed values, juts set *strict_overflow_p. - (compare_values): Only return -2 if one of the operands is not a - constant. - (compare_ranges): Call usable_range_p. - (compare_range_with_value): Likewise. - (vrp_evaluate_conditional_warnv): Rename from - vrp_evaluate_conditional. Make static. Change all callers. - (vrp_evaluate_conditional): New function. - (simplify_div_or_mod_using_ranges): Issue warning about reliance - on signed overflow. - (simplify_abs_using_ranges): Likewise. - (simplify_stmt_for_jump_threading): Add within_stmt parameter. - * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add - within_stmt parameter. - * tree-ssa-propagate.c (fold_predicate_in): Update call to - vrp_evaluate_conditional. - * tree-ssa-threadedge.c - (record_temporary_equivalences_from_stmts_at_dest): Change - simplify parameter to take a second tree parameter. - (simplify_control_stmt_condition): Likewise. - (thread_across_edge): Likewise. - * tree-flow.h (vrp_evaluate_conditional): Update declaration. - (thread_across_edge): Likewise. - * Makefile.in (tree-vrp.o): Depend upon intl.h. - -2007-03-08 Uros Bizjak - - * config/i386/i386.h (TARGET_SAHF): New define. - * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]: - Also enable for m_K8, m_AMDFAM10 and m_CORE2. - (x86_sahf): New global variable. - (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode - pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and - nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set - in processor flags. Do not unconditionally disable TARGET_USE_SAHF - for 64-bit. - (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF. - (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF - when expanding fcomi/sahf based tests. - (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when - expanding sahf based alternative. Emit sahf based sequence when - optimizing for code size. - * config/i386/i386.md (x86_sahf_1): Do not disable for - TARGET_64BIT, enable for TARGET_SAHF. - -2007-03-08 Martin Michlmayr - - * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove - spurious whitespace from error message. - -2007-03-08 Volker Reichelt - - PR c++/30852 - * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR. - -2007-03-08 Alexandre Oliva - - * c-decl.c (grokdeclarator): Disable warnings for anonymous - bitfields. - * tree-sra.c (instantiate_element): Propagate disabled warnings - from the element itself to the created variable. - -2007-03-07 Richard Henderson - - PR target/30848 - * reg-stack.c (emit_swap_insn): If a malformed asm was seen, - silently fix up the stack in the case of a missing register. - -2007-03-07 Paul Brook - - * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds. - -2007-03-07 Joseph Myers - - * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs): - New. - (phase1_vrs): Use them. - (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New. - (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD, - __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare. - (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and - __gnu_Unwind_Restore_WMMXC if required. - (_Unwind_VRS_Pop): Implement iWMMXt support. - * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD, - gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC, - gnu_Unwind_Save_WMMXC): Define. - -2007-03-07 Richard Sandiford - - * config/vxworks.h (vxworks_override_options): Declare. - (VXWORKS_OVERRIDE_OPTIONS): Use it. - * config/vxworks.c: Include target.h and toplev.h. - (vxworks_override_options): New function. - * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h. - -2007-03-07 Andreas Krebbel - - * config/s390/s390.c (override_options): Don't emit an error when - -mstack-size is used without providing -mstack-guard. - (s390_emit_prologue): Choose stack_guard value automatically if not - provided via command line. - * doc/invoke.texi: Adjust description of -mstack-guard and - -mstack-size. - -2007-03-07 Richard Sandiford - - * config/i386/i386.c (output_set_got): Add a GOT initialization - sequence for VxWorks PIC. - (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers - around labels as well as symbols. Use gotoff_operand instead - of local_symbolic_operand. - (legitimize_pic_address): Use gotoff_operand instead of - local_symbolic_operand. Use @GOT accesses for labels as - well as symbols. - (ix86_output_addr_diff_elt): Use PC-relative rather than - GP-relative offsets for VxWorks PIC. - (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless - no_new_pseudos. Check whether the returned register is op0. - * config/i386/i386.md (tablejump): Use PC-relative rather than - GP-relative offsets for VxWorks PIC. - * config/i386/predicates.md (gotoff_operand): New predicate. - -2007-03-06 Richard Sandiford - - * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine - before defining. - * config/vxworks-dummy.h: New file. - * config/i386/i386.h: Include it. - -2007-03-07 Alexandre Oliva - - * dwarf2out.c (is_inlined_entry_point): New - (add_high_low_attributes): Emit DW_AT_entry_pc along with - DW_AT_ranges if the first subblock is the entry point. - -2007-03-06 David Daney - - * doc/install.texi (mips-*-*): Change recommended binutils - version. - -2007-03-06 Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P, - ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162 - devices. - * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). - * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). - -2007-03-06 Jan Hubicka - - * errors.h (warning, error, fatal, internal_error): Mark as cold. - * predict.c (maybe_hot_bb): Cold functions are never hot; hot - functions are hot. - (probably_cold_bb_p): Cold functions are cold. - (probably_never_executed_bb_p): Cold functions are cold. - (tree_bb_level_predictions): Predict calls to cold functions as not - taken. - (compute_function_frequency): Check hot/cold attributes. - * function.h (function_frequency): Update comments. - * predict.def (PRED_COLD_FUNCTION): Predict cold function. - * c-common.c (handle_hot_attribute, handle_cold_attribute): New. - (c_common_att): Add cold and hot. - - * doc/extend.texi (hot,cold attributes): Document. - -2007-03-06 Andrew Haley - - * function.c (expand_function_end): Move blockage to just after we - emit the label for the naked return from the function. - -2007-03-06 Richard Sandiford - - * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine - before redefining. - -2007-03-06 Jan Hubicka - - * reg-stack.c (reg_to_stack): Large models don't allow NAN to be - loaded for constant large models. Non-large 64bit PIC can do. - * config/i386/i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit. - * cmodel.h: Add LARGE PIC. - * config/i386/i386.md (UNSPEC_PLTOFF): New. - (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other - unspecs as needed. - (*call_1_rex64): Disable for large models. - (*call_1_rex64_large): New. - (*call_value_1_rex64): Disable for large models. - (*call_value_1_rex64_large): New. - (set_rip_rex4): New. - (set_got_offset_rex64): New. - * config/i386/predicates.md (constant_call_address_operand): For - large model constant calls are not possible. - * config/i386/i386-protos.h (construct_plt_address): Declare. - * config/i386/i386.c (override_options): Accept large models. - (ix86_expand_prologue): Expand large PIC GOT pointer load. - (legitimate_constant_p): Add new UNSPECs. - (legitimate_pic_operand_p): Likewise. - (legitimate_pic_address_disp_p): Disallow local symbols for large PICs. - (legitimize_pic_address): Do easy RIP relative way for TLS only for - non-large model. - (output_pic_addr_const): Add PLTOFF. - (ix86_output_addr_diff_elt): Output 64bit tables when needed. - (ix86_expand_move): Legitimize pic address when in PIC mode. - (construct_plt_address): New function. - (ix86_expand_call): Offload the address to register and use GOT - pointer for large model. - * invoke.texi (mcmodel=large): Update documentation. - -2007-03-06 Richard Henderson - - * config/i386/i386.c (x86_use_leave, x86_push_memory, - x86_zero_extend_with_and, x86_movx, x86_double_with_add, - x86_use_bit_test, x86_unroll_strlen, x86_deep_branch, - x86_branch_hints, x86_use_sahf, x86_partial_reg_stall, - x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop, - x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify, - x86_split_long_moves, x86_promote_QImode, x86_fast_prefix, - x86_single_stringop, x86_qimode_math, x86_promote_qi_regs, - x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8, - x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_prologue_using_move, x86_epilogue_using_move, x86_shift1, - x86_sse_partial_reg_dependency, x86_sse_split_regs, - x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, - x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec, - x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit, - x86_schedule, x86_use_bt, x86_pad_returns, - x86_use_xchgb): Merge into ... - (ix86_tune_features): ... here. New array. - (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd, - x86_bswap): Merge into ... - (ix86_arch_features): ... here. New array. - (x86_3dnow_a): Remove. - (x86_accumulate_outgoing_args): Make static. - (x86_arch_always_fancy_math_387): Make static. - (ix86_tune_mask, ix86_arch_mask): Move ... - (override_options): ... to local variables here. Apply the - appropriate mask to each element of ix86_arch_features and - ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF - as were done in the old macros. - (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS. - * config/i386/i386.h (x86_use_leave, x86_push_memory, - x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch, - x86_branch_hints, x86_unroll_strlen, x86_double_with_add, - x86_partial_reg_stall, x86_movx, x86_use_himode_fiop, - x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb, - x86_read_modify_write, x86_read_modify, x86_split_long_moves, - x86_promote_QImode, x86_single_stringop, x86_fast_prefix, - x86_himode_math, x86_qimode_math, x86_promote_qi_regs, - x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4, - x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_accumulate_outgoing_args, x86_prologue_using_move, - x86_epilogue_using_move, x86_decompose_lea, - x86_arch_always_fancy_math_387, x86_shift1, - x86_sse_partial_reg_dependency, x86_sse_split_regs, - x86_sse_unaligned_move_optimal, x86_sse_typeless_stores, - x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves, - x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd, - x86_use_incdec, x86_pad_returns, x86_bswap, - x86_partial_flag_reg_stall): Remove. - (enum ix86_tune_indices): New. - (ix86_tune_features): New. - (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND, - TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN, - TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS, - TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX, - TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL, - TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0, - TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES, - TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode, - TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH, - TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS, - TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4, - TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES, - TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY, - TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS, - TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR, - TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE, - TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP, - TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE, - TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS, - TARGET_EXT_80387_CONSTANTS): Use it. - (enum ix86_arch_indices): New. - (ix86_arch_features): New. - (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD, - TARGET_BSWAP): Use it. - (ix86_tune_mask, ix86_arch_mask): Remove. - -2007-03-06 Joseph Myers - - PR bootstrap/31020 - * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir): - Define using $${sysroot_headers_suffix}. - * configure: Regenerate. - * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a - multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC - defined. - * doc/invoke.texi (-print-sysroot-headers-suffix): Document. - * gcc.c (print_sysroot_headers_suffix): New. - (option_map): Include --print-sysroot-headers-suffix. - (display_help): Mention -print-sysroot-headers-suffix. - (process_command): Handle -print-sysroot-headers-suffix. - (do_spec_1): Append multilib directory to include-fixed path if - sysroot suffixes in use. - (main): Handle -print-sysroot-headers-suffix. - * Makefile.in (start.encap): Don't depend on xlimits.h - (xlimits.h): Remove. - (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of - limits.h for each multilib in fixinc_list. - (fixinc_list, s-fixinc_list): New. - (stmp-fixinc): Depend on fixinc_list. If not copying headers, - generate them for each multilib in fixinc_list. - (stmp-fixproto): Use include-fixed. Run fixproto for each - multilib in fixinc_list. - (mostlyclean): Don't remove xlimits.h. - (clean): Remove include-fixed. - (real-install-headers-tar, real-install-headers-cpio, - real-install-headers-cp): Don't copy include, only include-fixed. - (install-mkheaders): Depend on fixinc_list. Don't depend on - xlimits.h. Save limits.h files for each multilib in fixinc_list. - Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in - SYSTEM_HEADER_DIR setting in mkheaders.conf. - -2007-03-06 Jan Hubicka - - * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load - NANs easilly. - -2007-03-06 Richard Sandiford - - * configure.ac: Allow tm_file to contain build-directory files. - * configure: Regenerate. - * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file. - * config/m68k/t-uclinux (sysroot-suffix.h): New target. - * config/m68k/print-sysroot-suffix.sh: New file. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO - of pic_offset_table_rtx if reload_completed. - (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of - PIC_OFFSET_TABLE_REGNUM. - * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always - return true. - (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO. - (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in - functions that call eh_return. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in - functions that need a constant pool. - -2007-03-06 Richard Sandiford - - PR target/28181 - * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare. - (m68k_preferred_reload_class): Likewise. - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment. - (SECONDARY_RELOAD_CLASS): Define. - (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class. - (LIMIT_RELOAD_CLASS): Delete. - * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address - registers from storing bytes. - (m68k_secondary_reload_class): New function. - (m68k_preferred_reload_class): Likewise. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k.c (m68k_save_reg): Remove special case for - leaf functions. - (m68k_expand_prologue): Likewise. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k-protos.h (output_sibcall): Declare. - (mips_expand_epilogue): Add a bool parameter. - (m68k_legitimize_sibcall_address): Declare. - * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. - (m68k_expand_epilogue): Add a parameter to select between sibling - and normal epilogues. Only generate a return for the latter. - (m68k_ok_for_sibcall_p): New function. - (m68k_legitimize_sibcall_address, output_sibcall): New functions. - * config/m68k/m68k.md (sibcall, *sibcall): New patterns. - (sibcall_value, *sibcall_value): Likewise. - (*call, *call_value): Require !SIBLING_CALL_P. - (epilogue): Update call to m68k_expand_epilogue. - (sibcall_epilogue): New pattern. - * config/m68k/predicates.md (const_call_operand): Say that this - predicate applies to sibling calls too. - (sibcall_operand): New predicate. - -2007-03-06 Richard Sandiford - - * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q - alternatives as movsi_cf. - (movsf_cf_hard): Add commentary. - -2007-03-06 Kazu Hirata - Richard Sandiford - - * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare. - (m68k_movem_pattern_p, m68k_output_movem): Likewise. - (m68k_expand_prologue, m68k_expand_epilogue): Likewise. - * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers - as being live on exit from an interrupt function. - (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'. - * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros. - (m68k_frame): Remove reg_rev_mask and fpu_rev_mask. - (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete. - (m68k_interrupt_function_p): Globalize. - (m68k_compute_frame_layout): Remove reverse mask code. - (m68k_emit_movem, m68k_set_frame_related): New functions. - (m68k_output_function_prologue): Delete in favor of... - (m68k_expand_prologue): ...this new function. - (m68k_output_function_epilogue): Delete in favor of... - (m68k_expand_epilogue): ...this new function. - (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New - functions. - (print_operand): Handle %?. - * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space. - (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants. - (prologue, epilogue): New patterns. - (return): Turn into a define_expand. - (*return): New pattern, derived from old "return" pattern. Use rte - rather than rts for interrupt functions. Only use rtd if the pop - count is nonzero. - (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns. - (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise. - (link, *link, unlink, *unlink, load_got): Likewise. - -2007-03-06 Richard Sandiford - - PR target/23482 - PR target/17114 - * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare. - (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise. - (m68k_matches_q_p, m68k_matches_u_p): Likewise. - * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p - and m68k_matches_u_p. - (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete. - (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete. - (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete. - (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete. - (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete. - (REG_STRICT_P): New macro. - (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than - PCREL_GENERAL_OPERAND_OK. - (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and - m68k_legitimate_base_reg_p. - (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p. - (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p. - (PIC_CASE_VECTOR_ADDRESS): Update comment. - * config/m68k/m68k.c (m68k_address): New structure. - (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p) - (m68k_decompose_index, m68k_legitimate_constant_address_p) - (m68k_jump_table_ref_p, m68k_decompose_address) - (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p) - (m68k_matches_u_p): New functions. - (print_operand_address): Rewrite to use m68k_decompose_index. - -2007-03-05 David Taylor - - * gcc.c: Correct copyright date in --version output. - -2007-03-05 John David Anglin - - * pa.md: In unamed move patterns, disparge copies between general - and floating point registers using '?' modifier. Don't include 'f' - constraint for register preferences in DImode, SImode, HImode and - QImode patterns. Likewise for 'r' in DFmode and SFmode patterns. - Remove constraints for copies between general and floating registers - in soft-float DFmode pattern. - (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard - floating register. - (movsf): Likewise. - -2007-03-05 Mike Stump - - * c-common.c (targetcm): Add. - * c-opts.c (c_common_handle_option): Handle language specific - target options. - * opts.c (handle_option): Verify language for target options, if - any are given. - * opth-gen.awk: Add CL_LANG_ALL. - * target-def.h (TARGET_HANDLE_C_OPTION): Add. - (TARGETCM_INITIALIZER): Add. - * target.h (struct gcc_targetcm): Add. - (targetcm): Add. - * targhooks.c (default_handle_c_option): Add. - * targhooks.h (default_handle_c_option): Add. - * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add. - - * config/darwin.opt (iframework): Add. - * config/darwin.h (TARGET_HAS_TARGETCM): Add. - * config/darwin-c.c (handle_c_option): Add. - (TARGET_HANDLE_C_OPTION): Add. - (targetcm): Add. - * doc/invoke.texi (Darwin Options): Add -iframework. - -2007-03-05 Kaveh R. Ghazi - - * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint - conversion. - -2007-03-05 Ian Lance Taylor - - * c.opt (fgnu89-inline): New option. - * c-opts.c (c_common_post_options): Set default value for - flag_gnu89_inline. - * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove. - (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for - inline functions. - (diagnose_mismatched_decls, merge_decls, start_decl): Likewise. - (grokdeclarator, start_function): Likewise. - * c-cppbuiltin.c (c_cpp_builtins): Define either - __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__. - * doc/invoke.texi (Option Summary): Mention -fgnu89-inline. - (C Dialect Options): Document -fgnu89-inline. - * doc/extend.texi (Function Attributes): Explain what the - gnu_inline attribute does. - * doc/cpp.texi (Common Predefined Macros): Document - __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__. - -2007-03-05 Ian Lance Taylor - - PR tree-optimization/31034 - * tree-vrp.c (extract_range_from_assert): Don't try to handle a - half-range if the other side is an overflow infinity. - -2007-03-05 Bernd Schmidt - - * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux. - (bfin*-linux-uclibc*): New configuration. - * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before - defining. - * config/bfin/linux.h: New file. - * config/bfin/libgcc-bfin.ver: New file. - * config/bfin/t-bfin-uclinux: New file. - * config/bfin/t-bfin-linux: New file. - * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro. - (TARGET_OS_CPP_BUILTINS): New macro. - -2007-03-05 Richard Guenther - - * fold-const.c (fold_binary): Remove duplicate folding - of comparison of non-null ADDR_EXPR against null. - -2007-03-05 Richard Guenther - Dorit Nuzman - - PR tree-optimization/26420 - * tree-vectorizer.c (vectorize_loops): Bail out early if there - are no loops in the function. Only print the number of - vectorized loops if it is greater than zero or we are supposed - to print information about unvectorized loops. - -2007-03-05 Revital Eres - - * gcc.dg/var-expand1.c: New test. - * loop-unroll.c (analyze_insn_to_expand_var): Add dump info - when an accumulator is expanded. - -2007-03-04 Manuel Lopez-Ibanez - - PR other/30465 - * c-common.c (convert_and_check): Don't give warnings for - conversion if 'expr' already overflowed. - -2007-03-04 Roger Sayle - - PR middle-end/30744 - * fold-const.c (fold_comparison): Enforce type consistency when - transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C. - -2007-03-04 Zdenek Dvorak - - * tree-ssa-address.c (create_mem_ref): Do not put an expression - containing a cast to the base of TARGET_MEM_REF. - -2007-03-04 Martin Michlmayr - - * tree.c (tree_contains_struct_check_failed): Remove spurious - whitespace from error message. - -2007-03-04 Andrew Pinski - - PR target/30406 - * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size - instead of precision. - -2007-03-04 Roman Zippel - Nathan Sidwell - - * emit-rtl.c (find_auto_inc): New. - (try_split): recreate REG_INC notes, - Use regular for loops rather than whiles. - -2007-03-03 Andreas Schwab - - * configure.ac (HAVE_AS_REL16): Move test back to correct place. - * configure: Regenerate. - -2007-03-03 Kaveh R. Ghazi - - * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on - flag_rounding_math, not flag_unsafe_math_optimizations. - - * c-pretty-print.c (pp_c_direct_abstract_declarator): Use - fold_build2. - * config/alpha/alpha.c (alpha_fold_builtin_zapnot, - alpha_fold_vector_minmax): Likewise. - * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. - -2007-03-02 Eric Botcazou - - * tree-sra.c (sra_walk_fns) : Document new restriction. - (sra_walk_modify_expr) : Treat the reference as a use - if the lhs has side-effects. - : Treat the reference as a use if the rhs has side-effects. - -2007-03-02 Uros Bizjak - - * config/i386/i386.h (TUNEMASK): Remove define. - (ARCHMASK): Remove define. - (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK. - Use ix86_arch_mask variable instead of ARCHMASK. - * config/i386/i386.c (override_options): Ditto. - (standard_80387_constant_p): Ditto. - -2007-03-02 Ian Lance Taylor - - Used signed infinities in VRP. - * tree-vrp.c (uses_overflow_infinity): New static function. - (supports_overflow_infinity): New static function. - (make_overflow_infinity): New static function. - (negative_overflow_infinity): New static function. - (positive_overflow_infinity): New static function. - (is_negative_overflow_infinity): New static function. - (is_positive_overflow_infinity): New static function. - (is_overflow_infinity): New static function. - (overflow_infinity_range_p): New static function. - (compare_values_warnv): New function split out of compare_values. - (compare_value): Call it. - (set_value_range_to_nonnegative): Add overflow_infinity - parameter. Change caller. - (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter. - Change callers. - (vrp_expr_computes_nonzero): Likewise. - (compare_ranges, compare_range_with_value): Likewise. - (compare_name_with_value, compare_names): Likewise. - (vrp_evaluate_conditional): Likewise. - (set_value_range): Handle infinity - (vrp_operand_equal_p, operand_less_p): Likewise. - (extract_range_from_assert): Likewise. - (vrp_int_const_binop): Likewise. - (extract_range_from_binary_expr): Likewise. - (extract_range_from_unary_expr): Likewise. - (extract_range_from_comparison): Likewise. - (extract_range_from_expr): Likewise. - (dump_value_range): Likewise. - (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise. - (test_for_singularity): Likewise. - (vrp_int_const_binop): Remove inline qualifier. - (adjust_range_with_scev): Add comment. - * tree-flow.h (vrp_evaluate_conditional): Update declaration. - -2007-03-02 Diego Novillo - - * tree-ssa-structalias.c (could_have_pointers): Tidy. - (get_constraint_for): Likewise. - (do_structure_copy): Likewise. - (find_func_aliases): Fix references to MODIFY_EXPR. - (intra_create_variable_infos): Tidy. - * tree-ssa-operands.c (add_virtual_operand): Add argument - IS_CALL_SITE. - When adding members of alias sets, if IS_CALL_SITE is true and - the symbol is not call-clobbered, skip it. - Adjust all callers. - -2007-03-02 Eric Botcazou - - * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the - entry by means of emit_insn_at_entry. - -2007-03-02 Richard Henderson - - * expr.h (promoted_input_arg): Remove decl. - * function.c (promoted_input_arg): Merge into ... - * combine.c (setup_incoming_promotions): ... only caller. - Rearrange to avoid double loop. - -2007-03-02 Ben Elliston - Peter Bergner - Janis Johnson - - * config/rs6000/dfp.md: New file. - * config/rs6000/rs6000.md: Include dfp.md. - (add3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands. - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode - and TDmode decimal float modes in FP registers. - (num_insns_constant): Likewise. - (rs6000_legitimate_offset_address_p): Likewise. - (rs6000_legitimize_address): Likewise. - (rs6000_legitimize_reload_address): Likewise. - (rs6000_legitimate_address): Likewise. - (rs6000_emit_move): Likewise. - (function_arg_boundary): Likewise. - (function_arg_advance): Likewise. - (rs6000_darwin64_record_arg_recurse): Likewise. - (function_arg): Likewise. - (rs6000_gimplify_va_arg): Likewise. - (rs6000_split_multireg_move): Likewise. - (rs6000_output_function_epilogue): Likewise. - (rs6000_output_function_epilogue): Likewise. - (rs6000_register_move_cost): Likewise. - (rs6000_function_value): Likewise. - (rs6000_libcall_value): Likewise. - -2007-03-02 Richard Sandiford - - * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks. - -2007-03-02 Richard Sandiford - - * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc. - Use $MULTIDIR to choose between the kernel and RTP headers, - and use $WIND_BASE and $WIND_USR to locate them. - -2007-03-02 Uros Bizjak - - * config/i386/i386.c (override_options): Put initialization of - ix86_tune_mask and ix86_arch_mask to the correct place. - -2007-03-02 Uros Bizjak - Michael Meissner - - PR target/31019 - * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask. - (ARCHMASK): Define. - (TARGET_CMOVE): Use ARCHMASK. - (TARGET_CMPXCHG): Ditto. - (TARGET_CMPXCHG8B): Ditto. - (TARGET_XADD): Ditto. - (TARGET_BSWAP): Ditto. - * config/i386/i386.c (ix86_tune_mask): New global variable. - (ix86_arch_mask): Ditto. - (override_options): Initialize ix86_tune_mask and - ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in - target_flags. - -2007-03-02 Ben Elliston - - PR 30992 - * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.". - -2007-03-02 Joseph Myers - - * target.h (init_dwarf_reg_sizes_extra): New target hook. - * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default. - * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document. - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this - hook. - * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA, - rs6000_init_dwarf_reg_sizes_extra): New. - * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support - SPE register high parts. - -2007-03-01 Brooks Moses - - * Makefile.in: Add install-pdf target as - copied from automake v1.10 rules. - * configure.ac: Add install-pdf to target list. - * configure: Regenerate. - -2007-03-01 Paul Brook - - * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing - modes to LDRD for DImode. - (output_move_double): Fixup out of range ldrd/strd. - (vfp_secondary_reload_class): Rename... - (coproc_secondary_reload_class): ... to this. Add wb argument. - * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use - coproc_secondary_reload_class for CLASS_IWMMXT. - (SECONDARY_INPUT_RELOAD_CLASS): Ditto. - * arm-protos.h (coproc_secondary_reload_class): Update prototype. - -2007-03-01 Zdenek Dvorak - - * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the - unroll factor by the estimated number of iterations. - (loop_prefetch_arrays): Do not prefetch in loops that iterate less - than prefetch latency. - - * config/i386/driver-i386.c (describe_cache, detect_caches_amd, - decode_caches_intel, detect_caches_intel): New functions. - (host_detect_local_cpu): Use detect_caches_amd and - detect_caches_intel. - -2007-03-01 Richard Henderson - - * expr.c (emit_move_complex_push): Export. - (emit_move_complex_parts): Split out from ... - (emit_move_complex): ... here. - * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare. - * config/i386/i386.md (movcdi): New. - -2007-03-01 Uros Bizjak - - * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also - size of mode1 to check for tieable modes in MMX case. - -2007-03-01 Richard Sandiford - - * Makefile.in (rtlanal.o): Depend on tree.h. - * rtl.h (offset_within_section_p, split_const): Declare. - * rtlanal.c: Include tree.h. - (offset_within_block_p): New function, taken from - mips_offset_within_object_p. - (split_const): New function, taken from mips_split_const. - * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p): - Declare. - * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define. - (CONSTANT_ADDRESS_P): Only accept legitimate constants. - (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p. - * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define. - (m68k_illegitimate_symbolic_constant_p): New function. - * config/m68k/m68k.md (movsi): Remove misleading predicates. - If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a - symbolic constant that might be outside the symbol's section, - move the symbol first and then add the offset. - * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): - Override. - * config/mips/mips.c (mips_split_const): Delete. - (mips_offset_within_object_p): Delete. - (mips_symbolic_constant_p): Use offset_within_section_p and - split_const instead of mips_offset_within_object_p and - mips_split_const. - (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address) - (mips_legitimize_const_move, print_operand_reloc) - (mips_dangerous_for_la25_p): Use split_const instead of - mips_split_const. - -2007-02-28 Eric Christopher - - * Makefile.in (install-include-dir): Don't rm -rf include. - -2007-02-28 Richard Guenther - - PR middle-end/30364 - * fold-const.c (fold_binary): Do not associate expressions - with more than one variable for integer types that do not wrap. - -2007-02-28 Sandra Loosemore - - * builtins.c (fold_builtin_call_list, fold_builtin_call_valist): - Delete, and replace with... - (fold_builtin_call_array): This. Update callers to use it. - * fold-const.c (fold_build_call_list): Delete, and replace with... - (fold_build_call_array): This. - (fold_build_call_list_initializer): Delete, and replace with... - (fold_build_call_array_initializer): This. - * tree.h: Update declarations to reflect above changes. - - * c-typeck.c (build_function_call): Store converted arguments - in a stack-allocated array instead of building a list. - (convert_arguments): Store arguments in the array passed in as an - argument, and return the actual number of arguments. - * c-format.c: (check_function_format): Pass arguments in an - array instead of a list. - * c-common.c (check_function_nonnull): Likewise. - (check_function_sentinel): Likewise. - (check_function_arguments): Likewise. - * c-common.h: Update declarations to reflect above changes. - -2007-02-28 Jan Hubicka - - * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN, - PRED_NEGATIVE_RETURN): Update outcomes. - -2007-02-28 Bernd Schmidt - - * calls.c (emit_library_call_value_1): Handle partial registers - correctly when building up CALL_INSN_FUNCTION_USAGE. - -2007-02-27 John David Anglin - - * pa/predicates.md (move_src_operand): Allow zero for mode. - * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode - move pattern. - -2007-02-27 Uros Bizjak - - PR target/30970 - * config/i386/sse.md (*mov_internal, *movv4sf_internal, - *movv2df_internal): Enable pattern only for valid operand - combinations. - * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers, - tie only 128bit modes. For MMX registers, tie only 64bit modes. - -2007-02-27 Mike Stump - - * config/darwin-crt3.c: Avoid compilation when compiling for a - kext multilib. - -2007-02-27 Joseph Myers - - * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define - FIXED_INCLUDE_DIR. - (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed - for fixed headers and limits.h. - (install-include-dir, install-headers-tar, install-headers-cpio, - install-headers-cp, real-install-headers-tar, - real-install-headers-cpio, real-install-headers-cp): Handle - include-fixed as well as include. - (install-mkheaders): Don't install files that go only in include - not include-fixed. - * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR - from GCC_INCLUDE_DIR. - * gcc.c (process_command): Remove special -BstageN/ handling. - (do_spec_1): Add include-fixed directories. - -2007-02-27 Bernd Schmidt - - * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and - _smulsi3_highpart. - * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart): - New functions. - * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New - patterns. - -2007-02-27 Mark Mitchell - - * c-common.c (get_priority): Add check for - SUPPORTS_INIT_PRIORITY. - -2007-02-27 Bernd Schmidt - - * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode. - - * config/bfin/bfin.c: Include "cfglayout.h". - (MAX_LSETUP_DISTANCE): New macro. - (struct loop_info): New members incoming, incoming_src and - incoming_dest. Delete member predecessor. - (length_for_loop): New function. - (bfin_optimize_loop): Handle more different loop structures. - (bfin_discover_loop): Rework detection of predecessor blocks by - examining incoming edges. - (bfin_discover_loops, bfin_free_loops): New functions, broken out of - bfin_reorg_loops. - (bfin_reorder_loops): New function. - (bfin_reorg_loops): Use these three new functions. - - * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES, - REG_CLASS_CONTENTS): Add D0REGS through D7REGS. - (CONSTRAINT_LEN): Add entry for 'q'. - (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER. - Add 'q' constraints. - (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass. - (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2. - - * config/bfin/bfin.md (add_with_carry): New pattern. - (s_or_u, su_optab, su_modifier): New code macros/attrs. - (hisi_ll, hisi_lh, hisi_hl, - hisi_hh): Renamed from mulhisi_xx patterns; macroized to - support unsigned multiplies too. Removed incorrect commutativity from - operand 1 constraint where appropriate. - (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New - patterns. - (hisi_ll_lh, hisi_ll_hl, hisi_ll_hh, - hisi_lh_hl, hisi_lh_hh, hisi_hl_hh): - New patterns. - (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul, - usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul, - usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul, - usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul, - usmulhisi_hh_huh): New patterns. - - * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, - lshifthi3): Fix output template to use half reg for operand 2. - - * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg - instead of R2. - - * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns. - -2007-02-27 Andreas Schwab - - * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi. - -2007-02-27 Jan Hubicka - - * predict.c (last_basic_block_p): Remove. - (tree_estimate_probability): Update return heuristic for commonized - return blocks. - -2007-02-26 Brooks Moses - - * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency. - -2007-02-26 Brooks Moses - - * doc/include/gcc-common.texi (versionsubtitle): New macro. - * doc/cpp.texi: Standardize title page. - * doc/cppinternals.texi: Likewise. - * doc/gcc.texi: Standardize title page, remove version number - from copyright page. - * doc/gccint.texi: Likewise. - * doc/install.texi: Standardize title page, add table of - contents. - -2007-02-26 Jan Hubicka - - * predict.def: Set outcomes according to more recent results. - (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER): - Remove dead predictors. - * predict.c (return_prediction): Fix pasto. - -2007-02-27 Bernd Schmidt - - * loop-iv.c (simplify_using_initial_values): Fix oversight in previous - change; avoid a memory leak when returning early. - -2007-02-26 Mark Mitchell - - * c-decl.c (static_ctors): Move to c-common.c. - (static_dtors): Likewise. - (finish_function): Use c_record_cdtor_fn. - (build_cdtor): Move to c-common.c. - (c_write_global_declarations): Use c_build_cdtor_fns. - * c-common.h (static_ctors): Declare. - (static_dtors): Likewise. - (c_record_cdtor_fn): Likewise. - (c_build_cdtor_fns): Likewise. - * c-common.c (static_ctors): New variable. - (static_dtors): Likewise. - (c_record_cdtor_fn): New function. - (build_cdtor): Move from c-decl.c - (c_build_cdtor_fns): New function. - - * output.h (assemble_addr_to_section): Declare. - (get_cdtor_priority_section): Likewise. - * varasm.c (assemble_addr_to_section): New function. - (get_cdtor_priority_section): Likewise. - (default_named_section_asm_out_destructor): Use them. - (destor_dtor_section_asm_out_destructor): Likewise. - (default_named_section_asm_out_constructor): Likewise. - (default_ctor_section_asm_out_constructor): Likewise. - * config.gcc (*-*-vxworks*): Include vxworks.o. - * config/t-vxworks (vxworks.o): New target. - * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove. - (TARGET_ASM_CONSTRUCTOR): Define. - (TARGET_ASM_DESTRUCTOR): Likewise. - (vxworks_asm_out_constructor): Declare. - (vxworks_asm_out_destructor): Likewise. - - * c-common.c (get_priority): Check that we have not just an - INTEGER_CST, but an integer constant with integeral type. - -2007-02-25 Uros Bizjak - - PR tree-optimization/30938 - * tree-vect-transform.c (vectorizable_call): Fix off-by-one error: - use &dt[nargs-1] instead of &dt[nargs] in the call to - vect_is_simple_use(). - -2007-02-25 Ulrich Weigand - - * reload.c (find_reloads_address_1): Handle PLUS expressions resulting - from register elimination as PRE_MODIFY / POST_MODIFY increments. - Do not attempt to handle MEM inside auto-inc expressions. - * reload1.c (eliminate_regs_1): Do not attempt to handle elimination - of a register modified by an auto-inc expression. However, do handle - elimination of a register used as PRE_MODIFY / POST_MODIFY increment. - (elimination_effects): Prohibit elimination of a register modified - by an auto-inc expression. Disable register elimination rules whose - target register is modified by an auto-inc expression with variable - increment. - -2007-02-25 Zdenek Dvorak - - * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix - off-by-one error. - (array_at_struct_end_p): New function. - (idx_infer_loop_bounds): Use it. - (estimate_numbers_of_iterations_loop): Export. - * predict.c (predict_loops): Use estimated_loop_iterations_int. - Do not use PRED_LOOP_EXIT on exits predicted by # of iterations. - (tree_estimate_probability): Call record_loop_exits. - * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ... - (estimated_loop_iterations, estimated_loop_iterations_int, - estimated_loop_iterations_tree): New functions. - (analyze_siv_subscript_cst_affine, - compute_overlap_steps_for_affine_1_2, - analyze_subscript_affine_affine): Use estimated_loop_iterations_int. - (analyze_miv_subscript): Use estimated_loop_iterations_tree. - * predict.def (PRED_LOOP_ITERATIONS): Update comment. - (PRED_LOOP_ITERATIONS_GUESSED): New. - * cfgloop.c (record_loop_exits): Do nothing if there are no loops. - * cfgloop.h (estimate_numbers_of_iterations_loop, - estimated_loop_iterations_int): Declare. - -2007-02-25 Mark Mitchell - - * doc/extend.texi: Document optional priority argument to - constructors and destructors. - * tree.c (init_priority_for_decl): Adjust GTY markers. - (init_ttree): Use priority-info hash functions for - init_priority_for_decl. - (tree_map_eq): Rename to ... - (tree_map_base_eq): ... this. - (tree_map_marked_p): Rename to ... - (tree_map_base_marked_p): ... this. - (tree_map_base_hash): New function. - (decl_init_priority_lookup): Rework. - (decl_fini_priority_lookup): New function. - (decl_priority_info): New function. - (decl_init_priority_insert): Use it. - (decl_fini_priority_insert): Likewise. - (decl_restrict_base_lookup): Adjust for refactoring of tree_map - hierarchy. - (decl_restrict_base_insert): Likewise. - (decl_debug_expr_insert): Likewise. - (decl_value_expr_lookup): Likewise. - (decl_value_expr_insert): Likewise. - * tree.h (priority_type): New type. - (decl_init_priority_lookup): Use priority_type. - (decl_fini_priority_lookup): New function. - (decl_init_priority_insert): Use priority_type. - (decl_fini_priority_insert): New function. - (DECL_HAS_INIT_PRIORITY): Tweak comments. - (DECL_INIT_PRIORITY): Likewise. - (SET_DECL_INIT_PRIORITY): Add comment. - (DECL_FINI_PRIORITY): New macro. - (SET_DECL_FINI_PRIORITY): Likewise. - (DEFAULT_INIT_PRIORITY): Document. - (MAX_INIT_PRIORITY): Likewise. - (MAX_RESERVED_INIT_PRIORITY): Likewise. - (tree_map_base): New type. - (tree_map_base_eq): New function. - (tree_map_base_hash): Likewise. - (tree_map_base_marked_p): Likewise. - (tree_map): Inherit from tree_map_base. - (tree_map_eq): Make it a macro. - (tree_map_marked_p): Likewise. - (tree_int_map): Inherit from tree_map_base. - (tree_int_map_eq): Make it a macro. - (tree_int_map_hash): Likewise. - (tree_int_map_marked_p): Likewise. - (tree_priority_map): New type. - (tree_priority_map_eq): New macro. - (tree_priority_map_hash): Likewise. - (tree_priority_map_marked_p): Likewise. - * varasm.c (emults_decl): Adjust for refactoring of tree_map - hierarchy. - (emutls_common_1): Likewise. - * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise. - * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring - of tree_map hierarchy. - * tree-cfg.c (move_stmt_r): Likewise. - (new_label_mapper): Likewise. - * c-tree.h (c_expand_body): Move to ... - * c-common.h (c_expand_body): ... here. - * c-decl.c (c_expand_body): Move to ... - * c-common.c (c_expand_body): ... here. - (c_common_attribute_table): Allow 1 argument for the constructor - and destructor attributes. - (get_priority): New function. - (handle_constructor_attribute): Set DECL_INIT_PRIORITY. - (handle_destructor_attribute): Set DECL_FINI_PRIORITY. - -2007-02-24 Jan Hubicka - - PR middle-end/30509 - * tree-inline.c (copy_bb): Produce exact copy of EH info when - copying for inlining. - -2007-02-24 Uros Bizjak - Jan Hubicka - - PR target/30778 - * cofnig/i386/i386.c (counter_mode): New function. - (expand_set_or_movmem_via_loop): Use it. - (expand_movmem_epilogue): Likewise; fix pasto. - (ix86_expand_movmem): Do emit guard even for constant counts. - (ix86_expand_setmem): Likewise. - -2007-02-25 Nick Clifton - - * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - -2007-02-24 Uros Bizjak - - PR target/30770 - * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask - count argument with 0x10, not with 0x16. - (expand_setmem_epilogue): Ditto. - -2007-02-24 Mike Stump - - * config/i386/i386.c (output_pic_addr_const): Stubify optimized - symbols. - -2007-02-24 Richard Guenther - - PR middle-end/30951 - * fold-const.c (fold_binary): Fold x +- CST op x for - EQ_EXPR and NE_EXPR. - -2007-02-24 John David Anglin - - * pa.md (muldi3): Force subregs to registers in 64-bit expander. - -2007-02-24 Jan Hubicka - - * cgraphunit.c (decide_is_function_needed): Honor - -fkeep-inline-functions. - -2007-02-24 Kaveh R. Ghazi - - * builtins.c (fold_builtin_modf): New. - (fold_builtin_2): Use it. - -2007-02-24 Bernd Schmidt - - * loop-iv.c (implies_p): Detect additional cases where A implies B. - (determine_max_iter): Take additional LOOP arg; all callers changed. - Lose broken logic dealing with PLUS. Try to limit the upper bound by - one using simplifications. - (simplify_using_initial_values): Return if the expression becomes - invalid due to altered regs. - -2007-02-23 DJ Delorie - - * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro. - -2007-02-23 Mike Stump - - * tlink.c (scan_linker_output): Parse linker messages from - darwin9's linker better. - -2007-02-23 Steve Ellcey - - PR debug/29614 - * varpool.c (varpool_assemble_pending_decls): Set - varpool_last_needed_node to null. - -2007-02-23 DJ Delorie - - * config/i386/i386.c (ix86_data_alignment): Don't specify an - alignment bigger than the object file can handle. - -2007-02-23 Uros Bizjak - - PR target/30825 - * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32, - zero_extendsidi2_rex64): Penalize MMX register<->memory moves. - (*movsf_1): Penalize MMX moves. - -2007-02-23 Bernd Schmidt - - * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate - 2^32-1 or more times unless flag_unsafe_loop_optimizations. - - * loop-iv.c (determine_max_iter): Moved in front of its sole user. - -2007-02-23 Kaveh R. Ghazi - - * builtins.c (fold_builtin_logb, fold_builtin_significand): New. - (fold_builtin_1): Use them. - * fold-const.c (tree_expr_nonnegative_warnv_p): Handle - BUILT_IN_SIGNIFICAND. - -2007-02-23 H.J. Lu - - * config/i386/i386.c (bdesc_1arg): Initialize - IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with - "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup". - (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP - and IX86_BUILTIN_MOVSLDUP. - -2007-02-22 Paolo Bonzini - - PR rtl-optimization/30841 - * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address. - -2007-02-22 Kaveh R. Ghazi - - * builtins.c (fold_builtin_frexp): New. - (fold_builtin_2): Use it. - -2007-02-22 Mark Mitchell - - * doc/invoke.texi (Spec Files): Document getenv spec function. - - * gcc.c (getenv_spec_function): New function. - (static_spec_functions): Add it. - * config/vxworks.h (VXWORKS_TARGET_DIR): Remove. - (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks - header files. - -2007-02-22 Michael Matz - - PR debug/30898 - * dwarf2out.c (concatn_mem_loc_descriptor): New static function. - (mem_loc_descriptor): Call it. - -2007-02-22 Zdenek Dvorak - Ira Rosen - - * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account. - -2007-02-22 Ira Rosen - - PR tree-optimization/30843 - * tree-vect-transform.c (vect_transform_loop): Remove strided scalar - stores only after all the group is vectorized. - -2007-02-22 Dorit Nuzman - - PR tree-optimization/30858 - * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts - in the reduction cycle have a single use in the loop. - * tree-vectorizer.h (relevant): Add documentation. - -2007-02-20 Mike Stump - - * configure.ac (powerpc*-*-darwin*): #include . - * configure: Regenerate. - -2007-02-21 Trevor Smigiel - - Change the defaults of some parameters and options. - * config/spu/spu-protos.h (spu_optimization_options): Declare. - * config/spu/spu.c (spu_optimization_options): Add. - (spu_override_options): Change params in spu_optimization_options. - * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define. - - Register 127 is only 16 byte aligned when used as a frame pointer. - * config/spu/spu-protos.h (spu_init_expanders): Declare. - * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for - HARD_FRAME_POINTER_REGNUM. - (spu_legitimate_address): Use regno_aligned_for_reload. - (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte - aligned when frame_pointer_needed is true. - (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM - to 8 bits. - * config/spu/spu.h (INIT_EXPANDERS): Define. - - Make sure shift and rotate instructions have valid immediate operands. - * config/spu/predicates.md (spu_shift_operand): Remove. - * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers. - * config/spu/constraints.md (W, O): Extend range. - * config/spu/spu.md (umask, nmask): Define. - (ashl3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti, - lshr3, rotm_, lshr3_imm, rotqmbybi_, - rotqmbi_, rotqmby_, ashr3, rotma_, - rotl3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use - spu_nonmem_operand instead of spu_shift_operands. Use new modifiers. - (lshr3_reg): Fix rtl description. - - Make sure mulhisi immediate operands are valid. - * config/spu/predicates.md (imm_K_operand): Add. - * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand. - - Generate constants using fsmbi and andi. - * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2. - (print_operand, spu_split_immediate, classify_immediate, - fsmbi_const_p): Handle IC_FSMBI2. - - Correctly handle a CONST_VECTOR containing symbols. - * config/spu/spu.c (print_operand): Handle HIGH correctly. - (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem. - (immediate_load_p): Allow symbols that use 2 instructions to create. - (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR - with symbols when flag_pic is set. - (const_vector_immediate_p): New. - (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't - accept a CONST_VECTOR with symbols. - (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't - accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH - correctly. - * config/spu/spu.md (high, low): Delete. - (low_): Define. - - Remove INTRmode and INTR_REGNUM, which didn't work. - * config/spu/spu.c (spu_conditional_register_usage): Remove reference - of INTR_REGNUM. - * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr, - set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed - peephole2 pattern): Don't use INTR or 131. - (movintrcc): Delete. - * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, - CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM. - * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove. - (UNSPEC_SET_INTR): Add. - * config/spu/spu-modes.def (INTR): Remove. - - More accurate warnings about run-time relocations. - * config/spu/spu.c (reloc_diagnostic): Test in_section. - - Correctly warn about immediate arguments to specific intrinsics. - * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs. - (spu_expand_builtin_1): Call spu_check_builtin_parm before checking - the instruction predicate. - - Fix tree check errors with latest update. - * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use - CALL_EXPR_ARG. - (spu_expand_builtin): Use CALL_EXPR_FN. - - Add missing specific intrinsics. - * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and - si_bislede. - * config/spu/spu_internals.h: Ditto. - - Fix incorrect operand modifiers. - * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H. - * config/spu/spu.md (xor3): Change %S to %J. - - Optimize one case of zero_extend of a vec_select. - * config/spu/spu.md (_vec_extractv8hi_ze): Add. - - Accept any immediate for hbr. - * config/spu/spu.md (hbr): Change s constraints to i. - -2007-02-21 Paul Brook - - * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt - condexec_count when skipping USE and CLOBBER. - -2007-02-21 Nick Clifton - - * common.opt (Warray-bounds): Add Warning attribute. - (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch): - Likewise. - (fsized-zeroes): Add Optimization attribute. - (fsplit-wide-types, ftree-scev-cprop): Likewise. - * c.opt (Wc++0x-compat): Add Warning attribute. - -2007-02-21 Ulrich Weigand - - PR middle-end/30761 - * reload1.c (eliminate_regs_in_insn): In the single_set special - case, attempt to re-recognize the insn before falling back to - having reload fix it up. - -2007-02-20 Eric Christopher - - * config/frv/frv.c (frv_read_argument): Take a tree and int argument. - Rewrite accordingly. - (frv_read_iacc_argument): Ditto. - (frv_expand_set_builtin): Take a call instead of arglist, update for - above changes. - (frv_expand_unop_builtin): Ditto. - (frv_expand_binop_builtin): Ditto. - (frv_expand_cut_builtin): Ditto. - (frv_expand_binopimm_builtin): Ditto. - (frv_expand_voidbinop_builtin): Ditto. - (frv_expand_int_void2arg): Ditto. - (frv_expand_prefetches): Ditto. - (frv_expand_voidtriop_builtin): Ditto. - (frv_expand_voidaccop_builtin): Ditto. - (frv_expand_load_builtin): Ditto. - (frv_expand_store_builtin): Ditto. - (frv_expand_mdpackh_builtin): Ditto. - (frv_expand_mclracc_builtin): Ditto. - (frv_expand_mrdacc_builtin): Ditto. - (frv_expand_mwtacc_builtin): Ditto. - (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update - calls for above. - -2007-02-20 Janis Johnson - - * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp. - * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the - cmpb instruction. - (HAVE_GAS_DFP): Check for assembler support of decimal floating - point instructions. - * configure: Regenerate. - * config.in: Regenerate. - * config/rs6000/rs6000.opt (mcmpb, mdfp): New. - * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP - masks to power6 and power6x and to POWERPC_MASKS. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - _ARCH_PWR6. - * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP. - * config/rs6000/sysv4.opt (mprototype): Use variable, not mask. - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): - Access PROTOTYPE as variable, not mask. - -2007-02-20 Steven Bosscher - - * rtl.h (remove_reg_equal_equiv_notes): New prototype. - * rtlanal.c (remove_reg_equal_equiv_notes): New function. - * combine.c (adjust_for_new_dest): Use it. - * postreload.c (reload_combine): Likewise. - -2007-02-20 Steven Bosscher - - * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ* - notes on an insn with multiple sets, even if single_set returns - non-NULL for that insn. - -2007-02-20 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, - scalbn and scalbln. - -2007-02-20 Geoffrey Keating - - * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only - if user didn't pass it. - * config/i386/darwin.h (CC1_SPEC): Likewise. - * config/rs6000/darwin.h (CC1_SPEC): Likewise. - (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of - -mmacosx-version-min. - -2007-02-20 Kaveh R. Ghazi - Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_scalb. - (scalb_optab): Define corresponding macro. - * optabs.c (init_optabs): Initialize scalb_optab. - * genopinit.c (optabs): Implement scalb_optab using scalb?f3 - patterns. - * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle - BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}. - (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} - and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if - flag_unsafe_math_optimizations is set. - - * config/i386/i386.md (scalbxf3, scalb3): New expanders - to implement scalbf, scalb and scalbl built-ins as inline x87 - intrinsics. - -2007-02-20 Manuel Lopez-Ibanez - DJ Delorie - - PR other/30824 - * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to... - (diagnostic_report_diagnostic): ... here, and turn them into real - errors. If warnings are inhibited, no need to do anything. - -2007-02-20 Uros Bizjak - - * config/i386/i386.md (expm1xf2): Reorder insn sequence for - better code generation. - -2007-02-20 Ben Elliston - - * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;. - -2007-02-20 Kazu Hirata - - * config/alpha/alpha.c, config/alpha/alpha.md, - config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c, - config/alpha/vms-psxcrt0-64.c, config/arc/arc.c, - config/arc/arc.h, config/arm/arm.c, config/arm/arm.md, - config/arm/lib1funcs.asm: Follow spelling conventions. - - * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c, - config/fr30/fr30.md, config/i386/i386.h, - config/iq2000/iq2000.h, config/iq2000/predicates.md, - config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h, - config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h, - config/pdp11/pdp11.c, config/pdp11/pdp11.h, - config/rs6000/altivec.md, config/rs6000/rs6000.c, - config/s390/s390-modes.def, config/sparc/netbsd-elf.h, - config/sparc/sparc.c, config/sparc/sparc.h, - config/sparc/sparc.md, config/spu/constraints.md, - config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling - conventions. - -2007-02-20 Alan Modra - - PR target/29943 - * varasm.c (use_blocks_for_decl_p): Return false for decls with - alias attribute. - -2007-02-19 Kazu Hirata - - * doc/invoke.texi (-ftree-lrs): Remove. - -2007-02-19 Diego Novillo - - * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to - NULL. - -2007-02-19 Lee Millward - - * config/ia64/ia64.c (ia64_expand_builtin): Use the - new CALL_EXPR_FN macro for retrieving the function - declaration of the input expression. - -2007-02-19 Manuel Lopez-Ibanez - - * c.opt (Waddress): New. - * common.opt (Walways-true): Delete. - (Wstring-literal-comparison): Delete. - * doc/invoke.texi (Warning Options): Delete -Walways-true and - -Wstring-literal-comparison. Add -Waddress. - (Waddress): New. - (Walways-true): Delete. - (Wstring-literal-comparison): Delete. - * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat - consistently instead of -Walways-true in example. - * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall. - * c-typeck.c (parser_build_binary_op): Replace - -Wstring-literal-comparison and -Walways-true with -Waddress. - * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true - with -Waddress. - -2007-02-19 Eric Botcazou - - * tree-cfg.c (dump_function_to_file): Be prepared for functions - without DECL_STRUCT_FUNCTION initialized. - -2007-02-19 Eric Botcazou - - * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap - due to calls to functions taking pointers as parameters. - -2007-02-19 Richard Henderson - - PR debug/29558 - * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P - in memory. - -2007-02-19 Andreas Krebbel - - * config/s390/s390.c (s390_call_saved_register_used, - s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are - accessed to the new scheme. - -2007-02-19 Jan-Benedict Glaw - - * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p) - (cris_print_index, cris_print_operand, cris_print_operand_address) - (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost) - (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx) - (cris_expand_pic_call_address): Use xxx_P predicate macros instead of - GET_CODE () == xxx. - * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q, - EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P, - GO_IF_LEGITIMATE_ADDRESS): Ditto. - * config/cris/cris.md (define_insns: *btst, movdi, *mov_side) - (*mov_sidesisf, *mov_side_mem, *mov_sidesisf_mem) - (*clear_side, movsi, *movsi_internal, *ext_sideqihi) - (*ext_sidesi, *op_side, *op_swap_side, addsi3) - (*extopqihi_side, *extopsi_side, *extopqihi_swap_side) - (*extopsi_swap_side, addi_mul, *addi,andsi3, andhi3, ashl3) - (uminsi3, call, call_value): Ditto. - (define_split: indir_to_reg_split, unnamed): Ditto. - -2007-02-19 Dorit Nuzman - - PR tree-optimization/30975 - * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove - wrong assert. - -2007-02-18 Eric Christopher - - * mips.c (mips_prepare_builtin_arg): Add argnum parameter. - Remove use of arglist. - (mips_expand_builtin): Remove use of arglist, pass in expr. - (mips_expand_builtin_direct): Rewrite handling for arglist removal. - (mips_expand_builtin_movtf): Ditto. - (mips_expand_builtin_compare): Ditto. - -2007-02-19 Alexandre Oliva - - * tree-sra.c (sra_build_assignment): Replace assertion - checking with a comment explaining why it can't be done. - -2007-02-18 Sandra Loosemore - - PR middle-end/30833 - * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed - during CALL_EXPR representation conversion. - * tree-ssa-propagate.c (set_rhs): Likewise. - -2007-02-19 Alexandre Oliva - - * tree-sra.c (sra_build_assignment): Disable assertion checking - for now. - -2007-02-18 Roger Sayle - - * function.c (gimplify_parameters): Call build_gimple_modify_stmt - instead of calling build2 with a GIMPLE_MODIFY_STMT. - * gimple-low.c (lower_function_body, lower_builtin_setjmp): - Likewise. - * gimplify.c (build_stack_save_restore, gimplify_return_expr, - gimplify_decl_expr, gimplify_self_mod_expr, gimplify_cond_expr, - gimplify_init_ctor_eval_range, gimple_push_cleanup, - gimplify_omp_for, gimplify_omp_atomic_pipeline, - gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos, - force_gimple_operand): Likewise. - * ipa-cp.c (constant_val_insert): Likewise. - * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, - lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y, - perfect_nestify): Likewise. - * langhooks.c (lhd_omp_assignment): Likewise. - * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses, - lower_copyprivate_clauses, lower_send_clauses, - lower_send_shared_vars, expand_parallel_call, - expand_omp_for_generic, expand_omp_for_static_nochunk, - expand_omp_for_static_chunk, expand_omp_sections, - lower_omp_single_copy, lower_omp_for_lastprivate, - lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise. - * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2, - tree_mod_subtract, tree_ic, tree_stringop_fixed_value): - Likewise. - -2007-02-19 Kazu Hirata - - * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h, - config/sh/sh.md: Follow spelling conventions. - - * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md, - config/frv/predicates.md: Follow spelling conventions. - - * config/m68k/linux-unwind.h: Fix a comment typo. - * target.h: Follow spelling conventions. - -2007-02-18 Roger Sayle - - PR rtl-optimization/28173 - * simplify-rtx.c (simplify_binary_operation_1) : Optimize - (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects. - Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0. - Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2. - : Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2). - -2007-02-18 Kaveh R. Ghazi - - * builtins.c (fold_builtin_load_exponent): New. - (fold_builtin_2): Use it. - -2007-02-18 Steven Bosscher - - PR rtl-optimization/30773 - * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init - if we fail to attach a REG_EQUIV note. - -2007-02-18 David Edelsohn - Roger Sayle - - * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter. - -2007-02-18 Sandra Loosemore - - * calls.c (initialize_argument_information): Pass original EXP - and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments. Move - code to split complex arguments here, as part of initializing the - ARGS array. - (expand_call): Remove code that builds a list of arguments and - inserts implicit arguments into it. Instead, just count how many - implicit arguments there will be so we can determine the size of - the ARGS array, and let initialize_argument_information do the work. - (split_complex_values): Delete unused function. - -2007-02-18 Eric Botcazou - - * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR. - -2007-02-18 Eric Botcazou - - * calls.c (mem_overlaps_already_clobbered_arg_p): Return true - for arg pointer based indexed addressing. - -2007-02-18 Kazu Hirata - - * config/ia64/ia64.h, config/ia64/ia64.md, - config/ia64/predicates.md, config/ia64/sysv4.h: Follow - spelling conventions. - -2007-02-18 Roman Zippel - - * config/m68k/m68k.c (split_di): New. - * config/m68k/m68k-protos.h: Declare split_di. - * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*): - Improve predicate handling and split constant shifts. - -2007-02-18 Roman Zippel - - * config/m68k/m68k.md (extv,extzv,insv): disable dynamic - parameter for register bitfield operations, general predicates - cleanup - -2007-02-18 Roman Zippel - - * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define. - * config/m68k/linux-unwind.h: New file. - -2007-02-18 Kazu Hirata - - * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c, - config/i386/athlon.md, config/ia64/ia64.md, - config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md, - df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c, - ipa-prop.h, see.c, struct-equiv.c, tree-inline.c, - tree-ssa-loop-niter.c, tree-vect-analyze.c, - tree-vect-transform.c: Fix comment typos. - -2007-02-17 Kazu Hirata - - * sched-deps.c (find_insn_list): Remove. - * sched-int.h: Remove the prototype for find_insn_list. - -2007-02-16 Geoffrey Keating - - * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min - to linker. - (DARWIN_EXTRA_SPECS): Add %(darwin_minversion). - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call - darwin_rs6000_override_options. - (C_COMMON_OVERRIDE_OPTIONS): Expect - darwin_macosx_version_min to be non-NULL always. - (TARGET_C99_FUNCTIONS): Likewise. - (CC1_SPEC): Always pass -mmacosx-version-min to cc1*. - (DARWIN_MINVERSION_SPEC): New. - * config/rs6000/rs6000.c (darwin_rs6000_override_options): New. - * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min - to cc1*. - (DARWIN_MINVERSION_SPEC): New. - * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL - value. - * config/darwin-c.c (darwin_cpp_builtins): Expect - darwin_macosx_version_min to be non-NULL always. - - * config/rs6000/rs6000.c: Clean up trailing whitespace. - -2007-02-16 Uros Bizjak - - * config/i386/i386.h (x86_use_xchgb): New. - (TARGET_USE_XCHGB): New macro. - * config/i386/i386.c (x86_use_xchgb): Set for PENT4. - * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter): - Split after reload into bswaphi for shifts of 8. - (bswaphi_lowpart): Generate rolw insn for HImode byte swaps. - (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB - or when optimizing for size. - -2007-02-16 Richard Guenther - Christian Bruel - - * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like - DECLs but prefer SSA_NAMEs over DECLs. - -2007-02-16 Richard Guenther - - * tree-flow-inline.h (single_imm_use_p): Remove. - (zero_imm_uses_p): Likewise. - * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use - instead of single_imm_use_p. - * tree-cfg.c (replace_uses_by): Use has_zero_use instead of - zero_imm_uses_p. - -2007-02-16 Ralf Wildenhues - - PR other/27843 - * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid - nested double- and backquotes. - -2007-02-15 Roger Sayle - - PR middle-end/30391 - * tree.c (expr_align): Handle MODIFY_EXPR. GIMPLE_MODIFY_STMT - should be unreachable. - (build2_stat): Allow construction of MODIFY_EXPR at any time. - For the time being redirect GIMPLE_MODIFY_STMT to the new - (renamed) build_gimple_modify_stmt_stat. - (build2_gimple_stat): Rename to... - (build_gimple_modify_stmt_stat): Now longer take a CODE argument. - Always build a GIMPLE_MODIFY_STMT node. - * tree.h (build2_gimple, build2_gimple_stat): Delete. - (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New - declarations. - - * tree-cfg.c (factor_computed_gotos, tree_merge_blocks, - gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple. - * tree-complex.c (set_component_ssa_name, expand_complex_move, - expand_complex_div_wide): Likewise. - * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. - * tree-ssa-loop-im.c (schedule_sm): Likewise. - * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise. - * tree-ssa-loop-manip.c (create_iv): Likewise. - * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement, - abs_replacement): Likewise. - * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt, - realify_fake_stores): Likewise. - - * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR - node rather than a GIMPLE_MODIFY_STMT node. - (std_gimpify_va_arg_expr, expand_builtin_va_copy, - fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos): - Likewise. - (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT. - * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and - GIMPLE_MODIFY_STMT. - -2007-02-15 Andrew Pinski - - PR middle-end/30433 - * fold-const.c (fold_comparison): Add back the - folding of constant complex comparisions. - -2007-02-15 Andrew Pinski - - PR middle-end/30729 - * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side - effects unknown to this function, return early. - -2007-02-15 Ian Lance Taylor - - * lower-subreg.c (move_eh_region_note): New static function. - (resolve_simple_move): Call it. - (decompose_multiword_subregs): Track blocks for which we resolve a - simple move which is also a control flow insn. Pass them to - find_many_sub_basic_blocks. - (pass_lower_subreg): Add TODO_verify_flow. - (pass_lower_subreg2): Likewise. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * tree.h (enum tree_code_class): Add tcc_vl_exp. - (VL_EXP_CLASS_P): New. - (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of - TREE_CODE_LENGTH. - (TREE_OPERAND_CHECK_CODE): Likewise. - (GIMPLE_STMT_OPERAND_CHECK): Likewise. - (TREE_RTL_OPERAND_CHECK): Likewise. - (tree_operand_check_failed): Make second parameter the whole tree - instead of its code. Fixed callers. - (VL_EXP_CHECK): New. - (TREE_OPERAND_LENGTH): New. - (VL_EXP_OPERAND_LENGTH): New. - (CALL_EXPR_FN): New. - (CALL_EXPR_STATIC_CHAIN): New. - (CALL_EXPR_ARGS): New. - (CALL_EXPR_ARG): New. - (call_expr_nargs): New. - (CALL_EXPR_ARGP): New. - (build_nt_call_list): Declare. - (build_vl_exp_stat): Declare. - (build_vl_exp): New. - (build_call_list): Declare. - (build_call_nary): Declare. - (build_call_valist): Declare. - (build_call_array): Declare. - (call_expr_arg): Declare. - (call_expr_argp): Declare. - (call_expr_arglist): Declare. - (fold_build_call_list): Declare. - (fold_build_call_list_initializer): Declare. - (fold_call_expr): Declare to replace fold_builtin. - (fold_builtin_fputs): Update to agree with modified definition. - (fold_builtin_strcpy): Likewise. - (fold_builtin_strncpy): Likewise. - (fold_builtin_memory_chk): Likewise. - (fold_builtin_stxcpy_chk): Likewise. - (fold_builtin_strncpy_chk): Likewise. - (fold_builtin_next_arg): Likewise. - (fold_build_call_expr): Declare. - (fold_builtin_call_list): Declare. - (fold_builtin_call_valist): Declare. - (build_call_expr): Declare. - (validate_arglist): Update to agree with modified definition. - (tree_operand_length): New. - (call_expr_arg_iterator): New. - (init_call_expr_arg_iterator): New. - (next_call_expr_arg): New. - (first_call_expr_arg): New. - (more_call_expr_args_p): New. - (FOR_EACH_CALL_EXPR_ARG): New. - - * tree.c (tree_code_class_string): Add entries for tcc_vl_exp - and tcc_gimple_stmt. - (tree_code_size): Update documentation. Use sizeof (tree) rather - than sizeof (char *). - (tree_size): Likewise. Add case for tcc_vl_exp. - (tree_node_structure): Add case for tcc_vl_exp. - (contains_placeholder_p): Likewise. - (substitute_in_expr): Likewise. - (substitute_placeholder_in_expr): Likewise. - (stabilize_reference_1): Likewise. - (build3_stat): Remove logic for CALL_EXPRs. Replace with assertion - to diagnose breakage of this interface for constructing CALL_EXPRs. - (build_nt): Add similar assertion here. - (build_nt_call_list): New. - (simple_cst_equal) : Rewrite to use new accessors. - (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of - TREE_CODE_LENGTH. - (get_callee_fndecl): Use new CALL_EXPR accessors. - (tree_operand_check_failed): Change parameters to pass entire node - instead of its code, so that we can call TREE_OPERAND_LENGTH on it. - (process_call_operands): New. - (build_vl_exp_stat): New. - (build_call_list): New. - (build_call_nary): New. - (build_call_valist): New. - (build_call_array): New. - (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - (call_expr_arglist): New. - - * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use - tcc_vl_exp instead of a fixed-size tcc_expression. - - * doc/c-tree.texi (CALL_EXPR): Document new representation and - accessors for CALL_EXPRs. - (AGGR_INIT_EXPR): Likewise. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * builtins.c (c_strlen): Return NULL_TREE instead of 0. - (expand_builtin_nonlocal_goto): Change parameter to be entire - CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors. - (expand_builtin_prefetch): Likewise. - (expand_builtin_classify_type): Likewise. - (mathfn_built_in): Return NULL_TREE instead of 0. - (expand_errno_check): Use new CALL_EXPR accessors. - (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors. - Return NULL_RTX instead of 0. - (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_int_roundingfn): Likewise. - (expand_builtin_int_roundingfn_2): Likewise. - (expand_builtin_pow): Likewise. - (expand_builtin_powi): Likewise. - (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead - of arglist, fixing callers appropriately. Use new CALL_EXPR - accessors and constructors. Return NULL_RTX instead of 0. - (expand_builtin_strstr): Likewise. - (expand_builtin_strchr): Likewise. - (expand_builtin_strrchr): Likewise. - (expand_builtin_strpbrk): Likewise. - (expand_builtin_memcpy): Likewise. - (expand_builtin_mempcpy): Likewise. - (expand_builtin_mempcpy_args): New. - (expand_builtin_memmove): Similarly to expand_builtin_mempcpy. - (expand_builtin_memmove_args): New. - (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy. - (expand_movstr): Likewise. - (expand_builtin_strcpy): Likewise. - (expand_builtin_strcpy_args): New. - (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset): Likewise. - (expand_builtin_memset_args): New. - (expand_builtin_bzero): Similarly to expand_builtin_memset. - (expand_builtin_memcmp): Likewise. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - (expand_builtin_strcat): Likewise. - (expand_builtin_strncat): Likewise. - (expand_builtin_strspn): Likewise. - (expand_builtin_strcspn): Likewise. - (expand_builtin_args_info): Likewise. - (expand_builtin_va_start): Likewise. - (gimplify_va_arg_expr): Likewise. - (expand_builtin_va_end): Likewise. - (expand_builtin_va_copy): Likewise. - (expand_builtin_frame_address): Likewise. - (expand_builtin_alloca): Likewise. - (expand_builtin_bswap): Likewise. - (expand_builtin_unop): Likewise. - (expand_builtin_fputs): Likewise. - (expand_builtin_expect): Likewise. - (expand_builtin_fabs): Likewise. - (expand_builtin_copysign): Likewise. - (expand_builtin_printf): Likewise. - (expand_builtin_fprintf): Likewise. - (expand_builtin_sprintf): Likewise. - (expand_builtin_init_trampoline): Likewise. - (expand_builtin_signbit): Likewise. - (expand_builtin_fork_or_exec): Likewise. - (expand_builtin_sync_operation): Likewise. - (expand_builtin_compare_and_swap): Likewise. - (expand_builtin_lock_test_and_set): Likewise. - (expand_builtin_lock_release): Likewise. - (expand_builtin): Likewise. - (builtin_mathfn_code): Likewise. - - (fold_builtin_constant_p): Pass call arguments individually instead - of as an arglist, fixing callers appropriately. Use new CALL_EXPR - accessors and constructors. Return NULL_TREE instead of 0. - (fold_builtin_expect): Likewise. - (fold_builtin_classify_type): Likewise. - (fold_builtin_strlen): Likewise. - (fold_builtin_nan): Likewise. - (integer_valued_real_p): Likewise. - (fold_trunc_transparent_mathfn): Likewise. - (fold_fixed_mathfn): Likewise. - (fold_builtin_cabs): Likewise. - (fold_builtin_sqrt): Likewise. - (fold_builtin_cbrt): Likewise. - (fold_builtin_cos): Likewise. - (fold_builtin_cosh): Likewise. - (fold_builtin_tan): Likewise. - (fold_builtin_sincos): Likewise. - (fold_builtin_cexp): Likewise. - (fold_builtin_trunc): Likewise. - (fold_builtin_floor): Likewise. - (fold_builtin_ceil): Likewise. - (fold_builtin_round): Likewise. - (fold_builtin_int_roundingfn): Likewise. - (fold_builtin_bitop): Likewise. - (fold_builtin_bswap): Likewise. - (fold_builtin_logarithm): Likewise. - (fold_builtin_hypot): Likewise. - (fold_builtin_pow): Likewise. - (fold_builtin_powi): Likewise. - (fold_builtin_exponent): Likewise. - (fold_builtin_memset): Likewise. - (fold_builtin_bzero): Likewise. - (fold_builtin_memory_op): Likewise. - (fold_builtin_bcopy): Deleted; call site changed to invoke - fold_builtin_memory_op directly. - (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op. - (fold_builtin_strncpy): Likewise. - (fold_builtin_memcmp): Likewise. - (fold_builtin_strcmp): Likewise. - (fold_builtin_strncmp): Likewise. - (fold_builtin_signbit): Likewise. - (fold_builtin_copysign): Likewise. - (fold_builtin_isascii): Likewise. - (fold_builtin_toascii): Likewise. - (fold_builtin_isdigit): Likewise. - (fold_builtin_fabs): Likewise. - (fold_builtin_abs): Likewise. - (fold_builtin_fmin_fmax): Likewise. - (fold_builtin_carg): Likewise. - (fold_builtin_classify): Likewise. - (fold_builtin_unordered_cmp): Likewise. - - (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4): - New functions split out from fold_builtin_1. - (fold_builtin_n): New. - (fold_builtin_varargs): New. - (fold_builtin): Deleted. Most callers changed to use fold_call_expr - instead. - (fold_call_expr): New. - (build_function_call_expr): Rewrite to use new helper function. - (fold_builtin_call_list): New. - (build_call_expr): New. - (fold_builtin_call_valist): New. - (rewrite_call_expr): New. - (validate_arg): New. - (validate_arglist): Change parameter to be entire CALL_EXPR instead - of an arglist. Change return type to bool. Use new CALL_EXPR - accessors. - - (fold_builtin_strstr): Pass call arguments individually instead - of as an arglist, fixing callers appropriately. Use new CALL_EXPR - accessors and constructors. Return NULL_TREE instead of 0. - (fold_builtin_strchr): Likewise. - (fold_builtin_strrchr): Likewise. - (fold_builtin_strpbrk): Likewise. - (fold_builtin_strcat): Likewise. - (fold_builtin_strncat): Likewise. - (fold_builtin_strspn): Likewise. - (fold_builtin_strcspn): Likewise. - (fold_builtin_fputs): Likewise. - (fold_builtin_next_arg): Likewise. - (fold_builtin_sprintf): Likewise. - - (expand_builtin_object_size): Use new CALL_EXPR accessors. Use - NULL_RTX instead of 0. - (expand_builtin_memory_chk): Likewise. - (maybe_emit_chk_warning): Likewise. - (maybe_emit_sprintf_chk_warning): Likewise. - - (fold_builtin_object_size): Pass call arguments individually instead - of as an arglist, fixing callers appropriately. Use new CALL_EXPR - accessors and constructors. Return NULL_TREE instead of 0. - (fold_builtin_memory_chk): Likewise. - (fold_builtin_stxcpy_chk): Likewise. - (fold_builtin_strncpy_chk): Likewise. - (fold_builtin_strcat_chk): Likewise. - (fold_builtin_strcat_chk): Likewise. - (fold_builtin_strncat_chk): Likewise. - (fold_builtin_sprintf_chk): Likewise. - (fold_builtin_snprintf_chk): Likewise. - (fold_builtin_printf): Likewise. - (fold_builtin_vprintf): Likewise. - - * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and - constructors. - (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case. - (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - (extract_muldiv_1): Add VL_EXP_CLASS_P case. - (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors. - (fold_unary): Likewise. - (fold_binary): Likewise. - (fold_ternary): Remove CALL_EXPR case, since they are no longer - ternary expressions. - (fold): Add logic for tcc_vl_exp. - (fold_checksum_tree): Make it know about tcc_vl_exp. Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - (fold_build3_stat): Add assertion to flag broken interface for - constructing CALL_EXPRs. - (fold_build_call_list): New. - (fold_build_call_list_initializer): New. - (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and - constructors. - (fold_strip_sign_ops): Likewise. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * tree-dump.c (dequeue_and_dump) : Use new CALL_EXPR - accessors and dump arguments explicitly. - - * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of - TREE_CODE_LENGTH. - (dump_generic_node): Use new CALL_EXPR accessors and walk arguments - explicitly. - (print_call_name): Use new CALL_EXPR accessors. - - * print-tree.c (print_node): Add case tcc_vl_exp. Print - CALL_EXPR arguments explicitly instead of as a list. Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - - * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors. - (vrp_visit_stmt): Likewise. - - * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it - know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of - TREE_CODE_LENGTH. - (force_move_till_expr): Likewise. - - * targhooks.c (default_external_stack_protect_fail): Use - build_call_expr instead of build_function_call_expr. - (default_hidden_stack_protect_fail): Likewise. - - * tree-complex.c (expand_complex_libcall): Use build_call_expr to - build the call. - - * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors - and walk arguments explicitly. - - * tree-ssa-loop-niter.c (simplify_replace_tree): Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - (expand_simple_operations): Likewise. - (infer_loop_bounds_from_array): Use new CALL_EXPR accessors. - - * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead - of TREE_CODE_LENGTH. - (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs. - - * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH - instead of TREE_CODE_LENGTH. - - * value_prof.c (tree_ic): Use new CALL_EXPR accessors. - (tree_ic_transform): Likewise. - (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as - parameter instead of arglist. Fix callers. - (tree_stringop_fixed_value): Use new CALL_EXPR accessors. - (tree_stringops_transform): Likewise. - (tree_indirect_call_to_profile): Likewise. - (tree_stringops_values_to_profile): Likewise. - - * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator. - (eliminate_tail_call): Likewise. - - * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors. - - * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): - Use TREE_OPERAND_LENGTH and generalize to handle any number of - operands. - (instantiate_parameters_1): Can't handle tcc_vl_exp here. - - * omp-low.c (build_omp_barrier): Use build_call_expr. - (lower_rec_input_clauses): Likewise. - (lower_reduction_clauses): Likewise. - (expand_parallel_call): Likewise. - (maybe_catch_exception): Likewise. - (expand_omp_for_generic): Likewise. - (expand_omp_for_static_nochunk): Likewise. - (expand_omp_sections): Likewise. - (lower_omp_single_simple): Likewise. - (lower_omp_single_copy): Likewise. - (lower_omp_master): Likewise. - (lower_omp_ordered): Likewise. - (lower_omp_critical): Likewise. - - * ipa-reference.c (check-call): Use new CALL_EXPR iterator. - (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR. - - * tree-gimple.c (is_gimple_call_addr): Fix doc. - (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of - TREE_CODE_LENGTH. Add tcc_vl_exp case. - - * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH - and generalize to handle any number of operands. - (chrec_contains_undetermined): Likewise. - (tree_contains_chrecs): Likewise. - (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH. - - * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors. - - * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use - fold_call_expr instead of fold_builtin. - (ccp_fold_builtin): Likewise. Update calls into builtins.c to - match declarations there. - (fold_stmt): Use new CALL_EXPR constructor and accessors. Doc - updates. - - * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - - * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors. - (scan_function): Add case tcc_vl_exp for CALL_EXPR. - - * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR - accessors. - - * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr. - (execute_cse_sincos): Use new CALL_EXPR accessors. - - * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator. - - * gimple-low.c (lower_function_body): Use build_call_expr. - (lower_builtin_setjmp): Likewise. - - * expr.c (emit_block_move_via_libcall): Use build_call_expr. - (set_storage_via_libcall): Likewise. - (safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH - instead of TREE_CODE_LENGTH. - (expand_expr_real_1): Use new CALL_EXPR accessors. - - * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and - generalize to handle any number of operands. - (TB_parent_eq): Likewise. - - * predict.c (expr_expected_value): Use new CALL_EXPR accessors. - (strip_builtin_expect): Likewise. - - * function.c (gimplify_parameters): Use build_call_expr. - - * tree-vectorizer.c (vect_is_simple_reduction): Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - - * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators. - (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR. - - * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR - iterators. - - * gimplify.c (build_stack_save_restore): Use build_call_expr. - (gimplify_decl_expr): Likewise. - (gimplify_call_expr): Use fold_call_expr instead of fold_builtin. - Use new CALL_EXPR iterators. - (gimplify_modify_expr_to_memcpy): Use build_call_expr. - (gimplify_modify_expr_to_memset): Likewise. - (gimplify_variable_sized_compare): Likewise. - (gimplify_omp_atomic_fetch_op): Likewise. - (gimplify_omp_atomic_pipeline): Likewise. - (gimplify_omp_atomic_mutex): Likewise. - (gimplify_function_tree): Likewise. - - * calls.c (alloca_call_p): Use new CALL_EXPR accessors. - (call_expr_flags): Likewise. - (expand_call): Likewise. - - * except.c (expand_builtin_eh_return_data_regno): Pass entire - CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR - accessors. - - * coverage.c (create_coverage): Use build_call_expr. - - * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete. - (temp_call_expr_obstack): New. - (pool_copy_list): Delete. - (temp_copy_call_expr): New. - (phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new - CALL_EXPR accessors. Get rid of special goo for copying argument - lists and use temp_copy_call_expr instead. - (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new - CALL_EXPR accessors. - (create_expression_by_pieces): Likewise. Use build_call_array - to construct the result instead of fold_build3. - (create_value_expr_from): Add tcc_vl_exp. Delete special goo for - dealing with argument lists. - (init_pre): Remove references to expression_node_pool and - list_node_pool. Init temp_call_expr_obstack instead. - (fini_pre): Remove references to expression_node_pool and - list_node_pool. - - * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors - and walk arguments explicitly instead of as a list. - - * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr. - (mx_register_decls): Likewise. - (mudflap_register_call): Likewise. - (mudflap_finish_file): Likewise. - - * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors. - (ipa_callsite_compute_param): Likewise. - - * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR - accessors and constructor. - - * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR - accessors and constructor. - (convert_tramp_reference): Likewise. - (convert_call_expr): Likewise. - (finalize_nesting_tree_1): Likewise. - - * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR - accessors. - - * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr. - - * tree-inline.c (initialize_inlined_parameters): Pass entire - CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR - accessors. - (estimate_num_insns_1): Use new CALL_EXPR accessors. - (expand_call_inline): Tidy up call to initialize_inlined_parameters. - - * tree-vect-transform.c (vect_create_epilog_for_reduction): Use - TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - (vectorizable_reduction): Likewise. - (vectorizable_call): Use new CALL_EXPR iterators. - (vectorizable_conversion): Use build_call_expr. - (vectorizable_operation): Use TREE_OPERAND_LENGTH. - (vect_gen_widened_results_half): Use build_call_expr. - (vect_setup_realignment): Likewise. - (vectorizable_live_operation): Use TREE_OPERAND_LENGTH. - - * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors. - (pass_through_call): Likewise. - (compute_object_sizes): Likewise. Use fold_call_expr instead of - fold_builtin. - - * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr. - (tree_gen_pow2_profiler): Likewise. - (tree_gen_one_value_profiler): Likewise. - (tree_gen_ic_func_profiler): Likewise. - (tree_gen_average_profiler): Likewise. - (tree_gen_ior_profiler): Likewise. - - * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp. - (find_func_aliases): Use new CALL_EXPR accessors. Add case - tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH. - - * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead - of TREE_CODE_LENGTH. - - * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead - of TREE_CODE_LENGTH. - - * convert.c (convert_to_real): Use new CALL_EXPR accessors and - constructor. - (convert_to_integer): Likewise. - - * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR - accessors. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR - accessors. - * config/frv/frv.c (frv_expand_builtin): Likewise. - * config/s390/s390.c (s390_expand_builtin): Likewise. - - * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr. - (sparc_expand_builtin): Use new CALL_EXPR accessors. - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise. - (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter - instead of arglist. Use new CALL_EXPR accessors on it. Fix callers. - (ix86_expand_store_builtin): Likewise. - (ix86_expand_unop_builtin): Likewise. - (ix86_expand_unop1_builtin): Likewise. - (ix86_expand_sse_compare): Likewise. - (ix86_expand_sse_comi): Likewise. - (ix86_expand_vec_init_builtin): Likewise. - (ix86_expand_vec_ext_builtin): Likewise. - (ix86_expand_vec_set_builtin): Likewise. - (ix86_expand_builtin): Use new CALL_EXPR accessors. - - * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors. - * config/c4x/c4x.c (c4x_expand_builtin): Likewise. - - * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR - instead of arglist. Use new CALL_EXPR accessors. Fix callers. - (iq2000_expand_builtin): Use new CALL_EXPR accessors. - - * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use - build_call_expr. - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. - (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of - arglist. Use new CALL_EXPR accessors. Fix callers. - (altivec_expand_abs_builtin): Likewise. - (rs6000_expand_binop_builtin): Likewise. - (altivec_expand_predicate_builtin): Likewise. - (altivec_expand_lv_builtin): Likewise. - (spe_expand_stv_builtin): Likewise. - (altivec_expand_stv_builtin): Likewise. - (rs6000_expand_ternop_builtin): Likewise. - (altivec_expand_ld_builtin): Use new CALL_EXPR accessors. - (altivec_expand_st_builtin): Likewise. - (altivec_expand_dst_builtin): Likewise. - (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of - arglist. Use new CALL_EXPR accessors. Fix callers. - (altivec_expand_vec_set_builtin): Likewise. - (altivec_expand_vec_ext_builtin): Likewise. - (altivec_expand_builtin): Use new CALL_EXPR accessors. - (spe_expand_builtin): Likewise. - (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of - arglist. Use new CALL_EXPR accessors. Fix callers. - (spe_expand_evsel_builtin): Likewise. - (rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and - FCFSX cases must construct whole new CALL_EXPR, not just arglist. - - * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR - instead of arglist. Use new CALL_EXPR accessors. Fix callers. - (arm_expand_unop_builtin): Likewise. - (arm_expand_builtin): Use new CALL_EXPR accessors. - - * config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR - accessors. - - * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire - CALL_EXPR instead of arglist. Use new CALL_EXPR accessors. - Fix callers. - (bfin_expand_unop_builtin): Likewise. - (bfin_expand_builtin): Use new CALL_EXPR accessors. - -2007-02-15 Sandra Loosemore - Brooks Moses - Lee Millward - - * c-semantics.c (build_stmt): Add internal diagnostic check. - - * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR - accessors. Print arguments explicitly instead of as a list. - - * c-typeck.c (build_function_call): Use new CALL_EXPR constructors. - - * c-omp.c (c_finish_omp_barrier): Use build_call_expr. - (c_finish_omp_flish): Likewise. - - * c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse - arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH - instead of TREE_CODE_LENGTH. - (check_function_arguments_recurse): Use new CALL_EXPR accessors. - (c_warn_unused_result): Likewise. - -2007-02-15 Manuel Lopez-Ibanez - - PR c/26494 - * doc/invoke.texi (Warning Options): Remove - -Werror-implicit-function-declaration. - (Wimplicit-function-declaration): Update description. - * opts.c (common_handle_option): Move handling of -Werror=* to... - (enable_warning_as_error): ...here. - * opts.h (enable_warning_as_error): Declare. - * c-decl.c (implicit_decl_warning): Unless - -Wno-implicit-function-declaration is given, emit a pedwarn if - -std=c99 or emit a warning if -Wimplicit-function-declaration. - * c.opt (Wimplicit-function-declaration): Replace - mesg_implicit_function_declaration with - warn_implicit_function_declaration. - * c-opts.c (c_common_handle_option): - -Werror-implicit-function-declaration is exactly equal as - -Werror=implicit-function-declaration. - (set_Wimplicit): Replace mesg_implicit_function_declaration with - warn_implicit_function_declaration. - (c_common_post_options): -Wimplict-function-declaration is enabled - by default by -std=c99, otherwise is disabled by default. - * c-objc-common.c (c_objc_common_init): Remove flawed logic. - -2007-02-15 Eric Botcazou - - * gimplify.c (gimplify_modify_expr): During gimplification, attach a - DECL on the rhs to a DECL on the lhs for debug info purposes if the - former is ignored but not the latter. - -2007-02-15 Eric Botcazou - - * expr.c (expand_expr_real_1) : If a temporary - is made and the reference doesn't use the alias set of its type, - do not create the temporary using that type. - -2007-02-15 Aldy Hernandez - - * jump.c: Remove prototypes for delete_computation and - delete_prior_computation. - -2007-02-15 Paolo Bonzini - - * jump.c (get_label_after): Delete. - (get_label_before, delete_computation, delete_jump, - delete_prior_computation, follow_jumps): Move... - * reorg.c (delete_computation, delete_prior_computation): ... here... - (get_label_before, delete_jump): ... making these static ... - (follow_jumps): ... and simplifying this since it only runs after - reload. - * rtl.h (get_label_after, get_label_before, delete_jump, - follow_jumps): Delete prototypes. - -2007-02-15 Paolo Bonzini - - * caller-save.c (save_call_clobbered_regs): Do not process sibcalls. - -2007-02-15 Nick Clifton - - * varasm.c (default_asm_output_anchor): Prepend * to . symbol in - order to prevent it from being munged by the target. - -2007-02-15 Uros Bizjak - - * config/i386/i386.md: Remove misleading comment. - -2007-02-15 Alexandre Oliva - - * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns, - reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove - invalid patterns. - -2007-02-15 Alexandre Oliva - - * tree-sra.c (instantiate_missing_elements): Canonicalize - bit-field types. - (sra_build_assignment): New. - (generate_copy_inout, generate_element_copy, - generate_element_zero, generate_one_element_init): Use it. - -2007-02-15 Alexandre Oliva - - * tree-sra.c (instantiate_missing_elements): Canonicalize - bit-field types. - (sra_build_assignment): New. - (generate_copy_inout, generate_element_copy, - generate_element_zero, generate_one_element_init): Use it. - -2007-02-15 Alexandre Oliva - - * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of - limbo die nodes. - -2007-02-14 Joseph Myers - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex - types as aggregates not scalars. - * function.c (assign_stack_temp_for_type): Likewise. - -2007-02-14 Roger Sayle - Zdenek Dvorak - - * tree-dump.c (dump_switch_p_1): Require exact match of the option - name. - -2007-02-14 Zdenek Dvorak - - * passes.c (next_pass_1): Clear the next field of the copied - pass structure. - -2007-02-14 Richard Henderson - - * tree-sra.c (early_sra): New. - (decl_can_be_decomposed_p): Deny va_list if early_sra. - (tree_sra_early, pass_sra_early): New. - * tree-pass.h (pass_sra_early): Declare. - * passes.c (init_optimization_passes): Use it. - -2007-02-14 Richard Guenther - - * flags.h (issue_strict_overflow_warning): Convert to a macro. - -2007-02-14 Dorit Nuzman - - PR tree-optimization/30771 - * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse - also phi nodes. - (vect_analyze_operations): Induction phis can now be marked as - used_in_loop. - (vect_mark_stmts_to_be_vectorized): No special treatment for phis. - Update documentation accordingly. - -2007-02-14 Nick Clifton - - * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at - most 3 arguments are supported. - (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description. - -2007-02-13 Seongbae Park - - * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor): - Ensure dst->current is valid. - -2007-02-13 Paul Brook - - * config.gcc: Add arm*-*-uclinux-*eabi. - * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define. - (SUBTARGET_EXTRA_LINK_SPEC): Define. - (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling. - (LINK_GCC_C_SEQUENCE_SPEC): Undef. - (LINK_SPEC): Define. - (LIB_SPEC): Define. - * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC - register. - * config/arm/uclinux-eabi.h: New file. - * config/arm/linux-eabi.h (WCHAR_TYPE): Remove. - * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS - based targets. - -2007-02-13 Ian Lance Taylor - - * common.opt: Add Wstrict-overflow and Wstrict-overflow=. - * flags.h (warn_strict_overflow): Declare. - (enum warn_strict_overflow_code): Define. - (issue_strict_overflow_warning): New static inline function. - * opts.c (warn_strict_overflow): New variable. - (common_handle_option): Handle OPT_Wstrict_overflow and - OPT_Wstrict_overflow_. - * c-opts.c (c_common_handle_option): Set warn_strict_overflow for - OPT_Wall. - * fold-const.c: Include intl.h. - (fold_deferring_overflow_warnings): New static variable. - (fold_deferred_overflow_warning): New static variable. - (fold_deferred_overflow_code): New static variable. - (fold_defer_overflow_warnings): New function. - (fold_undefer_overflow_warnings): New function. - (fold_undefer_and_ignore_overflow_warnings): New function. - (fold_deferring_overflow_warnings_p): New function. - (fold_overflow_warning): New static function. - (make_range): Add strict_overflow_p parameter. Change all - callers. - (extract_muldiv, extract_muldiv_1): Likewise. - (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling - tree_expr_nonnegative_p. - (fold_negate_expr): Call fold_overflow_warning. - (fold_range_test): Likewise. - (fold_comparison): Likewise. - (fold_binary): Likewise. Call tree_expr_nonnegative_warnv_p - instead of tree_expr_nonnegative_p. - (tree_expr_nonnegative_warnv_p): Rename from - tree_expr_nonnegative_p, add strict_overflow_p parameter. - (tree_expr_nonnegative_p): New function. - (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add - strict_overflow_p parameter. - (tree_expr_nonzero_p): New function. - * passes.c (verify_interpass_invariants): New static function. - (execute_one_pass): Call it. - * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold - warnings. - (number_of_iterations_exit, loop_niter_by_eval): Likewise. - (estimate_numbers_of_iterations): Likewise. - (scev_probably_wraps_p): Likewise. - * tree-ssa-ccp.c: Include "toplev.h". - (evaluate_stmt): Defer fold overflow warnings until we know we are - going to optimize. - (struct fold_stmt_r_data): Add stmt field. - (fold_stmt_r): Defer fold overflow warnings until we know we - optimized. - (fold_stmt): Initialize stmt field of fold_stmt_r_data. - (fold_stmt_inplace): Likewise. - * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h". - (cleanup_control_expr_graph): Defer fold overflow warnings until - we know we are going to optimize. - * tree-cfg.c (fold_cond_expr_cond): Likewise. - * tree-ssa-threadedge.c (simplify_control_stmt_condition): - Likewise. - * tree-vrp.c (vrp_expr_computes_nonnegative): Call - tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p. - * tree-ssa-loop-manip.c (create_iv): Likewise. - * c-typeck.c (build_conditional_expr): Likewise. - (build_binary_op): Likewise. - * tree-vrp.c (vrp_expr_computes_nonzero): Call - tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p. - (extract_range_from_unary_expr): Likewise. - * simplify-rtx.c (simplify_const_relational_operation): Warn when - assuming that signed overflow does not occur. - * c-common.c (pointer_int_sum): Ignore fold overflow warnings. - * tree.h (tree_expr_nonnegative_warnv_p): Declare. - (fold_defer_overflow_warnings): Declare. - (fold_undefer_overflow_warnings): Declare. - (fold_undefer_and_ignore_overflow_warnings): Declare. - (fold_deferring_overflow_warnings_p): Declare. - (tree_expr_nonzero_warnv_p): Declare. - * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list - of warning options. - (Warning Options): Document -Wstrict-overflow. - * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h. - (tree-ssa-ccp.o): Likewise. - (tree-cfgcleanup.o): Change errors.h dependency to toplev.h. - (fold-const.o): Depend on intl.h. - -2007-02-13 Ian Lance Taylor - - PR middle-end/30751 - * lower-subreg.c (resolve_simple_move): Decompose subregs in - addresses. - -2007-02-13 Stuart Hastings - - * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2. - -2007-02-13 Richard Henderson - - * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip - handled_component_p before looking for the indirect_ref. - -2007-02-13 Richard Henderson - - * config/i386/i386.md (bswapsi_1): Rename from bswapsi2, - remove flags clobber. - (bswapsi2): New expander, emit code for !TARGET_BSWAP. - (bswaphi_lowpart): New. - (bswapdi2): Rename from bswapdi2_rex, remove flags clobber, - remove TARGET_BSWAP test. Delete expander of the same name. - - * optabs.c (widen_bswap, expand_doubleword_bswap): New. - (expand_unop): Use them. - -2007-02-13 Uros Bizjak - - * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1, - *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor, - *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64, - *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext, - *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea, - *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea, - *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent - assembler dialect choice from asm templates. - -2007-02-12 Richard Henderson - - * config/i386/i386.md (fixuns_truncsi_1): New insn. - (fixuns_truncsi2): Use it. - * config/i386/sse.md (vec_setv4sf_0): Export. - * config/i386/i386.c (ix86_build_const_vector): Export. - (ix86_split_convert_uns_si_sse): Rename from - ix86_expand_convert_uns_si_sse and rewrite as a splitter. - * config/i386/i386-protos.h: Update. - -2007-02-13 Manuel Lopez-Ibanez - - PR c/29521 - * c-typeck.c (c_finish_return): Improve warning message. - -2007-02-12 Manuel Lopez-Ibanez - - * alias.c (find_symbolic_term): Delete unused function. - -2007-02-12 Uros Bizjak - - * config/i386/i386.md (paritydi2, paritysi2): New expanders. - (paritydi2_cmp, paritydi2_cmp): New insn and split patterns. - (*parityhi2_cmp, *parityqi2_cmp): New insn patterns. - -2007-02-12 Eric Botcazou - - * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. - * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on - the function, temporarily point the debug interface to the null one. - -2007-02-12 Eric Botcazou - - * dwarf2out.c (round_up_to_align): New static function. - (field_byte_offset): Use it to round the offset. - -2007-02-12 Richard Henderson - - * config/alpha/alpha.md (bswapsi2, bswapdi2): New. - (inswl_const): Export. - -2007-02-12 Richard Henderson - - * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the - result mode of the libcall, convert back to outmode. - -2007-02-12 Roger Sayle - - * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2. - (bswapdi2): New define_expand to implement 32-bit implementation. - -2007-02-12 Nick Clifton - - * doc/invoke.texi (Overall Options): Document --help=. - * gcc.c (target_help_flag): Rename to print_subprocess_flag. - (cc1_options): Pass --help= on to cc1. - (display_help): Add description of --help=. - (process_command): Add code to handle --help=. Allow translated - --help and --target-help switches to be passed on to compiler - sub-process. - (main): Remove unused if statement. - * opts.c (columns): Remove. - (LEFT_COLUMN): Define. - (wrap_help): Add columns argument. - (print_filtered_help): Change parameters to be an include bitmask, - an exclude bitmask, an any bitmask and the column width. Move the - code to display the params list here. Add code to display the - status of options rather than their descriptions if the quiet flag - is not active. - (print_specific_help): Change parameters to be an include bitmask, - an exclude bitmask and an any bitmask. Move code to look up the - column width here. Decide upon the title for an options listing. - (common_handle_options): Add code to handle --help=. Adapt code - for --help and --target-help to use the revised form of the - print_specific_help function. - (print_help): Delete. - (print_param_help): Delete. - (print_switch): Delete. - * opts.h (cl_lang_count): Add prototype. - (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS, - CL_MAX_OPTION_CLASS): New defines. - * optc-gen.awk: Add construction of cl_lang_count. - * c.opt: Add Warning attribute to warning options and Optimization - attribute to optimization options. - * common.opt: Likewise. - Add --help=. - Add -fhelp and -ftarget-help as aliases for the transformed --help - and --target-help options. - * opt-functions.awk: Add code to handle Warning and Optimization - attributes. - -2007-02-12 Richard Henderson - - * config/alpha/constraints.md: New file. - * config/alpha/alpha.c: Include tm-constrs.h. - (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p, - alpha_extra_constraint): Remove. - (alpha_emit_conditional_branch): Use satisfies_constraint_*. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove. - (EXTRA_CONSTRAINT): Remove. - * config/alpha/alpha.md: Include constraints.md. - (adddi splitter): Use satisfies_constraint_*. - * config/alpha/predicates.md (add_operand): Likewise. - (sext_add_operand, addition_operation): Likewise. - -2007-02-12 Dorit Nuzman - - PR tree-optimization/29145 - * tree-data-ref.c (base_addr_differ_p): Make us more conservative - in our handling of restrict qualified pointers. - -2007-02-12 Manuel Lopez-Ibanez - - PR middle-end/7651 - * doc/invoke.texi (Wunused-value): Update description. - (Wextra): Delete item. - * opts.c (set_Wextra): Don't use the value of Wextra to set the - value of Wunused-value. - * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings. - (c_finish_stmt_expr): Don't check extra_warnings. - (emit_side_effect_warnings): The caller is responsible to check - warn_unused_value. - -2007-02-11 Roger Sayle - Matt Thomas - - * simplify-rtx.c (simplify_relational_operation_1): Correct typo. - -2007-02-11 Roger Sayle - - * simplify-rtx.c (simplify_relational_operation_1): Optimize - comparisons of POPCOUNT against zero. - (simplify_const_relational_operation): Likewise. - -2007-02-11 Manuel Lopez-Ibanez - - * doc/invoke.texi (Wextra): Delete outdated paragraph. - -2007-02-11 Manuel Lopez-Ibanez - - * dwarf2out.c (root_type): Delete unused function. - -2007-02-11 Manuel Lopez-Ibanez - - * genattrtab.c (contained_in_p): Delete unused function. - (write_expr_attr_cache): Likewise. - -2007-02-11 Jan Hubicka - - * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the - previous patch. - -2007-02-11 Steven Bosscher - - * fwprop.c (try_fwprop_subst): Use set_unique_reg_note - to add the REG_EQ* note. - * see.c (see_merge_one_use_extension): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. Also don't - turn REG_EQUAL notes into REG_EQUIV notes if the target - register may have more than one set. - * function.c (assign_parm_setup_reg): Use set_unique_reg_note. - * gcse.c (try_replace_reg): Likewise. - * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note. - * calls.c (fixup_tail_calls): Likewise. Abort if there is - more than one REG_EQUIV note. - * reload1.c (gen_reload): Use set_unique_reg_note. - -2007-02-11 Uros Bizjak - - * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define. - (ix86_builtin_conversion): New function. - -2007-02-06 Mark Mitchell - - PR target/29487 - * tree.h (DECL_REPLACEABLE_P): New macro. - * except.c (set_nothrow_function_flags): Likewise. - -2007-02-11 Tehila Meyzels - Ira Rosen - Dorit Nuzman - - * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook. - * targhooks.c (default_builtin_vectorized_conversion): New. - * targhooks.h (default_builtin_vectorized_function): New declaration. - * target.h (struct vectorize): Add builtin_conversion field. - * tree-vectorizer.h (type_conversion_vec_info_type): New enum - stmt_vec_info_type value. - (vectorizable_conversion): New declaration. - * tree-vect-analyze.c (vect_analyze_operations): Add - vectorizable_conversion call. - * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New. - * tree-vect-transform.c (vectorizable_conversion): New function. - (vect_transform_stmt): Add case for type_conversion_vec_info_type. - * tree-vect-generic.c (expand_vector_operations_1): Consider correct - mode. - * config/rs6000/rs6000.c (rs6000_builtin_conversion): New. - (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined. - (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX - or ALTIVEC_BUILTIN_VCFSX. - -2007-02-10 John David Anglin - - PR target/30634 - * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero - CONST_DOUBLE and operand 0 is a hard register. - (movdi): For 64-bit target, remove code to force CONST_DOUBLE to - memory. Fail if operand 1 is a non-zero CONST_INT and operand 0 - is a hard floating-point register. - -2007-02-10 Richard Henderson - Jakub Jelinek - Alexandre Oliva - - * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c. - * builtin-types.def (BT_WORD): Make unsigned. - (BT_FN_VOID_PTR_WORD_WORD_PTR): New. - * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. - (BUILT_IN_EMUTLS_REGISTER_COMMON): New. - * c-decl.c (grokdeclarator): Don't error if !have_tls. - * c-parser.c (c_parser_omp_threadprivate): Likewise. - * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for - emulated tls. - * expr.c (emutls_var_address): New. - (expand_expr_real_1): Expand emulated tls. - (expand_expr_addr_expr_1): Likewise. - * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. - * output.h (emutls_finish): Declare. - * toplev.c (compile_file): Call it. - * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the - address before wrapping in CONST. - * varasm.c (emutls_htab, emutls_object_type): New. - (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. - (get_emutls_object_name, get_emutls_object_type): New. - (get_emutls_init_templ_addr, emutls_decl): New. - (emutls_common_1, emutls_finish): New. - (assemble_variable): When emulating tls, swap decls; generate - constructor for the emutls objects. - (do_assemble_alias): When emulating tls, swap decl and target name. - (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT - for emulated tls. - * varpool.c (decide_is_variable_needed): Look at force_output. - Recurse for emulated tls. - (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant - with decide_is_variable_needed. - * emutls.c: New file. - * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit - tls_object for real tls. - -2007-02-10 Kaz Kojima - - PR rtl-optimization/29599 - * reload1.c (eliminate_regs_in_insn): Take the destination - mode into account when computing the offset. - -2007-02-09 Stuart Hastings - Richard Henderson - - * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New. - * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New. - * config/i386/i386.md (fixuns_truncsi2, fixuns_truncsfhi2, - fixuns_truncdfhi2): New. - (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse. - (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse. - (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse. - (floatunssidf2): Allow nonimmediate source. - * config/i386/sse.md (movdi_to_sse): New. - (vec_concatv2di): Drop '*'. - * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse, - ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse, - ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse): - New. - * config/i386/i386.c (ix86_expand_convert_uns_si_sse, - ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse, - ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse, - ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New. - (ix86_build_signbit_mask): Fix decl of v, refactor to call - ix86_build_const_vector. - (x86_emit_floatuns): Rewrite. - -2007-02-10 Manuel Lopez-Ibanez - - * genautomata.c (longest_path_length): Delete unused function. - (struct state): Delete unused longest_path_length. - (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro. - (get_free_state): Delete unused. - -2007-02-09 Jan Hubicka - - * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30. - * doc/invoke.texi (inline-unit-growth): Update default value. - - * Makefile.in (passes.o, ipa-inline.o): Add dependencies. - * cgraphbuild.c (build_cgraph_edges): Compute frequencies. - (rebuild_cgraph_edges): Likewise. - * cgraph.c (cgraph_set_call_stmt): Add new argument frequency. - (dump_cgraph_node): Dump frequencies. - (cgraph_clone_edge): Add frequency scales. - (cgraph_clone_node): Add freuqnecy. - * cgraph.h (cgraph_edge): Add freuqnecy argument. - (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants. - (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update. - * tree-pass.h (TODO_rebuild_frequencies): New constant. - * cgraphunit.c (verify_cgraph_node): Verify frequencies. - (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge. - (save_inline_function_body): Likewise. - * ipa-inline.c: inluce rtl.h - (cgraph_clone_inlined_nods): Update call of cgraph_clone_node. - (cgraph_edge_badness): Use frequencies. - (cgraph_decide_recursive_inlining): Update clonning. - (cgraph_decide_inlining_of_small_function): Dump frequency. - * predict.c (estimate_bb_frequencies): Export. - * predict.h (estimate_bb_frequencies): Declare. - * tree-inline.c (copy_bb): Watch overflows. - (expand_call_inline): Update call of cgraph_create_edge. - (optimize_inline_calls): Use TODO flags to update frequnecies. - * passes.h: Include predict.h - (init_optimization_passes): Move profile ahead. - (execute_function_todo): Handle TODO_rebuild_frequencies. - -2007-02-09 Roger Sayle - - * config/alpha/alpha.c (emit_insxl): Force the first operand of - the insbl or inswl pattern into a register. - -2007-02-09 Roger Sayle - - * config/ia64/ia64.md (bswapdi2): New define_insn. - -2007-02-09 Richard Henderson - - * config/i386/constraints.md (Ym): New constraint. - * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints. - (movdi_1_rex64): Split sse and xmm general register moves from - memory move alternatives. Use conditional register constraints. - (movsf_1, movdf_integer): Likewise. - (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise. - (movdf_integer_rex64): New. - (pushsf_rex64): Fix output constraints. - * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi. - (sse2_stored): Likewise. - (sse2_storeq_rex64): New. - * config/i386/i386.c (x86_inter_unit_moves): Enable for not - amd and not generic. - (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES - for optimize_size. Remove SF/DFmode hack. - -2007-02-09 Dwarakanath Rajagopal - - * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10. - (bit_SSE4a): New. - -2007-02-09 Nathan Sidwell - Richard Sandiford - - * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*) - (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu. - (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add - m68k/t-mlib to tmake_file. - (m68020-*-elf*, m68k-*-elf*): Likewise. Add t-m68kbare as well. - (m68k*-*-*): Use --with-arch to pick a default for --with-cpu. - (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch. - Allow it to be cf or m68k. Set m68k_arch_family. If that - variable is not empty, add t-$m68k_arch_family to tmake_file. - Add t-mlibs to tmake_file. - * doc/install.texi: Document --with-arch=m68k and --with-arch=cf. - * config/m68k/t-cf: New file. - * config/m68k/t-m68k: Likewise. - * config/m68k/t-mlibs: Likewise. - * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. - (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. - * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC): - Delete. - * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete. - (INSTALL_LIBGCC): Delete. - (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define. - * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. - (M68K_MLIB_CPU): Define. - * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES) - (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete. - (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define. - -2007-02-09 Zdenek Dvorak - Richard Guenther - - PR middle-end/23361 - * fold-const.c (fold_comparison): Handle obfuscated comparisons - against INT_MIN/INT_MAX. - * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump - file if a loop is removed. - -2007-02-09 Joseph Myers - - * calls.c (store_one_arg): Pass correct alignment to - emit_push_insn for non-BLKmode values. - * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an - unaligned stack slot via a suitably aligned slot. - -2007-02-08 DJ Delorie - - * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence - warnings. - (legal_subregs): Use unsigned char, make const. - (m32c_illegal_subreg_p): Use ARRAY_SIZE. Delete unused variables. - -2007-02-08 Paul Brook - - * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no - special interworking needed. - -2007-02-08 Harsha Jagasia - - * config/i386/xmmintrin.h: Make inclusion of emmintrin.h - conditional to __SSE2__. - (Entries below should have been added to first ChangeLog - entry for amdfam10 dated 2007-02-05) - * config/i386/emmintrin.h: Generate #error if __SSE2__ is not - defined. - * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not - defined. - * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not - defined. - -2007-02-08 DJ Delorie - - * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New. - * config/m32c/m32c.c (legal_subregs): New. - (m32c_illegal_subreg_p): New. - * config/m32c/predicates.md (m32c_any_operand): Use it to reject - unsupported subregs of hard regs. - -2007-02-08 Jan Hubicka - - * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with - the same one; always update histograms. - -2007-02-08 Diego Novillo - - * passes.c (init_optimization_passes): Tidy comment. - -2007-02-08 Roger Sayle - - * simplify-rtx.c (simplify_unary_operation_1) : We can - strip zero_extend, bswap and rotates from POCOUNT's argument. - : Likewise, we can strip not, bswap, sign_extend, - zero_extend and rotates from PARITY's argument. - : A byte-swap followed by a byte-swap is an identity. - (simplify_const_unary_operation) : Evaluate the byte-swap - of an integer constant at compile-time. - -2007-02-08 Diego Novillo - - PR 30562 - * tree-flow.h (struct var_ann_d): Remove field 'is_used'. - Update all users. - * tree-ssa-alias.c (compute_is_aliased): Remove. Update all - users. - (init_alias_info): - * tree-ssa-live.c (remove_unused_locals): Do not remove - TREE_ADDRESSABLE variables. - * tree-ssa-structalias.c (compute_points_to_sets): Tidy. - * tree-ssa-operands.c (add_virtual_operand): Remove argument - FOR_CLOBBER. Update all users. - If VAR has an associated alias set, add a virtual operand for - it if no alias is found to conflict with the memory reference. - -2007-02-07 Jan Hubicka - Robert Kidd - - * value-prof.c (visit_hist, free_hist): Return 1 instead of 0. - -2007-02-07 Ian Lance Taylor - - * lower-subreg.c (simple_move): Reject PARTIAL_INT modes. - -2007-02-07 Roger Sayle - - * config/rs6000/rs6000.md (ctz2, ffs2, popcount2, - parity2, smulsi3_highpart, abstf2_internal, allocate_stack, - tablejumpdi, movsi_to_cr_one): Remove constraints from - define_expand's match_operands. - -2007-02-07 Roger Sayle - - * global.c (compute_regsets): Move declatation of "i" inside of - #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure. - -2007-02-07 Jakub Jelinek - - PR c++/30703 - * gimplify.c (gimplify_scan_omp_clauses): Remove special casing - of INDIRECT_REF . - - * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2. - -2007-02-06 J"orn Rennecke - Kaz Kojima - - PR target/29746 - * config/sh/sh.c (expand_cbranchdi4): Use scratch register - properly. - (sh_initialize_trampoline): Add parentheses to avoid a warning. - -2007-02-06 Zdenek Dvorak - - * doc/loop.texi: Document possibility not to perform disambiguation - of loops with multiple latches. - * cfgloopmanip.c (alp_enum_p): Removed. - (add_loop): Handle subloops. Use get_loop_body_with_size. - (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader. - * cfghooks.c (redirect_edge_and_branch_force): Set dominator for - the new forwarder block. - (make_forwarder_block): Only call new_bb_cbk if it is not NULL. - Handle the case latch is NULL. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg - modifications when marking loop exits. - * ifcvt.c (if_convert): Ditto. Mark loop exits even if cfg cannot - be modified. - * loop-init.c (loop_optimizer_init): Do not modify cfg. Call - disambiguate_loops_with_multiple_latches. - * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators - before fix_loop_structure. - * cfgloop.c: Include pointer-set.h and output.h. - (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE, - update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed. - (get_loop_latch_edges, find_subloop_latch_edge_by_profile, - find_subloop_latch_edge_by_ivs, find_subloop_latch_edge, - mfb_redirect_edges_in_set, form_subloop, merge_latch_edges, - disambiguate_multiple_latches, get_loop_body_with_size, - disambiguate_loops_with_multiple_latches): New functions. - (flow_loop_dump): Dump multiple latch edges. - (flow_loop_nodes_find): Handle loops with multiple latches. - (flow_loops_find): Ditto. Do not call canonicalize_loop_headers. - (glb_enum_p): Modified. - (get_loop_body): Use get_loop_body_with_size. - * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag. - (AVOID_CFG_MODIFICATIONS): New constant. - (disambiguate_loops_with_multiple_latches, add_loop, - get_loop_body_with_size): Declare. - * Makefile.in (cfgloop.o): Add pointer-set.h and output.h. - -2007-02-06 Seongbae Park - - PR inline-asm/28686 - * global.c (compute_regsets): New function. - (global_alloc): Refactored ELIMINABLE_REGSET - and NO_GLOBAL_ALLOC_REGS computation out. - (rest_of_handle_global_alloc): Call compute_regsets() - for non-optimizing case. - -2007-02-06 Richard Henderson - - * config/i386/constraints.md (Y2): Rename from Y. - (Yi): New constraint. - * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger, - pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32, - zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2. - (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed, - truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse, - fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse, - floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed, - absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse, - fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x. - * config/i386/mmx.md (mov_internal_rex64, - mov_internal, movv2sf_internal_rex64, movv2sf_internal, - vec_extractv2si_1): Change Y constraints to Y2. - * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si, - vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di): - Change Y constraints to Y2. - (sse2_loadld): Change Y constraints to x. - -2007-02-06 Roger Sayle - - * config/rs6000/rs6000.md (popcount2): Rewrite. - (parity2): New define_expand using rs6000_emit_parity. - * config/rs6000/rs6000.c (rs6000_emit_popcount, - rs6000_emit_parity): New functions. - * config/rs6000/rs6000-protos.h (rs6000_emit_popcount, - rs6000_emit_parity): Prototype here. - -2007-02-06 Ian Lance Taylor - - * lower-subreg.c (simple_move_operand): Reject CONST. - (resolve_clobber): Call validate_change rather than directly - assigning to XEXP (pat, 0). - -2006-02-06 Paolo Bonzini - - * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency. - (tree-ssa-reassoc.o): Add pointer-set.h dependency. - (tree-cfg.o): Remove hashtab.h dependency. - - * tree-ssa-loop-ivopts.c: Include pointer-set.h. - (struct ivopts_data): Change niters to pointer_map_t. - (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete. - (niter_for_exit): Create pointer_map on demand. Change for - pointer_map API. - (tree_ssa_iv_optimize_init): Initialize data->niters to NULL. - (free_loop_data): Destroy data->niters if created and reset field. - (tree_ssa_iv_optimize_finalize): Don't delete data->niters here. - (tree_ssa_iv_optimize_loop): Check for presence of stale data. - - * tree-ssa-reassoc.c: Include pointer-set.h. - (bb_rank): Change to long *. - (operand_rank): Change to pointer_map_t. - (find_operand_rank): Return long, -1 if not found. Declare as inline. - (insert_operand_rank): Accept long. - (operand_entry_hash, operand_entry_eq): Remove. - (get_rank): Return long. Adjust for changes above. - (init_reassoc): Change rank type to long. Adjust creation of bb_rank - and operand_rank. - (fini_reassoc): Delete operand_rank with pointer_map_destroy. - - * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map. - (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete. - (insert_vi_for_tree): Rewrite for pointer_map API. Assert argument - is not NULL. - (lookup_vi_for_tree): Rewrite for pointer_map API. Return varinfo_t - directly since it cannot be NULL. - (get_vi_for_tree): Rewrite for pointer_map API. - (find_what_p_points_to): Adjust for change to lookup_vi_for_tree. - (init_alias_vars): Create vi_for_tree as pointer_map. - (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy. - - * tree-cfg.c: Don't include hashtab.h. - (edge_to_cases): Declare as pointer_map. - (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq): - Delete. - (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback. - (start_recording_case_labels): Create edge_to_cases as pointer_map. - (end_recoding_case_labels): Cleanup edge_to_cases manually before - destroying it. - (record_switch_edge): Delete. - (get_cases_for_edge): Adjust for pointer_map API, inline - record_switch_edge (rewritten for new API), remove goto. - -2006-02-06 Paolo Bonzini - - * Makefile.in (tree-nested.o): Add pointer-set.h dependency. - * tree-nested.c: Include pointer-set.h. - (var_map_elt, var_map_eq, var_map_hash): Delete. - (struct nesting_info): Remove GTY marker. Change the two htab_t's - to pointer_map_t's. - (nesting_info_bitmap_obstack): New. - (lookup_field_for_decl): Adjust for pointer_map API. - (lookup_tramp_for_decl): Adjust for pointer_map API. - (get_nonlocal_debug_decl): Adjust for pointer_map API. - (get_local_debug_decl): Adjust for pointer_map API. - (convert_nl_goto_reference): Adjust for pointer_map API. - (convert_nl_goto_receiver): Adjust for pointer_map API. - (create_nesting_tree): Create outside GGC space. Create bitmap on - the new obstack. Create field_map and var_map as pointer_maps. - (free_nesting_tree): Adjust for changes to create_nesting_tree. - (root): Delete. - (lower_nested_functions): Move root here, no need to NULL it. - Initialize and release the obstack. - -2007-02-06 Paolo Bonzini - - * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): - Remove prototypes and make them non-static. - (struct tree_int_map): Remove. - * tree.h (struct tree_int_map): Move here, turning TO into an - unsigned int. - (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare. - - * tree.h (TREE_COMPLEXITY): Remove. - (struct tree_exp): Remove complexity field. - * tree.c (build1_stat): Don't set it. - -2007-02-06 Dorit Nuzman - Victor Kaplansky - - * tree-vectorizer.c (vect_is_simple_use): Support induction. - (vect_is_simple_reduction): Support reduction with induction as - one of the operands. - (vect_is_simple_iv_evolution): Fix formatting. - * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix - formatting. Don't mark induction phis for vectorization. - (vect_analyze_scalar_cycles): Analyze all inductions, then reductions. - * tree-vect-transform.c (get_initial_def_for_induction): New function. - (vect_get_vec_def_for_operand): Support induction. - (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for - induction case. - (vectorizable_reduction): Support reduction with induction as one of - the operands. - (vectorizable_type_demotion): Use def-type of stmt argument rather - than dummy def-type. - - * tree-ssa-loop.c (gate_scev_const_prop): Return the value of - flag_tree_scev_cprop. - * common.opt (tree-scev-cprop): New flag. - - * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in - call to vect_get_new_vect_var. - -2007-02-06 Ira Rosen - - * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that - vectype is not NULL. - (vect_pattern_recog_1): Likewise. - -2007-02-05 Kaveh R. Ghazi - - * fold-const.c (negate_expr_p): Handle CONJ_EXPR. - (fold_negate_expr): Likewise. - -2007-02-05 Alexandre Oliva - - PR debug/30189 - * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE - even if cv-qualification is the same. - -2007-02-05 Geoffrey Keating - - * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call - __enable_execute_stack on completion. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8, - athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov, - athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul, - athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn, - athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8, - athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load, - athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8, - athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse, - cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387, - swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse, - fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse, - x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed, - floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse, - floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1, - mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn, - umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn, - umuldi3_highpart_rex64, umulsi3_highpart_insn, - umulsi3_highpart_zext, smuldi3_highpart_rex64, - smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld, - x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse, - sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387, - sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387, - sqrtextenddfxf2_i387): Added amdfam10_decode. - - * config/i386/athlon.md (athlon_idirect_amdfam10, - athlon_ivector_amdfam10, athlon_idirect_load_amdfam10, - athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10, - athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10, - athlon_ivector_store_amdfam10): New define_insn_reservation. - (athlon_idirect_loadmov, athlon_idirect_movstore): Added - amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_call_amdfam10, - athlon_pop_amdfam10, athlon_lea_amdfam10): New - define_insn_reservation. - (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8, - athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI, - athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_sseld_amdfam10, - athlon_mmxld_amdfam10, athlon_ssest_amdfam10, - athlon_mmxssest_short_amdfam10): New define_insn_reservation. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_sseins_amdfam10): New - define_insn_reservation. - * config/i386/i386.md (sseins): Added sseins to define_attr type - and define_attr unit. - * config/i386/sse.md: Set type attribute to sseins for insertq - and insertqi. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10, - ssecmpvector_load_amdfam10, ssecmpvector_amdfam10, - ssecomi_load_amdfam10, ssecomi_amdfam10, - sseaddvector_load_amdfam10, sseaddvector_amdfam10): New - define_insn_reservation. - (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (cvtss2sd_load_amdfam10, - cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10, - cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10, - cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10, - cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10, - cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New - define_insn_reservation. - - * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si, - cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq, - cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq, - cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd, - cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute. - -2007-02-05 Harsha Jagasia - - * config/i386/athlon.md (athlon_ssedivvector_amdfam10, - athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10, - athlon_ssemulvector_load_amdfam10): New define_insn_reservation. - (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul, - athlon_ssemul_load_k8): Added amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro. - (x86_sse_unaligned_move_optimal): New variable. - - * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for - m_AMDFAM10. - (ix86_expand_vector_move_misalign): Add code to generate movupd/movups - for unaligned vector SSE double/single precision loads for AMDFAM10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.h (TARGET_AMDFAM10): New macro. - (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10. - Define TARGET_CPU_DEFAULT_amdfam10. - (TARGET_CPU_DEFAULT_NAMES): Add amdfam10. - (processor_type): Add PROCESSOR_AMDFAM10. - - * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match - processor_type in config/i386/i386.h. - Enable imul peepholes for TARGET_AMDFAM10. - - * config.gcc: Add support for --with-cpu option for amdfam10. - - * config/i386/i386.c (amdfam10_cost): New variable. - (m_AMDFAM10): New macro. - (m_ATHLON_K8_AMDFAM10): New macro. - (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, - x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop, - x86_promote_QImode, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, - x86_sse_partial_reg_dependency, x86_sse_typeless_stores, - x86_use_ffreep, x86_use_incdec, x86_four_jump_limit, - x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns): - Enable/disable for amdfam10. - (override_options): Add amdfam10_cost to processor_target_table. - Set up PROCESSOR_AMDFAM10 for amdfam10 entry in - processor_alias_table. - (ix86_issue_rate): Add PROCESSOR_AMDFAM10. - (ix86_adjust_cost): Add code for amdfam10. - -2007-02-05 Harsha Jagasia - - * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm) - instruction set feature flag. Add new (-mpopcnt) flag for popcnt - instruction. Add new SSE4A (-msse4a) instruction set feature flag. - * config/i386/i386.h: Add builtin definition for SSE4A. - * config/i386/i386.md: Add support for ABM instructions - (popcnt and lzcnt). - * config/i386/sse.md: Add support for SSE4A instructions - (movntss, movntsd, extrq, insertq). - * config/i386/i386.c: Add support for ABM and SSE4A builtins. - Add -march=amdfam10 flag. - * config/i386/ammintrin.h: Add support for SSE4A intrinsics. - * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt - and amdfam10. - * doc/extend.texi: Add documentation for SSE4A builtins. - -2007-02-05 Bob Wilson - - * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs. - -2007-02-05 Richard Guenther - - * tree-vectorizer.h (vectorizable_function): Add argument type - argument, change return type. - * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller. - * tree-vect-transform.c (vectorizable_function): Handle extra - argument, return vectorized function decl. - (build_vectorized_function_call): Remove. - (vectorizable_call): Handle calls with result and argument types - differing. Handle loop vectorization factor correctly. - * targhooks.c (default_builtin_vectorized_function): Adjust for - extra argument. - * targhooks.h (default_builtin_vectorized_function): Likewise. - * target.h (builtin_vectorized_function): Add argument type - argument. - * config/i386/i386.c (ix86_builtin_vectorized_function): Handle - extra argument, allow vectorizing of lrintf. - * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust - documentation of target hook. - -2007-02-05 Hans-Peter Nilsson - - PR target/30665 - * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu") - ("*andhi_clear", andu (casesi+45)): For size-changed operand where - memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P. - -2007-02-05 Roger Sayle - - * fold-const.c (fold_unary) : Test for availability of - BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS. - : Likewise, check for availability of BUILT_IN_SIN. - * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS - before canonicalizing sincos to cexpi. - (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi. - -2007-02-05 Roger Sayle - - * config/alpha/alpha.c (alpha_add_builtins): New Helper function. - Set TREE_READONLY and TREE_NOTHROW directly, not via attributes. - (alpha_init_builtins): Use alpha_add_builtins to process tables. - -2007-02-05 Roger Sayle - - * mips-tfile.c (initialize_init_file): Correct endianness test. - -2007-02-05 Kazu Hirata - - * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use - the 'y' constraint. - -2007-02-05 Richard Sandiford - - * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register - saves in a PARALLEL before the register assignments. - -2007-02-05 Richard Sandiford - - * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require - DWARF_FRAME_RETURN_COLUMN to be a general register. - * dwarf2out.c (init_return_column_size): New function, split from... - (expand_builtin_init_dwarf_reg_sizes): ...here. Allow both - DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN - to be nongeneral registers. - * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and - integer registers. - (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define. - (DWARF_ALT_FRAME_RETURN_COLUMN): Define. - -2007-02-04 Zdenek Dvorak - - * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR. - -2007-02-04 Zdenek Dvorak - - * cfgloopmanip.c (loop_delete_branch_edge): Removed. - (remove_path): Use can_remove_branch_p and remove_branch instead - of loop_delete_branch_edge. - * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function. - (tree_transform_and_unroll_loop): Remove dead branches immediately. - Update profile using scale_dominated_blocks_in_loop. - * cfghooks.c (can_remove_branch_p, remove_branch): New functions. - * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p. - (can_remove_branch_p, remove_branch): Declare. - * tree-cfg.c (tree_can_remove_branch_p): New function. - (tree_cfg_hooks): Add tree_can_remove_branch_p. - * cfgrtl.c (rtl_can_remove_branch_p): New function. - (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p. - -2007-02-05 Jan Hubicka - - PR middle-end/30696 - * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed - nodes in cgraph, don't remove offline copy of the function. - -2007-02-04 Jan Hubicka - - * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into - vectors might cause maybe_lookup_element_for_expr to be called - on non-sra-candidate. - -2007-02-04 Kazu Hirata - - * config/bfin/bfin-modes.def, config/bfin/bfin.c, - config/bfin/bfin.md, config/bfin/predicates.md: Follow - spelling conventions. - -2007-02-04 Richard Guenther - - PR middle-end/30636 - * fold-const.c (try_move_mult_to_index): Make sure to not - overflow one dimension of a multi-dimensional array access. - -2007-02-04 Jan Hubicka - - * passes.c (init_optimization_passes): Reindent. - -2007-02-04 Jan Hubicka - Eric Botcazou - - * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to... - (execute_fixup_cfg): Break out the abnormal goto code. - * tree-inline.c (has_abnormal_outgoing_edge_p): ...here. - (make_nonlocal_label_edges): Move here from execute_fixup_cfg. - (optimize_inline_calls): Call make_nonlocal_label_edges. - -2007-02-04 Jan Hubicka - - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return - true when something was changed. - (rename_ssa_copies): When something was changed, do - TODO_remove_unused_locals. - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value): - add TODO_remove_unused_locals when instruction was removed. - -2007-02-04 Jan Hubicka - - * ipa-inline.c (try_inline): Improve debug output; work on already - inline edges too. - (cgraph_decide_inlining_incrementally): Indent; improve debug output; - call try_inline for already inlined edges too when flattening; - inline also functions that make callee growth but overall unit size - reduce. - -2007-02-04 Kazu Hirata - - * config/m32c/bitops.md, config/m32c/jump.md, - config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c, - config/m32r/m32r.h, config/m32r/m32r.md, - config/m32r/predicates.md, config/m68hc11/larith.asm, - config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, - config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md, - config/mips/mips-protos.h, config/mips/mips.c, - config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S, - config/mn10300/mn10300.h, config/mn10300/predicates.md, - config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow - spelling conventions. - - * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md: - Follow spelling conventions. - -2007-02-03 Douglas Gregor - - * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't - warn about C++0x compatibility. - -2007-02-04 Kazu Hirata - - * config/h8300/h8300.c, config/h8300/h8300.h, - config/h8300/h8300.md: Follow spelling conventions. - -2007-02-03 Uros Bizjak - - PR middle-end/30667 - * combine.c (try_combine): Do not substitute source operand - with constants wider than 2 * HOST_BITS_PER_WIDE_INT. - -2007-02-03 Jan Hubicka - - PR gcov-profile/30650 - * value-prof.c (stringop_block_profile): Fix handling of size counter; - do not divide by zero for never executed counters. - (tree_find_values_to_profile): Fix counters. - * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments. - -2007-02-03 Ian Lance Taylor - - * lower-subreg.c (simple_move_operand): New static function, - broken out of simple_move. Reject LABEL_REF, SYMBOL_REF, and HIGH - operands. - (simple_move): Call simple_move_operand. - (find_decomposable_subregs): Add special handling of MEMs. - (can_decompose_p): Rename from cannot_decompose_p. Reverse - meaning of return value. If we see a hard register, test whether - it can store a word_mode value. Change all callers. - -2007-02-03 John David Anglin - - * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New - ftrapv insns and expanders. - (subdi3): Change define_expand operand 1 to arith11_operand, and - operand 2 to reg_or_0_operand. Change constraints of 64-bit insn - pattern to handle reg_or_0 operands. Revise 32-bit insn pattern to - handle 11-bit constants and reg_or_0 operands in operands 1 and 2, - respectively. - - PR middle-end/30174 - * varasm.c (notice_global_symbol): Treat global objects as weak when - flag_shlib is true. - -2007-02-03 Kaveh R. Ghazi - - * emit-rtl.c (dconstpi): Delete. - (dconstsqrt2): New. - (init_emit_once): Delete dconstpi and init dconstsqrt2. - * real.h (dconstpi): Delete. - (dconstsqrt2): New. - * builtins.c (fold_builtin_cabs): Use dconstsqrt2. - (fold_builtin_hypot): Likewise. - -2007-02-03 Tom Tromey - - PR driver/30246 - * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3, - -gcoff3, -gxcoff3, -gvms3 implies -dD. - -2007-02-03 Kazu Hirata - - * c-decl.c, config/avr/avr.c, config/avr/avr.h, - config/m68k/m68k.c, config/m68k/netbsd-elf.h, - config/mn10300/mn10300.c, config/pdp11/pdp11.h, - config/rs6000/cell.md, config/rs6000/darwin.h, - config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c, - config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h, - jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c, - tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment - typos. Follow spelling conventions. - * doc/invoke.texi: Follow spelling conventions. - -2007-02-03 Roger Sayle - - * simplify-rtx.c (simplify_relational_operation_1): Implement some - canonicalization transformations that attempt to simplify integer - constant comparisons to become comparisons against zero. - -2007-02-03 Kaveh R. Ghazi - - * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into - fabs(x)*sqrt(2). - * fold-const.c (fold_binary): Fix comment typos. Fold complex - (x,0)-(0,y) into (x,-y). Likewise (0,y)-(x,0) into (-x,y). - -2007-02-02 Mike Stump - - * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add. - * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add. - (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to - generate a branch island. - -2007-02-02 Bob Wilson - - * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P. - (xtensa_legitimate_address_p): New. - (xtensa_legitimize_address): New. - (xtensa_output_addr_const_extra): New. - * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define. - (BASE_REG_P): New. - (REG_OK_FOR_BASE_P): Use BASE_REG_P. - (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p. - (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address. - (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra. - * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New. - (xtensa_legitimize_address): New. - (xtensa_output_addr_const_extra): New. - -2007-02-02 Steve Ellcey - - * config/ia64/ia64.c (ia64_print_operand): Fix compare strings. - -2007-02-02 Ian Lance Taylor - - * expmed.c (expand_divmod): Add comment. - -2007-02-02 Kazu Hirata - - * emit-rtl.c (renumber_insns): Remove. - * flags.h: Remove the extern for flag_renumber_insns. - * rtl.h: Remove the prototype for renumber_insns. - * toplev.c (flag_renumber_insns): Remove. - -2007-02-02 Hui-May Chang - - Revert for x86 darwin: - 2005-06-19 Uros Bizjak - - * config/i386/i386.c (ix86_function_arg_regno_p): Put back the - code before the following patch under TARGET_MACHO. - (ix86_function_value_regno_p): Likewise. - -2007-02-02 Kaveh R. Ghazi - - * fold-const.c (negate_expr_p, fold_negate_expr): Handle - COMPLEX_EXPR. - -2007-02-02 Maxim Kuvyrkov - - PR target/29682 - * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory - loads to general or fp registers. Add comments. - * config/ia64/ia64.md (reg_pred_prefix): Add comment. - -2007-02-02 Paolo Bonzini - - * pointer-set.c (insert_aux): Only return insertion slot. - (pointer_set_insert): Adjust. - (pointer_set_traverse, struct pointer_map_t, pointer_map_create, - pointer_map_destroy, pointer_map_insert, pointer_map_contains, - pointer_map_traverse): New. - * pointer-set.h (pointer_set_traverse, struct pointer_map_t, - pointer_map_create, pointer_map_destroy, pointer_map_insert, - pointer_map_contains, pointer_map_traverse): Declare. - -2007-02-02 Jakub Jelinek - - PR middle-end/30473 - * builtins.c (fold_builtin_sprintf): Do not attempt to optimize - sprintf (str, "%s"). Do not optimize sprintf (str, "nopercent", p++). - -2007-02-02 Maxim Kuvyrkov - - * sched-int.h (ds_to_dk, dk_to_ds): Declare functions. - - (struct _dep): New type. - (dep_t): New typedef. - (DEP_PRO, DEP_CON, DEP_KIND): New access macros. - (DEP_STATUS): New access macro. The macro with the same name was - renamed to DEP_LINK_STATUS. - (dep_init): Declare function - - (struct _dep_link): New type. - (dep_link_t): New typedef. - (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros. - (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros. - (DEP_LINK_STATUS): New macro. - (debug_dep_links): New debug function. - - (struct _deps_list): New type. - (deps_list_t): New typedef. - (DEPS_LIST_FIRST): New access macro. - (FOR_EACH_DEP_LINK): New cycle macro. - (create_deps_list, free_deps_list, delete_deps_list): Declare - functions. - (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto. - (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto. - (copy_deps_list_change_con): Ditto. - - (move_dep_link): Declare function. - - (struct _dep_node): New type. - (dep_node_t): New typedef. - (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros. - - (struct haifa_insn_data.back_deps): New field to hold backward - dependencies of the insn. - (struct haifa_insn_data.depend): Rename to forw_deps. Change its type - to deps_list_t. - (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps. - Change its type to deps_list_t. - (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS. - (INSN_DEPEND): Rename to INSN_FORW_DEPS. - (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS. - - (INSN_COST): Move to haifa-sched.c. Use insn_cost () instead. - - (DEP_STATUS): Rename to DEP_LINK_STATUS. Fix typo in the comment. - - (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration - and all callers. - (dep_cost): Declare. - - * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks. - (ds_to_dk, dk_to_ds): New functions. - - (init_dep_1): New static function. - (init_dep): New function. - (copy_dep): New static function. - - (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static - functions. - (detach_dep_link): New static function. - (move_dep_link): New function. - - (dep_links_consistent_p, dump_dep_links): New static functions. - (debug_dep_links): New debugging function. - - (deps_obstack, dl_obstack, dn_obstack): New static variables. - - (alloc_deps_list, init_deps_list): New static functions. - (create_deps_list): New function. - (clear_deps_list): New static function. - (free_deps_list, delete_deps_list, deps_list_empty_p): New functions. - (deps_list_consistent_p, dump_deps_list): New static functions. - (debug_deps_list): New function. - (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New - functions. - (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto. - - (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to - use new scheduler dependencies lists. - (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto. - (sched_analyze): Ditto. Initialize dependencies lists. - (add_forw_dep, compute_forward_dependences): Update to use new - scheduler dependencies lists. - - (init_dependency_caches): Init deps_obstack. - (free_dependency_caches): Free deps_obstack. - - (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use - new scheduler dependencies lists. - (delete_forw_dep, add_or_update_back_forw_dep): Ditto. - (add_back_forw_dep, delete_back_forw_dep): Ditto. - - * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree): - Update to use new scheduler dependencies lists. - (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto. - (debug_dependencies): Ditto. - (schedule_region): Update comments. - - * sched-ebb.c (earliest_block_with_similiar_load): Update to use new - scheduler dependencies lists. - (schedule_ebb): Update comments. - - * rtl.def (DEPS_LIST): Remove. - - * lists.c (unused_deps_list): Remove. - (free_list): Update assertions. - - (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove. - (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto. - - * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations. - (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto. - - * haifa-sched.c (comments): Update. - (insn_cost1): Remove. Inline the code into insn_cost (). - (insn_cost): Update to use new scheduler dependencies lists. Move - processing of the dependency cost to dep_cost (). - (dep_cost): New function. Use it instead of insn_cost () when - evaluating cost of the dependency. Use compatible interface to - interact with the target. - (priority): Update to use new scheduler dependencies lists. - (rank_for_schedule): Ditto. Optimize heuristic that prefers the insn - with greater number of insns that depend on the insn. - (schedule_insn): Update to use new scheduler dependencies lists. Add - code to free backward dependencies lists. Inline and optimize code - from resolve_dep () - see PR28071. - (ok_for_early_queue_removal): Update to use new scheduler dependencies - lists. Update call to targetm.sched.is_costly_dependence hook. - - (fix_inter_tick, try_ready, fix_tick_ready): Update to use new - scheduler dependencies lists. - - (resolve_dep): Remove. Move the logic to schedule_insn (). - (init_h_i_d): Initialize dependencies lists. - - (process_insn_depend_be_in_spec): Rename to - process_insn_forw_deps_be_in_spec. Update to use new scheduler - dependencies lists. - (add_to_speculative_block, create_check_block_twin, fix_recovery_deps): - Update to use new scheduler dependencies lists. - (clear_priorities, calc_priorities, add_jump_dependencies): Ditto. - - * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use - new scheduler dependencies lists. - (build_intra_loop_deps): Ditto. - - * target.h (struct _dep): Declare to use in - gcc_target.sched.is_costly_dependence. - (struct gcc_target.sched.adjust_cost): Fix typo. - (struct gcc_target.sched.is_costly_dependence): Change signature to - use single dep_t parameter instead of an equivalent triad. - (struct gcc_target.sched.adjust_cost_2): Remove. - - * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove. - - * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments. - - * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update - documentation. - (TARGET_SCHED_ADJUST_COST_2): Remove documentation. - - * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler. - (REG_DEP_TRUE): Document. - - * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost. - Change signature to correspond to the targetm.sched.adjust_cost hook. - Update use in TARGET_SCHED_ADJUST_COST_2. - (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST. - (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use - new scheduler dependencies lists. - (ia64_gen_check): Ditto. - - * config/mips/mips.c (vr4130_swap_insns_p): Update to use new - scheduler dependencies lists. - - * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change - signature to correspond to the targetm.sched.is_costly_dependence hook. - (is_costly_group): Update to use new scheduler dependencies lists. - - * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function - instead of INSN_COST () macro. - -2007-02-01 Ian Lance Taylor - - * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn. - -2007-02-01 Guy Martin - - * pa.md (tp_load): Correct mfctl instruction syntax. - -2007-02-01 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_stack_info): Correct - altivec_padding_size calculation on AIX. Improve comment, add - assert to verify that it's right. - - * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for - 64-bit. - -2007-2-01 Seongbae Park - - PR inline-asm/28686 - * global.c (global_alloc): Add mising initialization of - ELIMINABLE_REGSET. - -2007-02-01 Roger Sayle - - * alias.c (init_alias_analysis): Correct whitespace. - * bb-reorder.c (fix_edges_for_rarely_executed_code, - partition_hot_cold_basic_blocks): Likewise. - * builtins.c (expand_builtin_printf, expand_builtin_fprintf, - expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf, - maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, - fold_builtin_snprintf_chk, fold_builtin_printf, - fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2, - do_mpfr_arg3, do_mpfr_sincos): Likewise. - * cfgcleanup.c (cleanup_cfg): Likewise. - * cfgexpand.c (tree_expand_cfg): Likewise. - * fold-const.c (fold_binary) : Likewise. - * function.c (get_next_funcdef_no): Likewise. - * gengtype.c (main): Likewise. - * genmodes.c (main): Likewise. - * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise. - * haifa-sched.c (schedule_block, extend_h_i_d): Likewise. - * ifcvt.c (noce_emit_move_insn): Likewise. - * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order): - Likewise. - * stor-layout.c (get_best_mode): Likewise. - * tree-ssa-loop-niter.c (get_val_for): Likewise. - * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc, - scc_visit, do_ds_constraint, do_complex_constraint, label_visit, - perform_var_substitution, solve_graph): Likewise. - * tree-vrp.c (vrp_finalize): Likewise. - -2007-02-01 Ian Lance Taylor - - * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the - high part of a paradoxical subreg, return a constant zero. - -2007-02-01 Zdenek Dvorak - - * toplev.c (lang_dependent_init): Call init_set_costs. - * loop-init.c (loop_optimizer_init): Do not call init_set_costs. - -2007-02-01 Richard Guenther - - PR middle-end/30656 - * fold-const.c (fold_negate_expr): Allow negating a - constant if overflow does not change. - -2007-02-01 Ralf Wildenhues - - * doc/c-tree.texi (Expression trees): Improve markup. - * doc/tm.texi (Register Classes, Addressing Modes) - (Floating Point): Fix spacing after abbreviations. Fix some - typos. - -2007-02-01 Ben Elliston - - * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout. - * doc/contrib.texi: Likewise. - * doc/install.texi: Likewise. - -2007-01-31 Richard Henderson - Ian Lance Taylor - - * lower-subreg.c: New file. - * rtl.def (CONCATN): Define. - * passes.c (init_optimization_passes): Add pass_lower_subreg and - pass_lower_subreg2. - * emit-rtl.c (update_reg_offset): New static function, broken out - of gen_rtx_REG_offset. - (gen_rtx_REG_offset): Call update_reg_offset. - (gen_reg_rtx_offset): New function. - * regclass.c: Revert patch of 2006-03-05, restoring - reg_scan_update. - (clear_reg_info_regno): New function. - * dwarf2out.c (concatn_loc_descriptor): New static function. - (loc_descriptor): Handle CONCATN. - * common.opt (fsplit_wide_types): New option. - * opts.c (decode_options): Set flag_split_wide_types when - optimizing. - * timevar.def (TV_LOWER_SUBREG): Define. - * rtl.h (gen_reg_rtx_offset): Declare. - (reg_scan_update): Declare. - * regs.h (clear_reg_info_regno): Declare. - * tree-pass.h (pass_lower_subreg): Declare. - (pass_lower_subreg2): Declare. - * doc/invoke.texi (Option Summary): List -fno-split-wide-types. - (Optimize Options): Add -fsplit-wide-types to -O1 list. Document - -fsplit-wide-types. - * doc/rtl.texi (Regs and Memory): Document concat and concatn. - * Makefile.in (OBJS-common): Add lower-subreg.o. - (lower-subreg.o): New target. - -2007-01-31 Kazu Hirata - - * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove. - -2007-01-31 Anatoly Sokolov - - PR target/19087 - * config/avr/avr.c (DWARF2_ADDR_SIZE): Define. - -2007-01-31 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_sqrt): Use MPFR for constant args. - -2007-01-31 Zdenek Dvorak - - * cfgloop.h: Include vec-prim.h. - (enum li_flags): Remove LI_ONLY_OLD. - (loop_iterator): Changed. - (fel_next, fel_init): Iterate over loop tree. - (FOR_EACH_LOOP_BREAK): New macro. - * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to - FOR_EACH_LOOP. - * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto. - * modulo-sched.c (sms_schedule): Ditto. - * tree-vectorizer.c (vectorize_loops): Ditto. - * doc/loop.texi: Update information on loop numbering and behavior of - FOR_EACH_LOOP wrto new loops. - * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, - add_to_evolution_1): Test nestedness of loops instead of comparing - their numbers. - * tree-chrec.c (chrec_fold_plus_poly_poly, - chrec_fold_multiply_poly_poly, chrec_evaluate, - hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num, - reset_evolution_in_loop): Ditto. - * Makefile.in (CFGLOOP_H): Add vecprim.h dependency. - -2007-01-31 Dirk Mueller - - * c-common.c (warn_about_parentheses): Separate warning about - un-parenthized sequence of comparison operators from the one - which is supposed to warn about x <= y <= z. - -2007-01-31 Uros Bizjak - - * optabs.h (enum optab_index): Add new OTI_isinf. - (isinf_optab): Define corresponding macro. - * optabs.c (init_optabs): Initialize isinf_optab. - * genopinit.c (optabs): Implement isinf_optab using isinf?f2 - patterns. - * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}. - (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L} - using isinf_optab. - (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using - expand_builtin_interclass_mathfn. - * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM. - * config/i386/i386.md (UNSPEC_FXAM): New constant. - (fxam2_i387): New insn pattern. - (isinf2) New expander to implement isinf, isinff and isinfl - built-in functions as x87 inline asm. - -2007-01-31 Kazu Hirata - - * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New. - -2007-01-30 Eric Christopher - - * config.gcc: Add geode. - -2007-01-31 Kazu Hirata - - * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c, - ipa-inline.c, tree-profile.c, tree-ssa-live.c, - tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c, - value-prof.c: Fix comment typos. - -2007-01-30 Manuel Lopez-Ibanez - - PR c++/24745 - * doc/invoke.texi (Wpointer-arith): Document warning. - -2007-01-30 Janis Johnson - - * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from - the list of discrepancies from the draft TR. - -2007-01-30 Dirk Mueller - - PR c++/30601 - * doc/invoke.texi (-Wreturn-type): Update description to - match new behavior. - -2007-01-30 Richard Sandiford - - * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p. - -2007-01-30 Uros Bizjak - - * builtins.c (expand_builtin_int_interclass_roundingfn): New function - to handle optabs that operate on floating point input argument and - output to integer output. - (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ... - (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here. - (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using - expand_builtin_interclass_mathfn (). - * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387. - (ilogbsi2): Remove. - (ilogbxf2, ilogb2): New expanders to implement ilogb, ilogbf and - ilogbl built-in functions as x87 intrinsics. - -2007-01-30 Richard Guenther - - PR middle-end/27657 - * dwarf2out.c (reference_to_unused): Query varpool if the - variable was output. - -2007-01-30 Richard Guenther - - PR middle-end/30313 - * passes.c (execute_one_pass): Reset in_gimple_form to not - confuse non-unit-at-a-time mode. - -2007-01-29 Roger Sayle - Richard Guenther - - * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to - avoid undefined behaviour on overflow. Use force_fit_type_double - to construct the constant with the specified TREE_OVERFLOW. - -2007-01-29 Janis Johnson - - * config/dfp-bit.c: Add parameterized support for fp exceptions. - * config/dfp-bit.h: Ditto. - -2007-01-29 Manuel Lopez-Ibanez - - * c-decl.c (pop_scope): Replace warnings with call to - warn_for_unused_label. - * c-common.h (warn_for_unused_label): Declare. - * c-common.c (warn_for_unused_label): Define. - -2007-01-29 Manuel Lopez-Ibanez - - * tree-optimize.c (update_inlined_to_pointers): Delete unused - function. - -2007-01-29 Janis Johnson - - * Makefile.in (USER_H): Remove decfloat.h. - * ginclude/decfloat.h: Delete, moving contents to ... - * ginclude/float.h: Add support for decimal floating point, - guarded by __STDC_WANT_DEC_FP__. - -2007-01-29 Mike Stump - - * doc/gccint.texi (Top): Rename Loop Representation to Loop - Analysis and Representation to resolve case insensitive conflict. - * doc/loop.texi (Loop Analysis and Representation): Likewise. - -2007-01-28 Daniel Berlin - - * tree.h (struct tree_memory_tag): Add aliases member. - (MTAG_ALIASES): New macro. - * tree-ssa-alias.c (alias_bitmap_obstack): New variable. - (add_may_alias): Remove pointer-set. Update for may_aliases being - a bitmap. - (mark_aliases_call_clobbered): Update for may_aliases being a - bitmap. - (compute_tag_properties): Ditto. - (create_partition_for): Ditto. - (compute_memory_partitions): Ditto. - (dump_may_aliases_for): Ditto. - (is_aliased_with): Ditto. - (add_may_alias_for_new_tag): Ditto. - (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap. - (compute_is_aliased): New function. - (compute_may_aliases): Call compute_is_aliased). - (init_alias_info): Initialize alias_bitmap_obstack. - (union_alias_set_into): New function. - (compute_flow_sensitive_aliasing): Use union_aliases_into. - (have_common_aliases_p): Rewrite to take two bitmaps and use - intersection. - (compute_flow_insensitive_aliasing): Stop using pointer-sets. - Update for bitmaps. - (finalize_ref_all_pointers): Update for add_may_alias changes. - (new_type_alias): Ditto. - * tree-flow-inline.h (may_aliases): Return a bitmap. - * tree-dfa.c (dump_variable): Check for MTAG_P'ness. - * tree-ssa.c (verify_flow_insensitive_alias_info): Update for - may_aliases being a bitmap. - * tree-flow.h (struct var_ann_d): Remove may_aliases member. - may_aliases now returns a bitmap. - * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases - being a bitmap. - * tree-ssa-operands.c (add_virtual_operand): Update for - may_aliases being a bitmap. - -2007-01-29 Daniel Berlin - - PR tree-optimization/30630 - * tree-ssa-structalias.c (do_complex_constraint): Mark correct - variable as changed. - -2007-01-29 Simon Martin - - PR c++/28266 - * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is - expanded only once even if an error occurs. - -2007-01-29 Ben Elliston - - * gcov-io.h (__gcov_indirect_call_profiler): Declare. - (__gcov_average_profiler): Likewise. - (__gcov_ior_profiler): Likewise. - (__gcov_merge_ior): Likewise. - -2007-01-28 Jan Hubicka - - * builtins.c (expand_builtin_memset): Fix typo in my last patch. - * value-prof.c (stringop_block_profile): Likewise. - -2007-01-28 Jan Hubicka - - * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): - Add variant handling histograms; add wrapper. - (clear_storage_via_libcall): Export. - (emit_block_move_hints): Break out from ...; add histograms. - (emit_block_move): ... this one. - (clear_storage_hints): Break out from ...; add histograms. - (clear_storage): ... this one. - (set_storage_via_memset): Handle histogram. - * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare. - (clear_storage_hints, clear_storage_via_libcall): Declare. - (set_storage_via_setmem): Update prototype. - * doc/md.texi (movmem, setmem): Document new arguments. - - * value-prof.c (dump_histogram_value, tree_find_values_to_profile): - Add new histograms. - (stringop_block_profile): New global function. - (tree_stringops_values_to_profile): Profile block size and alignment. - * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and - HIST_TYPE_IOR. - (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler. - (stringop_block_profile): Declare. - * builtins.c: Include value-prof.h. - (expand_builtin_memcpy, expand_builtin_memset): Pass block profile. - * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter. - (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants. - (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update. - * profile.c (instrument_values): Add new counters. - * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to - calls. - * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New. - (tree_init_edge_profiler): Build new profilers. - (tree_gen_average_profiler, tree_gen_ior_profiler): New. - (pass_tree_profile): Add dump. - (tree_profile_hooks): Update. - * Makefile.in (LIBGCOV): Add new constants. - * libgcov.c (__gcov_merge_ior, __gcov_average_profiler, - __gcov_ior_profiler): New. - * config/i386/i386.md (movmem/setmem expanders): Add new optional - arguments. - -2007-01-28 David Edelsohn - - * doc/md.texi (Standard Pattern Names): Document blockage pattern. - -2007-01-28 Zdenek Dvorak - - * tree-ssa-loop-unswitch.c: Include tree-inline.h. - (tree_unswitch_single_loop): Pass eni_size_weights to - tree_num_loop_insns. - * tree-ssa-loop-manip.c: Include tree-inline.h. - (can_unroll_loop_p): Pass eni_size_weights to - tree_num_loop_insns. - * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): - Pass eni_size_weights to estimate_num_insns. - * tree.h (init_inline_once): Export. - * toplev.c (backend_init): Call init_inline_once. - * cgraphunit.c (cgraph_process_new_functions, - cgraph_analyze_function): Pass eni_inlining_weights to - estimate_num_insns. - * ipa-inline.c (compute_inline_parameters): Ditto. - * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights - to estimate_num_insns. - (try_unroll_loop_completely): Pass eni_size_weights to - tree_num_loop_insns. - * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights - ot estimate_num_insns. - * tree-ssa-loop-prefetch.c: Include tree-inline.h. - (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns. - * tree-inline.c (eni_inlining_weights, eni_size_weights, - eni_time_weights): New variables. - (init_inline_once): Initialize them. - (struct eni_data): Mew. - (estimate_num_insns_1, estimate_num_insns): Use weights. - * tree-inline.h (struct eni_weights_d): New. - (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare. - (estimate_num_insns): Declaration changed. - * cfgloop.h (tree_num_loop_insns): Declaration changed. - * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o, - tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency. - -2007-01-28 Zdenek Dvorak - - * tree-data-ref.c (conflict_fn): Assert that the number of affine - relations in the conflict function is valid. - -2007-01-27 Ian Lance Taylor - - * common.opt: Add fstrict-overflow. - * opts.c (decode_options): Set flag_strict_overflow if -O2. - * flags.h (TYPE_OVERFLOW_WRAPS): Define. - (TYPE_OVERFLOW_UNDEFINED): Define. - (TYPE_OVERFLOW_TRAPS): Define. This replaces TYPE_TRAP_SIGNED. - Replace all uses. - * tree.h (TYPE_TRAP_SIGNED): Don't define. - * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED. - (fold_negate_expr): Likewise. - (make_range): Likewise. - (extract_muldiv_1): Likewise. - (maybe_canonicalize_comparison): Likewise. - (fold_comparison): Likewise. - (fold_binary): Likewise. - (tree_expr_nonnegative_p): Likewise. - (tree_expr_nonzero_p): Likewise. - * tree-vrp.c (compare_values): Likewise. - (extract_range_from_binary_expr): Likewise. - (extract_range_from_unary_expr): Likewise. - * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): - Likewise. - (nowrap_type_p): Likewise. - * tree-scalar-evolution.c (simple_iv): Likewise. - * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS. - (build_range_check): Likewise. - (extract_muldiv_1): Likewise. - (fold_comparison): Likewise. - * tree-vrp.c (vrp_int_const_binop): Likewise. - (extract_range_from_unary_expr): Likewise. - * convert.c (convert_to_integer): Likewise. - * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS. - (fold_comparison): Likewise. - (fold_binary): Likewise. - * optabs.c (optab_for_tree_code): Likewise. - * tree-vectorizer.c (vect_is_simple_reduction): Likewise. - * simplify-rtx.c (simplify_const_relational_operation): Check - flag_strict_overflow and flag_trapv. - (simplify_const_relational_operation): Likewise. - * doc/invoke.texi (Option Summary): Mention -fstrict-overflow. - (Optimize Options): Add -fstrict-overflow to -O2 list. Document - -fstrict-overflow. - -2007-01-27 Roger Sayle - - * tree.c (tree_fold_gcd): Delete. - * tree.h (tree_fold_gcd): Remove prototype. - * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to - test whether one constant integer is a multiple of another. Instead - call int_const_binop with TRUNC_MOD_EXPR and test for a zero result. - * fold-const.c (multiple_of_p): We've determined both TOP and - BOTTOM are integer constants so we can call int_const_binop directly - instead of the more generic const_binop. - -2007-01-27 Roger Sayle - - * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and - 1*X check that the constant hasn't overflowed, to preserve the - TREE_OVERFLOW bit. - (round_up): Provide an efficient implementation when rouding-up an - INTEGER_CST to a power-of-two. - -2007-01-28 Ralf Wildenhues - - * doc/sourcebuild.texi: Add comma for clarity. - * doc/extend.texi: Fix some typos. - * doc/passes.texi: Likewise. - * doc/cppinternals.texi: Likewise. - * doc/c-tree.texi: Likewise. - * doc/tree-ssa.texi: Likewise. - * doc/install.texi: Likewise. - -2007-01-27 Jan Hubicka - - * tree-sra.c (sra_walk_function): Don't rely on aliases being build. - (pass_sra): Do not require alias information. - * passes.c (init_optimization_passes): Add SRA - -2007-01-27 Steven Bosscher - - * tracer.c (rest_of_handle_tracer): We already cleaned - up the CFG in tracer() so don't do it here again. - * cfgcleanup.c (rest_of_handle_jump2): Don't repeat - cleanup_cfg here, either. And don't call renumber_insns. - - * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END - and BB_HEAD are in the insn stream here. Instead make sure - that BB_INSN is valid on all insns. Also, do check here that - there are no pending branch predictions... - (rtl_verify_flow_info): ...instead of doing it here. Checks - for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to - here. - -2007-01-26 Roger Sayle - - * config/i386/i386.c (ix86_swap_binary_operands_p): New helper - function to simplify/factorize operand order canonicalization. - (ix86_fixup_binary_operands): Reorganize using the above function. - (ix86_binary_operator_ok): Likewise. - -2007-01-27 Jakub Jelinek - - * genattrtab.c (struct attr_value_list, insn_code_values): Move to - file scope from optimize_attrs. - (simplify_test_exp): If insn_code_values is not NULL, use it to speed - up search. - (optimize_attrs): Clear insn_code_values after freeing it. - -2007-01-26 Zdenek Dvorak - - * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from - a parts.base assignment. - -2007-01-26 Zdenek Dvorak - - * tree-data-ref.c (dump_subscript): Use dump_conflict_function. - (compute_subscript_distance, initialize_data_dependence_relation, - finalize_ddr_dependent, analyze_ziv_subscript, - analyze_siv_subscript_cst_affine, - compute_overlap_steps_for_affine_univar, - compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine, - analyze_siv_subscript, analyze_miv_subscript, - analyze_overlapping_iterations, subscript_dependence_tester_1, - compute_self_dependence, free_dependence_relation): Work - with affine_fn instead of chrecs. - (dump_affine_function, dump_conflict_function, affine_function_equal_p, - common_affine_function, affine_function_base, - affine_function_constant_p, affine_fn_op, affine_fn_plus, - affine_fn_minus, affine_fn_free, conflict_fn_not_known, - conflict_fn_no_dependence, free_conflict_function, free_subscripts, - conflict_fn, affine_fn_cst, affine_fn_univar): New functions. - (all_chrecs_equal_p): Removed. - * tree-data-ref.h (affine_fn, conflict_function): New types. - (struct subscript): Change type of conflicting_iterations_in_a - and conflicting_iterations_in_b. - -2007-01-26 Steve Ellcey - - PR other/30182 - * config/pa/pa.h (TARGET_HPUX_11): New. - * config/pa/pa-hpux11.h (TARGET_HPUX_11): New. - * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11. - -2007-01-26 Daniel Berlin - Richard Guenther - - * tree-ssa-structalias.c (solve_graph): Handle case - we merged the variable to another. - -2007-01-25 Kaveh R. Ghazi - - * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even' - functions. - - * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan, - catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions. - -2007-01-25 DJ Delorie - - * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't - allow changes to modes which don't fit in those registers. - - * reload1.c (choose_reload_regs): Check for invalid subregs before - computing their locations, not after. - -2007-01-25 Geoffrey Keating - - PR 25127 - * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin, - save Altivec registers in an eh_return function. - (compute_vrsave_mask): Likewise. - (rs6000_stack_info): Correct AIX/Darwin stack alignment computation - for saving Altivec registers. - (rs6000_emit_prologue): Don't allocate stack twice in - eh_return function. Correct expected value of altivec_save_offset - when using save_world. Describe save of R0 to stack when using - save_world. Describe stack pointer adjustment when using - save_world. Remove duplicated eh_return parameter register saving. - Update sp_offset variable after save_world. - * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove - darwin-world.asm. - (LIB2FUNCS_EXTRA): Add darwin-world.asm. - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64 - implies Altivec. - -2007-01-25 Steve Ellcey - - * config.gcc (ia64*-*-hpux*): Make posix threads the default. - -2007-01-25 Steve Ellcey - - PR other/30182 - * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines. - * config/ia64/ia64.c (ia64_init_builtins): Ditto. - -2007-01-25 Richard Guenther - - * doc/invoke.texi (-Wcoverage-mismatch): Document. - * common.opt (-Wcoverage-mismatch): New warning option. - * coverage.c (get_coverage_counts): Ignore coverage mismatch - if -Wcoverage-mismatch is given. - -2007-01-25 Razya Ladelsky - - * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA. - (ipcp_driver): Change to static definition. - Add dumping of the ifunctions. - (constant_val_insert): Remove unused parameter. Support for SSA. - (ipcp_propagate_const): Support for SSA. - (ipcp_profile_bb_print): Print only analyzed nodes. - (ipcp_replace_map_create): Remove support for Fortran constant - for now. - * ipa-prop.c (ipa_method_modify_stmt, - ipa_callsite_compute_param): Support for SSA. - * ipa-prop.h (ipcp_driver): Remove declaration. - (IS_VALID_TREE_MAP_INDEX): Add define. - -2007-01-24 Geoffrey Keating - - * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap. - -2007-01-24 Kaveh R. Ghazi - - PR middle-end/30447 - * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a - constant argument to cabs and do it without checking for - -funsafe-math-optimizations. - -2007-01-24 Douglas Gregor - - * c-common.h (RID_FIRST_CXX0X): New. - (RID_LAST_CXX0X): New. - * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered - by -Wall. - * c.opt (Wc++0x-compat): New. - * doc/invoke.texi (-Wc++0x-compat): Document. - -2007-01-24 Kaveh R. Ghazi - - * builtins.c (fold_builtin_carg): New. - (fold_builtin_1): Use it. - -2007-01-24 Jan Hubicka - - * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns. - - * ipa-inline.c (initial_insns, max_insns): Delete. - (compute_max_insns): New function. - (cgraph_decide_inlining_of_small_function): Use it; take minimal - amount of insns as base for code growth. - (cgraph_decide_inlining): Make initial_insns local; do not compute - max_insns. - * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60. - * doc/invoke.texi (inline-unit-growth): Update docs. - -2007-01-24 Jakub Jelinek - - * config/i386/i386.h (x86_cmpxchg16b): Remove const. - (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b. - * config/i386/i386.c (x86_cmpxchg16b): Remove const. - (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b - for CPUs that have PTA_CX16 set. - - PR middle-end/27416 - * gimplify.c (omp_check_private): New function. - (gimplify_scan_omp_clauses): Use it for - firstprivate/lastprivate/reduction. - - PR middle-end/30494 - * gimplify.c (omp_add_variable): Don't call omp_notice_variable - on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs. - - PR middle-end/30421 - * omp-low.c (lower_omp_for_lastprivate): Add dlist argument. - If lower_lastprivate_clauses emits some statements, append them - to dlist rather than body_p and to body_p append an initializer. - (lower_omp_for): Adjust caller. - -2007-01-24 Steve Ellcey - - * target.h (globalize_decl_name): New. - * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New. - * output.h (default_globalize_decl_name): New. - * varasm.c (asm_output_bss): Use globalize_decl_name instead of - globalize_label. - (globalize_decl): Ditto. - (default_globalize_decl_name): New. - * config/ia64/ia64.c (ia64_globalize_decl_name): New. - (ia64_handle_version_id_attribute): New. - (TARGET_ASM_GLOBALIZE_DECL_NAME): New. - (ia64_asm_output_external): Use globalize_decl_name instead - of globalize_label. - * doc/extend.texi (version_id): New pragma. - * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook. - -2007-01-24 Andreas Krebbel - - * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with - _uleb128_t and _Unwind_SWord with _sleb128_t. - * unwind-dw2.c (extract_cie_info, execute_stack_op, - execute_cfa_program, uw_frame_state_for, uw_update_context_1): - Likewise. - * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise. - * unwind-pe.h (read_uleb128, read_sleb128, - read_encoded_value_with_base): Likewise. - * unwind-generic.h: Define _sleb128_t and _uleb128_t types. - -2007-01-24 Richard Guenther - - * builtins.c (expand_builtin_cexpi): Get the fndecl - for cexp in the correct way. - -2007-01-24 Jan Hubicka - - * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS - of calls. - -2007-01-24 Andreas Krebbel - - * c-cppbuiltin.c (builtin_define_type_sizeof): New function. - (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__, - __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__, - __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__, - __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and - __SIZEOF_PTRDIFF_T__. - * doc/cpp.texi: Documentation for the new builtin macros added. - -2007-01-24 Uros Bizjak - - * config/i386/i386.md (tanxf2, tan2, atan2, log2, - log102, log22, expxf2, exp10xf2, exp2xf2): Use op2 - instead of operands[2] to avoid access past the end of array. - -2007-01-24 Richard Sandiford - - * reload1.c (emit_reload_insns): Pass the reload register - for a non-spill output reload through forget_old_reloads_1. - -2007-01-23 Joseph Myers - - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - _SOFT_DOUBLE if doubles use software floating-point. - * config/rs6000/libgcc-ppc-glibc.ver: Export additional long - double functions if _SOFT_DOUBLE, not _SOFT_FLOAT. - * config/rs6000/darwin-ldouble.c: Also compile functions for - hard-float without FPRs. Use fmsub function for all __NO_FPRS__ - cases. Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT. - * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove - commented-out long double override. - (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise. - * config/rs6000/eabispe.h: Likewise. - * config/rs6000/rs6000.c (rs6000_override_options): Don't override - long double for non-SPE. - (rs6000_handle_option): Likewise. - (invalid_e500_subreg): Disallow more subregs involding DImode, - DFmode, TImode or TFmode. - (rs6000_legitimate_offset_address_p): Check TFmode offsets for - E500 double. - (legitimate_lo_sum_address_p): Also check for TFmode for E500 - double. - (rs6000_legitimize_address): Also handle TFmode for E500 double. - (rs6000_legitimize_reload_address): Also handle TFmode for E500 - double. - (rs6000_legitimate_address): Also check for TFmode for E500 - double. - (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double. - (spe_build_register_parallel): Handle TFmode and TCmode. - (rs6000_spe_function_arg): Handle TFmode and TCmode for E500 - double. - (function_arg): Handle TFmode and TCmode for E500 double. - (rs6000_init_libfuncs): Initialize extra libfuncs for soft double - in general. - (print_operand): Handle TFmode and TImode for %y. - (rs6000_generate_compare): Handle TFmode comparisons for E500 - double. - (spe_func_has_64bit_regs_p): Check for TFmode for E500 double. - (rs6000_function_value): Handle TFmode and TCmode for E500 double. - (rs6000_libcall_value): Handle TFmode and TCmode for E500 double. - * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for - TFmode for E500 double. - * config/rs6000/rs6000.md (FP): Allow TF for E500 double. - (floatsidf2): Enable for E500 double. - (movtf_softfloat): Use rs6000_nonimmediate_operand. - (extenddftf2): Change to extenddftf2_fprs. - (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs - depending on TARGET_E500_DOUBLE. - (extendsftf2): Enable for E500 double. - (trunctfdf2): Enable for E500 double. - (trunctfsf2): Change to trunctfsf2_fprs. - (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs - depending on TARGET_E500_DOUBLE. - (floatsitf2): Enable for E500 double. - (fix_trunctfsi2): Change to fix_trunctfsi2_fprs. - (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or - gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE. - (negtf2): Change to negtf2_internal. - (negtf2): New expander. - (abstf2): Enable for E500 double. Call gen_spe_abstf2_tst, - gen_spe_abstf2_cmp or gen_abstf2_internal depending on - TARGET_E500_DOUBLE and flag_unsafe_math_optimizations. - (movdi_internal32): Use rs6000_nonimmediate_operand. - (unnamed splitter): Likewise. - * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR, - TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs. - (SPE64TF, DITI): New mode macros. - (frob_df_di): Change to frob__; allow more - modes. - (frob_tf_ti): New. - (frob__di_2): New. - (frob_tf_di_8_2): New. - (frob_di_df): Change to frob_di_; allow more modes. - (frob_ti_tf): New. - (frob_di_df_2): Change to frob___2; allow - more modes. - (frob_ti__8_2): New. - (frob_ti_tf_2): New. - (mov_si_e500_subreg0, mov_si_e500_subreg0_2, - mov_si_e500_subreg4, mov_si_e500_subreg4_2): Allow - TFmode. - (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2, - mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New. - (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2, - spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal, - spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New. - (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, - tsttflt_gp): New. - -2007-01-23 Ian Lance Taylor - - * Makefile.in (OBJS-common): Reformat, alphabetize, but put - insn-*.o first. - (OBJS-archive): Reformat, alphabetize. - (OBJS): Change out_object_file to OBJS-md. - -2007-01-23 Uros Bizjak - - * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, - JUMP_P and CALL_P predicates where applicable. - * config/i386/i386.c: Ditto. - * config/i386/i386.md: Ditto. - * config/i386/mmx.md: Ditto. - * config/i386/predicates.md: Ditto. - -2007-01-22 Andreas Schwab - - * config/m68k/m68k.h: Fix comment. - -2007-01-22 Jan Hubicka - - * passes.c (init_optimization_passes): Do not rerun - pass_early_warn_uninitialized. - -2007-01-22 Richard Guenther - - PR tree-optimization/30038 - * tree-ssa-math-opts.c (maybe_record_sincos): New static helper - function. - (execute_cse_sincos_1): Likewise. - (execute_cse_sincos): Likewise. - (gate_cse_sincos): Likewise. - (pass_cse_sincos): New pass CSEing sin() and cos() calls using - the cexpi() canonicalization of sincos(). - * tree-pass.h (pass_cse_sincos): Declare. - * passes.c (init_optimization_passes): New pass pas_cse_sincos. - -2007-01-21 Eric Botcazou - - PR rtl-optimization/29329 - * combine.c (replaced_rhs_insn): Rename to i2mod. - (replaced_rhs_value): Rename to i2mod_new_rhs. - (i2mod_old_rhs): New global variable. - (combine_instructions): Adjust for above change. Save a copy of - the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL - note are substituted in the second instruction. - (distribute_notes) : Adjust for above change. Do not - ditch the note if it pertains to the second eliminated register - and this register is mentioned in i2mod_old_rhs. - - Revert: - 2006-09-12 Eric Botcazou - - * combine.c (distribute_notes) : Do not consider SETs past - the insn to which the note was originally attached. - -2007-01-21 Jan Hubicka - - * ipa-inline.c (inlining_mode): Comment, move up. - (cgraph_decide_inlining_incrementally): Do not perform inlining - itself; fix handling of flattening of self recursive functions. - (cgraph_find_cycles): Remove. - (cgraph_flatten_node): Remove. - (cgraph_decide_inlining): Use incremental inliner to handle flattening. - (try_inline): New function. - (cgraph_early_inlining): Update call of - cgraph_decide_inlining_incrementally. Apply inlining here. - (apply_inline): Update call of cgraph_decide_inlining_incrementally. - -2007-01-21 Dirk Mueller - - PR bootstrap/30511 - * tree-vrp.c (check_array_bounds): do not warn - about ADDR_EXPR's of ARRAY_REF's which are immediately - used in binary expressions. - -2007-01-21 Ira Rosen - - * tree-vectorizer.h (struct _stmt_vec_info): Add new field - read_write_dep and macros for its access. - * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field. - * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove - argument, call vect_check_interleaving for every independent pair of - data-refs. Mark loads that access the same memory location as a store - in the loop. - (vect_check_dependences): Remove. - (vect_analyze_data_ref_dependences): Remove vect_check_dependences - call, fix the call to vect_analyze_data_ref_dependence. - (vect_analyze_data_ref_access): For statements that access the same - data-ref, check that they are not stores; for loads, check that there - is no store that access the same location. - -2007-01-20 Roger Sayle - Joseph Myers - - * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox. - (-fdump-rtl-stack): Likewise. - (-fno-signed-zeros): Use @minus{} for a minus sign. Correct typo. - (-mcheck-zero-division, -mcpu): Fix under/overfull hbox. - (-mpt-fixed): Use @minus{} for minus sign. - (Using Precompiled Headers): Fix under/overfull hbox. - -2007-01-20 Jan Hubicka - - * tree-flow.h (struct stmt_ann_d): Move references_memory to proper - place within annotation. - -2007-01-20 John David Anglin - - * pa.c (output_move_double): Change array size of xoperands to 4. - -2007-01-20 Jan Hubicka - - * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL - as temporary. - -2007-01-19 Ian Lance Taylor - - * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast - constant to unsigned HOST_WIDE_INT before negating. - -2007-01-19 Ian Lance Taylor - - * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field - to unsigned. - (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison. - (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise. - (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise. - (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise. - (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise. - (realloc_vdef, realloc_vuse): Change second parameter to - unsigned. - (ssa_operand_iterator_d): Change vuse_index and mayuse_index - fields to unsigned. - * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to - unsigned. Change x and lim locals to unsigned. - (realloc_vdef, realloc_vuse): Change num_elem parameter to - unsigned. - (finalize_ssa_vuse_ops): Change old_i local to unsigned. - (copy_virtual_operands): Change i and n locals to unsigned. - -2007-01-19 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_1): Handle builtin fdim. - -2007-01-20 Jan Hubicka - - * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars. - * tree-ssa-structalias.c (compute_points_to_sets): Do call - init_alias_heapvars. - (init_alias_heapvars): Initialize only when not already initialized. - (delete_alias_heapvars): Set heapvar_for_stmt to NULL. - -2007-01-19 Roger Sayle - - * common.opt (fsigned-zeros): New command line option. - * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead - of flag_unsafe_math_optimizations. - * opts.c (set_fast_math_flags): The -ffast-math command line option - implies -fno-signed-zeros. - (fast_math_flags_set_p): Likewise. - - * doc/invoke.texi: Document new -fno-signed-zeros option, and update - the documentation of -ffast-math appropriately. Wrap long lines. - -2007-01-19 Steve Ellcey - - * system.h (ASM_MAKE_LABEL_LINKONCE): Poison. - * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef. - -2007-01-19 Tomas Bily - - * cgraphunit.c (cgraph_finalize_function): Updating of pid - * tree-profile.c: - (tree_init_ic_make_global_vars): New function - (tree_init_edge_profiler): call of tree_init_ic_make_global_vars - (tree_gen_ic_profiler): New function - (tree_gen_ic_func_profiler): New function - (tree_profiling): Added calling of tree_gen_ic_func_profiler - (tree_profile_hooks): Added hook for indirec/virtual calls - * value-prof.c (tree_find_values_to_profile): New case for - indirect calls - (tree_values_to_profile): Call for determining indirect/virtual - counters - (tree_indirect_call_to_profile): New function - (tree_ic_transform): New function - (tree_ic): New function - (find_func_by_pid): New function - (init_pid_map): New function - (tree_value_profile_transformations): Added check for - indirect/virtual call transformation - * value-prof.h (enum hist_type): New counter type for - indirect/virtual calls - (profile_hooks): Added new hook for profiling indirect/virtual - calls - * profile.c (instrument_values): New case for indirect/virtual - call added - * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6 - (GCOV_COUNTER_V_INDIR): New counter type - (GCOV_COUNTER_NAMES): New name of counter "indirect" added - (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual - call added - * cgraph.c: Definition of cgraph_max_pid - (cgraph_create_node): Default init of pid attribute - * cgraph.h: Declaration of cgraph_max_pid - (struct cgraph_node): Added pid attribute - * libgcov.c (__gcov_indirect_call_profiler): New function - (__gcov_one_value_profiler_body): New function - (__gcov_one_value_profiler): Body was moved to - __gcov_one_value_profiler_body and calls it - -2007-01-19 Basile Starynkevitch - - * doc/gty.texi (Options): Document the mark_hook option to GTY. - * gengtype.c (write_types_data, write_func_for_structure, - write_types, ggc_wtd, pch_wtd): Add skip_hooks to - write_types_data, ggc_wtd, pch_wtd for processing mark_hook. - (walk_type, write_func_for_structure): Generate the mark_hook if - needed. - -2007-01-19 Jan Hubicka - - * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of - 'early' argument take inlining mode argument specifying whether to - inline for size/speeed or all functions; add support for flattening; - improve dumpting. - (cgraph_early_inlining): Update call of decide_inlining_incrementally. - -2007-01-19 Manuel Lopez-Ibanez - - PR c++/17947 - * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print - the name of the declared identifier. - -2007-01-19 Dirk Mueller - - * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store - result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid - duplicate evaluation. - -2007-01-19 Uros Bizjak - - * config/i386/i386.md (acos2): Rename from acossf2 and acosdf2. - Macroize expander using X87MODEF12 mode macro. Extend operand 1 - to XFMode, use acosxf2 and truncate result to requested mode. - Use SSE_FLOAT_MODE_P to disable patterns for SSE math. - (asin2): Similarly, with asin expanders. - (*fscalexf4_i387): Rename from *fscalexf4. - (expNcorexf3): New expander. - (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander. - (exp2): Rename from expsf2 and expdf2. Macroize expander using - X87MODEF12 mode macro. Extend operand 1 to XFMode, use expxf2 and - truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable - patterns for SSE math. - (exp102): Similarly, with exp10 expanders. - (exp22): Similarly, with exp2 expanders. - (expm12): Similarly, with expm1 expanders. - (ldexp3): Similarly, with ldexp expanders. - (log2, log102, log22, log1p2, logb2): - Use gen_truncxf2_i387_noop to truncate result. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32 - for ColdFire targets. - -2007-01-19 Nathan Sidwell - Richard Sandiford - - * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro. - (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM. - (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME. - * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override. - (M68K_STATIC_CHAIN_REG_NAME): Likewise. - * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k.md (adddi_dilshr32): Rename to... - (*adddi_dilshr32): ...this. Fix formatting. Remove commented-out - non-canonical pattern. Restrict to !TARGET_COLDFIRE. - (*adddi_dilshr32_cf): New pattern. - (adddi3, subdi3): Remove first alternatives. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k.c (notice_update_cc): If an SFmode move is - implemented using move.l, do not use its cc result for floating-point - comparisons. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint - from accepting 's' constraints if flag_pic. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt) - (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev) - (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change - condition from TARGET_68881 to TARGET_HARD_FLOAT. - -2007-01-19 Sandra Loosemore - - * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add - ColdFire alternatives. - * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro. - * config/m68k/m68k.md (clzsi2): Define for ColdFire - architectures that support ff1 instruction. - -2007-01-19 Richard Sandiford - Julian Brown - - * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case. - * config/m68k/m68k.md (*movsi_cfv4): Fold into... - (*movsi_cf): ...here. Remove unnecessary 'R' from 'Rg'. - Add commentary. - -2007-01-19 Richard Sandiford - - * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT - and return a bool. - (output_move_const_into_data_reg, output_move_simode_const): Delete. - * config/m68k/m68k.c (const_method, const_int_cost): Take a - HOST_WIDE_INT instead of an rtx. - (m68k_rtx_costs): Update call accordingly. - (output_move_const_into_data_reg): Likewise. Fix formatting. - (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx. - Return a bool. - (output_move_simode_const): Update calls after above changes. - Rework to use automatic variables and predicates like MEM_P. - * config/m68k/m68k.md (pushexthisi_const): Update call to - valid_mov3q_const. - -2007-01-19 Dirk Mueller - - * tree-ssa-alias.c (perform_var_substitution): Fix typo - in dump_flags test. - -2007-01-19 Richard Guenther - - * builtins.c (expand_builtin_cexpi): Fall back to expanding - via cexp in case sincos is not available. - -2007-01-19 Richard Guenther - - * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro. - * defaults.h (TARGET_HAS_SINCOS): Default to off. - * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc. - * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise. - * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise. - * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise. - * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise. - * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise. - -2007-01-19 Uros Bizjak - - * config/i386/i386.md (*fpatanxf3_i387, fpatan_extendxf3_i387): - New insn patterns. - (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns. - (atan2xf3): Directly generate RTL pattern. - (atan23): Rename from atan2sf3 and atan2df3 and macroize insn - patterns using X87MODEF12 mode macro. Use fpatan_extendxf3_i387 - and truncate result to requested mode. Use SSE_FLOAT_MODE_P to - disable patterns for SSE math. - (atan2): Rename from atansf2 and atandf2 and macroize insn - patterns using X87MODEF12 mode macro. Use fpatan_extendxf3_i387 - and truncate result to requested mode. Use SSE_FLOAT_MODE_P to - disable patterns for SSE math. - -2007-01-19 Alexandre Oliva - - * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0. - -2007-01-18 Roger Sayle - - * fold-const.c (fold_unary) : Optimize away a - VIEW_CONVERT_EXPR to the same type as it's operand. - -2007-01-18 David Edelsohn - - * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if - configured for long double 128. - -2007-01-18 Mike Stump - - * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build - error. - -2007-01-18 Michael Meissner - - * config/i386/i386.c (ix86_compute_frame_layout): Make fprintf's - in #if 0 code type correct. - -2007-01-18 Jan Hubicka - - * tree-ssa-operands.c (vop_free_bucket_size): Never return value - greater than NUM_VOP_FREE_BUCKETS. - -2007-01-18 Daniel Berlin - - * tree-ssa-structalias.c: Update comments. - (ptabitmap_obstack): Removed. - (pta_obstack): New. - (oldpta_obstack): Ditto. - (stats): Add a few members. - (struct variable_info): Remove node, complex, address_taken, and - indirect_target members. Add oldsolution member. - (new_var_info): Do not initialize removed members. - (constraint_expr_type): Remove INCLUDES. - (constraint_graph): Add size, implicit_preds, rep, - indirect_cycles, eq_rep, label, direct_nodes, and complex members. - (FIRST_REF_NODE): New macro. - (LAST_REF_NODE): Ditto. - (FIRST_ADDR_NODE): Ditto. - (find): New function. - (unite): Ditto. - (dump_constraint): Do not handle INCLUDES. - (insert_into_complex): Do not insert duplicate constraints. - (condense_varmap_nodes): Renamed and rewritten into ... - (merge_node_constraints): This. Also fix bug in handling of - offseted copy constraints. - (clear_edges_for_node): No longer need to deal with preds at all, - or removing associated preds/succs. - (merge_graph_nodes): Deal with indirect_cycles. - Don't deal with predecessors. - (add_implicit_graph_edge): New function. - (add_pred_graph_edge): Ditto. - (add_graph_edge): Don't deal with predecessors. - (build_constraint_graph): Removed. - (build_pred_graph): New function. - (build_succ_graph): Ditto. - (struct scc_info): Removed in_component. Added roots, dfs, and - node_mapping. Remove visited_index, unification_queue. - (scc_visit): Deal with union-find we do now. - Deal with cycles with REF nodes. - (collapse_nodes): Renamed and rewritten to ... - (unify_nodes): This. - (process_unification_queue): Removed. - (topo_visit): Cleanup - (do_da_constraint): Use find. - (do_sd_constraint): Ditto. - (do_ds_constraint): Ditto. - (do_complex_constraint): Ditto. - (init_scc_info): Update for removed and added members. - (find_and_collapse_graph_cycles): Renamed and rewritten into ... - (find_indirect_cycles): This. - (equivalence_class): New variable. - (label_visit): New function. - (perform_variable_substitution): Rewritten. - (free_var_substitution_info): New function. - (find_equivalent_node): Ditto. - (move_complex_constraints): Ditto. - (eliminate_indirect_cycles): Ditto. - (solve_graph): Only propagate changed bits. - Use indirect cycle elimination. - Use find. - (tree_id_t): Rename to tree_vi_t, delete id member, add vi member. - (tree_id_eq): Renamed to ... - (tree_vi_eq): This. Update for member change - (insert_id_for_tree): Renamed and rewritten to ... - (insert_vi_for_tree): This. - (lookup_id_for_tree): Renamed and rewritten to ... - (lookup_vi_for_tree): This. - (get_id_for_tree): Renamed and rewritten to ... - (get_vi_for_tree): Ditto. - (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree. - (process_constraint): Don't handle INCLUDES. - Remove special ADDRESSOF case. - (find_func_aliases): Rewrite to use vi functions instead of id - ones. - (create_function_info_for): Ditto. - (create_variable_info_for): Ditto. - (intra_create_variable_infos): Ditto. - (merge_smts_into): Ditto. - (find_what_p_points_to): Ditto. - (init_base_vars): Ditto. - (init_alias_vars): Ditto. - (remove_preds_and_fake_succs): New function. - (dump_sa_points_to_info): Dump new stats. - (dump_solution_for_var): Use find. - (set_used_smts): Fix formatting. - (compute_points_to_sets): Updated for new functions. - (ipa_pta_execute): Ditto. - -2007-01-18 Kazu Hirata - Richard Sandiford - - * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of - parallels. - * calls.c (expand_call): If the return value is a PARALLEL, - extract its first member. - * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove. - * config/m68k/m68k.c (m68k_output_function_epilogue): Don't - use FUNCTION_EXTRA_EPILOGUE. - (m68k_function_value): Return a PARALLEL if the return value - is of a pointer type. - * config/m68k/netbsd-elf.h (current_function_returns_pointer) - (FUNCTION_EXTRA_EPILOGUE): Remove. - * config/m68k/m68k.md (D0_REG): New constant. - -2007-01-18 Kazu Hirata - - * config/m68k/m68k.c (m68k_output_function_epilogue): Don't - output a NOP for empty epilogues. - -2007-01-18 Richard Sandiford - - * config/m68k/m68k.c (m68k_use_return_insn): Update comments - before function. Extend register save check to include all - registers, not just integer ones. - -2007-01-18 Kazu Hirata - - * config/m68k/m68k-protos.h (use_return_insn): Rename to... - (m68k_use_return_insn): ...this. - * config/m68k/m68k.h (USE_RETURN_INSN): Delete. - * config/m68k/m68k.c (use_return_insn): Rename to... - (m68k_use_return_insn): ...this. - * config/m68k/m68k.md (return): Use m68k_use_return_insn instead - of USE_RETURN_INSN. - -2007-01-18 Nathan Sidwell - - * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to - nearest even, fix denormal rounding overflow. - -2007-01-18 Richard Sandiford - - * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of - f%$smove and f%$move. - (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1. - (extendsfdf2_cf): Use fdmove instead of f%&move. - (truncdfsf2_cf): Use fsmove instead of f%$smove. - (add3_cf, sub3_cf): Use instead of . - -2007-01-18 Richard Sandiford - - * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for - GPR<-GPR moves. - -2007-01-18 Richard Sandiford - - * real.h (real_format): Add a canonical_nan_lsbs_set field. - (coldfire_single_format): Declare. - (coldfire_double_format): Likewise. - * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead - of qnan_msb_set to determine the lower bits of a canonical - NaN significand. - (encode_ieee_double): Likewise. - (encode_ieee_quad): Likewise. - (ieee_single_format): Initialize canonical_nan_lsbs_set. - (mips_single_format): Likewise. - (ieee_double_format): Likewise. - (mips_double_format): Likewise. - (ieee_extended_motorola_format): Likewise. - (ieee_extended_intel_96_format): Likewise. - (ieee_extended_intel_128_format): Likewise. - (ieee_extended_intel_96_round_53_format): Likewise. - (ibm_extended_format): Likewise. - (mips_extended_format): Likewise. - (ieee_quad_format): Likewise. - (mips_quad_format): Likewise. - (vax_f_format): Likewise. - (vax_d_format): Likewise. - (vax_g_format): Likewise. - (i370_single_format): Likewise. - (i370_double_format): Likewise. - (decimal_single_format): Likewise. - (decimal_double_format): Likewise. - (decimal_quad_format): Likewise. - (c4x_single_format): Likewise. - (c4x_extended_format): Likewise. - (real_internal_format): Likewise. - (coldfire_single_format): New real_format. - (coldfire_double_format): Likewise. - * config/pdp11/pdp11.c (pdp11_f_format): Initialize - canonical_nan_lsbs_set. - (pdp11_d_format): Likewise. - * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE - if TARGET_COLDFIRE_CPU. - -2007-01-18 Richard Sandiford - - * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete. - (output_call, m68k_legitimize_call_address): Declare. - * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary - parenthesees. Add support for a 'W' constraint. - (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling. - (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'. - (m68k_symbolic_call, m68k_symbolic_jump): Declare. - * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New - variables. - (override_options): Initialize them. Do not set flag_no_function_cse - for TARGET_ID_SHARED_LIBRARY. - (m68k_output_pic_call): Delete. - (m68k_legitimize_call_address): New function. - (print_operand): Remove the %o prefix. Handle the %p prefix. - (output_call): New function. - (m68k_output_mi_thunk): Use m68k_symbolic_jump. Always load the - target address from the GOT if symbolic jumps are not allowed. - * config/m68k/m68k.md (call, general_operand): Do not set - SYMBOL_REF_FLAG. Use m68k_legitimize_call_address instead. - Merge separate flag_pic and !flag_pic define_insns into... - (*call, *call_value): ...these new patterns. Match the address - rather than the containing MEM and require it to be a call_operand. - Use output_call to generate the asm template. - * config/m68k/predicates.md (const_call_operand): New predicate. - (call_operand): Likewise. - -2007-01-18 Nathan Sidwell - - * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition. - (STACK_GROWS_DOWNWARD): Define to 1. - (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate - comments, emphasizing that these values are only defaults. - * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef. - * config/m68k/m68k.c (const_method): Remove trailing whitespace. - -2007-01-18 Richard Sandiford - - * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling. - -2007-01-18 Kazu Hirata - Richard Sandiford - - * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P) - (FP_REGNO_P): New macros. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P) - (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them. - (EH_RETURN_STACKADJ_RTX): Use A0_REG. - * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros. - -2007-01-18 Nathan Sidwell - - * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) - (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib - to $tmake_file. - * config/m68k/t-floatlib: New file, extracting common code from... - * config/m68k/t-m68kbare, config/m68k/t-m68kelf, - * config/m68k/t-uclinux: Here. - * config/m68k/fpgnulib.c: Do not compile extendeed precision - routines on ColdFire targets. - -2007-01-18 Nathan Sidwell - - * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) - (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*) - (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*) - (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and - explicitly set MOTOROLA to 1. - * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly. - -2007-01-18 Richard Sandiford - Nathan Sidwell - - * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases. - * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete. - * config/m68k/m68020-elf.h (LIB_SPEC): Delete. - * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete. - * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD) - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete. - (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine. - (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete. - * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine. - * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE) - (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete. - (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here. - (DBX_REGISTER_NUMBER): Delete. - * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete. - (PCC_STATIC_STRUCT_RETURN): Don't undefine. - * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define. - -2007-01-18 Richard Sandiford - - * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file. - * config/flat.h: New file. - * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if - OBJECT_FORMAT_FLAT. - * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use - indirect references for -msep-data or -mid-shared-library. - Do not use PC-relative code addresses either. - * config/m68k/m68k.c (override_options): Restrict -fPIC error - to -mpcrel. - * config/m68k/uclinux.h (STARTFILE_SPEC): Define. Use Scrt1.o - for shared libraries and crt1.o for executables. Use crti.o and - crtbegin.o. - (ENDFILE_SPEC): Use crtend.o and crtn.o. - (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given. - Do not add -elf2flt or -shared-lib-id options here. - (LINK_SPEC): Define. Pass -elf2flt if no -elf2flt option is given. - Pass -shared-lib-id if -mid-shared-library, taking the library - identifier from -mshared-library-id if given, otherwise - defaulting to 0. - (EH_FRAME_IN_DATA_SECTION): Do not undefine. - (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise. - (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0 - and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library. - (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data. - * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o - and crtend.o. - * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative - jump sequence for ISA A and ISA A+. - (PICJUMP): Likewise. - -2007-01-18 Richard Sandiford - - * config.gcc (m68k-*-uclinux*): Base the port on the common - and m68k GNU/Linux files rather than on the generic ELF ones. - * config/m68k/uclinux.h (TARGET_VERSION): Override. - (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS. - -2007-01-18 Julian Brown - Richard Sandiford - - * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise. - * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine - before redefining. - * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to - 80 unconditionally. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise. - -2007-01-18 Richard Sandiford - - * doc/install.texi: Document m68k-uclinuxoldabi. - * config.gcc (m68k-*-uclinuxoldabi): New configuration. - * config/m68k/uclinux-oldabi.h: New file, copied from - config/m68k/uclinux.h. - -2007-01-18 Kaz Kojima - - * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it. - * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem. - (m32r_compute_frame_size): Use unsigned for regno. - (m32r_reload_lr): Use gen_frame_mem. - (pop): New. - (m32r_output_function_epilogue): Don't output the function epilogue - textually here. - (m32r_expand_epilogue): New. - (direct_return): Return false if the function has the interrupt - attribute. - (m32r_hard_regno_rename_ok): Remove code for the textual epilogue. - * config/m32r/m32r.md (epilogue): New expander. - (return_lr, return_rte): New insns. - (return): Make it expander. - (return_normal): New expander. - -2007-01-18 Josh Conner - - PR target/30485 - * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add - support for UNLE, UNLT, UNGE, and UNGT. - -2007-01-18 Jan Hubicka - - * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand. - * tree-tailcall (add_virtual_phis): Likewise. - (optimize_tail_call): Return TODOs. - (execute_tail_calls): Return TODOs. - * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO. - * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something - changed. - * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value): - Cleanup cfg using TODO. - * tree-flow.h (cleanup_tree_cfg_loop): Update prototype. - * passes.c (execute_function_todo): When cleanup did something, remove - unused locals. - * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO. - (make_edges): Don't cleanup_cfg. - -2007-01-18 Uros Bizjak - - * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS, - UNSPEC_XTRACT_FRACT]: Use generic code for instructions that - operate on the top of stack. - [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite - register handling of instructions that output to the second - stack slot. - [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove. - (move_for_stack_reg): Special-case check for dead destination - stack slot for constant load of 1.0 inside UNSPEC_TAN. - - * config/i386/i386.md (UNSPEC_TAN): New constant. - (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove. - (fptanxf4_i387, fptan_extendxf4_i387): New patterns - to correctly model move of constant 1.0 to top stack slot. - (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns. - (unnamed peephole2 pattern): Remove corresponding peephole2 - pattern that optimizes tan insn and loading of constant 1.0. - (tanxf2): Use fptanxf4_i387. - (tan2): Rename from tansf2 and tandf2 and macroize insn - patterns using X87MODEF12 mode macro. Use fptan_extendxf4_i387 - and truncate result to requested mode. Use SSE_FLOAT_MODE_P to - disable patterns for SSE math. - (sincos3): Use truncxf2_i387_noop for truncation. - (fyl2x_extendxf3_i387): Use X87MODEF12 for operand 1. - -2007-01-18 Dirk Mueller - Richard Guenther - - PR diagnostic/8268 - * doc/invoke.texi (Warray-bounds): Document -Warray-bounds. - * common.opt (Warray-bounds): Add new warning option. - * c-opts.c (c_common_handle_option): Define -Warray-bounds - if -Wall is given. - * Makefile.in: make tree-vrp.o depend on toplev.h - * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds - is enabled. - (check_array_refs, check_array_bounds, check_array_ref): New. - -2007-01-18 Jan Hubicka - - * tree-ssa-ccp.c (ccp_finalize): Return if something changed. - (execute_ssa_ccp): Return flags conditionally. - * tree-ssa-propagate.c (substitue_and_fold): Return if something was - changed. - * tree-ssa-propagate.h (substitute_and_fold): Update prototype. - -2007-01-18 Steven Bosscher - - * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set - the CLEANUP_CFGLAYOUT flag when in cfglayout mode. - - * Makefile.c (GTFILES): Add cfglayout.h. - * gengtype.c (open_base_files): Likewise. - * cfglayout.c (cfg_layout_function_footer, - cfg_layout_function_header) Reindent to make gengtype happy. - * cfglayout.h (cfg_layout_function_footer, - cfg_layout_function_header): Add GTY(()) marker. - - * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null. - -2007-01-18 Ben Elliston - - * genautomata.c (write_automata): Include xstrerror output in the - error message if writing the DFA description file fails. - -2007-01-17 H.J. Lu - - * config/mips/mips-protos.h (mips_output_external): Make it - return void. - * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed. - * config/mips/mips.c (irix_output_external_libcall): Likewise. - (extern_list): Likewise. - (extern_head): Likewise. - (TARGET_ASM_FILE_END): Likewise. - (mips_file_end): Likewise. - (mips_output_external): Rewritten. - -2007-01-18 Ben Elliston - - * genpreds.c (write_insn_preds_c): Only write out the function - body for regclass_for_constraint if we have register constraints. - -2007-01-17 Tom Tromey - - * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org. - * doc/install.texi (Testing): Use sourceware.org. - (Binaries): Likewise. - (Specific): Likewise. - * doc/contrib.texi (Contributors): Use sourceware.org. - -2007-01-17 Anatoly Sokolov - - * config/avr/avr.h (AVR_HAVE_LPMX): New macro. - (AVR_ENHANCED): Rename to ... - (AVR_HAVE_MUL): ... new. - (avr_enhanced_p): Rename to ... - (avr_have_mul_p): ... new. - (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of - 'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__". - * config/avr/avr.c (avr_enhanced_p): Rename to ... - (avr_have_mul_p): ... new. - (base_arch_s): Rename 'enhanced' to 'have_mul'. - (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of - 'avr_enhanced_p' and 'enhanced'. - (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use - AVR_HAVE_MUL instead of AVR_ENHANCED. - * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED. - (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, - *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL - instead of AVR_ENHANCED. - (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED. - * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__. - (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__. - -2007-01-17 Ian Lance Taylor - - * vec.h (VEC_reserve_exact): Define. - (vec_gc_p_reserve_exact): Declare. - (vec_gc_o_reserve_exact): Declare. - (vec_heap_p_reserve_exact): Declare. - (vec_heap_o_reserve_exact): Declare. - (VEC_OP (T,A,reserve_exact)): New static inline function, three - versions. - (VEC_OP (T,A,reserve)) [all versions]: Remove handling of - negative parameter. - (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact. - (VEC_OP (T,A,copy)) [all versions]: Likewise. - (VEC_OP (T,a,safe_grow)) [all versions]: Likewise. - * vec.c (calculate_allocation): Add exact parameter. Change all - callers. - (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve. - (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1. - (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions. - (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve. - (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1. - (vec_heap_p_reserve_exact): New function. - (vec_heap_o_reserve_exact): New function. - -2007-01-17 Jan Hubicka - - * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p. - -2007-01-17 Eric Christopher - - * config.gcc: Support core2 processor. - -2007-01-16 Jan Hubicka - - * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing - the names, just unlink the chain so we don't crash on dangling - pointers - to dead SSA names. - -2007-01-16 Jan Hubicka - - * cgraph.h (cgraph_decide_inlining_incrementally): Kill. - * tree-pass.h: Reorder to make IPA passes appear toegher. - (pass_early_inline, pass_inline_parameters, pass_apply_inline): - Declare. - * cgraphunit.c (cgraph_finalize_function): Do not compute inling - parameters, do not call early inliner. - * ipa-inline.c: Update comments. Include tree-flow.h - (cgraph_decide_inlining): Do not compute inlining parameters. - (cgraph_decide_inlining_incrementally): Return TODOs; assume to - be called with function context set up. - (pass_ipa_inline): Remove unreachable functions before pass. - (cgraph_early_inlining): Simplify assuming to be called from the - PM as local pass. - (pass_early_inline): New pass. - (cgraph_gate_ipa_early_inlining): New gate. - (pass_ipa_early_inline): Turn into simple wrapper. - (compute_inline_parameters): New function. - (gate_inline_passes): New gate. - (pass_inline_parameters): New pass. - (apply_inline): Move here from tree-optimize.c - (pass_apply_inline): New pass. - * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after - transforming. - * tree-inline.c (optimize_inline_calls): Return TODOs rather than - doing them by hand. - (tree_function_versioning): Do not allocate dummy struct function. - * tree-inline.h (optimize_inline_calls): Update prototype. - * tree-optimize.c (execute_fixup_cfg): Export. - (pass_fixup_cfg): Remove - (tree_rest_of_compilation): Do not apply inlines. - * tree-flow.h (execute_fixup_cfg): Declare. - * Makefile.in (gt-passes.c): New. - * passes.c: Include gt-passes.h - (init_optimization_passes): New passes. - (nnodes, order): New static vars. - (do_per_function_toporder): New function. - (execute_one_pass): Dump current pass here. - (execute_ipa_pass_list): Don't dump current pass here. - -2007-01-16 Janis Johnson - - * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN. - (DFP_NE, DFP_LE, DFP_GE): Return false for NaN. - -2007-01-16 David Edelsohn - - * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT. - (strong_alias): Define. - (__gcc_qmul): Provide non-FMA for soft-float. - (__gcc_qdiv): Same. - (__gcc_qneg): New. - (__gcc_qeq): New. - (__gcc_qle): New. - (__gcc_qge): New. - (__gcc_qunord): New. - (__gcc_stoq): New. - (__gcc_dtoq): New. - (__gcc_qtos): New. - (__gcc_qtod): New. - (__gcc_qtoi): New. - (__gcc_qtou): New. - (__gcc_itoq): New. - (__gcc_utoq): New. - (fmsub): New. - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize - soft-float functions. - * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn - about long double soft float. - -2007-01-16 Dorit Nuzman - Tehila Meyzels - - * tree-vectorizer.h (is_pattern_stmt_p): New. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix - formatting (tabs instead of spaces). Cleanup and clarify setting - of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p. - * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo. - (vectorizable_type_demotion): Check that types are integral. - (vectorizable_type_promotion): Likewise. - (vectorizable_store): Fix typo. Eliminate new-line at end of - comments. - -2007-01-16 Jan Hubicka - - * tree-ssanames.c (release_dead_ssa_names): Remove invalidated - cgraph edges too. - -2007-01-15 Eric Christopher - - * ifcvt.c: Include vec.h, vecprim.h. - (check_cond_move_block): New argument regs. - Reorganize. Add registers used to regs. - (cond_move_process_if_block): Use regs set above as - loop bounds. - -2007-01-15 Eric Christopher - - * config/darwin.h: Update copyright. - (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella. - (LINK_COMMAND_SPEC): Add -u. - (LINK_SPEC): Fix umbrella for above. - -2007-01-15 Joseph S. Myers - - * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from - glibc CVS. - -2007-01-15 Tom Tromey - - * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks. - * doc/install.texi (Testing): Don't mention jacks. - (Configuration): Document --enable-java-maintainer-mode. Move - --with-java-home to libgcj-specific section. Document - --with-ecj-jar. - (Prerequisites): Mention --enable-java-maintainer-mode, ecj1. - -2007-01-15 Jan Hubicka - - * tree-ssa-dce.c (DCE_TODOs): New. - (propagate_necessity): Return if something changed. - (eliminate_unnecessary_stmts): Likewise. - (perform_tree_ssa_dce): Return TODO flags when needed. - (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags. - -2007-01-15 Uros Bizjak - - * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3. - (fyl2x_extendxf3_i387): New insn pattern. - (log2): Rename from logsf2 and logdf2 and macroize insn - patterns using X87MODEF12 mode macro. Extend operand 1 - to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math. - (log102): Ditto. - (log22): Ditto. - (log1p2): Ditto. - (logb2): Ditto. - (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3. - (fyl2xp1_extendxf3_i387): New insn pattern. - (*fxtractxf3_i387): Rename from *fxtractxf3. - (fxtract_extendxf3_i387): New insn pattern. - (ilogbsi2): Use match_dup 3, not match_operand:XF 3. - * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387() - and gen_fyl2xxf3_i387(). - -2007-01-14 Zdenek Dvorak - - * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement. - * cfgloopmanip.c (fix_loop_placement): Made static. Use - get_loop_exit_edges. Changed return type to bool. - * cfgloop.h (fix_loop_placement): Declaration removed. - -2007-01-14 Dorit Nuzman - - * param.h (MIN_VECT_LOOP_BOUND): New. - * params.def (MIN_VECT_LOOP_BOUND): New. - * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another - argument - minimum threshold for number of iterations. - * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another - argument to declaration. - * tree-vect-analyze.c (vect_analyze_operations): Check value of - MIN_VECT_LOOP_BOUND. - * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call - slpeel_tree_peel_loop_to_edge with additional argument. - (vect_do_peeling_for_alignment): Likewise. - * doc/invoke.texi (min-vect-loop-bound): Document new param option. - -2007-01-14 Uros Bizjak - - PR target/30413 - * config/i386/i386.c (print_operand) ['z']: Output 'b' for - operands of size 1. - -2007-01-14 Jan Hubicka - - * tree-dfa.c (remove_referenced_var): New function. - * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and - prune referenced vars list too. - * tree-flow.h (remove_referenced_var): Declare. - -2007-01-14 Jan Hubicka - - * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs - separately. - (remove_stmt_from_eh_region_fn): Do not remove call_exprs. - (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill. - * except.h (verify_eh_throw_table_statements): Kill prototype. - * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions - into call exrepssions. - * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call - eh trhow verifier. - * tree-cfg.c: Include pointer-set.h. - (verify_node_sharing): Work on pointer set. - (verify_eh_throw_stmt_node): New. - (verify_stmts): Use pointers sets, verify throw_stmt. - -2007-01-13 Zdenek Dvorak - - * ipa-reference.c (analyze_function): Consider also addresses taken - in phi nodes. - -2007-01-12 Roger Sayle - - * c-typeck.c (null_pointer_constant_p): Replace use of - TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. - (build_c_cast): Likewise. - -2007-01-12 Roger Sayle - - * tree.h (force_fit_type_double): Remove unused final argument. - * c-common.c (constant_expression_warning): Replace use of - TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. - (convert_and_check): Likewise. - (shorten_compare): Update call to force_fit_type_double. - (c_common_truthvalue_conversion) : Use integer_zerop. - * convert.c (convert_to_pointer): Update call to - force_fit_type_double. - * fold-const.c (force_fit_type_double): Remove overflowed_const - argument. - (int_const_binop, fold_convert_const_int_from_int, - fold_convert_const_int_from_real, fold_div_compare, - fold_sign_changed_comparison, fold_unary, fold_negate_const, - fold_abs_const, fold_not_const): Remove the final argument from - calls to force_fit_type_double. - -2007-01-12 Andrew Pinski - - * configure.ac: Set insn to "nop" for spu-*-* also. - * configure: Regenerate. - -2007-01-12 Olga Golovanevsky - - * builtins.def : Add BUILT_IN_FREE. - -2007-01-12 Jan Hubicka - - PR tree-optimization/30443 - * tree-inline.c (tree_function_versioning): Do not optimize when - cloning for inlining. - -2007-01-12 Zdenek Dvorak - - * doc/loop.texi: Document recording of loop exits. - * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop. - (update_single_exits_after_duplication, - update_single_exit_for_duplicated_loop, - update_single_exit_for_duplicated_loops): Removed. - (duplicate_loop_to_header_edge): Do not call - update_single_exits_after_duplication and - update_single_exit_for_duplicated_loops. - (loop_version): Do not update single_exit information. - (fix_loop_structure): Use record_loop_exits instead of - mark_single_exit_loops. - * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update - the lists of loop exits. - * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force, - split_edge, merge_blocks): Update the lists of loop exits. - * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to - loop_optimizer_init. - * loop-init.c (loop_optimizer_init): Call record_loop_exits instead - of mark_single_exit_loops. - (loop_optimizer_finalize): Call release_recorded_exits. - * tree-ssa-loop.c (tree_loop_optimizer_init): Pass - LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init. - * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not - update single exit information. - * lambda-code.c (perfect_nestify): Ditto. - * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop. - (mark_single_exit_loops): Removed. - (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free, - get_exit_descriptions, rescan_loop_exit, record_loop_exits, - dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New - functions. - (get_loop_exit_edges, single_exit): Use recorded exit lists. - (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits. - (verify_loop_structure): Verify consistency of the exit lists. - (flow_loops_find): Use alloc_loop. Initialize exits hash. - (set_single_exit): Removed. - * cfgloop.h (struct loop_exit): New function. - (struct loop): single_exit_ field replaced by exits field. - (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by - LOOPS_HAVE_RECORDED_EXITS. - (struct loops): Added exits hash. - (mark_single_exit_loops, set_single_exit): Declaration removed. - (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare. - -2007-01-12 Richard Sandiford - - * doc/invoke.texi: Avoid use of @headitem. - -2007-01-12 Richard Sandiford - - * cse.c (cse_insn): Move HAVE_CC0 code after declarations. - -2007-01-12 Richard Sandiford - - * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the - list of targets. - -2007-01-12 Nathan Sidwell - Richard Sandiford - - * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short. - * config/m68k/m68k.opt: Resort options. - (mbitfield, mrtd, mshort): Remove RejectNegative properties. - -2007-01-12 Nathan Sidwell - Richard Sandiford - - * doc/invoke.texi: Document the macros that are defined by - m68k's -mtune and -mhard-float options. - * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare. - (m68k_cpp_cpu_family): Likewise. - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set - of __ucfv*__ macros. Define __mcffpu__ if generating code for - ColdFire FPUs. Define __mcf_cpu_* and __mcf_family_* macros. - * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function. - (m68k_cpp_cpu_family): Likewise. - -2007-01-12 Richard Sandiford - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68* - macros besides mc68000 as tuning macros. Use a switch statement - to set them and mcpu32. - -2007-01-12 Julian Brown - - * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY. - (TARGET_68040_ONLY): Rename to... - (TARGET_68040): ...this. - * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY. - * config/m68k/m68k.md: Likewise. - -2007-01-12 Julian Brown - Nathan Sidwell - Richard Sandiford - - * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to - the -mcpu= argument associated with the --with-cpu setting. - Define M68K_DEFAULT_TUNE to the default -mtune= option, - if different from the one implied by the -mcpu setting. - Accept --with-cpu=FOO if FOO is listed in m68k-devices.def, - using mcpu=FOO as the default CPU option. Set target_cpu_default2. - * doc/invoke.texi: Mention ColdFire in the introduction to the - m68k options. Document the new -march, -mcpu, -mtune, -mdiv, - -mno-div and -mhard-float options. Make -m68881 a synonym for - -mhard-float. Document the previously-undocumented -m5206e, - -m528x, -m5307 and -m5407 options. Tweak the existing option - documentation for consistency. - * doc/install.texi: Mention new --with-cpu arguments. - * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the - default CPU if neither -mcpu nor -march are specified. - (ASM_CPU_SPEC): Pass down -mcpu and -march options. - (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from - TARGET_ISA*. Set the legacy __mcf*__ cpu macros in the same way, - using m68k_tune to decide between families that implement the - same ISA. Use m68k_tune to set __mcfv4e__. - (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC) - (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000) - (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B) - (FL_ISA_C, FL_ISA_MMU): New macros. - (MASK_COLDFIRE): Delete. - (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE) - (TARGET_ISAB): Redefine in terms of m68k_cpu_flags. - (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu. - (TARGET_HARD_FLOAT): Do not define here. - (TARGET_ISAAPLUS, TARGET_ISAC): New macros. - (TUNE_68000): New macro. - (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010. - (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32) - (TUNE_CFV2): Redefine in terms of m68k_tune. - (uarch_type, target_device, fpu_type): New enums. - (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare. - * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881. - (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40) - (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b) - (FL_FOR_isa_c): New macros. - (m68k_isa): New enum. - (m68k_target_selection): New structure. - (all_devices, all_isas, all_microarchs): New tables. - (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu) - (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables. - (MASK_ALL_CPU_BITS): Delete. - (m68k_find_selection): New function. - (m68k_handle_option): Handle -mcpu=, -march= and -mtune=. - Map the legacy target options to a combination of the new ones. - (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and - m68k_cpu_flags. Handle M68K_DEFAULT_TUNE. Use m68k_cpu_flags - to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT - settings. - * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e) - (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask - properties. - (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT. - (march=, mcpu=, mdiv, mhard-float, mtune=): New options. - * config/m68k/m68k-devices.def: New file. - -2007-01-12 Richard Sandiford - Nathan Sidwell - - * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS) - (SUBTARGET_EXTRA_SPECS): New macros. - * config/m68k/linux.h (ASM_SPEC): Remove CPU flags; - use %(asm_cpu_spec) instead. - * config/m68k/m68k-none.h (ASM_SPEC): Likewise. - * config/m68k/openbsd.h (ASM_SPEC): Likewise. - * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise. - (EXTRA_SPECS): Rename to... - (SUBTARGET_EXTRA_SPECS): ...this. - -2007-01-12 Nathan Sidwell - Richard Sandiford - Julian Brown - - * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*) - (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu - to the configuration's default CPU. - (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise. - Remove default masks. - (m680[012]0-*-*): Set the default with_cpu to the first part of - the target name. - (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu. - (m68k*-*-linux): Extend the --with-cpu handling to... - (m680[012]0-*-*, m68k*-*-*): ...these configurations. Allow m68000 - and m68010. Don't set target_cpu_default2. - * doc/install.texi: Document --with-cpu for m68k. - * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define. - * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k) - (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030) - (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT) - (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete. - (ASM_SPEC): Remove use of %(asm_cpu_default). - (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete. - * config/m68k/linux.h (TARGET_DEFAULT): Delete. - (CPP_SPEC): Merge definitions. Do not handle __HAVE_68881__ here. - * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define - __HAVE_FPU__ if TARGET_HARD_FLOAT. - (TARGET_DEFAULT): Delete. - (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec, - cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec. - (CPP_CPU_SPEC): Delete. - (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick - the appropriate string. - (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete. - (CPP_SPEC): Define to NETBSD_CPP_SPEC. - (ASM_SPEC): Don't use %(asm_default_spec). - * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove - TARGET_DEFAULT and add MASK_68881. - * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments. - -2007-01-12 Richard Sandiford - - * config.gcc (m68010-*-netbsdelf*): Add MASK_68010. - (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add - MASK_68010 alongside MASK_68020. - * doc/invoke.texi: Document -m68010. - * config/m68k/m68k.opt (m68010): New. - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010 - if TUNE_68010. - (TUNE_68010): New macro. - * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010) - (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040) - (M68K_CPU_m68332): Add MASK_68010. - * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to - fallback definition. - * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant - defines. - * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010. - (m68k_handle_option): Handle OPT_m68010. Add MASK_68010 - to all entries that use MASK_68020. - (output_move_simode_const, output_move_himode, output_move_qimode) - (output_move_stricthi, output_move_strictqi): Use TARGET_68010 - instead of TARGET_68020 to select clr behavior. Remove comment - about there being no TARGET_68010. - * config/m68k/m68k.md: Likewise throughout. - -2007-01-12 Julian Brown - - * config/m68k/m68k.h (TARGET_ISAB): New macro. - * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4. - * config/m68k/m68k.md: Likewise. - -2007-01-12 Julian Brown - - * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use - TARGET_COLDFIRE_FPU instead of TARGET_CFV4E. - -2007-01-12 Julian Brown - - * config/m68k/m68k.h (TUNE_68040_60): New macro. - * config/m68k/m68k.c (standard_68881_constant_p): Use it. - * config/m68k/m68k.md: Likewise. - -2007-01-12 Julian Brown - Richard Sandiford - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030 - instead of TARGET_68030, TUNE_68040 instead of TARGET_68040, - TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of - TARGET_CPU32. - (TARGET_CPU32): Rename to... - (TUNE_CPU32): ...this. - (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060) - (TUNE_CFV2): New macros. - * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify; - remove conditions that are implied by TARGET_68020. - * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040 - instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32. - (m68k_output_function_epilogue): Likewise. - (m68k_rtx_costs): Likewise. Use TUNE_68060 instead of TARGET_68060 - and TUNE_CFV2 instead of TARGET_5200. Use TUNE_68000_10 instead of - "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and - non-68000 timings. Refactor multiplication and division costs. - (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and - TUNE_CPU32 instead of TARGET_CPU32. - (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040 - and TUNE_68060 instead of TARGET_68060. - * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040, - TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of - TARGET_CPU32. - (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020 - && !TARGET_COLDFIRE" to choose between moveq and clr. - Likewise in the unnamed movsf pattern. - (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than - "!TARGET_68020 && !TARGET_COLDFIRE". Likewise the unnamed - ashiftrt pattern. - -2007-01-12 Richard Sandiford - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount - of tabbing before backslashes. - -2007-01-11 John David Anglin - - * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine. - * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS. - (ASM_OUTPUT_INTERNAL_LABEL): Define. - -2007-01-11 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from - find_interesting_uses_cond. - (find_interesting_uses_cond): Use extract_cond_operands. - (rewrite_use_compare): Use extract_cond_operands and - force_gimple_operand_bsi. Do not call update_stmt. - (determine_use_iv_cost_condition): Use extract_cond_operands. - Return cheaper of using original bound and changing the exit bound. - -2007-01-11 Zdenek Dvorak - - PR tree-optimization/29516 - * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts, - most_expensive_mult_to_index, addr_to_parts, - create_mem_ref, maybe_fold_tmr): Make the type of - fields of TARGET_MEM_REF sizetype. - (move_fixed_address_to_symbol, move_pointer_to_base): - New functions. - * tree.def (TARGET_MEM_REF): Add comment on types of - the operands. - -2007-01-11 Joseph Myers - - * c-common.c (vector_types_convertible_p): Treat opaque types as - always convertible if they have the same size, but not otherwise. - -2007-01-11 Steven Bosscher - - * ifcvt.c (struct noce_if_info): Add comments to the fields. - Remove the b_unconditional field. - (noce_try_sign_mask): Do not look at b_unconditional. - (noce_process_if_block): Do not use merge_if_blocks. Update - the CFG here. Do not set b_unconditional. - (cond_move_process_if_block): Likewise. - (find_cond_trap): Likewise. - (check_cond_move_block): Require simple jump insns at the end - of the basic block. - -2007-01-11 Jan Hubicka - - PR tree-optimization/1046 - * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE - when alias info is not ready. - (pass_tail_recursion): Do not require aliasing. - * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise. - * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise. - * tree-ssa-copy.c (pass_copy_prop): Likewise. - * tree-ssa-forwprop.c (pass_forwprop): Likewise. - * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise. - * passes.c (init_optimization_passes): Execute rename_ssa_copies, - ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion - before inlining. - * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand): - When aliasing is not build, mark statement as volatile. - -2007-01-11 Tom Tromey - - PR preprocessor/15185 - PR preprocessor/20989 - * doc/cppopts.texi <-MT>: Update description of algorithm for - computing default target. - <-M, -MD>: Reword "basename" text. - -2007-01-11 Roger Sayle - - * builtins.c (expand_builtin_pow, expand_builtin_powi, - fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc, - fold_builtin_floor, fold_builtin_ceil, fold_builtin_round, - fold_builtin_int_int_roundingfn, fold_builtin_bitop, - fold_builtin_bswap, real_constp, fold_builtin_pow, - fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign, - do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace - uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. - * convert.c (convert_to_pointer): Likewise. - * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise. - * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop, - const_binop, fold_convert_const_int_from_int, - fold_convert_const_int_from_real, - fold_convert_const_real_from_real, sign_bit_p, - optimize_minmax_comparison, extract_muldiv_1, fold_div_compare, - fold_sign_changed_comparison, fold_unary, fold_comparison, - fold_binary, multiple_of_p, tree_Expr_non_zero_p, - fold_negate_const, fold_abs_const, fold_not_const): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * stor-layout.c (place_field, layout_type): Likewise. - * tree-chrec.c (keep_cast): Likewise. - * tree.c (build_vector, build_real, build_real_from_int_cst, - build_complex): Likewise. - -2007-01-11 Roger Sayle - - * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete. For the time being, - treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW. - -2007-01-11 Paolo Bonzini - - * configure.ac (strict1_warn): Rename to strict_warn. - (WERROR, --enable-werror, symlink hacks, stage1_cflags, - cc_set_by_configure, quoted_cc_set_by_configure, - stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure, - all_boot_languages, all_stagestuff): Remove. - (target_list): Remove bootstrap targets. - * Makefile.in (quickstrap): Unconditionally make a synonym of all. - (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING, - REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS, - SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF, - VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS, - STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build, - stage1_copy, stage2_build, stage2_copy, stageprofile_build, - stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build, - stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap, - bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3, - bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2, - unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2, - restage3, restage4, restageprofile, restagefeedback, bubbleestrap, - cleanstrap, unstrap, restrap, *compare, *compare3, *compare4, - *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1, - stage2-start, stage2, stage3-start, stage3, stage4-start, stage4, - stageprofile-start, stageprofile, stagefeedback-start, stagefeedback, - risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove. - (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS. - (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES. - (mostlyclean): Adjust. - (clean, distclean): Don't mention bootstrap stuff. - * configure: Regenerate. - * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in, - java/config-lang.in, objc/config-lang.in, objcp/config-lang.in, - treelang/config-lang.in (stagestuff): Remove. - * doc/sourcebuild.texi (stage1, stage2, stage3, stage4, - stageprofile, stagefeedback, stagestuff): Remove mention. - -2007-01-11 Nick Clifton - - * config/mcore/predicates.md (mcore_general_movesrc_operand): - Accept CONSTs. - (mcore_general_movdst_operand): Do not accept CONST_INTs. - (mcore_arith_K_S_operand): Run the test for the S constraint not - the test for the M constraint. - (mcore_addsub_operand): Do not accept integer values that are - larger than 32 bits. - * config/mcore/mcore.md: Remove unused constraints from split. - (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL. - (addsi3): Likewise. - (allocate_stack): Likewise. - * config/mcore/mcore.c (mcore_print_operand): Restrict output of P - operands to 32 bits. - (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an - INTVAL. - (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore, - mcore_const_ok_for_inline, mcore_const_trick_uses_not, - try_constant_tricks, mcore_num_ones, mcore_num_zeros, - mcore_output_bclri, mcore_output_andn, output_inline_const, - mcore_output_move, mcore_output_movedouble): Likewise. - (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N. - (output_inline_const): Likewise. - (output_inline_const): Fix format strings used in sprintf - statements. - * config/mcore/mcore-protos.h: Update prototypes for changed - functions in mcore.c. - * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to - HOST_WIDE_INT and not int. - (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M, - CONST_OK_FOR_N): Likewise. - (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P. - (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold - an INTVAL. - -2007-01-10 Jan Hubicka - - * tree-vrp.c (remove_range_assertions): Release defs. - * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise. - * tree-ssa-dom.c (remove_stmt_or_phi): Likewise. - -2007-01-10 Paul Brook - - * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract. - * config/arm/arm.md (mulsi3subsi): New insn. - -2007-01-10 Zdenek Dvorak - - * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ... - (tree_transform_and_unroll_loop): New. - * tree-flow.h (transform_callback, tree_transform_and_unroll_loop): - Declare. - -2007-01-10 Robert Kennedy - - * fold-const.c (fold_comparison): Fold comparisons like (x * - 1000 < 0) to (x < 0). - -2007-01-10 Ian Lance Taylor - - * tree-pretty-print.c (dump_generic_node): Print parentheses when - operands have the same priority. - -2007-01-10 Tom Tromey - - * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p. - (fold_binary): Likewise. - * langhooks.c (lhd_can_use_bit_fields_p): Removed. - * langhooks-def.h (lhd_can_use_bit_fields_p): Removed. - (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed. - (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P. - * langhooks.h (struct lang_hooks): Removed field - 'can_use_bit_fields_p'. - -2007-01-10 Ralf Corsépius - - * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS. - -2007-01-10 Razya Ladelsky - - * function.c (get_last_funcdef_no): New function. - * function.h (get_last_funcdef_no): Declare. - * tree-inline.c (initialize_cfun): Add initialization. - (tree_function_versioning): Cleanup. - -2007-01-10 Jan Hubicka - - * tree-inline.c (setup_one_parameter): Do not propagate into abnormal - PHIs. - -2007-01-10 Sa Liu - Ben Elliston - - * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode - for SAVE_NONLOCAL and Pmode for any other save level. - * spu-protos.h (spu_restore_stack_block): Declare. - * spu.md (save_stack_block): Remove. - (restore_stack_block): Call spu_restore_stack_block. - * spu.c (spu_restore_stack_block): New function. - (spu_expand_epilogue): Remove old comment. - -2007-01-09 Zdenek Dvorak - - PR tree-optimization/30322 - * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed. - (cand_value_at): Return the value as aff_tree. - (may_eliminate_iv): Convert the bound from aff_tree to tree. - * tree-affine.c (aff_combination_add_cst, aff_combination_add_product, - aff_combination_mult): New functions. - (aff_combination_add): Use aff_combination_add_cst. - (aff_combination_convert): Allow conversions to a wider type. - (tree_to_aff_combination): Handle BIT_NOT_EXPR. - * tree-affine.h (aff_combination_mult): Declare. - -2007-01-09 Carlos O'Donell - - * doc/tm.texi: Update documentation to reflect reality of exec - and start file search behaviours. Update copyright year. - * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find - header file directories. - -2007-01-09 Uros Bizjak - - * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387. - (*cosxf2): Rename to cosxf2_i387. - (*sindf2, *sinsf2): Extend operand 1 to XFmode. Macroize patterns - using X87MODEF12 mode macro. Rename patterns to - *sin_extendxf2_i387. Use SSE_FLOAT_MODE_P to disable patterns - for SSE math. - (*cosdf2, *cossf2): Ditto. - (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters - to match extended input operands. - (sincos3): New expander. - (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove - insn patterns and corresponding splitters. - -2007-01-09 Kaz Kojima - - * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete. - (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise. - -2007-01-09 Nicolas Pitre - - PR target/30173 - * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero. - -2007-01-08 Geoffrey Keating - - * target.h (struct gcc_target): New field library_rtti_comdat. - * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New. - (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT. - * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT. - * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. - -2007-01-08 Geoffrey Keating - - * doc/invoke.texi (Optimize Options): Correct description of -O0. - -2007-01-08 Richard Guenther - - * tree.h (force_fit_type_double): Export. - (force_fit_type): Remove. - * fold-const.c (force_fit_type_double): New function. - (force_fit_type): Remove. - (int_const_binop): Use it. - (fold_convert_const_int_from_int): Likewise. - (fold_convert_const_int_from_real): Likewise. - (fold_div_compare): Likewise. - (fold_sign_changed_comparison): Likewise. - (fold_unary): Likewise. - (fold_negate_const): Likewise. - (fold_abs_const): Likewise. - (fold_not_const): Likewise. - * c-common.c (shorten_compare): Use force_fit_type_double. - * convert.c (convert_to_pointer): Likewise. - -2007-01-08 Richard Guenther - - * tree.h (build_int_cst_wide_type): Export. - * tree.c (build_int_cst_wide_type): New function. - (build_int_cst_wide): Fix comment. - * builtins.c (fold_builtin_object_size): Use build_int_cst - to build -1 or 0 of the correct type. Use fit_double_type - to check for overflow. - * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type - to build the mask. - (decode_field_reference): Likewise. - (all_ones_mask_p): Likewise. - (native_interpret_int): Use build_int_cst_wide_type. - (fold_binary): Use build_int_cst_type to build an all-ones - value. - * stor-layout.c (set_sizetype): Use build_int_cst_wide_type. - -2007-01-08 Daniel Jacobowitz - - * config/pa/t-pa64 (libgcc_stub.a): Use $(T). - -2007-01-09 Ben Elliston - - * genautomata.c (STATS_OPTION): New option. - (stats_flag): New flag. - (gen_automata_option): Handle it. - (initiate_automaton_gen): Ditto. - (write_automata): Output statistics only if stats_flag is - set. Likewise, output time statistics only if time_flag is set. - * doc/md.texi (Processor pipeline description): Document new flag. - -2007-01-08 Richard Guenther - - * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type. - * tree.c (build_int_cst_type): Likewise. - (size_in_bytes): Don't call force_fit_type on the result. - (int_fits_type_p): Use fit_double_type. - * fold-const.c (fit_double_type): New function. - (force_fit_type): Use it. - * tree.h (fit_double_type): Export. - -2007-01-08 Jan Hubicka - - * tree-vectorizer.c (gate_increase_alignment): Fix return type. - * ipa.c (function_and_variable_visibility): Fix return type. - -2007-01-08 Richard Guenther - - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type - of offset to build the index. - * tree-pretty-print.c (dump_generic_node): Don't build negated - const just for printing. - * c-pretty-print.c (pp_c_integer_constant): Likewise. - * builtins.c (fold_builtin_int_roundingfn): Check if result - fits the type by using force_fit_type and comparing the result. - * predict.c (predict_loops): Use compare_tree_int for comparison. - * tree.c (build_int_cst): Fall back to integer_type_node for - NULL_TREE type. - (build_int_cst_wide): Assert type is non-null. - -2007-01-08 Roberto Costa - - * tree-vrp.c (extract_range_from_cond_expr): New. - (extract_range_from_expr): Handle COND_EXPR nodes used as expressions. - * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used - as expressions. - (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs. - * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond, - tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes - used as expressions. - * tree-object-size.c (cond_expr_object_size): New. - (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions. - -2007-01-08 Jan Hubicka - - * tree-ssa-forwprop.c (forward_propagate_into_cond, - tree_ssa_forward_propagate_single_use_va): Release defs of propagated - statement. - -2007-01-08 Richard Guenther - - PR tree-optimization/23603 - * tree-vrp.c (set_value_range_to_truthvalue): New function. - (extract_range_from_binary): Fall back to truthvalue instead of - varying for TRUTH_*_EXPR. - (extract_range_from_comparison): Fall back to truthvalue instead of - varying. - (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF - if all visited PHI values were constant. - -2007-01-08 Jan Hubicka - - * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag. - (cgraph_analyze_function): break out from ... - (cgraph_finalize_compilation_unit): ... here. - (cgraph_expand_function): Remove forgoten commented out line. - (cgraph_optimize): Analyze functions. - -2007-01-08 Jan Hubicka - - * tree-pas.h (TODO_remove_function): New flag. - (TODO_update*): Renumber. - (pass_ipa_increase_alignment, - pass_ipa_function_and_variable_visibility): New passes. - * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c - (cgraph_function_and_variable_visibility): Move to ipa.c - (cgraph_optimize): Don't call cgraph_function_and_variable_visibility, - cgraph_increase_alignment. - * ipa-inline.c (cgraph_decide_inlining): Don't push timevar. - (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before - calling tree-inline. - (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes. - (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions - * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c - (gate_increase_alignment): New function. - (pass_ipa_increase_alignment): New pass. - * ipa.c: Inline tree-pass.h and timevar.h - (function_and_variable_visibility): Move here from cgraphunit.c - * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions. - * passes.c (init_optimization_passes): Add the two new passes. - (execute_todo): Handle cgraph_remove_functions. - -2007-01-08 Nick Clifton - - * config/frv/predicates.md (reg_or_0_operand): Accept - CONST_DOUBLEs. - -2007-01-08 Ralf Corsépius - - * config/bfin/rtems.h, config/bfin/t-rtems: New. - * config.gcc: Add bfin*-rtems*. - -2007-01-08 Mark Shinwell - - * c.opt: Add -flax-vector-conversions. - * c-typeck.c (convert_for_assignment): Pass flag to - vector_types_convertible_p to allow emission of note. - (digest_init): Likewise. - * c-opts.c: Handle -flax-vector-conversions. - * c-common.c (flag_lax_vector_conversions): New. - (vector_types_convertible_p): Unless -flax-vector conversions - has been passed, disallow conversions between vectors with - differing numbers of subparts and/or element types. If such - a conversion is disallowed, possibly emit a note on the first - occasion only to inform the user of -flax-vector-conversions. - The new last argument specifies this. - * c-common.h (flag_lax_vector_conversions): New. - (vector_types_convertible_p): Add extra argument. - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use - char_type_node for V*QI type vectors. - * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): - Update to satisfy new typechecking rules. - * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both - C and C++ variants. - * doc/invoke.texi (C Dialect Options): Document - -flax-vector-conversions. - -2007-01-08 Mark Shinwell - - PR tree-optimization/29877 - * tree-ssa-ter.c (is_replaceable_p): Deem assignments with - a register variable on the RHS to not be replaceable. - -2007-01-08 Chen Liqin - * config/score/t-score-elf (MULTILIB_OPTIONS): Change. - * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12, - const_simm15, const_pow2, const_npow2): Added. - * config/score/misc.md (insv, extv, extzv, movmemsi, - move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug. - * config/score/score.c (score_address_cost, score_select_cc_mode): - Added. - Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define. - Update score_rtx_costs for MACRO TARGET_RTX_COSTS. - Update score_print_operand. - * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added. - Adjust register allocate order and update some macro define. - * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store, - mdx_block_move_straight, mdx_block_move_loop_head, - mdx_block_move_loop_body, mdx_block_move_loop_foot, - mdx_block_move_loop, mdx_block_move): Added. - (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi, - mdp_limm): Updated and fix some bug and typo. - * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated. - (movsf, movdf, doloop_end): Added. - -2007-01-08 Kazu Hirata - - * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, - config/arm/thumb2.md: Fix comment typos. - * doc/extend.texi: Fix a typo. - -2007-01-07 Eric Christopher - - * configure.ac: Check for __stack_chk_fail for darwin. - * configure: Regenerate. - -2007-01-07 Richard Guenther - - * tree-vrp.c (extract_range_from_assert): CSE calls to - compare_values where possible. - (extract_range_from_unary_expr): Likewise. - -2007-01-07 Anatoly Sokolov - - * config/avr/avr-protos.h (call_insn_operand): Delete prototype. - * config/avr/avr.c (call_insn_operand): Delete function. - * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP - instead of register number. Use predicates. - * config/avr/predicates.md (const0_operand, reg_or_0_operand, - call_insn_operand): Add. - -2007-01-06 Jan Hubicka - - * tree-pass.h (pass_build_cgraph_edges): Declare. - * cgraphunit.c (record_refernece): Move to cgraphbuild.c - (visited_nodes): Remove. - (cgraph_create_edges): Move to cgraphbuild.c; rename to - build_cgrpah_edges; make visited_nodes local. - (cgraph_process_new_functions): DO not call initialize_inline_failed. - (record_references_in_initializer): Move to cgraphbuild.c - (initialize_inline_failed, rebuild_cgraph_edges, - pass_rebuild_cgraph_edges): Move to cgraphbuild.c. - (verify_cgraph_node): Make visited_nodes local. - (cgraph_analyze_function): Do not call cgraph_create_edges and - initialize_inline_failed. - (cgraph_expand_function): Do not call cgraph_lower_function; - assert that function is already lowered. - * Makefile.in (cgraphbuild.o): New. - * passes.c (init_optimization_passes): Add pass_build_cgraph_edges - at the end of lowering passes. - -2007-01-06 Steven Bosscher - - * ifcvt.c (cond_move_convert_if_block): New function, code - factored out from... - (cond_move_process_if_block): ...here. Call the new function - on the THEN and ELSE blocks. - (merge_if_block): Do not copy global_live_at_end, merge_blocks - already takes care of this. - -2007-01-05 Manuel Lopez-Ibanez - - PR c/19978 - * tree.h (TREE_OVERFLOW_P): New. - * c-typeck.c (parser_build_unary_op): Warn only if result - overflowed and operands did not. - (parser_build_binary_op): Likewise. - (convert_for_assignment): Remove redundant overflow_warning. - * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW. - -2007-01-05 Manuel Lopez-Ibanez - - * c-typeck.c (store_init_value): Split over two lines to follow - the GNU coding style. - -2007-01-05 Benjamin Kosnik - - * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to - __GXX_EXPERIMENTAL_CXX0X__. - * doc/cpp.texi: Same. - -2007-01-05 Richard Guenther - - PR middle-end/27826 - * tree.c (get_narrower): Do not construct COMPONENT_REFs - with mismatched types. Instead explicitly build a - conversion NOP_EXPR. - -2007-01-05 Ian Lance Taylor - - * c-common.c (decl_with_nonnull_addr_p): New function. - (c_common_truthvalue_conversion): Call it. - * c-typeck.c (build_binary_op): Likewise. - * c-common.h (decl_with_nonnull_addr_p): Declare. - -2007-01-05 Jakub Jelinek - - PR c/30360 - * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of - denom against 0.0. - -2007-01-05 Joel Brobecker - - * doc/install.texi (Final install): Document the fact that - the GNAT runtime should not be stripped. - -2007-01-04 Jan Hubicka - - * tree-inline.c (fold_marked_statements): Update operand caches - and EH after folding - -2007-01-04 Ian Lance Taylor - - * c-common.c (check_function_nonnull): Whitespace fix. - -2007-01-04 Jan Hubicka - - * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely - comitted older version of patch. - (pass_fixup_cfg): Add TODOs to verify flow and statements, dump - function, celanup cfg and collect garbage. - -2007-01-04 Mike Stump - - * Makefile.in (mostlyclean): Don't remove libgcc anymore. - (clean): Likewise. - -2007-01-04 Eric Christopher - - * libgcc2.c (__bswapsi2): Use SItype. - (__bswapdi2): Use DItype. - * libgcc2.h: Update for above. - -2007-01-04 Paul Brook - - * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0, - mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0, - mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3, - umulsidi3, umulsidi3adddi, smulsi3_highpart, - umulsi3_highpart): Make conditional on !arm_arch6. - (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6, - mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6, - mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6, - umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6, - umulsi3_highpart_v6): New insns. - -2007-01-04 Roger Sayle - - * fold-const.c (fold_convert): When casting an expression to void, - fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't - have a type. Instead of attempting to build a NOP_EXPR, return - these "special" trees directly. - -2007-01-04 Joseph Myers - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for - MULT inside MINUS as either argument. Use rs6000_cost->dmul - - rs6000_cost->fp not 0 as adjustment for outer NEG. - -2007-01-04 Jan Hubicka - - * cgraph.c (cgraph_release_function_body): New function. - (cgraph_remove_node): Use it. - * cgraph.h (cgraph_release_function_body): Declare. - * cgraphunit.c (cgraph_expand_function): Use it. - * ipa.c (cgraph_remove_unreahchable_nodes): Use it. - * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing - is initialized and while compilation of other function is running. - * tree-optimize.c (execute_free_cfg_annotations): Move code to clear - statement CFG annotations from here to ... - * tree-cfg.c (delete_tree_cfg_annotations): ... here. - -2007-01-04 Zdenek Dvorak - - * cfgloop.h (enum li_flags): Make the constants powers of two. - -2007-01-04 Jan Hubicka - - * tree-inline.c (copy_bb): Insert new statements to statements_to_fold - set. - (fold_marked_statements): New function. - (optimize_inline_calls, tree_function_versioning): Fold new statements. - * tree-inline.h (copy_body_data): Add statements_to_fold. - -2007-01-03 Daniel Jacobowitz - - * config.gcc: Mention libgcc/config.host. - * Makefile.in: Update comments mentioning libgcc. - (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. - (all.cross, start.encap, rest.encap, rest.cross): Update - dependencies for libgcc move. - (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) - (clean-target, clean-target-libgcc): Delete. - (srcdirify, GCC_EXTRA_PARTS): New macros. - (libgcc-support, libgcc.mvars): New rules. - (distclean): Remove mention of mklibgcc. - (install): Don't reference INSTALL_LIBGCC. - (install-common): Don't reference EXTRA_PARTS. - (install-libgcc, install-multilib): Delete rules. - * mklibgcc.in: Delete file. - * doc/configfiles.texi: Don't mention mklibgcc. - - * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). - * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. - * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. - * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) - (mklibgcc, ldblspecs): Likewise. - - * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) - (posixpre.def): Use $(T). - (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) - (SHLIB_SRC, SHLIB_INSTALL): Delete. - (SHLIB_LINK): Make dummy. - * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. - - * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. - - * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. - * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, - config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, - config/rs6000/t-newas, config/sparc/t-elf: Likewise. - - * configure.ac (all_outputs): Remove mklibgcc. - * configure: Regenerated. - -2007-01-03 Josh Conner - - PR middle-end/29683 - * calls.c (compute_argument_addresses): Set stack and stack_slot - for partial args, too. - (store_one_arg): Use locate.size.constant for the size when - generating a save_area. - -2007-01-03 Robert Kennedy - - * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results - whose definitions are deleted due to basic block merging. - -2007-01-03 Paul Brook - - PR target/16634 - * config/arm/arm.c (output_return_instruction): Pop PC in interrupt - functions. - (use_return_insn): Return 0 for Thumb interrupt functions. - (print_multi_reg): Add rfe argument for IRQ returns. - (arm_output_epilogue): Pop interrupt return address directly into PC. - (arm_expand_prologue): Only adjust IRQ return address in Arm mode. - -2007-01-03 Paul Brook - - Merge from sourcerygxx-4_1. - * config/arm/thumb2.md: New file. - * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for - Thumb-2. - * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto. - * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. - (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables. - * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump - tables. - (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion. - * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm - comptibility. - * config/arm/ieee754-sf.S: Ditto. - * config/arm/arm.c (thumb_base_register_rtx_p): Rename... - (thumb1_base_register_rtx_p): ... to this. - (thumb_index_register_rtx_p): Rename... - (thumb1_index_register_rtx_p): ... to this. - (thumb_output_function_prologue): Rename... - (thumb1_output_function_prologue): ... to this. - (thumb_legitimate_address_p): Rename... - (thumb1_legitimate_address_p): ... to this. - (thumb_rtx_costs): Rename... - (thumb1_rtx_costs): ... to this. - (thumb_compute_save_reg_mask): Rename... - (thumb1_compute_save_reg_mask): ... to this. - (thumb_final_prescan_insn): Rename... - (thumb1_final_prescan_insn): ... to this. - (thumb_expand_epilogue): Rename... - (thumb1_expand_epilogue): ... to this. - (arm_unwind_emit_stm): Rename... - (arm_unwind_emit_sequence): ... to this. - (thumb2_legitimate_index_p, thumb2_legitimate_address_p, - thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec, - thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem, - arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition, - thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift, - thumb2_output_casesi): New functions. - (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define. - (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7, - FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME, - THUMB2_WORK_REGS): Define. - (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count, - arm_condexec_mask, arm_condexec_masklen)): New variables. - (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m. - (arm_override_options): Check new CPU capabilities. - Set new architecture flag variables. - (arm_isr_value): Handle v7m interrupt functions. - (user_return_insn): Return 0 for v7m interrupt functions. Handle - Thumb-2. - (const_ok_for_arm): Handle Thumb-2 constants. - (arm_gen_constant): Ditto. Use movw when available. - (arm_function_ok_for_sibcall): Return false for v7m interrupt - functions. - (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2. - (thumb_find_work_register, arm_load_pic_register, - legitimize_tls_address, arm_address_cost, load_multiple_sequence, - emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size, - print_multi_reg, output_mov_long_double_fpa_from_arm, - output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm, - output_mov_double_fpa_from_arm, output_move_double, - arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask, - output_return_instruction, arm_output_function_prologue, - arm_output_epilogue, arm_get_frame_offsets, arm_regno_class, - arm_output_mi_thunk, thumb_set_return_address): Ditto. - (arm_expand_prologue): Handle Thumb-2. Use arm_save_coproc_regs. - (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC. - (arithmetic_instr, shift_op): Use arm_shift_nmem. - (arm_print_operand): Use arm_print_condition. Handle '(', ')', '.', - '!' and 'L'. - (arm_final_prescan_insn): Use extract_constrain_insn_cached. - (thumb_expand_prologue): Use thumb_set_frame_pointer. - (arm_file_start): Output directive for unified syntax. - (arm_unwind_emit_set): Handle stack alignment instruction. - * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__. - Add v6t2, v7, v7a, v7r and v7m. - (RETLDM): Add Thumb-2 code. - (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__. - (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY, - TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN, - THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS, - ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS, - THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE, - CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END, - ADJUST_INSN_LENGTH): Define. - (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE, - STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS, - BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES, - PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS, - SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, - TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT, - HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP, - HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG, - REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P, - REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS, - LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS, - GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST, - ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME, - FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P, - PRINT_OPERAND_ADDRESS): Adjust for Thumb-2. - (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations. - * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and - cortex-m3. - * config/arm/arm-tune.md: Regenerate. - * config/arm/arm-protos.h: Update prototypes. - * config/arm/vfp.md: Enable patterns for Thumb-2. - (arm_movsi_vfp): Add movw alternative. Use output_move_vfp. - (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp. - (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp, - thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New. - * config/arm/libunwind.S: Add Thumb-2 code. - * config/arm/constraints.md: Update include Thumb-2. - * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support. - * config/arm/ieee754-df.S: Ditto. - * config/arm/bpabi.S: Ditto. - * config/arm/t-arm (MD_INCLUDES): Add thumb2.md. - * config/arm/predicates.md (low_register_operand, - low_reg_or_int_operand, thumb_16bit_operator): New. - (thumb_cmp_operand, thumb_cmpneg_operand): Rename... - (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this. - * config/arm/t-arm-elf: Add armv7 multilib. - * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm. - Include thumb2.md. - (UNSPEC_STACK_ALIGN, ce_count): New. - (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3, - arm_zero_extendsidi2, arm_zero_extendqidi2): New - insns/expanders. - * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm. - (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa, - thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns. - * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm. - (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn, - thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New - insns. - * doc/extend.texi: Document ARMv7-M interrupt functions. - * doc/invoke.texi: Document Thumb-2 new cores+architectures. - -2007-01-03 Jakub Jelinek - - * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define. - (struct _Unwind_Context): Rename args_size to flags, remove - signal_frame field, add a new args_size field and version field. - (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame, - _Unwind_IsExtendedContext): New inline functions. - (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): - Assume by_value array is only present if _Unwind_IsExtendedContext. - (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use - _Unwind_IsSignalFrame. - (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT. - (uw_update_context_1): Use _Unwind_SetSignalFrame. - (uw_init_context_1): Initialize context->flags to - EXTENDED_CONTEXT_BIT. - * config/rs6000/linux-unwind.h (frob_update_context): Use - _Unwind_SetSignalFrame. - -2007-01-03 Andrew Pinski - - PR middle-end/30353 - * gimplify.c (gimplify_modify_expr_complex_part): Move below - tree_to_gimple_tuple. Call tree_to_gimple_tuple when we need - the value. - -2007-01-03 Kazu Hirata - - * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P, - REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER, - RET, AT_SP): Remove. - * config/i386/i386.md (*sse_prologue_save_insn): Use return - instead of RET. - - * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. - * cfgbuild.c (find_basic_blocks): Likewise. - * cfgrtl.c (rtl_create_basic_block): Likewise. - * function.c (temp_slots_at_level): Likewise. - * reg-stack.c (stack_regs_mentioned): Likewise. - * regclass.c (allocate_reg_info): Likewise. - * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, - set_bb_for_stmt, move_block_to_fn): Likewise. - * tree-complex.c (tree_lower_complex): Likewise. - * vec.h (VEC_safe_grow_cleared): New. - - * cgraphunit.c, tree-ssa-alias.c: Fix comment typos. - -2007-01-03 Zdenek Dvorak - - * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify. - * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities - to loop_version. - * cfgloopmanip.c (scale_loop_frequencies): Export. - (loopify): Scale the frequencies by prescribed coefficients. - (set_zero_probability): New function. - (duplicate_loop_to_header_edge): Improve updating of frequencies. - (lv_adjust_loop_entry_edge, loop_version): Set probabilities - and frequencies according to arguments. - * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities - correctly. - * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up. - * modulo-sched.c (sms_schedule): Set probabilities for entering - versioned loop correctly. - * tree-vect-transform.c (vect_transform_loop): Ditto. - * cfgloop.h (loopify, loop_version): Declaration changed. - (scale_loop_frequencies): Declared. - -2007-01-02 Jan Hubicka - - * cgraph.c: Include tree-flow.h - (cgraph_add_new-function): Handle IPA_SSA mode; execute - early_local_passes. - * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA. - * tree-pass.h (pass_all_early_optimizations): Declare. - * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute - early_local_passes. - (cgraph_analyze_function): Do early_local_passes. - * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): - Do not add referenced vars. - * tree-optimize.c (gate_all_optimizations): Do not execute when not in - SSA form. - (gate_all_early_local_passes): New gate. - (pass_early_local_passes): Use new gate. - (execute_early_local_optimizations): New functions. - (gate_all_early_optimizations): New gate. - (pass_all_early_optimizations): New pass. - (execute_free_datastructures): Free SSA only when initialized. - (gate_init_datastructures): Init only when optimizing. - (tree_lowering_passes): Do early local passes when called late. - * tree-profile.c (do_tree_profiling): Don't profile functions added - late. - (do_early_tree_profiling, pass_early_tree_profile): Kill. - * tree-cfg.c (update_modified_stmts): Do not update when operands are - not active. - * passes.c (init_optimizations_passes): Reorder so we go into SSA - during early_local_passes. - * Makefile.in (cgraph.o): Add dependency on tree-flow.h. - - -2007-01-02 Carlos O'Donell - - * Makefile.in: Update copyright year. - -2007-01-02 Carlos O'Donell - - * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST) - in $(lang_checks) and check-consistency targets. - -2007-01-02 Jan Hubicka - - * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for): - Do not add referenced vars. - * tree-cfg.c (update_modified_stmts): Do not update when SSA operands - are not active. - * passes.c (init_optimization_passes): Put mudflap_2 after - free_datastructures. - -2007-01-02 Jan Hubicka - - * tree-optimize (execute_fixup_cfg): Set after_inlining flag. - Set NOTHROW flag on call statements proved to be nothrow. - Update statement of local calls so new pure/const functions are - updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal - goto receivers. - (tree_rest_of_compilation): Register hooks and initialize bitmap - early. Do not set after_inlining flag. - -2007-01-02 Steve Ellcey - - * sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to - HOST_BITS_PER_LONGLONG - -2007-01-02 Manuel Lopez-Ibanez - - PR c/19977 - * c-typeck.c (store_init_value): Don't emit pedantic overflow - warning for non-static initializers. - -2007-01-02 Steven Bosscher - - * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md, - m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c, - rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c: - Always use set_unique_reg_note to add REG_EQUAL notes. - -2007-01-02 Kazu Hirata - - Revert: - 2007-01-02 Kazu Hirata - - * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. - * cfgbuild.c (find_basic_blocks): Likewise. - * cfgrtl.c (rtl_create_basic_block): Likewise. - * function.c (temp_slots_at_level): Likewise. - * reg-stack.c (stack_regs_mentioned): Likewise. - * regclass.c (allocate_reg_info): Likewise. - * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, - set_bb_for_stmt, move_block_to_fn): Likewise. - * tree-complex.c (tree_lower_complex): Likewise. - * vec.h (VEC_safe_grow_cleared): New. - -2007-01-02 Ian Lance Taylor - - * c-common.c (c_common_truthvalue_conversion): When warning about - using an assignment as a truth value, set TREE_NO_WARNING. - -2007-01-02 Manuel Lopez-Ibanez - - PR middle-end/7651 - * c.opt (Wold-style-declaration): New. - * doc/invoke.texi (C-only Warning Options): New. - (Wold-style-declaration): Document it. - (Wextra): Enabled by -Wextra. - * c-opts.c (c_common_post_options): Enabled by -Wextra. - * c-decl.c (declspecs_add_scspec): Replace -Wextra with - -Wold-style-declaration. - -2007-01-02 Kazu Hirata - - * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared. - * cfgbuild.c (find_basic_blocks): Likewise. - * cfgrtl.c (rtl_create_basic_block): Likewise. - * function.c (temp_slots_at_level): Likewise. - * reg-stack.c (stack_regs_mentioned): Likewise. - * regclass.c (allocate_reg_info): Likewise. - * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb, - set_bb_for_stmt, move_block_to_fn): Likewise. - * tree-complex.c (tree_lower_complex): Likewise. - * vec.h (VEC_safe_grow_cleared): New. - -2007-01-02 Douglas Gregor - - * c-common.c (c_common_nodes_and_builtins): Since variants of - void_type_node get built before it is given a name, we need to - give those variants the name, too. - (complete_array_type): We need to work with the canonical main - type of the array, from which we will build the qualified version. - * params.def (PARAM_VERIFY_CANONICAL_TYPES): New. - * print-tree.c (print_node): Display canonical type information - for each type. - * stor-layout.c (layout_type): When we don't know the - alignment of a type for which we're building an array, we end up - guessing wrong, so make the type require structural equality. - * tree.c (make_node_stat): When we build a new type, it is its - own canonical type. - (build_type_attribute_qual_variant): When building an attribute - variant, its canonical type is the non-attribute variant. However, - if the attributes are target-dependent and they differ, we need to - use structural equality checks for this type. - (build_qualified_type): A qualified type is not equivalent to its - unqualified variant; set the canonical type appropriately. - (build_distinct_type_copy): When building a distinct type from - another type, the new type is its own canonical type. - (build_variant_type_copy): When building a new type variant, we - assume that it is equivalent to the original type. - (build_pointer_type_for_mode): When building a pointer type, also - build a canonical type pointer. - (build_reference_type_for_mode): When building a reference type, - also build a canonical type reference. - (build_index_type): When we can't hash an index type (e.g., - because its maximum value is negative), the index type requires - structural equality tests. - (build_array_type): Build the canonical form of an array type. - (build_function_type): Function types require structural equality, - because they contain default arguments, attributes, etc. - (build_method_type_directly): Ditto for method types. - (build_offset_type): Build the canonical offset type. - (build_complex_type): Build the canonical vector type. - (make_vector_type): Build the canonical vector type. - * tree.h (TYPE_CANONICAL): New. - (TYPE_STRUCTURAL_EQUALITY_P): New. - (SET_TYPE_STRUCTURAL_EQUALITY): New. - (struct tree_type): Added "canonical" field. - * params.h (VERIFY_CANONICAL_TYPES): New. - * doc/c-tree.texi (TYPE_CANONICAL): Document. - (TYPE_STRUCTURAL_EQUALITY_P): Document. - (SET_TYPE_STRUCTURAL_EQUALITY): Document. - * doc/invoke.texi (verify-canonical-types): Document --param - parameter for verifying canonical types. - -2007-01-02 Joseph Myers - - * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, - powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*, - powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae, - powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to - tm_file. - * config/rs6000/e500.h: New. - * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500, - TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE): - Remove. - * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE, - TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, - TARGET_E500_DOUBLE): Remove. - * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE, - TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove. - * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define. - * config/rs6000/rs6000.c (rs6000_override_options): Use - CHECK_E500_OPTIONS. - -2007-01-02 Joseph Myers - - * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE || - TARGET_E500_DOUBLE), not TARGET_E500, for %y. - (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch, - rs6000_emit_cmove): Don't check TARGET_E500. - * config/rs6000/rs6000.md (bunordered, bordered, sunordered, - sordered): Don't check TARGET_E500. - -2007-01-01 Eric Christopher - - * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use - HARD_REGISTER_NUM_P. - -2007-01-01 Roger Sayle - - * fold-const.c (fold_binary) : Fold "(X^C1) eq/ne C2" into - "X eq/ne (C1^C2)". Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z - has no side-effects. Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2)) - eq/ne Y". - -2007-01-01 Mike Stump - - * configure.ac: Remove support for building with Apple's gcc-3.1. - -2007-01-02 Joseph Myers - - PR middle-end/30311 - * caller-save.c (add_stored_regs): Only handle SUBREGs if inner - REG is a hard register. Do not modify REG before calling - subreg_nregs. - * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a - multiple of the size of YMODE for certain lowpart cases. - -2007-01-01 Andrew Pinski - - PR middle-end/30253 - * gimplify (voidify_wrapper_expr): Update for - GIMPLE_MODIFY_STMT. - -2007-01-01 Andreas Schwab - - PR target/29166 - * config/ia64/ia64.c (ia64_compute_frame_size): Account space for - save of BR0 in extra_spill_size instead of spill_size. - (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill - area. - (ia64_expand_epilogue): Restore BR0 from its new location. - -2007-01-01 Andrew Pinski - - * gimplify.c (gimplify_init_constructor ): - Use a temporary variable if the left hand side is not a gimple - register. - -2007-01-01 Andrew Pinski - - * gimplify.c (gimplify_return_expr): Make the temporary variable - for the return expression, a gimple register variable. - -2007-01-01 Jan Hubicka - - * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for - INSN_LIST. - -2007-01-01 Mike Stump - - * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for - .literal16. - * config/darwin.c (machopic_select_rtx_section): Use - HAVE_GAS_LITERAL16. - (darwin_mergeable_constant_section): Likewise. - * configure: Regenerate. - * config.in: Regenerate. - -2007-01-01 Jan Hubicka - Andrew Pinski - - * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions - before starting IPA passes. + * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si, + sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi, + sse5_perm): Fix constraints.