+2007-10-20 Alan Modra <amodra@bigpond.net.au>
+
+ 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 <davem@davemloft.net>
+
+ * config/sparc/niagara2.md: Fix copyright notice.
+
+2007-10-19 Sebastian Pop <sebastian.pop@amd.com>
+
+ 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 <rguenther@suse.de>
+
+ 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 <rguenther@suse.de>
+
+ Revert
+ 2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32921
+ * tree.c (build_array_type): Do not re-layout unbound array
+ types.
+
+2007-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/32921
+ * tree.c (build_array_type): Do not re-layout unbound array
+ types.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR
+ calculation.
+
+2007-10-19 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <davem@davemloft.net>
+
+ 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * 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 <rsandifo@nildram.co.uk>
+
+ * config/mips/mips.c: Delete trailing whitespace.
+
+2007-10-18 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * 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<mode>): Don't make the unspec
+ depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO.
+
+2007-10-18 David Daney <ddaney@avtrex.com>
+
+ * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new
+ reg_offset variable to calculate register locations.
+
+2007-10-18 Richard Guenther <rguenther@suse.de>
+
+ * 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 <rguenther@suse.de>
+
+ * 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 <dan@codesourcery.com>
+
+ * config/mips/mips.c (mips_dwarf_register_span): New.
+ (TARGET_DWARF_REGISTER_SPAN): Define.
+
+2007-10-18 Chen Liqin <liqin@sunnorth.com.cn>
+
+ * 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 <andrew_pinski@playstation.sony.com>
+
+ * 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 <aesok@post.ru>
+
+ * 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 <maxim@codesourcery.com>
+
+ * 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 <maxim@codesourcery.com>
+
+ * 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 <maxim@codesourcery.com>
+
+ * genattrtab.c (main): Rearrange output of insn-attrtab.c headers.
+
+2007-10-17 Eric B. Weddington <eweddington@cso.atmel.com>
+
+ * 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 <eweddington@cso.atmel.com>
+
+ * 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 <ubizjak@gmail.com>
+
+ 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 <ubizjak@gmail.com>
+
+ 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 <dberlin@dberlin.org>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <manu@gcc.gnu.org>
+
+ * 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 <eweddington@cso.atmel.com>
+
+ * 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 <amruth.laxman@nsn.com>
+
+ PR target/33594
+ * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define.
+
+2007-10-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * 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 <bonzini@gnu.org>
+ Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * 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 <manu@gcc.gnu.org>
+
+ * doc/invoke.texi (Wextra): Move it just after Wall, list the
+ options enabled by Wextra and mention Wuninitialized.
+
2007-10-15 Nigel Stephens <nigel@mips.com>
* config/mips/mips.h (LOCAL_ALIGNMENT): Define.