+2009-04-03 Alan Modra <amodra@bigpond.net.au>
+
+ * config.gcc (powerpc-*-linux*): Merge variants.
+
+2009-04-02 Chao-ying Fu <fu@mips.com>
+ James Grosbach <james.grosbach@microchip.com>
+
+ * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
+ num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
+ cop0_sp_offset.
+ (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
+ keep_interrupts_masked_p, use_debug_exception_return_p.
+ (mips_attribute_table): Add interrupt, use_shadow_register_set,
+ keep_interrupts_masked, use_debug_exception_return.
+ (mips_interrupt_type_p, mips_use_shadow_register_set_p,
+ mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
+ New functions.
+ (mips_function_ok_for_sibcall): Return false for interrupt handlers.
+ (mips_print_operand): Process COP0 registers to print $0 .. $31
+ correctly for GAS to process.
+ (mips_interrupt_extra_call_saved_reg_p): New function.
+ (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
+ extra registers.
+ (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
+ (mips_compute_frame_info): Add supports for interrupt context that
+ includes doubleword accumulators and COP0 registers.
+ (mips_for_each_saved_acc): New function.
+ (mips_for_each_saved_gpr_and_fpr): Change the function name from
+ mips_for_each_saved_reg.
+ (mips_save_reg): Save accumulators.
+ (mips_kernel_reg_p): A new for_each_rtx callback.
+ (mips_expand_prologue): Support interrupt handlers.
+ (mips_restore_reg): Restore accumulators.
+ (mips_expand_epilogue): Support interrupt handlers.
+ (mips_can_use_return_insn): Return false for interrupt handlers.
+ (mips_epilogue_uses): New function.
+ * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
+ UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
+ (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
+ cop0_move): New instructions.
+ * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
+ * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
+ defines.
+ (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
+ New defines.
+ (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
+ (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
+ interrupt handlers, we use K0 as the temporary register.
+ (EPILOGUE_USES): Change to a function call.
+ * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
+ handlers, we use K0 as the temporary register.
+
+ * doc/extend.texi (Function Attributes): Document interrupt,
+ use_shadow_register_set, keep_interrupts_masked,
+ use_debug_exception_return for MIPS attributes.
+
+2009-04-03 Alan Modra <amodra@bigpond.net.au>
+
+ * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
+ Remove a number of t-files from tmake_file.
+ * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
+ * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
+ * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
+ target_prototype, not TARGET_PROTOTYPE.
+ (LINK_OS_GNU_SPEC): Define.
+ * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
+ and darwin-ldoubdle.c.
+
+2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR driver/39293
+ * gcc.c (save_temps_flag): Add support for -save-temps=obj.
+ (cpp_options): Ditto.
+ (default_compilers): Ditto.
+ (display_help): Ditto.
+ (process_command): Ditto.
+ (do_spec_1): Ditto.
+ (set_input): Use lbasename instead of duplicate code.
+ (save_temps_prefix): New static for -save-temps=obj.
+ (save_temps_length): Ditto.
+
+ * doc/invoke.texi (-save-temps=obj): Document new variant to
+ -save-temps switch.
+
+2009-04-02 Jeff Law <law@redhat.com>
+
+ * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
+ variable.
+
+2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
+ * configure: Regenerated.
+
+2009-04-02 Rafael Avila de Espindola <espindola@google.com>
+
+ * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
+ share the argument list.
+
+2009-04-02 Rafael Avila de Espindola <espindola@google.com>
+
+ Merge
+
+ 2009-02-12 Diego Novillo <dnovillo@google.com>
+
+ * varpool.c (debug_varpool): New.
+ * cgraph.h (debug_varpool): Declare.
+
+2009-04-02 Jan Hubicka <jh@suse.cz>
+
+ * passes.c (init_optimization_passes): Remove two copies of ehcleanup
+ pass.
+
+2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_abi): Move initialization to ...
+ (override_options): Here.
+
+2009-04-02 Christian Bruel <christian.bruel@st.com>
+
+ * config/sh/sh.c (sh_dwarf_register_span): New function.
+ (TARGET_DWARF_REGISTER_SPAN): Define.
+ * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
+
+2009-04-02 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/39595
+ * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
+ interleaved loads group is not greater than the SLP group size.
+
+2009-04-02 Rafael Avila de Espindola <espindola@google.com>
+
+ * builtins.c (is_builtin_name): New.
+ (called_as_built_in): Use is_builtin_name.
+ * tree.h (is_builtin_name): New.
+ * varasm.c (incorporeal_function_p): Use is_builtin_name
+
+2009-04-02 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
+
+2009-04-02 Dodji Seketeli <dodji@redhat.com>
+
+ PR c++/26693
+ * c-decl.c: (clone_underlying_type): Move this ...
+ * c-common.c (set_underlying_type): ... here.
+ Also, make sure the function properly sets TYPE_STUB_DECL() on
+ the newly created typedef variant type.
+ * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
+ * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
+
+2009-04-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/37221
+ * tree-flow.h (degenerate_phi_result): Declare.
+ * tree-ssa-dom.c (degenerate_phi_result): Export.
+ * tree-scalar-evolution.c (analyze_initial_condition): If
+ the initial condition is defined by a degenerate PHI node
+ use the degenerate value.
+
+2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/39588
+ * combine.c (merge_outer_ops): Do not set the constant when this
+ is not necessary.
+ (simplify_shift_const_1): Do not modify it either in this case.
+
+2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
+
+ * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
+ tuning is deprecated if -mtune value is set to an Itanium1 variant.
+
+2009-04-01 Janis Johnson <janis187@us.ibm.com>
+
+ PR c/29027
+ * c-lex.c (interpret_float): Default (no suffix) is double.
+
+2009-04-1 Xinliang David Li <davidxl@google.com>
+
+ * config/i386/i386.c (legitimate_constant_p): Recognize
+ all one vector constant.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/vax.c: Add #includes to silence warnings.
+ Change #include order to silence two warnings.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
+ (ASM_SPEC): Pass -k to the assembler for PIC code.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config.gcc: Add vax-*-linux* to the switch.
+ * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
+ TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
+ Use predicate macros instead of GET_CODE() == foo.
+ * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
+ ashlsi3, rotrsi3, <unnamed>): Likewise.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
+ jbbccihi, jbbccisi): Remova trailing whitespace.
+ * gcc/config/vax/constraints.md: Likewise.
+ * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
+ * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
+ * gcc/config/vax/predicates.md: Likewise.
+ * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
+ vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
+ * gcc/config/vax/vax.h: Likewise.
+ * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
+ (indirectable_address_p, adjacent_operands_p): Add spaces around
+ braces.
+ * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/vax.c (legitimate_constant_address_p,
+ legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
+ index_term_p, reg_plus_index_p, legitimate_address_p,
+ vax_mode_dependent_address_p): Update comments to match functions
+ modified by the recent int->bool conversion.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/builtins.md: Update copyright message.
+ * gcc/config/vax/constraints.md: Likewise.
+ * gcc/config/vax/netbsd-elf.h: Likewise.
+ * gcc/config/vax/predicates.md: Likewise.
+ * gcc/config/vax/vax-protos.h: Likewise.
+ * gcc/config/vax/vax.c: Likewise.
+ * gcc/config/vax/vax.h: Likewise.
+ * gcc/config/vax/vax.md: Likewise.
+ * gcc/config/vax/vax.opt: Likewise.
+
+2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
+
+ * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
+ sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
+ * gcc/config/vax/constraints.md (B, R): Likewise.
+ * gcc/config/vax/predicates.md (external_memory_operand,
+ nonimmediate_addsub_di_operand): Likewise.
+ * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
+ * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
+ untyped_call): Likewise.
+
+2009-04-01 Matt Thomas <matt@3am-software.com>
+
+ * config/vax/predicates.md: New file. (symbolic_operand,
+ local_symbolic_operand, external_symbolic_operand,
+ external_const_operand, nonsymbolic_operand, external_memory_operand,
+ indirect_memory_operand, indexed_memory_operand,
+ illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
+ nonimmediate_addsub_di_operand, general_addsub_di_operand): New
+ predicate.
+ * config/vax/constraints.md: New file. (Z0, U06, U08, U16, CN6, S08,
+ S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
+ * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
+ sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
+ sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
+ * config/vax/vax.opt (mqmath): Add option.
+ * config/vax/vax.md (isfx): Extend with DI.
+ (VAXintQH, VAXintQHSD): Define.
+ (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
+ mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
+ and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
+ one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
+ (movdi): Update constraints and use vax_output_int_move().
+ (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
+ movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
+ pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
+ nonlocal_goto): New.
+ (mov<mode>): Extend accepted operand types.
+ (subdi3_old): Rename from subdi3, change update constraints and use
+ a new implementation.
+ * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
+ (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
+ MOVE_RATIO, CLEAR_RATIO): Define.
+ (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
+ CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
+ (PRINT_OPERAND): Redefine using a function instead of inlined code.
+ * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
+ (split_quadword_operands): Make static and really allow variable
+ splitting.
+ (print_operand_address): Update for PIC generation.
+ (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
+ indexable_address_p, fixup_mathdi_operand,
+ vax_expand_addsub_di_operands, adjacent_operands_p): New.
+ (vax_float_literal, legitimate_constant_p,
+ indirectable_constant_address_p, index_term_p,
+ reg_plus_index_p): Return bool instead of int.
+ (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
+ where needed.
+ (vax_output_int_move, vax_output_int_add): Extend to allow PIC
+ generation.
+ (vax_output_conditional_branch): Indent.
+ (legitimate_constant_address_p, indirectable_constant_address_p,
+ indirectable_address_p, nonindexed_address_p, legitimate_address_p,
+ vax_mode_dependent_address_p): Return bool instead of int, update for
+ PIC generation.
+ * config/vax/vax-protos.h (legitimate_constant_address_p,
+ legitimate_constant_p, legitimate_address_p,
+ vax_mode_dependent_address_p): Change declaration to bool.
+ (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
+ vax_expand_addsub_di_operands, vax_output_int_subtract,
+ vax_output_movmemsi): Declare.
+ (split_quadword_operands, vax_float_literal): Delete declaration.
+ * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
+ * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
+ VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
+ ASM_OUTPUT_DWARF_PCREL): Define.
+ (ASM_SPEC): Change definition to allow PIC generation.
+
+2009-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39226
+ * config/rs6000/rs6000.md (andsi3_internal5_nomc,
+ anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
+ (booldi3_internal3): Use boolean_or_operator instead of
+ boolean_operator.
+
+2009-04-01 Joseph Myers <joseph@codesourcery.com>
+
+ PR c/39605
+ * c-decl.c (grokdeclarator): Pedwarn for file-scope array
+ declarator whose size is not an integer constant expression but
+ folds to an integer constant, then treat it as a constant
+ subsequently.
+
2009-04-01 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_plusminus_mult_expr): Do not fold