OSDN Git Service

* config/i386/i386.md (absneg): New code iterator.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7ff0adc..d9f60c8 100644 (file)
+2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (absneg): New code iterator.
+       (absnegprefix): New code attribute.
+       (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
+       patterns using absneg code iterator.
+       (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
+       using absneg code iterator.
+       (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
+       *neg<mode>2 patterns using absneg code iterator.
+       (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+       *negextendsfdf2 patterns using absneg code iterator.
+       (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
+       *negextendsfxf2 patterns using absneg code iterator.
+       (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
+       *negextendsfdf2 patterns using absneg code iterator.
+       * config/i386/sse.md (<code><mode>2): Macroize expander from
+       abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
+
+2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.h: Remove the remains of the recent search
+       & replace action of current_function_outgoing_args_size.
+
+2008-04-10  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/35821
+       * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
+       NEW_STMT_LIST is not NULL.
+
+2008-04-09  David Edelsohn  <edelsohn@gnu.org>
+
+       PR libstdc++/35597
+       * toplev.c (process_options): Remove -ffunction-sections debugging
+       warning.
+
+2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
+
+       PR middle-end/PR28690
+       * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
+       than gen_rtx_fmt_ee to perform more canonicalizations.
+
+2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR driver/35665
+       * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
+
+2008-04-09  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_stmt): Print complete bogus stmt.
+       (dump_function_to_file): Dump function arguments with types.
+
+2008-04-08  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (fold_widened_comparison): Do not allow
+       sign-changes that change the result.
+
+2008-04-08  Janis Johnson  <janis187@us.ibm.com>
+
+       PR target/35839
+       * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
+       kinds of indirect references.
+
+2008-04-08  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
+       GNU Fortran language string.
+
+2008-04-08  Rafael Espindola  <espindola@google.com>
+
+       * fold-canst.c (tree_call_nonnegative_warnv_p): New.
+       (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
+       * tree.h (tree_call_nonnegative_warnv_p): New.
+
+2008-04-08  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (free_after_compilation): Clear out regno_reg_rtx
+       pointer.
+
+2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
+
+       Revert
+       2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
+
+       PR middle-end/PR28690
+       * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
+       same precedence as REG_POINTER and MEM_POINTER operands.
+
+2008-04-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35834
+       * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
+       for adding index to base.
+
+2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
+       (MINGW_ENABLE_EXECUTE_STACK): New.
+       (IN_LIBGCC2): For libgcc include windows.h file for
+       function declarations.
+
+2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
+       and tem2 if tem1 is not a REG or MULT.
+
+2008-04-08  Jan Hubicka  <jh@suse.cz>
+
+       * function.h (incomming_args): Break out of struct function.
+       (function_subsections): Break out of struct function.
+       (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
+       return_rtx and hard_reg_initial_vals from struct function.
+       Kill inl_max_label_num.
+       (current_function_pops_args, current_function_args_info,
+       current_function_args_size, current_function_args_size,
+       current_function_pretend_args_size,
+       current_function_outgoing_args_size,
+       current_function_internal_arg_pointer, current_function_return_rtx):
+       Kill compatibility accestor macros.
+       * builtins.c (expand_builtin_apply_args_1): Update.
+       (expand_builtin_next_arg): Update.
+       * df-scan.c (df_get_call_refs): Update.
+       * dbxout.c (dbxout_function_end): Update.
+       * dwarf2out.c (dwarf2out_switch_text_section): Update.
+       (output_line_info): Update.
+       (secname_for_decl): Update.
+       (dwarf2out_var_location): Update.
+       * function.c (free_after_compilation): Update.
+       (assign_parm_find_stack_rtl): Update.
+       (assign_parms): Update.
+       (expand_dummy_function_end): Update.
+       (expand_function_end): Update.
+       * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
+       (expand_call): Update.
+       (emit_library_call_value_1): Update.
+       (store_one_arg): Update.
+       * varasm.c (initialize_cold_section_name): Update.
+       (unlikely_text_section): Update.
+       (unlikely_text_section_p): Update.
+       (assemble_start_function): Update.
+       (assemble_end_function): Update.
+       (default_section_type_flags): Update.
+       (switch_to_section): Update.
+       * integrate.c (set_decl_abstract_flags): Update.
+       (get_hard_reg_initial_val): Update.
+       (has_hard_reg_initial_val): Update.
+       (allocate_initial_values): Update.
+       * resource.c (init_resource_info): Update.
+       * config/alpha/alpha.c (NUM_ARGS): Update.
+       (direct_return): Update.
+       (alpha_va_start): Update.
+       (alpha_sa_size): Update.
+       (alpha_initial_elimination_offset): Update.
+       (alpha_expand_prologue): Update.
+       (alpha_start_function): Update.
+       (alpha_expand_epilogue): Update.
+       (unicosmk_initial_elimination_offset):
+       * config/alpha/alpha.md (call expander): Update.
+       * config/s390/s390.c (s390_register_info): Update.
+       (s390_register_info): Update.
+       (s390_frame_info): Update.
+       (s390_initial_elimination_offset): Update.
+       (s390_build_builtin_va_list): Update.
+       (s390_va_start): Update.
+       * config/spu/spu.c (direct_return): Update.
+       (spu_expand_prologue): Update.
+       (spu_initial_elimination_offset): Update.
+       (spu_build_builtin_va_list): Update.
+       (spu_va_start): Update.
+       * config/sparc/sparc.c (sparc_init_modes): Update.
+       (sparc_compute_frame_size): Update.
+       (function_value): Update.
+       * config/m32r/m32r.c (m32r_compute_frame_size): Update.
+       * config/i386/i386.md (return expander): Update.
+       * config/i386/i386.c (ix86_va_start): Update.
+       (ix86_can_use_return_insn_p): Update.
+       (ix86_compute_frame_layout): Update.
+       (ix86_expand_epilogue): Update.
+       * config/sh/sh.c (output_stack_adjust): Update.
+       (calc_live_regs): Update.
+       (sh_expand_prologue): Update.
+       (sh_builtin_saveregs): Update.
+       (sh_va_start): Update.
+       (initial_elimination_offset): Update.
+       (sh_allocate_initial_value): Update.
+       (sh_function_ok_for_sibcall): Update.
+       (sh_get_pr_initial_val): Update.
+       * config/sh/sh.md (return expander): Update.
+       * config/avr/avr.c (frame_pointer_required_p): UPdate.
+       * config/crx/crx.c (crx_compute_frame): UPdate.
+       (crx_initial_elimination_offset): UPdate.
+       * config/xtensa/xtensa.c (compute_frame_size): Update
+       (xtensa_builtin_saveregs): Update.
+       (xtensa_va_start): Update.
+       (order_regs_for_local_alloc): Update.
+       * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
+       (xstormy16_expand_builtin_va_start): Update.
+       * config/fr30/fr30.c (fr30_compute_frame_size): Update.
+       * config/m68hc11/m68hc11.md (return expanders): Update.
+       * config/m68hc11/m68hc11.c (expand_prologue): Update.
+       (expand_epilogue): Update.
+       * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
+       (cris_simple_epilogue): Update.
+       (cris_expand_prologue): Update.
+       (cris_expand_epilogue): Update.
+       * config/iq2000/iq2000.c (iq2000_va_start): Update.
+       (compute_frame_size): Update.
+       * config/mt/mt.c (mt_compute_frame_size): Update.
+       * config/mn10300/mn10300.c (expand_prologue): Update.
+       (expand_epilogue): Update.
+       (initial_offset): Update.
+       (mn10300_builtin_saveregs):
+       * config/mn10300/mn10300.md (return expander): Update.
+       * config/ia64/ia64.c (ia64_compute_frame_size): Update.
+       (ia64_initial_elimination_offset): Update.
+       (ia64_initial_elimination_offset): Update.
+       (ia64_expand_prologue): Update.
+       * config/m68k/m68k.md (return expander): Update.
+       * config/rs6000/rs6000.c (rs6000_va_start): Update.
+       (rs6000_stack_info): Update.
+       * config/mcore/mcore.c (layout_mcore_frame): Update.
+       (mcore_expand_prolog): Update.
+       * config/arc/arc.c (arc_compute_frame_size): Update.
+       * config/score/score3.c (score3_compute_frame_size): Update.
+       * config/score/score7.c (score7_compute_frame_size): Update.
+       * config/arm/arm.c (use_return_insn): Update.
+       (thumb_find_work_register): Update.
+       (arm_compute_save_reg_mask): Update.
+       (arm_output_function_prologue): Update.
+       (arm_output_epilogue): Update.
+       (arm_size_return_regs): Update.
+       (arm_get_frame_offsets): Update.
+       (arm_expand_prologue): Update.
+       (thumb_exit): Update.
+       (thumb_unexpanded_epilogue): Update.
+       (thumb1_output_function_prologue): Update.
+       * config/pa/pa.md (return expander): Update.
+       * config/pa/pa.c (compute_frame_size): Update.
+       (hppa_builtin_saveregs): Update.
+       * config/mips/mips.c (mips_va_start): Update.
+       (mips16_build_function_stub): Update.
+       (mips_compute_frame_info): Update.
+       (mips_restore_gp): Update.
+       (mips_output_function_prologue): Update.
+       (mips_expand_prologue): Update.
+       * config/v850/v850.c (compute_frame_size): Update.
+       (expand_prologue): * config/mmix/mmix.c (along): update.
+       (mmix_initial_elimination_offset): update.
+       (mmix_reorg): update.
+       (mmix_use_simple_return): update.
+       (mmix_expand_prologue): update.
+       (mmix_expand_epilogue): Update.
+       * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
+       (emit_link_insn): Update.
+
+2008-04-08  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
+       __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
+       instructions.
+       * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
+       atmega103 device.
+
+2008-04-07  Jan Hubicka  <jh@suse.cz>
+
+       * function.h (rtl): Rename to x_rtl.
+       (crtl): New define.
+       (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
+       frame_offset, stack_check_probe_note, arg_pointer_save_area,
+       used_temp_slots avail_temp_slots, temp_slot_level,
+       nonlocal_goto_handler_labels): Update accesstors.
+       (rtl): New global variable.
+       (struct function): Move some fileds to rtl_data.
+       (get_arg_pointer_save_area): Update prototype.
+       * builtins.c (expand_builtin_setjmp_receiver): Update call of
+       get_arg_pointer_save_area.
+       * expr.c (init_expr): Update
+       * function.c (get_frame_size): Update
+       (assign_stack_local): Update
+       (expand_function_end): Update.
+       (get_art_pointer_save_area): Update
+       * function.h 
+       * emit-rtl.c (rtl): Declare.
+       (regno_reg_rtx): Declare.
+       (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
+       Update.
+       (gen_reg_rtx): Update.
+       * varasm.c (n_deferred_constatns): Update accestor.
+       (init_varasm_status): Do not allocate varasm_status.
+       (force_const_mem, get_pool_size, output_constant_pool): Update.
+       * stmt.c (force_label_rtx): Do not use x_ prefixes.
+       (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
+       * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
+       * sparc/sparc.h (INIT_EXPANDERS): Update.
+       * ia64/ia64.h (INIT_EXPANDERS): Update.
+
+2008-04-07  James E. Wilson  <wilson@tuliptree.org>
+
+       * reload.c (push_secondary_reload): Add missing break to for loop.
+
+2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
+
+       PR middle-end/PR28690
+       * rtlanal.c: Update copyright years.
+       (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
+       as REG_POINTER and MEM_POINTER operands.
+       * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
+       (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
+       * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
+       * gcse.c: Update copyright years.
+       (pre_delete): Call gen_reg_rtx_and_attrs.
+       (hoist_code): Likewise.
+       (build_store_vectors): Likewise.
+       (delete_store): Likewise.
+       * loop-invariant.c (move_invariant_reg): Likewise.
+       Update copyright years.
+
+2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
+       control string instead of quoted.
+
+2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * doc/rtl.texi: Rewrite of subreg section.
+
+2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
+
+       PR/35842
+       * config/i386/i386.c (legitimize_pic_address): Add treating
+       of dllimport SYM_REF's.
+       (legitimize_dllimport_symbol): Add prototype.
+
+2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
+       reference in constructor with non self-referential type.
+
+2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       Removal of Return with Depressed Stack Pointer support
+       * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
+       (ECF_SP_DEPRESSED): Likewise.
+       (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
+       * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
+       (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+       (expand_call): Do not test ECF_SP_DEPRESSED.
+       * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+       * function.c (keep_stack_depressed): Delete.
+       (handle_epilogue_set): Likewise.
+       (update_epilogue_consts): Likewise.
+       (emit_equiv_load): Likewise.
+       (thread_prologue_and_epilogue_insns): Remove support for Return with
+       Depressed Stack Pointer.
+       * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
+
+2008-04-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/35400
+       * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
+       information from SSA_NAMEs.
+
+2008-04-06  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.h (avr_mega_p): Remove declaration.
+       (AVR_MEGA): Remove macro.
+       * config/avr/avr.c (avr_mega_p): Remove variable.
+       (avr_override_options): Remove inicializion of avr_mega_p.
+       Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+       (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
+       (avr_jump_mode): (Ditto.).
+       (avr_output_progmem_section_asm_op): (Ditto.).
+       (avr_asm_init_sections): (Ditto.).
+       (avr_asm_init_sections): (Ditto.).
+       (avr_rtx_costs): (Ditto.).
+       * config/avr/avr.md: (Ditto.).
+       * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
+       '__AVR_MEGA__'.
+
+2008-04-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/35842
+       * tree-ssa-address.c (fixed_address_object_p): Adjust to match
+       is_gimple_invariant_address.
+
+2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * gcc.c (default_compilers): Sync Fortran extensions list with
+       that in fortran/lang-specs.h.
+       * doc/invoke.texi: Likewise.
+       * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
+       * dwarf2out.c (gen_compile_unit_die): Likewise.
+
+2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
+
+       * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
+
+2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/12329
+       * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
+       attribute is used for nested functions.
+
+2008-04-05  Jan Hubicka  <jh@suse.cz>
+
+       * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
+
+       * tree-dump.c (dump_enable_all): Remove prototype; do not accept
+       letter argument.
+       (dump_files): Update.
+       (enable_rtl_dump_file): Do not accept letter argument.
+       * tree-pass.h (dump_file_info): Remove letter argument.
+       * toplev.c (decode_d_option): Update -da handling.
+       * toplev.h (enable_rtl_dump_file): Update prototype.
+       * passes.c (register_one_dump_file): Do not accept IPA argument; work
+       it out based on pass type.
+       (register_dump_files_1): Likewise.
+       (init_optimization_passes): Update register_one_dump_file calls.
+       (execute_one_pass): Sanity check that IPA passes are called at IPA
+       level and RTL passes at RTL level.
+       (execute_pass_list): IPA pass can not be after or subpass of
+       GIMPLE/RTL pass.
+       (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
+       disallov RTL subpasses of IPA subpasses.
+
+2008-04-05  Ben Elliston  <bje@au.ibm.com>
+
+       * tree-cfg.c (need_fake_edge_p): Return false for calls to
+       builtins that return exactly once and do not throw. Cache call to
+       call_expr_flags.
+
+2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
+
+       PR rtl-optimization/34916
+       PR middle-end/35519
+       * combine.c (create_log_links): Do not create duplicate LOG_LINKS
+       between instruction pairs.
+
+2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
+
+       * doc/invoke.texi: Document -mbitops for SH.
+       * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
+       * config/sh/predicates.md (bitwise_memory_operand): New predicate.
+       * config/sh/sh.c (print_operand): Add %t operand code.
+       * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
+       * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
+       (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
+       (extendqihi2): Likewise.
+       (movqi_i): Likewise.
+       (insv): Use bset, bclr and bst instructions for SH2A if possible.
+       (extv): Use bld instruction for SH2A if possible.
+       (extzv): Likewise.
+       (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
+       bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
+       bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
+       (bset.b, bclr.b): Define peepholes.
+       * config/sh/sh.opt (mbitops): New option.
+
+2008-04-04  Janis Johnson  <janis187@us.ibm.com>
+
+       PR target/35620
+       * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
+       and view convert expression.
+
+2008-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/35364
+       * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
+
+2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
+
+       * config/i386/cpuid.h (bit_AES): New.
+       (bit_PCLMUL): Likewise.
+
+       * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
+       (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
+       SSE2 if AES or PCLMUL is enabled.
+       (ix86_builtins): Add IX86_BUILTIN_AESENC128,
+       IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+       IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
+       IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
+       (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
+       (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
+       IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
+       IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
+       (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
+       (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
+       __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
+       __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
+       __builtin_ia32_aeskeygenassist128 and
+       __builtin_ia32_pclmulqdq128.
+       * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
+       (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
+       IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
+
+       * config/i386/i386.h (TARGET_AES): New.
+       (TARGET_PCLMUL): Likewise.
+       (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
+
+       * config/i386/i386.md (UNSPEC_AESENC): New.
+       (UNSPEC_AESENCLAST): Likewise.
+       (UNSPEC_AESDEC): Likewise.
+       (UNSPEC_AESDECLAST): Likewise.
+       (UNSPEC_AESIMC): Likewise.
+       (UNSPEC_AESKEYGENASSIST): Likewise.
+       (UNSPEC_PCLMUL): Likewise.
+
+       * config/i386/i386.opt (maes): New.
+       (mpclmul): Likewise.
+
+       * config/i386/sse.md (aesenc): New pattern.
+       (aesenclast): Likewise.
+       (aesdec): Likewise.
+       (aesdeclast): Likewise.
+       (aesimc): Likewise.
+       (aeskeygenassist): Likewise.
+       (pclmulqdq): Likewise.
+
+       * config/i386/wmmintrin.h: New.
+
+       * doc/extend.texi: Document AES and PCLMUL built-in function.
+
+       * doc/invoke.texi: Document -maes and -mpclmul.
+
+2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
+
+       * function.c (free_after_parsing): Replace with
+       cxx_push_function_context from C++ front-end.
+       (allocate_struct_function): Don't call langhook.
+       * langhooks.h (struct lang_hooks_for_functions): Delete.
+       (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
+       member "function".
+       * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
+       (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
+       LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+       LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
+       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
+       remove LANG_HOOKS_FUNCTION_INITIALIZER.
+       * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
+
+       * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
+       Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
+       
+2008-04-04  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35440
+       * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
+       for all types.
+
+2008-04-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35823
+       * fold-const.c (optimize_minmax_comparison): Use the correct
+       type for the constant in the simplified comparison.
+
+2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
+
+       * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
+       Pass L2 size as "--param l2-cache-size" to the compiler.
+       (decode_l2_cache): New function to decode L2 cache parameters using
+       0x8000006 extended cpuid function.
+       (detect_caches_amd): Determine parameters of L2 cache using
+       decode_l2_caches function.
+       (decode_caches_intel): Decode L2 cache parameters.
+       (detect_caches_intel): Determine L2 cache parameters using
+       decode_caches_intel and decode_l2_caches functions.
+
+2008-04-03  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
+       secondary input reload for subword loads from the constant pool.
+
+2008-04-03  Janis Johnson  <janis187@us.ibm.com>
+
+       PR target/35713
+       * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
+         constants of the appropriate size for runtime calculations.
+
+       PR c/35712
+       * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
+         decimal-float literal constant zero.
+
+2008-04-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35738
+       * c-parser.c (c_parser_omp_atomic): Call
+       default_function_array_conversion on the RHS.
+
+       PR middle-end/35818
+       * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
+       call is_variable_sized if decl has incomplete type.
+
+2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386-protos.h (ix86_aligned_p): Removed.
+
+2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
+       iterators.
+       (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
+       (sgt<u>): Merge sgt and sgtu into new expander.
+       (sgt, sgtu): Remove expanders.
+       (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
+       (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
+       (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
+       *sgtu_<mode>_mips16 into new pattern.
+       (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
+       (sge<u>): Merge sge and sgeu into new expander.
+       (sge, sgeu): Remove expanders.
+       (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
+       new pattern.
+       (*sge_<mode>, second *sge_<mode>): Remove patterns.
+       (slt<u>): Merge slt and sltu into new expander.
+       (slt, sltu): Remove expanders.
+       (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
+       (*slt_<mode>, *sltu_<mode>): Remove patterns.
+       (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
+       *sltu_<mode>_mips16 into new pattern.
+       (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
+       (sle<u>): Merge sle and sleu into new expander.
+       (sle, sleu): Remove expanders.
+       (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
+       (*sle_<mode>, *sleu_<mode>): Remove patterns.
+       (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
+       *sleu_<mode>_mips16 into new pattern.
+       (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
+
+2008-04-03  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/35795
+       * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
+       * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
+       * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
+       * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
+       * score/score3.c (score3_output_mi_thunk): Likewise.
+       * score/score7.c (score7_output_mi_thunk): Likewise.
+       * mips/mips.c (mips_output_mi_thunk): Likewise.
+
+2008-04-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_unary_expr): Handle all
+       conversions.  Simplify code.
+
+2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
+
+2008-04-03  Tom Tromey  <tromey@redhat.com>
+           Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
+       * config/bfin/t-bfin-linux (generated_files): Add
+       linux-sysroot-suffix.h.
+       * doc/install.texi (Prerequisites): Require make 3.80.
+       * doc/sourcebuild.texi (Front End Directory): Document new
+       variable.
+       * Makefile.in (generated_files): New variable.
+       (ALL_HOST_OBJS): New variable.
+       ($(ALL_HOST_OBJS)): New target.
+
+2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
+       (remap_block): Call id->transform_lang_insert_block instead
+       of langhook.
+       (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
+       Set id.transform_lang_insert_block to NULL.
+       (clone_body): Move to cp/optimize.c
+       * tree-inline.h (struct copy_body_data): Change
+       transform_lang_insert_block to function pointer.
+       (copy_generic_body, copy_decl_no_change): Export.
+       * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
+       * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
+       (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
+
+       * c-tree.h (insert_block): Kill.
+       * c-decl.c (insert_block): Kill.
+
+2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
+
+       * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+       * c-tree.h (c_push_function_context, c_pop_function_context): Remove
+       argument.
+       * c-decl.c (c_push_function_context, c_pop_function_context): Remove
+       argument, call {push,pop}_function_context from here.
+       * c-parser.c: Use c_{push,pop}_function_context.
+
+       * function.c (push_function_context_to): Move meat ...
+       (push_function_context): ... here.  Simplify.
+       * function.c (pop_function_context_from): Move meat ...
+       (pop_function_context): ... here.  Simplify.
+       * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
+       leave_nested).
+       * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
+       (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
+       * tree.h (push_function_context_to, pop_function_context_from): Remove.
+
+2008-04-03  Ben Elliston  <bje@au.ibm.com>
+
+       * expmed.c (extract_force_align_mem_bit_field): Remove.
+
+2008-04-03  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/35800
+       * expr.h (try_casesi): Adjust prototype.
+       * expr.c (try_casesi): Take fallback label as extra parameter.
+       Use that for gen_casesi if default_label is NULL.
+       * stmt.c (expand_case): Pass fallback label to try_casesi,
+       make sure to fill gaps with a fallback label if default_label
+       is not present.
+
+2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
+
+       PR target/35801
+       * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
+
+2008-04-03  Ben Elliston  <bje@au.ibm.com>
+
+       * expmed.c (extract_split_bit_field): Remove if (0) code.
+       * tree-ssa-structalias.c (do_sd_constraint): Likewise.
+       (do_ds_constraint): Likewise.
+
+2008-04-02  Joseph Myers  <joseph@codesourcery.com>
+
+       * doc/cppopts.texi (-dU): Document.
+       * c-common.h (flag_dump_macros): Update comment.
+       * c-opts.c (handle_OPT_d): Handle -dU.
+       * c-ppoutput.c (macro_queue, define_queue, undef_queue,
+       dump_queued_macros, cb_used_define, cb_used_undef): New.
+       (init_pp_output): Handle -dU.
+       (cb_line_change): Call dump_queued_macros.
+       * toplev.c (decode_d_option): Accept -dU as preprocessor option.
+
+2008-04-02  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/predicates.md (io_address_operand): New predicate. 
+       * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
+       * config/avr/avr.c (avr_io_address_p): Remove function.
+       (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
+       'avr_io_address_p' function.
+       (out_movhi_r_mr): (Ditto.).
+       (out_movqi_mr_r): (Ditto.).
+       (out_movhi_mr_r): (Ditto.).
+       (avr_address_cost): (Ditto.).
+
+2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
+       Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
+       in 32bit mode when XMM registers are available to avoid store
+       forwarding stalls.
+       (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
+       corresponding post-reload splitters.
+
+2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
+       and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
+       __builtin_ia32_roundss.
+       (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
+       __builtin_ia32_shufpd, __builtin_ia32_roundsd and
+       __builtin_ia32_roundss.
+       (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
+       IX86_BUILTIN_SHUFPD here.
+
+2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (plogic): New.
+       (plogicprefix): Likewise.
+
+       * config/i386/mmx.md (mmx_<code><mode>3): New.
+       (mmx_and<mode>3): Removed.
+       (mmx_ior<mode>3): Likewise.
+       (mmx_xor<mode>3): Likewise.
+
+       * config/i386/sse.md (<code><mode>3): New.
+       (*<code><mode>3): Likewise.
+       (*<code><mode>3): Likewise.
+       (<code><mode>3): Likewise.
+       (*sse_<code><mode>3): Likewise.
+       (*sse2_<code><mode>3): Likewise.
+       (<code>tf3): Likewise.
+       (*<code>tf3): Likewise.
+       (and<mode>3): Likewise.
+       (*and<mode>3): Likewise.
+       (ior<mode>3): Removed.
+       (*ior<mode>3): Likewise.
+       (xor<mode>3): Likewise.
+       (*xor<mode>3): Likewise.
+       (*and<mode>3): Likewise.
+       (*ior<mode>3): Likewise.
+       (*xor<mode>3): Likewise.
+       (and<mode>3): Likewise.
+       (*sse_and<mode>3): Likewise.
+       (*sse2_and<mode>3): Likewise.
+       (andtf3): Likewise.
+       (*andtf3): Likewise.
+       (ior<mode>3): Likewise.
+       (*sse_ior<mode>3): Likewise.
+       (*sse2_ior<mode>3): Likewise.
+       (iortf3): Likewise.
+       (*iortf3): Likewise.
+       (xor<mode>3): Likewise.
+       (*sse_xor<mode>3): Likewise.
+       (*sse2_xor<mode>3): Likewise.
+       (xortf3): Likewise.
+       (*xortf3): Likewise.
+
+2008-04-02  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/14495
+       PR tree-optimization/34793
+       * tree-vrp.c (struct switch_update): New structure.
+       (to_remove_edges, to_update_switch_stmts): New VECs.
+       (simplify_switch_using_ranges): New function.  Remove not taken
+       case labels and edges.
+       (simplify_stmt_using_ranges): Call it.
+       (identify_jump_threads): Mark edges we have queued for removal
+       so we don't thread them.
+       (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
+       case label vector.
+       * tree-cfg.c (group_case_labels): Deal with missing default label.
+       (tree_verify_flow_info): Allow missing default label.
+       * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
+       (emit_case_nodes): Likewise.
+       (expand_case): Do not rely on the default label to be present.
+       * expr.c (try_casesi): Deal with NULL default_label.
+       (do_tablejump): Likewise.
+
+2008-04-02  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/14495
+       * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
+       SWITCH_EXPR here ...
+       (vrp_visit_switch_stmt): ... but here (new function).
+       (find_case_label_index): New helper function.
+       (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
+
+2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       * fwprop.c: Fix ISO-C99ism.
+
+2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/35752
+       * Makefile.in (objdir): Set it here.
+       * configure.ac: Not here.  Find dynamic linker characteristics.
+       * exec-tool.in: Use them.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (expand_var): Delete it.
+       * expr.h (expand_var): Delete prototype.
+       * function.c (expand_function_start): Use expand_decl instead.
+       * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
+       langhook.
+
+2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
+
+       PR rtl-optimization/35542
+       * fwprop.c (forward_propagate_and_simplify): Replace
+       loc_reg_mentioned_in_p with reg_mentioned_p.
+
+2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR rtl-optimization/35281
+       * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
+       (propagate_rtx_1): Handle PR_HANDLE_MEM.
+       (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
+       (varying_mem_p): Move above propagate_rtx.
+       (all_uses_available_at): Do not check MEMs.
+
+2008-04-02  Rafael Espindola  <espindola@google.com>
+
+       * tree-vrp.c (extract_code_and_val_from_cond): Remove.
+       (register_edge_assert_for_2): Split the cond argument.
+       (register_edge_assert_for_1): Adjust for the change in
+       register_edge_assert_for_2.
+       (register_edge_assert_for): Split the cond argument.
+       (find_switch_asserts): Adjust for the change in
+       register_edge_assert_for.
+
+2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
+       * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
+       offsets for 64-bit mingw.
+       * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling
+       abi for x86_64-pc-mingw.
+
+2008-04-02  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_assert): Make sure to not
+       produce range min/max with TREE_OVERFOW set.
+       If merging a anti-range and a range keep the anti-range if
+       the range covers all values of the type.
+       (register_edge_assert_for_2): Only allow sign-changing
+       conversions in detecting canonical range checks.  Also
+       register an assert for the unsigned name if useful.
+
+       PR tree-optimization/35787
+       * tree-vrp.c (vrp_val_max): New function.
+       (vrp_val_min): Likewise.
+       (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
+       (vrp_val_is_min): Likewise.
+       (supports_overflow_infinity): Use vrp_val_{min,max}.
+       (negative_overflow_infinity): Likewise.
+       (positive_overflow_infinity): Likewise.
+       (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
+       (is_positive_overflow_infinity): Likewise.
+       (is_overflow_infinity): Likewise.
+       (avoid_overflow_infinity): Use vrp_val_{min,max} and
+       vrp_val_is_{min,max}.
+       (set_and_canonicalize_value_range): Canonicalize anti-ranges
+       to ranges if possible.  Avoid empty ranges.
+
+2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/35705
+       * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
+       the expression is a function address.
+
+2008-04-01  George Helffrich  <george@gcc.gnu.org>
+
+       PR fortran/PR35154, fortran/PR23057
+       * fortran/trans-common.c (create_common):  Add decl to function
+       chain to preserve identifier scope in debug output.
+
+       * dbxout.c: Emit .stabs debug info for Fortran COMMON block
+       variables as base symbol name + offset using N_BCOMM/N_ECOMM.
+       (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
+       (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
+       in common.
+       (dbxout_syms): Check for COMMON-based symbol and wrap in
+       N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
+       in bracket for efficiency.
+
+       * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
+       using DW_TAG_common_block + member offset.
+       (add_pubname_string): New function.
+       (dw_expand_expr): New function to find block name and offset for
+       COMMON var.
+       (common_check): New function to check whether symbol in Fortran COMMON.
+       (gen_variable_die): If COMMON, use DW_TAG_common_block.
+
+       * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
+       use of common is unchanged.
+
+       * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
+       with all combinations of debug options available on target.
+       * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
+       * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
+       * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
+       .stabs functionality.
+       * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
+       DWARF functionality.
+
+2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       PR c/35436
+       * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
+
+2008-04-02  Ben Elliston  <bje@au.ibm.com>
+
+       * config/v850/v850.md (casesi): Remove if (0) code.
+       * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
+       * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
+
+2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (rex64suffix): New mode attribute.
+       (floathi<mode>2): Disable expander for SSE math.
+       (*floathi<mode>2_1): New insn insn_and_split pattern.
+       (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
+       corresponding post-reload splitters.
+       (*floathi<mode>2_i387): New macroized insn pattern.
+       (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
+       insn_and_split pattern.
+       (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
+       New macroized instruction patterns and corresponding post-reload
+       splitters.
+       (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
+       and corresponding post-reload splitters.
+       (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
+       New macroized instruction patterns.
+       (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
+       macroized instruction patterns and corresponding post-reload splitters.
+       (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
+       corresponding post-reload splitters.
+       (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
+       New macroized instruction patterns.
+       (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
+       corresponding post-reload splitters.
+       (*floatsi<mode>2_i387): New macroized instruction patterns.
+
+2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (smaxmin): New.
+       (umaxmin): Likewise.
+       (maxminiprefix): Likewise.
+       (maxminfprefix): Likewise.
+       (<code><mode>3): Likewise.
+       (smin<mode>3): Removed.
+       (smax<mode>3): Likewise.
+
+       * config/i386/mmx.md (mmx_<code>v2sf3): New.
+       (mmx_<code>v4hi3): Likewise.
+       (mmx_<code>v8qi3): Likewise.
+       (mmx_smaxv2sf3): Removed.
+       (mmx_sminv2sf3): Likewise.
+       (mmx_umaxv8qi3): Likewise.
+       (mmx_smaxv4hi3): Likewise.
+       (mmx_uminv8qi3): Likewise.
+       (mmx_sminv4hi3): Likewise.
+
+       * config/i386/sse.md (<addsub><mode>3): New.
+       (*<addsub><mode>3): Likewise.
+       (<sse>_vm<addsub><mode>3): Likewise.
+       (<maxmin><mode>3): Likewise.
+       (*<maxmin><mode>3_finite): Likewise.
+       (*<maxmin><mode>3): Likewise.
+       (<sse>_vm<maxmin><mode>3): Likewise.
+       (sse3_h<addsub>v4sf3): Likewise.
+       (sse3_h<addsub>v2df3): Likewise.
+       (<maxmin>v16qi3): Likewise.
+       (*<maxmin>v16qi3): Likewise.
+       (<maxmin>v8hi3): Likewise.
+       (*<maxmin>v8hi3): Likewise.
+       (*sse4_1_<maxmin><mode>3): Likewise.
+       (*sse4_1_<maxmin><mode>3): Likewise.
+       (add<mode>3): Removed.
+       (*add<mode>3): Likewise.
+       (<sse>_vmadd<mode>3): Likewise.
+       (sub<mode>3): Likewise.
+       (*sub<mode>3): Likewise.
+       (<sse>_vmsub<mode>3): Likewise.
+       (smin<mode>3): Likewise.
+       (*smin<mode>3_finite): Likewise.
+       (*smin<mode>3): Likewise.
+       (<sse>_vmsmin<mode>3): Likewise.
+       (smax<mode>3): Likewise.
+       (*smax<mode>3_finite): Likewise.
+       (*smax<mode>3): Likewise.
+       (<sse>_vmsmax<mode>3): Likewise.
+       (sse3_haddv4sf3): Likewise.
+       (sse3_haddv2df3): Likewise.
+       (sse3_hsubv4sf3): Likewise.
+       (sse3_hsubv2df3): Likewise.
+       (umaxv16qi3): Likewise.
+       (*umaxv16qi3): Likewise.
+       (smaxv8hi3): Likewise.
+       (*smaxv8hi3): Likewise.
+       (*sse4_1_smax<mode>3): Likewise.
+       (*sse4_1_umax<mode>3): Likewise.
+       (uminv16qi3): Likewise.
+       (*uminv16qi3): Likewise.
+       (sminv8hi3): Likewise.
+       (*sminv8hi3): Likewise.
+       (*sse4_1_smin<mode>3): Likewise.
+       (*sse4_1_umin<mode>3): Likewise.
+
+2008-04-01  Rafael Espindola  <espindola@google.com>
+
+       * tree-cfg.c (verify_expr): remove in_phi.
+       (verify_stmt): Don't call walk_tree with verify_expr. Use
+       is_gimple_min_invariant instead of is_gimple_val.
+
+2008-04-01  Joseph Myers  <joseph@codesourcery.com>
+
+       * doc/include/gpl_v3.texi: Update for manpage generation.
+       * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
+       gpl.texi.
+       * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
+       * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
+       gpl_v3.texi instead of gpl.texi.
+       (gpl.pod): New.
+
+2008-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR pch/13675
+       * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
+
+2008-04-01  Rafael Espindola  <espindola@google.com>
+
+       * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
+       (extract_code_and_val_from_cond): Use
+       extract_code_and_val_from_cond_with_ops.
+
+2008-04-01  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (free_after_compilation): Free epilogue_delay_list.
+       (prepare_function_start): Assert that previous compilation was freed.
+
+2008-04-01  Jan Hubicka  <jh@suse.cz>
+           Jim Wilson  <wilson@tuliptree.org>
+           Andreas Tobler <andreast@gcc.gnu.org>
+
+       PR middle-end/35781
+       * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
+       rtl.emit instead cfun->emit.
+       * sparc/sparc.h (INIT_EXPANDERS): Likewise.
+       * ia64/ia64.h (INIT_EXPANDERS): Likewise.
+
+2008-04-01  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/c-tree.texi (Function Basics): Fix grammatical error.
+
+2008-03-31  Seongbae Park <seongbae.park@gmail.com>
+
+       * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
+       New options
+       (fprofile-use): Add var flag_profile_use
+       * coverage.c (coverage_begin_output): Do not open a gcno file for
+       output only if -ftest-coverage is set.
+       Do not add getpwd() to gcda file path.
+       (build_gcov_info): Check the new flag
+       flag_profile_datafile_relative_path.
+       (coverage_init): Use profile_data_prefix.
+       Read profile counter only if flag_profile_use is set.
+       * opts.c (common_handle_option): New option fprofile-use=,
+       fprofile-dir=, fprofile-generate=.
+       * toplev.c (profile_data_prefix): New variable definition.
+       * toplev.h (profile_data_prefix): New declaration.
+       * doc/invoke.tex (Option Summary, Optimization Options):
+       Add new options.
+
+2008-03-31  James E. Wilson  <wilson@tuliptree.org>
+
+       * varasm.c (output_constant_pool_1): In LABEL_REF check,
+       use tmp consistently.
+
+       PR target/35695
+       * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
+       * config/ia64/ia64.c (rtx_needs_barrier): Handle
+       UNSPEC_FR_RECIP_APPROX_RES.
+       * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
+
+2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       PR c/35750
+       * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
+
+2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/30186
+       * fold-const.c (fold_indirect_ref_1): Support accessing non first
+       element of the vector via a pointer.
+
 2008-03-31  Ian Lance Taylor  <iant@google.com>
 
-       * tlink.c (scan_linker_output): Look for symbol name in single
-       quotes.
+       * tlink.c (scan_linker_output): Look for symbol name in single quotes.
 
 2008-03-31  Jan Hubicka  <jh@suse.cz>
 
        (regno_reg_rtx): ... new global array.
        (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
        (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
-       apply_args_value, forced_labels, stack_pointer_delta): Update accestors.
+       apply_args_value, forced_labels, stack_pointer_delta):
+       Update accestors.
        (struct varasm_status): Move here from varasm.c
        (struct rtl_data): New. Move here some fields from struct function.
        (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
        (get_arg_pointer_save_area): Update prototype.
        * emit-rtl.c (rtl): Declare.
        (regno_reg_rtx): Declare.
-       (first_insn, last_insn, cur_insn_uid, last_location, first_label_num): Update.
+       (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
+       Update.
        (gen_reg_rtx): Update.
        (init_virtual_regs): Do not tate emit_status argument.
        (init_emit): Do not allocate emit.