X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=5c80fc941fcd9d227f39b964a0eaccb843660db0;hp=dfdbfc26a198d61cd0db2716c45751499ea34cfe;hb=4f0ebb163fbb4415cf305ae2fc46757c7d1dd272;hpb=92b2f241e40d354f1adcf10928e101b4ed1ebf19 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dfdbfc26a19..5c80fc941fc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1146 @@ +2008-03-27 H.J. Lu + + PR target/35657 + * config/i386/i386.c (ix86_function_arg_boundary): Align + decimal floating point to its natural boundary. + +2008-03-27 Richard Guenther + + PR middle-end/35716 + * fold-const.c (fold_comparison): Restrict distinct decl + comparison folding to VAR_DECLs and PARM_DECLs. Do not + solely rely on operand_equal_p. + +2008-03-27 Richard Guenther + + PR c/32511 + * c-common.c (handle_weak_attribute): Reject combination of + weak and inline. + +2008-03-27 Richard Guenther + + PR tree-optimization/32810 + * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless + conversions from DECL_INITIAL. + (fold_const_aggregate_ref): Likewise from constructor elements. + +2008-03-27 Zdenek Dvorak + + * tree-affine.h (aff_combination_expand): Declare. + (get_inner_reference_aff): Likewise. + * tree-affine.c (aff_combination_expand): Split out from + tree_to_aff_combination_expand. + (get_inner_reference_aff): New function. + * tree-parloops.c (loop_parallel_p): Free vectorizer info. + * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h. + (struct lim_aux_data): sm_done field removed. + (mem_ref_loc_p, mem_ref_locs_p): New types. + (struct mem_ref): Added id, stored, accesses_in_loop, + indep_loop, dep_loop, indep_ref, dep_ref fields. + Removed is_stored, locs and next fields. + (memory_accesses): New variable. + (movement_possibility): Do not allow moving statements + that store to memory. + (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt): + New functions. + (determine_max_movement): For statements with memory references, + find the outermost loop in that the reference is independent. + (move_computations_stmt): Mark the virtual operands for + renaming. + (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored, + gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq, + vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores, + add_vop_ref_mapping, create_vop_ref_mapping_loop, + create_vop_ref_mapping, analyze_memory_references, + cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc, + get_all_locs_in_loop, ref_always_accessed_p, + refs_independent_p, record_indep_loop, ref_indep_loop_p_1, + ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm, + store_motion_loop, store_motion): New functions. + (struct vop_to_refs_elt): New type. + (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs, + memref_hash, memref_eq, hoist_memory_references): Rewritten. + (schedule_sm): Replaced by... + (execute_sm): ... this. + (determine_lsm_ref, hoist_memory_references, + loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs, + find_more_ref_vops, free_mem_ref, free_mem_refs, + determine_lsm_loop, determine_lsm): Removed. + (tree_ssa_lim_finalize): Free data structures used by store + motion. + (tree_ssa_lim): Call analyze_memory_references. Use + store_motion instead of determine_lsm. + +2008-03-27 Paolo Bonzini + + * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h, + rename tmake_file to m68hc11/t-m68hc11. + (mcore): Set inhibit_libc to true. + * config.host (alpha*-dec-*vms*): Set extra_programs. + (interix3*): Don't use host_xmake_file. + * configure.ac: Let config.gcc override inhibit_libc. + * configure: Regenerate. + + * config/alpha/x-vms (EXTRA_PROGRAMS): Remove. + * config/t-openbsd-thread: Remove commented out lines. + + * config/x-interix: Remove. + + * config/m68hc11/t-m68hc11-gas: Rename to... + * config/m68hc11/t-m68hc11: ... this. Remove T_CPPFLAGS. + + * config/mcore/t-mcore: Remove T_CFLAGS. + * config/mcore/t-mcore-pe: Likewise. + +2008-03-27 Paolo Bonzini + + * configure.ac: Replace custom __GNU_SOURCE test with + AC_USE_SYSTEM_EXTENSIONS. Move it earlier. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * config.in: Regenerate. + +2008-03-27 Richard Guenther + + * fold-const.c (target.h): Include. + (fold_comparison): Fold comparison of addresses of decls + that bind locally or of constants. Consolidate address folding code. + * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST + results from fold_binary_to_constant. + (compare_values_warnv): Likewise. + +2008-03-27 Andrew Pinski + + PR middle-end/35429 + * fold-const.c (fold_truthop): Check for integeral types when folding + a == 0 && b == 0 and a != 0 || b != 0 . + +2008-03-26 Eric Botcazou + + * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF. + +2008-03-26 Andreas Schwab + + * doc/invoke.texi: Fix use of @item vs. @itemx. + +2008-03-26 Tom Tromey + + * Makefile.in (build/gensupport.o, build/print-rtl.o, + build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o, + build/genattrtab.o, build/genautomata.o, build/gencheck.o, + build/gencodes.o, build/genconditions.o, build/genconfig.o, + build/genconstants.o, build/genemit.o, build/genextract.o, + build/genflags.o, build/genmddeps.o, build/genopinit.o, + build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on + options.h. + +2008-03-26 Richard Guenther + + Revert + 2008-03-26 Richard Guenther + + * fold-const.c (target.h): Include. + (fold_comparison): Fold comparison of addresses of two decls + that bind locally. Consolidate address folding code. + +2008-03-26 Kaveh R. Ghazi + + * builtins.c (expand_builtin_pow, fold_builtin_cabs, + fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm, + fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3, + dconstsqrt2, dconstthird, dconste and/or dconst10. + * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise. + * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird, + dconstsqrt2, dconste): Delete. + (init_emit_once): Likewise. Simplify initializing dconstm1. + Constify variable. + * real.c (get_real_const): New. + * real.h (dconst3, dconst10, dconstm2, dconstthird, + dconstsqrt2, dconste): Delete. + (real_value_const, get_real_const): New. + +2008-03-26 H.J. Lu + + * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed. + + * config/i386/i386.c (ix86_function_arg_boundary): Check + BIGGEST_ALIGNMENT instead of 128. + (setup_incoming_varargs_64): Likewise. + +2008-03-26 Tom Tromey + + * Makefile.in (DEPFILES): Add missing '/'. + +2008-03-26 Richard Guenther + + * fold-const.c (target.h): Include. + (fold_comparison): Fold comparison of addresses of two decls + that bind locally. Consolidate address folding code. + +2008-03-26 Nick Clifton + + PR target/31232 + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do + not allow INT+INT as a legitimate addressing mode. + +2008-03-26 Richard Guenther + + * tree-flow.h (widen_bitfield): Remove declaration. + * tree-ssa-ccp.c (visit_assignment): Remove unneeded code. + (widen_bitfield): Remove function. + * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded + code. + +2008-03-25 Andrew Pinski + + PR target/31558 + * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle + error_mark_node's. + +2008-03-25 Richard Sandiford + + PR rtl-optimization/35232 + * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment. + (forget_old_reloads_1, forget_marked_reloads): Don't clear + reg_reloaded_call_part_clobbered here. + (reload_regs_reach_end_p): New function. + (reload_reg_rtx_for_input): New variable. + (reload_reg_rtx_for_output): Likewise. + (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx + when reassigning a pseudo register. Load reloadreg from + reload_reg_rtx_for_input, moving the mode and register + calculation to... + (do_input_reload): ...here. Use the mode-adjusted reg_rtx + instead of the original when deciding whether an input reload + would be a no-op or whether an output reload can be deleted. + (emit_output_reload_insns): Use the mode-adjusted reg_rtx + when setting up new_spill_reg_store. Load it from + reload_reg_rtx_for_output, moving the mode and register + calculation to... + (do_output_reload): ...here. Use the mode-adjusted reg_rtx + instead of the original when deciding whether an output reload + would be a no-op. Do the same when modifying insn notes. + Use rtx_equal_p instead of == to compare the registers. + (inherit_piecemeal_p): Take a mode and two register numbers + as argument. + (emit_reload_insns): Clear new_spill_reg_store for every hard + register in the reload register. Remove spill registers + from reg_reloaded_valid before considering whether to record + inheritance information for them. Use reload_reg_rtx_for_output + instead of reg_rtx when recording output reloads. Use + reload_reg_rtx_for_input instead of reg_rtx when recording + input reloads. Set or clear reg_reloaded_call_part_clobbered + at the same time as setting reg_reloaded_valid. + (delete_output_reload): Add a new_reload_reg parameter and use it + instead of rld[j].reg_rtx. + (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust + calls accordingly. + +2008-03-25 Tom Tromey + + * Makefile.in (build/gensupport.o): Depend on insn-modes.h. + (build/genattr.o): Likewise. + (build/genattrtab.o): Likewise. + (build/gencodes.o): Likewise. + (build/genconfig.o): Likewise. + (build/genconstants.o): Likewise. + (build/genemit.o): Likewise. + (build/genextract.o): Likewise. + (build/genflags.o): Likewise. + +2008-03-25 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst + instead of size_int for integer types. + (xtensa_gimplify_va_arg_expr): Likewise. Convert index to sizetype + to match type of MINUS_EXPR. + +2008-03-25 Tom Tromey + + * configure: Rebuilt. + * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary + Makefile. + +2008-03-25 Tom Tromey + + * config/x-solaris (host-solaris.o): Update. + * config/x-linux (host-linux.o): Update. + * config/x-hpux (host-hpux.o): Update. + * config/x-darwin (host-darwin.o): Update. + * config/v850/t-v850e (v850-c.o): Update. + * config/v850/t-v850 (v850-c.o): Update. + * config/t-vxworks (vxworks.o): Update. + * config/t-sol2 (sol2-c.o, sol2.o): Update. + * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update. + * config/spu/t-spu-elf (spu-c.o): Update. + (spu.o): Remove. + * config/sh/t-symbian (sh-c.o): Update. + (symbian.o): Update. + * config/sh/t-sh (sh-c.o): Update. + * config/score/t-score-elf (score7.o, score3.o): Update. + * config/rs6000/x-rs6000 (driver-rs6000.o): Update. + * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update. + * config/rs6000/x-darwin (host-ppc-darwin.o): Update. + * config/rs6000/t-rs6000 (rs6000-c.o): Update. + (rs6000.o): Remove. + * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h. + * config/m32c/t-m32c (m32c-pragma.o): Update. + * config/ia64/t-ia64 (ia64-c.o): Update. + * config/i386/x-mingw32 (host-mingw32.o): Update. + * config/i386/x-i386 (driver-i386.o): Update. + * config/i386/x-darwin (host-i386-darwin.o): Update. + * config/i386/x-cygwin (host-cygwin.o): Update. + * config/i386/t-nwld (nwld.o): Update. + * config/i386/t-netware (netware.o): Update. + * config/i386/t-interix (winnt.o): Update. + * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update. + * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o, + msformat-c.o): Update. + * config/bfin/t-bfin-linux (generated_files): Add + linux-sysroot-suffix.h. + * config/arm/t-wince-pe (pe.o): Update. + * config/arm/t-strongarm-pe (pe.o): Update. + * config/arm/t-pe (pe.o): Update. + * config/arm/t-arm (arm-c.o): Update. + * doc/install.texi (Prerequisites): Require make 3.80. + * Makefile.in: Remove .o targets. + (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables. + (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove. + (simple_generated_h, simple_generated_c): Move earlier. + (generated_files): New variable. + (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H, + TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H, + BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H, + ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H, + REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H, + CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H, + CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H, + INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H, + PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H, + TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H, + DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H, + VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove. + (.c.o): Remove. + (COMPILE.base, COMPILE): New variables. + (%.o): New pattern rule. + (ALL_HOST_OBJS): New variable. + (xgcc$(exeext), cpp$(exeext)): Remove extra version.o. + (dummy-checksum.o, cc1-checksum.o): Remove. + (DRIVER_SHLIB): New variable. + (DRIVER_DEFINES): Use it. + (gencondmd.c): Move out of build/. + (s-conditions): Update. + (BUILDCOMPILE.base, BUILDCOMPILE): New variables. + (ALL_BUILD_OBJS): Likewise. + (build/%.o): Use BUILDCOMPILE. + (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o, + build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o, + build/gencondmd.o, build/genattrtab.o, build/genautomata.o, + build/gencheck.o, build/gencodes.o, build/genconditions.o, + build/genconfig.o, build/genconstants.o, build/genemit.o, + build/genextract.o, build/genflags.o, build/genmddeps.o, + build/genopinit.o, build/genoutput.o, build/genpeep.o, + build/genpreds.o, build/genrecog.o, build/gcov-iov.o, + build/gen-protos.o, build/scan.o, build/fix-header.o, + build/scan-decls.o): Simplify. + (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o, + cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o, + prefix.o, toplev.o): Reduce to variable setting. + (libbackend.o): Use COMPILE. Remove most dependencies. Move later. + ($(out_object_file), gcc-options.o): New targets. + ($(ALL_HOST_OBJS)): New target. Include dependency files. + * configure: Rebuilt. + * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES. + * doc/sourcebuild.texi (Front End Directory): Document new variable. + +2008-03-25 Douglas Gregor + + * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to + complain when we hit an error, return ERROR_MARK_NODE. + +2008-03-25 Naveen.H.S + + * config/sh/constraints.md (Pso, Psz): New constraints. + * config/sh/sh.c (print_operand): Add %V and %W operand codes. + * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns. + +2008-03-25 Naveen.H.S + + * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible. + * config/sh/sh.md (xorsi3_movrt, movrt): New insns. + +2008-03-25 Naveen.H.S + + * config/sh/sh.md (prefetch): Add condition for SH2A target. + (prefetch_sh2a): New. + +2008-03-25 Jayant Sonar + Naveen.H.S + + * config/sh/constraints.md (I28): New constraint. + * config/sh/sh.c (broken_move): Add support for movi20s. + * config/sh/sh.md (movsi_ie): Add the alternative for movi20s. + +2008-03-25 Anil Paranjape + Jayant Sonar + Naveen.H.S + + * config/sh/sh.c (SH_ATTRIBUTES): Define. + (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define. + (print_operand): Handle resbank in %@ operand code. + (sh_encode_section_info): New. + (push_regs): Add conditions for resbank. + (sh_expand_epilogue): Likewise. + (sh_insert_attributes): Likewise. + (sh_attribute_table): Likewise. + (sh_handle_resbank_handler_attribute): New. + (sh2a_handle_function_vector_handler_attribute): New. + (sh2a_is_function_vector_call): New. + (sh2a_get_function_vector_number): New. + (sh2a_function_vector_p): New. + (sh_cfun_resbank_handler_p): New. + * config/sh/sh.md (calli): Emit jsr/n if possible. + (calli_tbr_rel): New. + (calli_pcrel): Emit jsr/n if possible. + (return_i): Emit rts/n if possible. + (call_valuei_tbr_rel): New. + (call_valuei_pcrel): Add condition for SH2A target. + (call_value): Likewise. + * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare. + (sh2a_get_function_vector_number): Likewise. + (sh2a_is_function_vector_call): Likewise. + * doc/extend.texi: Document TBR relative addressing of SH2A. + (resbank): Add description for SH2A. + +2008-03-24 Richard Guenther + + PR c/22371 + * gimplify.c (gimplify_modify_expr): For frontend type-correct + pointer assignments change conversions according to middle-end rules. + (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL. + * configure.ac: Include type checking in yes. + * configure: Regenerate. + +2008-03-24 Manuel Lopez-Ibanez + + * diagnostic.c (diagnostic_count_diagnostic): Delete. + (diagnostic_report_diagnostic): Update. Handle ICEs here. + +2008-03-24 Nathan Sidwell + + * gthr-vxworks.h (UNUSED): Define. + +2008-03-23 H.J. Lu + + * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and + CX_REG. + +2008-03-23 Zuxy Meng + + * doc/extend.texi (Function Attributes): Add missing comma in the + example of the "alloc_size" attribute. + +2008-03-23 Uros Bizjak + + Revert: + 2008-03-05 H.J. Lu + + * config/i386/i386-modes.def: Use 4 byte alignment on DI for + 32bit host. + + 2008-03-19 Uros Bizjak + + PR target/35496 + * stor-layout.c (update_alignment_for_field): Set minimum alignment + of the underlying type of a MS bitfield layout to the natural + alignment of the type. + + 2008-03-22 Uros Bizjak + + * config/i386/i386.c (assign_386_stack_local): Align DImode slots + to their natural alignment to avoid store forwarding stalls. + +2008-03-22 Richard Guenther + + * tree-cfg.c (verify_expr): Recurse again for invariant addresses. + For PHI nodes verify the address is invariant. + * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove. + (get_symbol_constant_value): Use is_gimple_min_invariant. + (maybe_fold_stmt_indirect): Likewise. + +2008-03-22 Richard Sandiford + + PR rtl-optimization/33927 + * Makefile.in (dse.o): Depend on $(TM_P_H). + * expr.h (extract_low_bits): Declare. + * expmed.c (extract_low_bits): New function. + * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling. + * dse.c: Include tm_p.h. + (find_shift_sequence): Remove the read_reg argument and return the + read value. Emit the instructions instead of returning them. + Iterate on new_mode rather than calculating it each time. + Check MODES_TIEABLE_P. Use simplify_gen_subreg to convert the + source to NEW_MODE and extract_low_bits to convert the shifted + value to READ_MODE. + (replace_read): Allow the load and store to have different mode + classes. Use extract_low_bits when SHIFT == 0. Create the shift + or extraction instructions before trying the replacement. Update + dump-file code accordingly, avoiding use of REGNO (store_info->rhs). + +2008-03-22 Uros Bizjak + + * config/i386/i386.c (assign_386_stack_local): Align DImode slots + to their natural alignment to avoid store forwarding stalls. + +2008-03-21 Andrew Pinski + + PR target/27946 + * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and + encouraging but not allowing gprs for input; + change the input constraint to !f#r. + (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing + gprs for output; + change the output constraint to !f#r. + +2008-03-21 Uros Bizjak + + PR target/13958 + * config/i386/i386.md ("*floatunssi_1"): New pattern with + corresponding post-reload splitters. + ("floatunssi2"): Expand to unsigned_float x87 insn pattern + when x87 FP math is selected. + * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse): + New function prototype. + * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New + unreachable function to ease macroization of insn patterns. + +2008-03-21 Martin Jambor + + * tree-data-ref.c (dump_data_dependence_relation): Avoid data + reference dumps if ddr is NULL or dependence is unknown. + +2008-03-20 Kaz Kojima + + * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take + unsigned extension into account. + (ATOMIC_COMPARE_AND_SWAP): Likewise. + (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise. + Do computations on a scratch register. + +2008-03-21 Richard Guenther + + * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): + Use is_gimple_min_invariant instead of TREE_INVARIANT. + * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. + * tree-ssa-dom.c (record_equality): Likewise. + * tree-inline.c (copy_body_r): Likewise. + * tree-ssa-pre.c (make_values_for_stmt): Remove test for + TREE_INVARIANT. + +2008-03-20 Kaz Kojima + + * config/sh/sh.c (split_branches): Pass zero to redirect_jump + as 'delete_unused' argument. + +2008-03-20 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove + special casing of constant qualifiers. + * tree-ssa.c (useless_type_conversion_p_1): Instead do not + care about them in general. + * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not + regardless of their type. + (fold_stmt_r): Forcefully fold *& if we end up with that. + +2008-03-20 Paul Brook + + * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h. + * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra + linker flags. + * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default + definition. + (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC. + * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux. + +2008-03-20 Volker Reichelt + + * common.opt (Wmudflap): New option. + * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap. + (mx_register_decls): Likewise. + (mudflap_finish_file): Likewise. + * doc/invoke.texi: Document -Wno-mudflap. + +2008-03-20 Kai Tietz + + * c-format.c (replace_format_name_to_system_name): New. + (cmp_attribs): New. + (convert_format_name_to_system_name): New. + (decode_format_attr): Add use of convert_format_name_to_system_name. + (format_types_orig): Add gnu_ prefix to names. + (check_format_info_main): Special treating of \0 escaped names for + supporting multi-character format specifiers as I32, I64. + (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes. + (gnu_target_overrides_format_attributes): New. + * c-format.h: Add structure target_ovr_attr to hold + system specific formatter names. + * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the + msformat-c.o file to c_target_objs and cxx_target_objs. + * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. + (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New. + (TARGET_N_FORMAT_TYPES): New. + * config/i386/msformat-c.c: New. + * config/i386/t-cygming: Add build rule for msformat-c.o. + * doc/extend.texi: Add new format names gnu_* and ms_* and + further details. + * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. + +2008-03-20 Ira Rosen + + * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of + optimizations turned on under -O3. + (ftree-vectorize): Add that the flag is turned on with -O3. + +2008-03-20 Ben Elliston + + * regmove.c (try_auto_increment): Fix spelling error in comment. + * final.c (final_scan_insn): Likewise. + +2008-03-20 Uros Bizjak + + PR target/14552 + * config/i386/mmx.md (*mov_internal_rex64"): Adjust register + allocator preferences for "y" and "r" class registers. + ("*mov_internal"): Ditto. + ("*movv2sf_internal_rex64"): Ditto. + ("*movv2sf_internal"): Ditto. + +2008-03-19 Michael Matz + + PR middle-end/35616 + * calls.c (expand_call): Check overlap of arguments with call + address for sibcalls. + +2008-03-19 Uros Bizjak + + PR target/35496 + * stor-layout.c (update_alignment_for_field): Set minimum alignment + of the underlying type of a MS bitfield layout to the natural + alignment of the type. + +2008-03-19 Jan Hubicka + + PR other/35094 + * toplev.c (decode_d_option): Handle all CPP flags. + * tree-vrp.c: Update tree_pass descriptors. + * regrename.c: Update tree_pass descriptors. + * fwprop.c: Update tree_pass descriptors. + * doc/invoke.texi: Remove documentation of dropped -d? flags. + * tree-into-ssa.c: Update tree_pass descriptors. + * tree-dump.c: Update tree_pass descriptors. + * tree-complex.c: Update tree_pass descriptors. + * tree-dump.h: Update tree_pass descriptors. + * see.c: Update tree_pass descriptors. + * cgraphbuild.c: Update tree_pass descriptors. + * tracer.c: Update tree_pass descriptors. + * tree-loop-distribution.c: Update tree_pass descriptors. + * cgraph.c: Update tree_pass descriptors. + * postreload-gcse.c: Update tree_pass descriptors. + * postreload.c: Update tree_pass descriptors. + * tree-ssa-loop-ch.c: Update tree_pass descriptors. + * tree-tailcall.c: Update tree_pass descriptors. + * tree-pass.h (tree_opt_pass): Rename to ... + (opt_pass) ... this one; add "type" field and remove letter field. + (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New. + (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes, + all_lowering_passes): Update declaration. + * ipa-cp.c: Update tree_pass descriptors. + * final.c: Update tree_pass descriptors. + * omp-low.c: Update tree_pass descriptors. + * tree-ssa-dse.c: Update tree_pass descriptors. + * ipa-reference.c: Update tree_pass descriptors. + * tree-ssa-uncprop.c: Update tree_pass descriptors. + * auto-inc-dec.c: Update tree_pass descriptors. + * reorg.c: Update tree_pass descriptors. + * cgraphunit.c: Update tree_pass descriptors. + * tree-ssa-copyrename.c: Update tree_pass descriptors. + * tree-ssa-ccp.c: Update tree_pass descriptors. + * df-core.c: Update tree_pass descriptors. + * mode-switching.c: Update tree_pass descriptors. + * tree-nomudflap.c: Update tree_pass descriptors. + * modulo-sched.c: Update tree_pass descriptors. + * ipa-pure-const.c: Update tree_pass descriptors. + * cse.c: Update tree_pass descriptors. + * web.c: Update tree_pass descriptors. + * tree-stdarg.c: Update tree_pass descriptors. + * tree-ssa-math-opts.c: Update tree_pass descriptors. + * tree-ssa-dom.c: Update tree_pass descriptors. + * tree-nrv.c: Update tree_pass descriptors. + * tree-ssa-alias.c: Update tree_pass descriptors. + * loop-init.c: Update tree_pass descriptors. + * gimple-low.c: Update tree_pass descriptors. + * ipa-inline.c: Update tree_pass descriptors. + * tree-ssa-sink.c: Update tree_pass descriptors. + * global.c: Update tree_pass descriptors. + * ifcvt.c: Update tree_pass descriptors. + * jump.c: Update tree_pass descriptors. + * predict.c: Update tree_pass descriptors. + * tree-ssa-loop.c: Update tree_pass descriptors. + * recog.c: Update tree_pass descriptors. + * dse.c: Update tree_pass descriptors. + * tree-ssa-ifcombine.c: Update tree_pass descriptors. + * tree-eh.c: Update tree_pass descriptors. + * regmove.c: Update tree_pass descriptors. + * local-alloc.c + * function.c: Update tree_pass descriptors. + * tree-vectorizer.c: Update tree_pass descriptors. + * gcse.c: Update tree_pass descriptors. + * ipa-type-escape.c: Update tree_pass descriptors. + * tree-if-conv.c: Update tree_pass descriptors. + * init-regs.c: Update tree_pass descriptors. + * ipa.c: Update tree_pass descriptors. + * tree-ssa-phiopt.c: Update tree_pass descriptors. + * rtl-factoring.c: Update tree_pass descriptors. + * lower-subreg.c: Update tree_pass descriptors. + * bt-load.c: Update tree_pass descriptors. + * tree-dfa.c: Update tree_pass descriptors. + * except.c: Update tree_pass descriptors. + * emit-rtl.c: Update tree_pass descriptors. + * cfgexpand.c: Update tree_pass descriptors. + * tree-cfgcleanup.c: Update tree_pass descriptors. + * cfgcleanup.c: Update tree_pass descriptors. + * tree-ssa-pre.c: Update tree_pass descriptors. + * tree-sra.c: Update tree_pass descriptors. + * tree-mudflap.c: Update tree_pass descriptors. + * tree-ssa-copy.c: Update tree_pass descriptors. + * cfglayout.c: Update tree_pass descriptors. + * tree-ssa-forwprop.c: Update tree_pass descriptors. + * tree-ssa-dce.c: Update tree_pass descriptors. + * tree-ssa.c: Update tree_pass descriptors. + * regclass.c: Update tree_pass descriptors. + * integrate.c: Update tree_pass descriptors. + * tree-optimize.c: Update tree_pass descriptors. + * tree-ssa-phiprop.c: Update tree_pass descriptors. + * tree-object-size.c: Update tree_pass descriptors. + * combine.c: Update tree_pass descriptors. + * tree-outof-ssa.c: Update tree_pass descriptors. + * bb-reorder.c: Update tree_pass descriptors. + * stack-ptr-mod.c: Update tree_pass descriptors. + * var-tracking.c: Update tree_pass descriptors. + * tree-profile.c: Update tree_pass descriptors. + * tree-vect-generic.c: Update tree_pass descriptors. + * reg-stack.c: Update tree_pass descriptors. + * sched-rgn.c: Update tree_pass descriptors. + * tree-ssa-structalias.c: Update tree_pass descriptors. + * tree-cfg.c: Update tree_pass descriptors. + * passes.c (current_pass): Update declaration. + (finish_optimization_passes): Update. + (all_passes, all_ipa_passes, all_lowering_passes): Update declaration. + (register_one_dump_file, register_dump_files_1, next_pass_1): + Update arguments. + (init_optimization_passes): Update handling of new types. + (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update. + * ipa-struct-reorg.c: Update tree_pass descriptors. + * tree-ssa-reassoc.c: Update tree_pass descriptors. + * combine-stack-adj.c: Update tree_pass descriptors. + * cfgrtl.c: Update tree_pass descriptors. + * dce.c: Update tree_pass descriptors. + * tree-ssanames.c: Update tree_pass descriptors. + +2008-03-19 Richard Guenther + + PR middle-end/35609 + * tree-ssa.c (walk_data): New structure. + (warn_uninitialized_var): If not always_executed warn with "maybe" + instead of "is". + (execute_early_warn_uninitialized): Compute post-dominators. + Initialize always_executed before processing each basic block. + +2008-03-18 Mikulas Patocka + + PR target/35504 + * config/i386/i386.c (x86_this_parameter): Calculate correct location + of "this" pointer when "regparm = N" or "fastcall" is in effect. + +2008-03-18 Ralf Wildenhues + + * doc/include/texinfo.tex: Update to version 2008-03-17.10. + +2008-03-18 Paolo Bonzini + + * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations + is true. + (expand_expr_real_1) : Don't look at ignore. + (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations + is true. Add "&& !ignore" condition to reduce_bit_field. Modify + target after ignore has been set, and move there also the commputation + of subtarget and original_target. + * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. + (LANG_HOOKS_INITIALIZER): Remove it. + * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations. + +2008-03-18 Richard Guenther + + * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup + found an expression with constants, note that in the VN for the lhs. + * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and + fold them to constants if possible. Run cleanup_cfg if done so. + (execute_pre): Return todo. + (do_pre): Likewise. + (execute_fre): Likewise. + * tree-ssa-forwprop.c (can_propagate_from): Allow propagation + of constants. + (get_prop_source_stmt): Look through pointer conversions. + +2008-03-18 Jan Hubicka + + * tree-pretty-print.c: Include predict.h. + (dump_generic_node): Dump predictor. + * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update. + * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR. + * gimple-low.c (lower_stmt): Likewise. + * expr.c (expand_expr_real): Likewise. + * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove + them. + (build_predict_expr, build_predict_expr): New. + * predict.h (predictor_name, build_predict_expr): Update. + * c-typeck.c (c_finish_bc_stmt): Add prediction. + * gimplify.c (gimplify_expr): Add PREDICT_EXPR. + * predict.def (PRED_CONTINUE): Update hitrate. + * tree.def (PREDICT_EXPR): Define. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR; + do not handle BIND_EXPR. + * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free. + * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid. + * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no + operands. + +2008-03-18 Michael Matz + + * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden. + +2008-03-18 Richard Guenther + + * tree-gimple.h (is_gimple_invariant_address): Declare. + (is_gimple_constant): Likewise. + * tree-gimple.c (is_gimple_constant): New function. + (is_gimple_invariant_address): Likewise. + (is_gimple_min_invariant): Implement in terms of is_gimple_constant + and is_gimple_invariant_address. + * tree-ssa-loop-niter.c (expand_simple_operations): Revert + previous change. + * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not + an addressable base. + +2008-03-18 Jakub Jelinek + + PR middle-end/35611 + * gimplify.c (gimplify_expr): Gimplify second operand of + OMP_ATOMIC_LOAD. + +2008-03-17 Richard Guenther + + PR tree-optimization/19637 + * fold-const.c (fold_unary): Remove restrictions of removing + intermediate pointer-conversions (P2)(P1)P0. + * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from + conversion to void pointer. + (get_maxval_strlen): Handle addresses of the form &(*p)[0]. + +2008-03-16 James E. Wilson + + PR debug/31510 + * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for + emulated thread local variables. + +2008-03-16 Richard Guenther + + PR middle-end/35607 + * tree-ssa-loop-niter.c (expand_simple_operations): Do not + expand TREE_INVARIANT operations that are not gimple invariant. + +2008-03-16 Hans-Peter Nilsson + + * doc/extend.texi (Alignment): Say that the ABI controls + the __alignof__ for non-strict-alignment targets rather + than being a recommendation. + +2008-03-15 Paul Brook + + * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding + annotations. + (arm_output_fn_unwind): Mark functions that can not be unwound. + +2008-03-15 Paul Brook + + * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value + extension instructions. + +2008-03-15 Richard Guenther + + * tree-ssa-ccp.c (ccp_fold): Also read from constant values + and fold constant aggregate refs. + (fold_const_aggregate_ref): Handle string constants + and constructors in ARRAY_REFs. Handle INDIRECT_REF. + (evaluate_stmt): Simplify now that ccp_fold folds constant + aggregate refs. + +2008-03-15 Paul Brook + + * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero. + (extzv): Use gen_extzv_t2. + (insv_t2, insv_zero, extv, extzv_t2): New patterns. + +2008-03-15 Richard Guenther + + * tree-ssa-ccp.c (get_symbol_constant_value): Export. + (fold_const_aggregate_ref): Likewise. + (get_value): Return NULL if we don't have any values. + (ccp_finalize): Set const_val to NULL after freeing it. + * tree-flow.h (get_symbol_constant_value): Declare. + (fold_const_aggregate_ref): Likewise. + * tree-ssa-sccvn.c (try_to_simplify): Use them. + +2008-03-15 Richard Guenther + + PR middle-end/35593 + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure + to not produce negative array indices if not allowed. Add + parameter to indicate that. + (maybe_fold_offset_to_component_ref): Allow negative array + indices only for the first member of a structure. + (maybe_fold_offset_to_reference): Allow negative array indices. + (maybe_fold_stmt_addition): Likewise. + +2008-03-15 Bjoern Haase + Anatoly Sokolov + + * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry. + (avr_arch): Add ARCH_AVR6. + (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry. + (initial_elimination_offset): Initialize and use 'avr_pc_size' + instead of fixed value 2. + (print_operand_address): Use gs() asm specifier instead of pm(). + (avr_assemble_integer): (Ditto.). + (avr_output_addr_vec_elt): (Ditto.). + (print_operand): Handle "!" code. + * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add + __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__. + (AVR_HAVE_EIJMP_EICALL): Define. + (AVR_3_BYTE_PC): Redefine. + (AVR_2_BYTE_PC): (Ditto.). + (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code. + (LINK_SPEC): Add atmega2560 and atmega2561. + (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 + (crtm2561.o). + * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall + for 3 byte PC devices. + (call_value_insn): (Ditto.). + (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices. + (indirect_jump): Use only for for 2 byte PC devices. + (*tablejump): (Ditto.). + (*indirect_jump_avr6): Add insn. + (*tablejump_rjmp): Don't use for 3 byte PC devices. + * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp + instead of ijmp for 3 byte PC devices. + (__tablejump2__): (Ditto.). + * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture. + (MULITLIB_DIRNAMES): (Ditto.). + (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list. + +2008-03-15 Uros Bizjak + + * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from + "sse2_umulsidi3". Use V1DI mode for operand 0. + ("mmx_psadbw"): Use V1DI mode for operand 0. + * config/i386/i386-modes.def (V1SI): New vector mode. + * config/i386/i386.c (struct builtin_description) + [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3. + (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi. + (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si. + (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use + v1di_ftype_v8qi_v8qi type. + [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type. + + * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw, + __builtin_ia32_pmuludq]: Fix the mode of return value. + +2008-03-15 Richard Guenther + + PR middle-end/35595 + * tree-ssa-pre.c (bitmap_find_leader): Handle expression + being a PHI_NODE. + +2008-03-14 Bob Wilson + + * doc/invoke.texi (Option Summary, Xtensa Options): Document + -mserialize-volatile and -mno-serialize-volatile Xtensa options. + * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions + unless TARGET_SERIALIZE_VOLATILE is enabled. + * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise. + * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE. + * config/xtensa/xtensa.opt (mserialize_volatile): New option. + +2008-03-14 Richard Guenther + + PR tree-optimization/34172 + * tree-flow.h (refs_may_alias_p): Declare. + (get_single_def_stmt): Likewise. + (get_single_def_stmt_from_phi): Likewise. + (get_single_def_stmt_with_phi): Likewise. + * tree-dfa.c (refs_may_alias_p): New function. + (get_single_def_stmt): Likewise. + (get_single_def_stmt_from_phi): Likewise. + (get_single_def_stmt_with_phi): Likewise. + * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function. + (vn_reference_lookup_1): New helper function. + (vn_reference_lookup): Walk the virtual use-def chain to + continue searching for a match if the def does not alias the + reference we are looking for. + +2008-03-14 David Edelsohn + + * doc/install.texi (Binaries): Remove UCLA archive. Add HVCC + archive and Perzl. Update The Written Word listing. + +2008-03-14 Richard Guenther + + PR tree-optimization/34043 + PR tree-optimization/33989 + * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion + when doing FRE. + (bitmap_find_leader): Use extra argument to verify dominance + relationship inside a basic-block. + (can_PRE_operation): Add VIEW_CONVERT_EXPR. + (find_leader_in_sets): Adjust. + (create_component_ref_by_pieces): Take extra argument for + dominance check, handle lookup failures. + (find_or_generate_expression): Likewise. + (create_expression_by_pieces): Likewise. + (insert_into_preds_of_block): Adjust. + (create_value_expr_from): If asked for, verify all operands + are in the blocks AVAIL_OUT set. + (make_values_for_stmt): Check for SSA_NAMEs that are life + over an abnormal edge. + (compute_avail): Remove such check. + (do_SCCVN_insertion): New function. + (eliminate): If we do not find a leader suitable for replacement + insert a replacement expression from SCCVN if available. + * tree-ssa-sccvn.h (run_scc_vn): Update prototype. + (struct vn_ssa_aux): Add needs_insertion flag. + * tree-ssa-sccvn.c (may_insert): New global flag. + (copy_reference_ops_from_ref): Value-number union member access + based on its size, not type and member if insertion is allowed. + (visit_reference_op_load): For a weak match from union type + punning lookup a view-converted value and insert a SSA_NAME + for that value if that is not found. + (visit_use): Make dumps shorter. Do not disallow value numbering + SSA_NAMEs that are life over an abnormal edge to constants. + (free_scc_vn): Release inserted SSA_NAMEs. + (run_scc_vn): New flag to specify whether insertion is allowed. + Process SSA_NAMEs in forward order. + * tree-ssa-loop-im.c (for_each_index): Handle invariant + ADDR_EXPRs inside VIEW_CONVERT_EXPR. + * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to + pointer type to/from integral types that do not change the + precision to regular conversions. + +2008-03-13 Uros Bizjak + + * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?, + __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i, + __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128, + __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of + input arguments and the mode of return value. Built-in functions + that operate on whole 64-bit MMX register now use V1DI mode. + +2008-03-13 Alon Dayan + Olga Golovanevsky + + PR tree-optimization/35041 + * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option + to locate the right position in a statement. + +2008-03-13 Uros Bizjak + + PR target/34000 + PR target/35553 + * config/i386/xmmintrin.h: Change all static inline functions to + extern inline and add __gnu_inline__ attribute. + * config/i386/bmintrin.h: Ditto. + * config/i386/smmintrin.h: Ditto. + * config/i386/tmmintrin.h: Ditto. + * config/i386/mmintrin-common.h: Ditto. + * config/i386/ammintrin.h: Ditto. + * config/i386/emmintrin.h: Ditto. + * config/i386/pmmintrin.h: Ditto. + * config/i386/mmintrin.h: Ditto. + * config/i386/mm3dnow.h: Ditto. + +2008-03-13 Jakub Jelinek + + PR middle-end/35185 + * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed. + (lower_omp_2): New function. + (lower_omp_1, lower_omp): Rewritten. + +2008-03-13 Danny Smith + + PR 35054 + * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32" + with the phrase "Microsoft Windows compilers". + (Push/Pop Macro Pragmas): New subsection. Document + #pragma push_macro and pragma pop_macro. + +2008-03-12 Paul Brook + + * config/arm/arm.c (output_move_double): Prefer LDRD to LDM. + +2008-03-12 Paul Brook + + * config/arm/thumb2.md: Extend peephole to cover 3-arg subs. + (thumb2_alusi3_short): Exclude PLUS and MINUS. + (thumb2_addsi_shortim): Rename ... + (thumb2_addsi_short): ... to this. Allow register operands. + (thumb2_subsi_short): New pattern. + (thumb2_one_cmplsi2_short, + thumb2_negsi2_short): New patterns and peepholes. + +2008-03-12 Paul Brook + + * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2. + +2008-03-12 Uros Bizjak + + * config/i386/i386.md (int_cond): New code iterator. + (fp_cond): Ditto. + ("s"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu, + sge, sgeu, sle and sleu expanders usign int_cond code iterator. + ("s"): Macroize expander from sunordered, sordered, suneq, sunge, + sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator. + ("b"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu, + bge, bgeu, ble and bleu expanders usign int_cond code iterator. + ("b"): Macroize expander from bunordered, bordered, buneq, bunge, + bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator. + +2008-03-12 Paul Brook + + * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask + instead of {arm,thumb}_compute_save_reg_mask. + (output_return_instruction): Ditto. + (thumb_unexpanded_epilogue): Ditto. + (thumb1_expand_prologue): Ditto. + (thumb1_output_function_prologue): Ditto. + (arm_set_return_address): Ditto. + (thumb_set_return_address): Ditto. + (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra + regs to achieve stack alignment. + (thumb1_compute_save_reg_mask): Fix compiler warning. + (arm_output_epilogue): Use offsets->saved_regs_mask. + Adjust stack pointer by poping call clobered registers. + (arm_expand_prologue): Use offsets->saved_regs_mask. + Adjust stack pointer by pushing extra registers. + * config/arm.h (arm_stack_offsets): Add saved_regs_mask. + 2008-03-12 Paolo Bonzini PR tree-opt/35422 @@ -59,11 +1202,11 @@ PR target/35540 * config/i386/i386.md (paritysi2, paritydi2): Use register_operand - constraint for operand 1. - (paritysi2_cmp): Use register_operand constraint for operand 2. + predicate for operand 1. + (paritysi2_cmp): Use register_operand predicate for operand 2. Use earlyclobber modifier for operand 1. Remove support for memory operands. - (paritydi2_cmp): Use register_operand constraint for operand 3. + (paritydi2_cmp): Use register_operand predicate for operand 3. Use earlyclobber modifier for operand 1. Remove support for memory operands. @@ -609,7 +1752,7 @@ 2008-03-04 Danny Smith * config/i386/i386.md (allocate_stack_worker_32): Use __chkstk - label to probe the stack. + label to probe the stack. 2008-03-04 Danny Smith @@ -1174,7 +2317,7 @@ 2008-02-26 Manuel Lopez-Ibanez - PR 26264 + PR 26264 * builtins.def (BUILT_IN_STDARG_START): Remove. * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START. * tree-stdarg.c (execute_optimize_stdarg): Likewise. @@ -1354,7 +2497,7 @@ PR fortran/29549 * doc/invoke.texi (-fcx-limited-range): Document new option. * toplev.c (process_options): Handle -fcx-fortran-rules. - * common.opt: Add documentation for -fcx-fortran-rules. + * common.opt: Add documentation for -fcx-fortran-rules. 2008-02-25 Janne Blomqvist @@ -1999,7 +3142,6 @@ 2008-02-17 Uros Bizjak Revert: - 2008-02-15 Uros Bizjak * config/i386/sfp-machine.h (CMPtype): Define as typedef using libgcc_cmp_return mode. @@ -3915,7 +5057,7 @@ 2008-01-02 Arthur Norman PR target/34013 - * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone + * config/i386/i386.c (ix86_expand_prologue): Save red-zone while stack probing. 2008-01-01 Douglas Gregor