+2008-06-16 Daniel Jacobowitz <dan@codesourcery.com>
+ Kazu Hirata <kazu@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com
+
+ * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
+ * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
+ * config/mips/linux.h (host_detect_local_cpu): Declare, add to
+ EXTRA_SPEC_FUNCTIONS.
+ (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
+ (DRIVER_SELF_SPECS): Adjust.
+ * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
+ * config/mips/st.h, config/mips/t-st: New.
+ * config/mips/driver-native.c, config/mips/x-native: New.
+ * doc/invoke.texi (MIPS): Document 'native' value for -march and
+ -mtune options.
+
+2008-06-18 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
+ from it.
+ (ISA_HAS_FP_CONDMOVE): New macro.
+ (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
+ (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
+ (ISA_HAS_NMADD3_NMSUB3): New macro.
+ * config/mips/mips.c (mips_rtx_costs): Update.
+ * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
+ compiling for ST Loongson 2E/2F.
+ (madd<mode>): Rename to madd4<mode>. Update.
+ (madd3<mode>): New pattern.
+ (msub<mode>): Rename to msub4<mode>. Update.
+ (msub3<mode>): New pattern.
+ (nmadd<mode>): Rename to nmadd4<mode>. Update.
+ (nmadd3<mode>): New pattern.
+ (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath. Update.
+ (nmadd3<mode>_fastmath): New pattern.
+ (nmsub<mode>): Rename to nmsub4<mode>. Update.
+ (nmsub3<mode>): New pattern.
+ (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath. Update.
+ (nmsub3<mode>_fastmath): New pattern.
+ (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
+
+2008-06-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
+ (DF_REF_INSN_INFO): New.
+ (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
+ (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
+ with a NULL DF_REF_INSN_INFO.
+ (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
+ DF_INSN_SET.
+ (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
+ DF_INSN_INFO_EQ_USES): New.
+ (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
+ DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
+ DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
+ * df-core.c: Update comment for above changes.
+ (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
+ DF_INSN_UID_* macros.
+ (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
+ * df-scan.c (df_ref_record): Take a df_insn_info instead of an
+ insn rtx. Update all callers.
+ (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
+ df_ref_create_structure, df_insn_refs_collect): Likewise.
+ (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
+ * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
+ (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
+ macros to access the insn refs.
+ (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
+ * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
+ (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
+ for accessing the refs.
+ (try_fwprop_subst): Likewise.
+ * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
+ * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
+ for accessing the refs.
+ * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
+ (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
+ to look at the insn refs.
+ (record_uses): Likewise.
+ * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
+ function anymore.
+ (mark_artificial_uses): Don't mark_insn for artificial refs.
+ (mark_reg_rependencies): Likewise.
+
+ * doc/rtl.texi: Remove documentation of ADDRESSOF.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure: Regenerate.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add attiny167.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * tree-ssa-sccvn.c: Fix format of comments.
+
+2008-06-17 Bernhard Fischer <aldot@gcc.gnu.org>
+
+ * cgraph.c: Remove unneeded forward declarations of eq_node()
+ and hash_node().
+
+2008-06-17 Steven Bosscher <steven@gcc.gnu.org>
+
+ * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
+ REG_RETVAL notes.
+ (see_update_relevancy): Likewise.
+ * fwprop.c (try_fwprop_subst): Likewise.
+ * rtlanal.c (noop_move_p): Likewise.
+ * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
+ notes to non-existing libcall blocks.
+ * cse.c (cse_insn): Change prototype. Don't update libcall notes.
+ Remove orig_set.
+ (cse_extended_basic_block): Don't track libcall and no-conflict notes.
+ (dead_libcall_p): Remove.
+ (delete_trivially_dead_insns): Don't use it.
+ * web.c (union_defs): Remove comment about keeping nops.
+ * gcse.c (hash_scan_insn): Don't take libcall pointers.
+ (compute_hash_table_work): Don't track libcall notes.
+ (do_local_cprop): Don't take libcall pointers. Don't update
+ libcall notes.
+ (adjust_libcall_notes): Deleted.
+ (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
+ ever have existed in the first place).
+ (replace_store_insn): Don't try to remove libcall notes.
+ * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
+ (resolve_reg_notes): Don't call them.
+ (resolve_simple_move): Likewise.
+ (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
+ Don't remove REG_RETVAL notes.
+ * emit-rtl.c (try_split): Don't update libcall notes.
+ (emit_copy_of_insn_after): Dito.
+ * cselib.c (cselib_current_insn_in_libcall): Remove.
+ (cselib_process_insn): Don't set/clear it.
+ (new_elt_loc_list): Don't record it.
+ (cselib_init): Don't initialize it.
+ * cselib.c (struct elt_loc_list): Remove in_libcall field.
+ * loop-invariant.c (find_invariant_insn): Don't look for libcall
+ notes.
+ * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
+ (sched_analyze): Don't set up deps->libcall_block_tail_insn.
+ (init_deps): Don't initialize it.
+ * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
+ * combine.c (delete_noop_moves): Don't update libcall notes.
+ (can_combine_p): Remove now pointless #if 0 block.
+ (try_combine): Remove another obsolete #if 0 block.
+ (distribute_notes): Don't distribute libcall notes.
+ * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
+ * dce.c (libcall_dead_p): Remove.
+ (delete_unmarked_insns): Don't handle libcall blocks.
+ (preserve_libcall_for_dce): Remove.
+ (prescan_insns_for_dce): Don't special-case libcall block insns.
+ * reload1 (reload): Don't handle libcall notes.
+ * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
+ documentation.
+
+2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-16 Eric B. Weddington <eric.weddington@atmel.com>
+
+ * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
+
+2008-06-16 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/36493
+ * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
+ the arguments list. Use VECTYPE to create vector pointer.
+ (vectorizable_store): Fail if accesses through a pointer to vectype
+ do not alias the original memory reference operands.
+ Call vect_create_data_ref_ptr without the removed argument.
+ (vectorizable_load): Likewise.
+ (vect_setup_realignment): Call vect_create_data_ref_ptr without the
+ removed argument.
+
+2008-06-015 Andy Hutchinson <hutchinsonandy@aim.com>
+
+ PR target/36336
+ * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
+ reg_equiv_constant.
+
+2008-06-15 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/loongson2ef.md: New file.
+ * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
+ (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
+ (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
+ and loongson_2f.
+ (loongson2ef.md): New include.
+ * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
+ (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
+ (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
+ (loongson_gt_<mode>, loongson_extract_halfword)
+ (loongson_insert_halfword_0, loongson_insert_halfword_2)
+ (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
+ (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
+ (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
+ (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
+ (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
+ (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
+ (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
+ (vec_interleave_low<mode>): Define type attribute.
+ * config/mips/mips.c (mips_ls2): New static variable.
+ (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
+ (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
+ (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
+ Implement target scheduling hooks.
+ (mips_multipass_dfa_lookahead): Update to handle tuning for
+ Loongson 2E/2F.
+ (mips_sched_init): Initialize data for Loongson scheduling.
+ (mips_ls2_variable_issue): New static function.
+ (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
+ Add sanity check.
+ (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
+ (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
+ * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
+ (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
+ Handle ST Loongson 2E/2F cores.
+ (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
+
+2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * omp-low.c (extract_omp_for_data): Fix comment typo.
+ * c.opt: Fix typo.
+
+2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/sourcebuild.texi (Config Fragments): Remove obsolete
+ FIXME note about gcc/config.guess.
+ * doc/options.texi (Option file format): Remove non-ASCII bytes.
+ * doc/cpp.texi: Expand TABs, drop indentation outside examples.
+ * doc/cppopts.texi: Likewise.
+ * doc/extend.texi: Likewise.
+ * doc/gcc.texi: Likewise.
+ * doc/gccint.texi: Likewise.
+ * doc/gcov.texi: Likewise.
+ * doc/gty.texi: Likewise.
+ * doc/hostconfig.texi: Likewise.
+ * doc/install.texi: Likewise.
+ * doc/invoke.texi: Likewise.
+ * doc/loop.texi: Likewise.
+ * doc/makefile.texi: Likewise.
+ * doc/md.texi: Likewise.
+ * doc/passes.texi: Likewise.
+ * doc/tm.texi: Likewise.
+ * doc/tree-ssa.texi: Likewise.
+ * doc/trouble.texi: Likewise.
+
+2008-06-15 Mark Shinwell <shinwell@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
+ * config/mips/mips-protos.h (mips_expand_vector_init): New.
+ * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
+ builtins.
+ * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
+ (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
+ (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
+ V8QImode cases.
+ (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
+ (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
+ (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
+ (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
+ (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
+ (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
+ (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
+ (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
+ (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
+ (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
+ (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
+ (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
+ (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
+ (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
+ (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
+ (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
+ (mips_builtins): Add Loongson builtins.
+ (mips_loongson_2ef_bdesc): New.
+ (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
+ (mips_builtin_vector_type): Handle unsigned versions of vector modes.
+ (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
+ (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
+ New.
+ (mips_expand_vector_init): New.
+ * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
+ (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
+ if appropriate.
+ * config/mips/mips.md: Add unspec numbers for Loongson
+ builtins. Include loongson.md.
+ (MOVE64): Include Loongson vector modes.
+ (SPLITF): Include Loongson vector modes.
+ (HALFMODE): Handle Loongson vector modes.
+ * config/mips/loongson.md: New.
+ * config/mips/loongson.h: New.
+ * config.gcc: Add loongson.h header for mips*-*-* targets.
+ * doc/extend.texi (MIPS Loongson Built-in Functions): New.
+
+2008-06-14 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
+ h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
+ i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
+ iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
+ m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
+ m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
+ mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
+ mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
+ mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
+ mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
+ powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
+ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
+ sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
+ sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
+ sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
+ v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
+ Remove use_fixproto=yes.
+ (ia64*-*-hpux*): Remove comment about using fixproto.
+ (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
+
+2008-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac: Update gthr-default.h lazily, to avoid unneeded
+ library rebuilds.
+ * configure: Regenerate.
+
+2008-06-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/36520
+ * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
+ before evaluating it.
+
2008-06-13 Jakub Jelinek <jakub@redhat.com>
PR c/36507