OSDN Git Service

2008-04-28 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c3cb0f5..6d3eec1 100644 (file)
+2008-04-28  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/36066
+       * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
+       SCEV and loop.
+
+2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/36064
+       * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
+       Use match_scratch instead of match_operand for operands 3 and 4.
+
+2008-04-27  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/18754
+       PR tree-optimization/34223
+       * tree-pass.h (pass_complete_unrolli): Declare.
+       * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
+       loop size before and after unconditionally of UL_NO_GROWTH in effect.
+       Rewrite loop into loop closed SSA form if it is not already.
+       (tree_unroll_loops_completely): Re-structure to iterate over
+       innermost loops with intermediate CFG cleanups.
+       Unroll outermost loops only if requested or the code does not grow
+       doing so.
+       * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
+       loops are available.
+       (tree_vectorize): Instead do so here.
+       (tree_complete_unroll): Also unroll outermost loops.
+       (tree_complete_unroll_inner): New function.
+       (gate_tree_complete_unroll_inner): Likewise.
+       (pass_complete_unrolli): New pass.
+       * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
+       uses outside of the loop.
+       (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
+       form if it is available.  
+       * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
+       * passes.c (init_optimization_passes): Schedule complete inner
+       loop unrolling pass before the first CCP pass after final inlining.
+
+2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * targhooks.h (default_emutls_var_fields,
+       default_emutls_var_init): Declare.
+       * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
+       * target.h (struct gcc_target): Add struct emutls member.
+       * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
+       TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
+       TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
+       TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
+       TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
+       TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
+       (TARGET_INITIALIZER): Add TARGET_EMUTLS.
+       * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
+       BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
+       * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
+       emit debug information.
+       * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
+       * varasm.c: Include targhooks.h.
+       (emutls_object_section, emutls_tmpl_section): New.
+       (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
+       (EMUTLS_SEPARATOR): New.
+       (prefix_name): New.
+       (get_emutls_object_name): New.
+       (default_emutls_var_fields): New, broken out of ...
+       (get_emutls_object_type): ... here.  Adjust to use target hooks.
+       (get_emutls_init_templ_addr): Adjust to use target hooks.
+       (emutls_decl): Adjust to use target hooks.
+       (emutls_finish): Likewise.
+       (default_emutls_var_init): New, broken out of ...
+       (assemble_variable): ... here.  Adjust to use target hooks.
+       * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
+       SECCAT_EMUTLS_TMPL.
+       * c-common.c (handle_section_attribute): Prevent overriding
+       sections for emulated tls with special sections.
+       * config/i386/i386.c (x86_64_elf_select_section): Add
+       SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
+       (x86_64_elf_unique_section): Likewise.
+       * config/vxworks.c: Include tree.h.
+       (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
+       (vxworks_override_options): Set TLS scheme.
+       * gcc/doc/tm.texi (Emulated TLS): New node.
+
+2008-04-26  Simon Baldwin <simonb@google.com>
+
+       PR c/35652
+       * builtins.c (c_strlen): Suppressed multiple warnings that can occur
+       with propagated string constants.
+
+2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
+       constraint for operand 2 when operand 0 is memory operand.
+       (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
+       operand 0 is memory operand.
+       (fix_trunc<mode>_i387_with_temp): Ditto.
+       (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
+       operand 2 when operand 1 is memory operand.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
+       (*floatsi<mode>2_vector_sse_with_temp): Ditto.
+       (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
+       (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
+       (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
+       operands 2,3 and 4 when operand 1 is memory operand.
+       (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
+       is memory operand.
+       (fistdi2_floor_with_temp): Ditto.
+       (fist<mode>2_floor_with_temp): Ditto.
+       (fistdi2_ceil_with_temp): Ditto.
+       (fist<mode>2_ceil_with_temp): Ditto.
+       (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
+
+2008-04-26  David Daney  <ddaney@avtrex.com>
+
+       * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
+       unspec_volitile.
+       (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
+       UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
+       UNSPEC_UPDATE_GOT_VERSION): Renumber.
+       (sync_compare_and_swap<mode>): New expand for QI and HI modes.
+       (compare_and_swap_12): New insn.
+       * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
+       * config/mips/mips.c (mips_force_binary): New function.
+       (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
+       (mips_expand_compare_and_swap_12): New function.
+       * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
+
+2008-04-25  Jan Hubicka  <jh@suse.cz>
+
+       PR testsuite/35843
+       * cfgexpand.c (pass_expand): Turn into RTL pass.
+       * passes.c (execute_one_pass): Do pass typechecking after execution.
+       * tree-pass.h (pass_expand): Turn into RTL pass.
+
+       * function.h (struct rtl_data): Move here fields
+       accesses_prior_frames, calls_eh_return, saves_all_registers,
+       has_nonlocal_goto, has_asm_statement, is_thunk,
+       all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
+       uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
+       arg_pointer_save_area_init from struct function; turn into bool.
+       (struct function): Move
+       calls_eh_return, saves_all_registers, has_nonlocal_goto,
+       has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
+       profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
+       tail_call_emit, arg_pointer_save_area_init
+       into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
+       (current_function_returns_struct, current_function_returns_pcc_struct,
+       current_function_calls_setjmp, current_function_calls_alloca,
+       current_function_accesses_prior_frames,
+       current_function_calls_eh_return, current_function_is_thunk,
+       current_function_stdarg, current_function_profile,
+       current_function_limit_stack, current_function_uses_pic_offset_table,
+       current_function_uses_const_pool, current_function_has_nonlocal_label,
+       current_function_saves_all_registers,
+       current_function_has_nonlocal_goto,
+       current_function_has_asm_statement): Remove accesor macros.
+       * ra-conflict.c (global_conflicts): Update.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Update.
+       (suitable_for_tail_call_opt_p): Update.
+       * builtins.c (expand_builtin_return_addr): Update.
+       (expand_builtin_setjmp_setup): Update.
+       (expand_builtin_nonlocal_goto): Update.
+       * final.c (final_start_function): Update.
+       (profile_function): Update.
+       (leaf_function_p): Update.
+       (only_leaf_regs_used): Update.
+       * df-scan.c (df_get_exit_block_use_set): Update.
+       * dojump.c (clear_pending_stack_adjust): Update.
+       * tree-stdarg.c (gate_optimize_stdarg): Update.
+       * gimple-low.c (lower_function_body): Update.
+       * global.c (compute_regsets): Update.
+       (global_alloc): Update.
+       * dwarf2out.c (dwarf2out_begin_prologue): Update.
+       * expr.c (expand_assignment): Update.
+       * dse.c (dse_step0): Update.
+       (dse_step1): Update.
+       * c-decl.c (store_parm_decls): Update.
+       * local-alloc.c (combine_regs): Update.
+       (find_free_reg): Update.
+       * function.c (assign_parms_augmented_arg_list): Update.
+       (assign_parm_find_data_types): Update.
+       (assign_parms): Update.
+       (allocate_struct_function): Update.
+       (expand_function_start): Update.
+       (expand_function_end): Update.
+       (get_arg_pointer_save_area): Update.
+       (thread_prologue_and_epilogue_insns): Update.
+       (rest_of_match_asm_constraints): Update.
+       * stor-layout.c (variable_size): Update.
+       * gcse.c (gcse_main): Update.
+       (bypass_jumps): Update.
+       * gimplify.c (gimplify_function_tree): Update.
+       * calls.c (emit_call_1): Update.
+       (expand_call): Update.
+       * bt-load.c (compute_defs_uses_and_gen): Update.
+       * except.c (sjlj_assign_call_site_values): Update.
+       (sjlj_emit_function_enter): Update.
+       (can_throw_external): Update.
+       (set_nothrow_function_flags): Update.
+       (expand_builtin_unwind_init): Update.
+       (expand_eh_return): Update.
+       (convert_to_eh_region_ranges): Update.
+       (output_function_exception_table): Update.
+       * emit-rtl.c (gen_tmp_stack_mem): Update.
+       * cfgexpand.c (expand_used_vars): Update.
+       (tree_expand_cfg): Update.
+       * cfgcleanup.c (rest_of_handle_jump): Update.
+       * explow.c (allocate_dynamic_stack_space): Update.
+       * varasm.c (assemble_start_function): Update.
+       (force_const_mem): Update.
+       (mark_constant_pool): Update.
+       * tree-optimize.c (tree_rest_of_compilation): Update.
+       * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
+       * tree-cfg.c (notice_special_calls): Update.
+       (is_ctrl_altering_stmt): Update.
+       (tree_can_make_abnormal_goto): Update.
+       (tree_purge_dead_abnormal_call_edges): Update.
+       * config/alpha/predicates.md: Update.
+       * config/alpha/alpha.c (alpha_sa_mask): Update.
+       (alpha_sa_size): Update.
+       (alpha_does_function_need_gp): Update.
+       (alpha_expand_prologue): Update.
+       (alpha_start_function): Update.
+       (alpha_output_function_end_prologue): Update.
+       (alpha_expand_epilogue): Update.
+       * config/frv/frv.c (frv_stack_info): Update.
+       (frv_expand_epilogue): Update.
+       * config/s390/s390.c (s390_regs_ever_clobbered): Update.
+       (s390_register_info): Update.
+       (s390_frame_info): Update.
+       (s390_init_frame_layout): Update.
+       (s390_can_eliminate): Update.
+       (save_gprs): Update.
+       * config/spu/spu.c (spu_split_immediate): Update.
+       (need_to_save_reg): Update.
+       (spu_expand_prologue): Update.
+       (spu_expand_epilogue): Update.
+       * config/sparc/sparc.md: Update.
+       * config/sparc/sparc.c (eligible_for_return_delay): Update.
+       (sparc_tls_got): Update.
+       (legitimize_pic_address): Update.
+       (sparc_emit_call_insn): Update.
+       (sparc_expand_prologue): Update.
+       (output_return): Update.
+       (print_operand): Update.
+       (sparc_function_ok_for_sibcall): Update.
+       * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
+       * config/m32r/m32r.md: Update.
+       * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
+       (m32r_compute_frame_size): Update.
+       (m32r_expand_prologue): Update.
+       (m32r_expand_epilogue): Update.
+       (m32r_legitimize_pic_address): Update.
+       * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
+       * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
+       * config/i386/i386.c (ix86_frame_pointer_required): Update.
+       (gen_push): Update.
+       (ix86_save_reg): Update.
+       (ix86_compute_frame_layout): Update.
+       (ix86_expand_prologue): Update.
+       (ix86_expand_epilogue): Update.
+       * config/sh/sh.c (output_stack_adjust): Update.
+       (calc_live_regs): Update.
+       (sh5_schedule_saves): Update.
+       (sh_expand_prologue): Update.
+       (sh_expand_epilogue): Update.
+       (sh_setup_incoming_varargs): Update.
+       (sh_allocate_initial_value): Update.
+       (sh_get_pr_initial_val): Update.
+       * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
+       * config/sh/sh.md (label:): Update.
+       * config/avr/avr.c (out_movhi_mr_r): Update.
+       * config/crx/crx.h (enum): Update.
+       * config/xtensa/xtensa.h (along): Update.
+       * config/stormy16/stormy16.c Update.
+       (xstormy16_compute_stack_layout): Update.
+       * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
+       (fr30_expand_prologue): Update.
+       * config/cris/cris.c (cris_conditional_register_usage): Update.
+       (cris_reg_saved_in_regsave_area): Update.
+       (cris_initial_frame_pointer_offset): Update.
+       (cris_simple_epilogue): Update.
+       (cris_expand_prologue): Update.
+       (cris_expand_epilogue): Update.
+       (cris_expand_pic_call_address): Update.
+       (cris_asm_output_symbol_ref): Update.
+       (cris_asm_output_label_ref): Update.
+       * config/cris/cris.md Update.
+       * config/iq2000/iq2000.c (compute_frame_size): Update.
+       (iq2000_expand_epilogue): Update.
+       * config/mt/mt.h (save_direction): Update.
+       * config/mn10300/mn10300.c (mn10300_function_value): Update.
+       * config/ia64/ia64.c (ia64_compute_frame_size): Update.
+       (ia64_secondary_reload_class): Update.
+       * config/m68k/m68k.c (m68k_save_reg): Update.
+       (m68k_expand_prologue): Update.
+       (m68k_expand_epilogue): Update.
+       (legitimize_pic_address): Update.
+       * config/rs6000/rs6000.c (rs6000_got_register): Update.
+       (first_reg_to_save): Update.
+       (first_altivec_reg_to_save): Update.
+       (compute_vrsave_mask): Update.
+       (compute_save_world_info): Update.
+       (rs6000_stack_info): Update.
+       (spe_func_has_64bit_regs_p): Update.
+       (rs6000_ra_ever_killed): Update.
+       (rs6000_emit_eh_reg_restore): Update.
+       (rs6000_emit_allocate_stack): Update.
+       (rs6000_emit_prologue): Update.
+       (rs6000_emit_epilogue): Update.
+       (rs6000_output_function_epilogue): Update.
+       (output_profile_hook): Update.
+       (rs6000_elf_declare_function_name): Update.
+       * config/rs6000/rs6000.h (rs6000_args): Update.
+       * config/rs6000/rs6000.md: Update.
+       * config/mcore/mcore.c (mcore_expand_prolog): Update.
+       * config/arc/arc.c (arc_output_function_epilogue): Update.
+       * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
+       * config/darwin.c (machopic_function_base_name): Update.
+       * config/score/score3.c (score3_compute_frame_size): Update.
+       (rpush): Update.
+       (rpop): Update.
+       (score3_epilogue): Update.
+       * config/score/score7.c (score7_compute_frame_size): Update.
+       (score7_prologue): Update.
+       (score7_epilogue): Update.
+       * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
+       * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
+       * config/arm/arm.c (use_return_insn): Update.
+       (require_pic_register): Update.
+       (arm_load_pic_register): Update.
+       (arm_compute_save_reg0_reg12_mask): Update.
+       (arm_compute_save_reg_mask): Update.
+       (thumb1_compute_save_reg_mask): Update.
+       (output_return_instruction): Update.
+       (arm_output_function_prologue): Update.
+       (arm_output_epilogue): Update.
+       (arm_get_frame_offsets): Update.
+       (arm_expand_prologue): Update.
+       (thumb_pushpop): Update.
+       (thumb_exit): Update.
+       (thumb1_expand_prologue): Update.
+       (thumb1_expand_epilogue): Update.
+       (arm_unwind_emit): Update.
+       (arm_output_fn_unwind): Update.
+       * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
+       * config/arm/arm.md: Update.
+       * config/pa/pa.md: Update.
+       * config/pa/pa.c (legitimize_pic_address): Update.
+       (compute_frame_size): Update.
+       (hppa_expand_prologue): Update.
+       (hppa_expand_epilogue): Update.
+       (borx_reg_operand): Update.
+       * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
+       (HARD_REGNO_RENAME_OK): Update.
+       * config/mips/mips.c (mips_global_pointer): Update.
+       (mips_save_reg_p): Update.
+       (mips_compute_frame_info): Update.
+       (mips_frame_pointer_required): Update.
+       (mips_expand_prologue): Update.
+       (mips_expand_epilogue): Update.
+       (mips_can_use_return_insn): Update.
+       (mips_reorg_process_insns): Update.
+       * config/v850/v850.c (compute_register_save_size): Update.
+       * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
+       * config/mmix/mmix.c (along): Update.
+       (mmix_expand_epilogue): Update.
+       * config/bfin/bfin.c (legitimize_pic_address): Update.
+       (must_save_p): Update.
+       (stack_frame_needed_p): Update.
+       (add_to_reg): Update.
+       (bfin_expand_prologue): Update.
+       * stmt.c (expand_asm_operands): Update.
+       * reload1.c (reload): Update.
+       (init_elim_table): Update.
+
+2008-04-25  Bob Wilson  <bob.wilson@acm.org>
+       
+       * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
+       
+2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
+       SSEMODE.
+       (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
+       (mov<mode>): Removed.
+       (*movv4sf_internal): Likewise.
+       (*movv2df_internal): Likewise.
+
+2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
+
+       * config.gcc (crx-*-elf): Remove deprecation.
+
+2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming-crtend.c (register_frame_ctor): Register
+       __gcc_deregister_frame with atexit.
+       (deregister_frame_dtor): Remove.
+
+2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
+           Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/rs6000/rs6000.opt (mspe): Remove Var property.
+       (misel): Likewise.
+       * config/rs6000/rs6000.h (rs6000_spe): Declare.
+       (rs6000_isel): Likewise.
+       * config/rs6000/rs6000.c (rs6000_spe): New variable.
+       (rs6000_isel): New variable.
+       (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
+
+2008-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/35758
+       * c-common.c (handle_vector_size_attribute): Call
+       lang_hooks.types.reconstruct_complex_type instead of
+       reconstruct_complex_type.
+       * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
+       * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
+       * langhooks.h (struct lang_hooks_for_types): Add
+       reconstruct_complex_type hook.
+       * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
+       (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
+
+2008-04-24  Richard Guenther  <rguenther@suse.de>
+
+       * c-common.h (check_builtin_function_arguments): Declare.
+       * c-common.c (validate_nargs): New function.
+       (check_builtin_function_arguments): Likewise.
+       * c-typeck.c (build_function_call): Call
+       check_builtin_function_arguments.
+       * builtins.c (fold_builtin_classify): Remove error reporting code.
+       (fold_builtin_unordered_cmp): Likewise.
+       (fold_builtin_1): Likewise.
+       (fold_builtin_n): Likewise.
+
+2008-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/36008
+       * fold-const.c (try_move_mult_to_index): If s == NULL, divide
+       the original op1, rather than delta by step.
+
+2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
+           Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-parloops.c (take_address_of, eliminate_local_variables_1,
+       eliminate_local_variables_stmt, eliminate_local_variables,
+       separate_decls_in_loop_name, separate_decls_in_loop_stmt,
+       separate_decls_in_loop, gen_parallel_loop): Make them work on a region
+       of code delimited by two edges in the CFG.
+       (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
+       (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
+       (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
+       the case of parallelisation of reductions.
+       (expr_invariant_in_region_p): New.
+
+       * tree-flow.h (gather_blocks_in_sese_region): Declared.
+       * tree-cfg.c (gather_blocks_in_sese_region): Extern.
+
+2008-04-24  Ira Rosen  <irar@il.ibm.com>
+           Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/36034
+       * tree-vect-analyze.c (vect_analyze_group_access): SLP is
+       incapable of dealing with loads with gaps.
+
+2008-04-24  Rafael Espindola  <espindola@google.com>
+
+       * tree-flow.h (vrp_evaluate_conditional): Change signature.
+       * tree-ssa-propagate.c (fold_predicate_in): Update call to
+       vrp_evaluate_conditional.
+       * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
+       (vrp_evaluate_conditional): Split the cond argument.
+       (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
+       (simplify_stmt_for_jump_threading): Update call to
+       vrp_evaluate_conditional.
+
+2008-04-24  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/35982
+       * tree-vect-analyze.c (vect_check_interleaving): Check that the
+       interleaved data-refs are of the same type.
+
+2008-04-24  Danny Smith  <dannysmith@users.net>
+
+       * c-format.c (check_format_info_main): Use strncmp rather than a
+       magic prefix to handle multichar length specs.
+       * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
+       Don't prefix "I64" and "I32" with '\0'.
+
+2008-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/36015
+       * config/i386/i386.c (init_cumulative_args): Don't pass anything
+       in registers for -m32 only if stdarg_p (fntype).
+
+2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR rtl-optimization/36006
+       * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
+       temp to op0 in order to avoid invalid rtx sharing.
+
+2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
+       check TREE_INVARIANT.
+       * tree-gimple.c (is_gimple_address): New.
+       (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
+       * tree-gimple.h (is_gimple_address): New.
+       * tree.h (decl_address_invariant_p): New.
+       * tree.c (make_node_stat): Don't set TREE_INVARIANT.
+       (build_string): Likewise.
+       (decl_address_invariant_p): New, from is_gimple_invariant_address.
+       (tree_invariant_p_1): Likewise.
+       (save_expr): Use it.
+       (tree_invariant_p): New.
+       (skip_simple_arithmetic): Use it.
+       (stabilize_reference_1): Use it.
+       (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
+       simplify.
+       (build1_stat): Drop code to compute TREE_INVARIANT.
+       (build2_stat): Drop code to compute TREE_INVARIANT.
+       (build3_stat): Drop code to compute TREE_INVARIANT.
+       (build4_stat): Drop code to compute TREE_INVARIANT.
+       (build5_stat): Drop code to compute TREE_INVARIANT.
+       (build7_stat): Drop code to compute TREE_INVARIANT.
+       (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
+       * tree.h (struct tree_base): Remove invariant_flag.
+       (TREE_INVARIANT): Remove.
+       * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
+       (fold_builtin_expect): Check TREE_CONSTANT.
+       * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
+       * c-tree.h (c_expr_to_decl): Drop third parameter.
+       * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
+       (build_c_cast): Don't set TREE_INVARIANT.
+       (pop_init_level): Don't set TREE_INVARIANT.
+       (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
+       * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
+       TREE_CONSTANT.
+       (gimplify_init_constructor): Don't set TREE_INVARIANT.
+       (gimplify_addr_expr): Adjust comment.
+       * tree-mudflap.c (mf_build_string):
+       * print-tree.c (print_node): Don't print TREE_INVARIANT.
+       * tree-nested.c (convert_nonlocal_reference): Adjust comment.
+       * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
+       * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
+       * langhooks.c (lhd_expr_to_decl): Drop third parameter.
+       * langhooks.h (struct lang_hooks): Drop third parameter from
+       expr_to_decl.
+
+2008-04-23  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/27799
+       PR tree-optimization/32921
+       PR tree-optimization/32624
+       * tree-ssa-structalias.c (merge_smts_into): Only merge the
+       SMTs aliases and the tag itself into the solution.
+       * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
+       merge the points-to solution back into the SMT aliases.
+       (may_alias_p): Use alias_set_subset_of instead of
+       aliases_conflict_p.  A pointer which points to
+       memory with alias set zero may access any variable.
+
+2008-04-23  Richard Guenther  <rguenther@suse.de>
+
+       * alias.c (alias_set_subset_of): Correctly handle asking
+       if zero is a subset of an alias set with zero child.
+       * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
+       (compute_flow_insensitive_aliasing): Correctly walk all
+       pointers.  Do not unnecessarily union sets.
+
+2008-04-23  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/36021
+       * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
+
+2008-04-22  Tomas Bily  <tbily@suse.cz>
+
+       * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
+       unreachable case.
+       * tree-vrp.c (extract_range_from_unary_expr): Removed unused
+       NON_LVALUE_EXPR.
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+       * tree-ssa-structalias.c (get_constraint_for): Likewise.
+       * tree-inline.c (estimate_num_insns_1): Likewise.
+       * varasm.c (const_hash_1, compare_constant, copy_constant)
+       (compute_reloc_for_constant, output_addressed_constants): Likewise.
+       * emit-rtl.c (component_ref_for_mem_expr)
+       (set_mem_attributes_minus_bitpos): Likewise.
+       * expr.c (highest_pow2_factor, expand_expr_real_1, )
+       (is_aligning_offset): Likewise.
+       * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
+       * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * builtins.c (get_pointer_alignment, get_memory_rtx)
+       (integer_valued_real_p, fold_builtin_next_arg): Likewise.
+       * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
+
+2008-04-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/36017
+       * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
+       expanding the library call.
+
+2008-04-22  Ian Lance Taylor  <iant@google.com>
+
+       * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
+       than size_in_bytes.
+
+2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
+       of LR/CTR moves for Power6.
+
+2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       PR middle-end/36003
+       * passes.c (init_optimization_passes): Remove
+       pass_fast_rtl_byte_dce.
+       
+2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/29096
+       * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
+       builtin functions to generate faster code.
+       (_mm_cvtpu16_ps): Ditto.
+       (_mm_cvtpi32x2_ps): Ditto.
+
+2008-04-22  Nick Clifton  <nickc@redhat.com>
+
+       * common.opt (ftree-loop-distribution): Add Optimization
+       attribute.
+
+       * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
+       (frv_expand_builtin_va_start): Likewise.
+
+       * config/arm/arm.c (thumb_find_work_register): Fix location of
+       argument register count.
+
+2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       Support scheduling for ColdFire V1 and V3 microarchitecture.
+       Improve scheduling of multiplication instructions.
+
+       * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
+       (mac): New instruction attribute.
+       * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
+       (m68k_sched_mac): New variable.
+       (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
+       Handle cfv1 and cfv3.
+       (max_insn_size): New static variable.
+       (struct _sched_ib): New type.
+       (sched_ib): New static variable.
+       (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
+       to fields of 'struct _sched_ib sched_ib'.  Update all uses.
+       (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
+       Update.
+       (m68k_sched_md_init_global, m68k_sched_md_finish_global,
+       m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
+       new variables.  Update.
+       (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
+       Add modeling of cfv3 instruction buffer.  Update.
+       * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
+       * config/m68k/m68k.h (TUNE_CFV3): New macro.
+       * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
+       (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
+       a particular reservation applies to.
+       (type2): Reorganize attribute values.  Rename alu to alu_reg,
+       alu_l to alu, move_l to omove.  Join move to alu.  Split mul
+       to mul_l and mul_w.
+       (cf_ib_*): Simplify description of instruction buffer.
+       (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
+       (cf_mem): Split into cf_mem1 and cf_mem2.
+       (cf_v2_move_??): Rename to cfv12_alu_??.
+       (cf_v2_move_l_??): Rename to cfv12_omove_??.
+       (cf_v2_mul_??): Remove reservations.
+       (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
+       cfv12_emac_??, cfv12_emac_w_i0): New reservations.
+       (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
+       appropriate place.
+       (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
+       cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
+       cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
+       cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
+       cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
+       cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
+       (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
+       expansions of the above reservations for instructions of sizes
+       1, 2 and 3 words.
+
+2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
+
+2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * coverage.c: Include tree-pass.h.
+       (coverage_counter_alloc): Print da_file_name to the dump file.
+
+2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * sbitmap.c (sbitmap_range_empty_p): New function.
+       * sbitmap.h (sbitmap_range_empty_p): New function.
+       * bitmap.h: Now includes obstack.h.
+
+2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
+           Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * dbgcnt.def (ra_byte_scan): Added.
+       * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
+       when the last hit happens for a counter.  
+       * timevar.def (TV_DF_BYTE_LR): New variable.
+       * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
+       * passes.c (pass_fast_rtl_byte_dce): New pass.
+       * fwprop.c (update_df): Added mode to call df_ref_create.
+       Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
+       DF_BYTE_LR_OUT, df_byte_lr): New macro.
+       (df_mm): New enum.
+       (df_ref_extract): Added mode field.
+       (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       (DF_REF_EXTRACT_MODE): New macro.
+       (df_byte_lr_bb_info): New structure.
+       (df_print_byte_regset, df_compute_accessed_bytes, 
+       df_byte_lr_add_problem, df_byte_lr_get_regno_start,
+       df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
+       df_byte_lr_simulate_uses,
+       df_byte_lr_simulate_artificial_refs_at_top,
+       df_byte_lr_simulate_artificial_refs_at_end,
+       df_compute_accessed_bytes): New function.
+       (df_ref_create): Add parameter.
+       (df_byte_lr_get_bb_info): New inline function.
+       * df-scan.c (df_ref_record, df_uses_record,
+       df_ref_create_structure): Added mode parameter.
+       (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
+       df_defs_record, df_uses_record, df_get_conditional_uses,
+       df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
+       df_entry_block_defs_collect, df_exit_block_uses_collect):
+       Added mode parameter to calls to df_ref_record, df_uses_record,
+       df_ref_create_structure.
+       (df_ref_equal_p, df_ref_compare): Added test for modes.
+       (df_ref_create_structure): Added code to set mode.  Renamed
+       DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       * df-core.c (df_print_byte_regset): New function.
+       * df-byte-scan.c: New file.
+       * df-problems.c (df_rd_transfer_function): Removed unnecessary
+       calls to BITMAP_FREE.  
+       (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
+       (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
+       df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
+       df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
+       df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
+       df_byte_lr_local_compute, df_byte_lr_init,
+       df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
+       df_byte_lr_transfer_function, df_byte_lr_free, 
+       df_byte_lr_top_dump, df_byte_lr_bottom_dump,
+       df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
+       df_byte_lr_simulate_uses,
+       df_byte_lr_simulate_artificial_refs_at_top,
+       df_byte_lr_simulate_artificial_refs_at_end): New function.
+       * dce.c (byte_dce_process_block): New function.
+       (dce_process_block): au is now passed in rather than computed
+       locally.  Changed loops that look at artificial defs to not look
+       for conditional or partial ones, because there never are any.  
+       (fast_dce): Now is able to drive byte_dce_process_block or 
+       dce_process_block depending on the kind of dce being done.
+       (rest_of_handle_fast_dce): Add parameter to fast_dce.
+       (rest_of_handle_fast_byte_dce): New function.
+       (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
+       * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
+
+2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/35019
+       * gcc.h: Added fortran options that take arguments to
+       DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
+       macros.
+
+2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
+       scalarization if on the LHS and not a full access.
+
+2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
+
+2008-04-18  Rafael Espindola  <espindola@google.com>
+
+       * tree-vrp.c (find_case_label_index): Fix the binary search.
+       (find_case_label_range): New.
+       (vrp_visit_switch_stmt): Use find_case_label_range.
+       (simplify_switch_using_ranges): Use find_case_label_range.
+
+2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
+       using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
+
+2008-04-18  Tom Tromey  <tromey@redhat.com>
+
+       PR libcpp/15500:
+       * doc/cpp.texi (Implementation-defined behavior): Mention
+       -finput-charset.
+
+2008-04-18  Ian Lance Taylor  <iant@google.com>
+
+       * fold-const.c (pointer_may_wrap_p): New static function.
+       (fold_comparison): Add another test for pointer overflow.  Use
+       pointer_may_wrap_p to disable some false positives.
+
+2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
+         
+       * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
+       (fname_as_string): Match updated cpp_interpret_string prototype.
+       (fix_string_type): Support char16_t* and char32_t*.
+       (c_common_nodes_and_builtins): Add char16_t and char32_t (and
+       derivative) nodes.  Register as builtin if C++0x.
+       (c_parse_error): Support CPP_CHAR{16,32}.
+       * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
+       (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
+       CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
+       CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
+       CTI_CHAR32_ARRAY_TYPE>: New elements.
+       (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
+       char32_type_node, signed_char32_type_node, char16_array_type_node,
+       char32_array_type_node): New defines.
+       * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
+       (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
+       (lex_string): Support CPP_STRING{16,32}, match updated
+       cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
+       (lex_charconst): Support CPP_CHAR{16,32}.
+       * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
+       and CPP_STRING{16,32}.
+
+2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/35457
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-18  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (dw2_size_of_call_site_table,
+       sjlj_size_of_call_site_table): Use vector API for call_site_record.
+
+       * cgraphbuild.c (build_cgraph_edges): Update.
+       * tree-pass.h: Update comment.
+       * final.c (leaf_function_p): Update.
+       (leaf_renumber_regs): Update.
+       (rest_of_clean_state): Update.
+       * omp-low.c (expand_omp_parallel): Update.
+       * ipa-reference.c (analyze_function): Update.
+       * reorg.c (find_end_label): Update.
+       (optimize_skip): Update.
+       (fill_simple_delay_slots): Update.
+       (fill_simple_delay_slots): Update.
+       (make_return_insns): Update.
+       (dbr_schedule): Update.
+       * gimple-low.c (record_vars_into): Update.
+       * cfgbuild.c (make_edges): Update.
+       * function.c (assign_stack_local): Update.
+       (assign_parm_adjust_stack_rtl): Update.
+       (locate_and_pad_parm): Update.
+       (allocate_struct_function): Do not initialize stack_alignment_needed
+       and preferred_stack_boundary here.
+       (stack_protect_prologue): Update.
+       (stack_protect_epilogue): Update.
+       (expand_function_start): Initialize stack_alignment_needed,
+       preferred_stack_boundary and max_jumptable_ents.
+       (expand_function_end): Update.
+       (free_after_compilation): Do not NULLify epilogue_delay_list.
+       * function.h (struct rtl_data): Add stack_protect_guard,
+       stack_alignment_needed,
+       preferred_stack_boundary, epilogue_delay_list.
+       (struct function): Remove value_histograms, stack_alignment_needed,
+       preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
+       last_label_uid,
+       unexpanded_var_list, stack_protect_guard.
+       (current_function_epilogue_delay_list): Remove.
+       * ipa-type-escape.c (analyze_function): Update.
+       * gimplify.c (pop_gimplify_context): Update comment.
+       * calls.c (expand_call): Update.
+       (emit_library_call_value_1): Update.
+       * except.c (set_nothrow_function_flags): Update.
+       * cfgexpand.c (get_decl_align_unit): Update.
+       (create_stack_guard): Update.
+       (estimated_stack_frame_size): Update.
+       (expand_used_vars): Update.
+       (tree_expand_cfg): Free histogram earliers, init expansion variables.
+       * explow.c (allocate_dynamic_stack_space): Update.
+       * tree-ssa-live.c (remove_unused_locals): Update.
+       * varasm.c (mark_constant_pool): Update.
+       * tree-inline.c (remap_decls): Update.
+       (initialize_cfun): Update.
+       (declare_return_variable): Update.
+       (inline_forbidden_p): Update.
+       (expand_call_inline): Update.
+       (declare_inline_vars): Update.
+       (tree_function_versioning): Update.
+       * tree-flow.h (value_histograms): New.
+       (VALUE_HISTOGRAMS): New macro.
+       * basic-block.h (control_flow_graph): Add max_jumptable_ents,
+       last_label_uid.
+       * tree-cfg.c (set_bb_for_stmt): Update.
+       (replace_by_duplicate_decl): Update.
+       (move_block_to_fn): Update.
+       (new_label_mapper): Update.
+       (dump_function_to_file): Update.
+       * ipa-struct-reorg.c (build_data_structure): Update.
+       * cfgrtl.c (print_rtl_with_bb): Update.
+       * reload1.c (reload): Update.
+       (reload): Update.
+       * config/i386/i386.c (setup_incoming_varargs_64,
+       ix86_compute_frame_layout): Update.
+       * config/arc/arc.c (arc_output_function_epilogue): Update.
+
+2008-04-18  Marius Strobl <marius@FreeBSD.org>
+
+       * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
+       for FreeBSD as well.
+       * gthr-posix95.h: Likewise.
+
+2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR rtl-optimization/35838
+       * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
+       out the byte offset of the first subreg.
+
+2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
+       to split_ti instead of three separate calls with single member arrays.
+       (subti3 splitter): Ditto.
+       (adddi3 splitter): Ditto with split_di.
+       (subdi3 splitter): Ditto.
+       (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
+       two separate calls with single member arrays.  Swap match_dup
+       operands 1 and 2 to better fit into the array.
+       (negdi2 splitter): Ditto with split_di.
+       (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
+       two separate calls with single member arrays.  Swap match_dup operands
+       6 and 7 to better fit into the array.
+
+2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.c (sse_builtin_type): New.
+       (bdesc_sse_args): Likewise.
+       (bdesc_sse_3arg): Removed.
+       (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+       (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
+       IX86_BUILTIN_ROUNDPS.
+       (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
+       bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
+       IX86_BUILTIN_ROUNDPS.
+       (ix86_expand_sse_4_operands_builtin): Removed.
+       (ix86_expand_sse_operands_builtin): New.
+       (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
+       and CODE_FOR_sse4_1_roundps.
+       (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
+       Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
+
+2008-04-17  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/35907
+       * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
+       regs before frame pop when needed.  If use_backchain_to_restore_sp
+       then load backchain into a temp reg to restore vr and vrsave.  Add
+       code to restore vr after frame pop if possible.
+
+2008-04-17  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vn.c (expressions_equal_p): Do not check type
+       equality or compatibility before calling operand_equal_p.
+       * fold-const.c (operand_equal_p): Check equivalence of
+       integer constants before bailing out due to signedness or
+       precision differences.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
+       spurious differences in type qualification.  Ignore types
+       for COMPONENT_REFs at all.
+
+2008-04-17  Christian Bruel  <christian.bruel@st.com>
+
+       * config/sh/sh.c (expand_cbranchdi4): Use original operands for
+       msw_skip comparison.
+       
+2008-04-16  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35739
+       * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
+       reg type.
+
+       PR tree-optimization/35899
+       * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
+       rather than TREE_OPERAND.
+
+2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/35944
+       * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
+       temporary registers.  Change operand predicate to general_operand.
+       (remainderxf3): Ditto.
+
+2008-04-16  Richard Guenther  <rguenther@suse.de>
+
+       * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
+       * tree-affine.c (aff_combination_expand): Look through some
+       conversions.
+
+2008-04-15  Doug Kwan  <dougkwan@google.com>
+
+       * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
+       for hex printing.
+       * tree-pretty-print.c (dump_generic_node): Ditto.
+       * final.c (output_addr_const): Ditto.
+       * dwarf2out.c (output_cfi): Ditto.
+       * c-pretty-print.c (pp_c_integer_constant): Ditto.
+       * print-rtl.c (print_rtx): Ditto.
+       * print-tree.c (print_node_brief, print_node): Ditto.
+       * c-common.c (match_case_to_enum_1): Ditto.
+       * sched-vis.c (print_value): Ditto.
+       * config/i386/i386.c (print_operand): Cast to long unsigned int
+       for hex printing.
+
+2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
+       * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
+       MS Windows VirtualProtect function.
+
+2008-04-15  Jan Hubicka  <jh@suse.cz>
+
+       * gengtype.c (write_root): Param_is argument is OK.
+       * expr.c (expand_expr_real_1): Update call of get_exception_*.
+       * function.h: Include varray.h
+       (rtl_eh): New stucture based on except.c one.
+       (call_site_record): New forward declaration and vector type.
+       * calls.c (emit_call_1): Do not call
+       note_current_region_may_contain_throw.
+       * except.c (eh_status): Remove cur_region, try_region since they are
+       unused.
+       Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
+       exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
+       sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
+       Remove call_site_data_used, call_site_data_size.
+       Turn call_site_record into vector in function.h.
+       (note_current_region_may_contain_throw): Remove.
+       (get_exception_pointer, get_exception_filter): Do not take struct
+       function argument; update.
+       (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
+       add_ttypes_entry, add_ehspec_entry, assign_filter_values,
+       build_post_landing_pads, dw2_build_landing_pads,
+       sjlj_assign_call_site_values, sjlj_mark_call_sites,
+       sjlj_emit_function_enter, sjlj_emit_function_enter, 
+       sjlj_emit_function_exit, sjlj_emit_dispatch_table,
+       sjlj_build_landing_pads, finish_eh_generation,
+       remove_exception_handler_label, remove_eh_handler,
+       maybe_remove_eh_handler, add_reachable_handler,
+       reachable_handlers, expand_builtin_eh_return, expand_eh_return,
+       add_action_record, collect_one_action_chain, add_call_site,
+       convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
+       sjlj_output_call_site_table, output_function_exception_table,
+       * except.h (note_current_region_may_contain_throw): Remove
+       (get_exception_pointer, get_exception_filter): Do not take struct
+       function argument.
+       * Makefile.in (GTFILES): Put varargs before struct function.
+
+2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
+       punt for STRING_CST.
+       (get_constraint_for): Deal with STRING_CST here instead.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-propagate.c (substitute_and_fold): Substitute
+       statements in a basic-block with a backward walk.  Do not
+       substitute into dead statements but instead remove those.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
+       to zero, thus disable creation of SFTs.
+
+2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-predcom.c (suitable_reference_p): Return false if the
+       reference can throw.
+
+2008-04-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35751
+       * c-decl.c (finish_decl): If extern or static var has variable
+       size, set TREE_TYPE (decl) to error_mark_node.
+
+2008-04-15  Rafael Espindola  <espindola@google.com>
+
+       * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
+       variable arg1.
+
+2008-04-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
+       * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
+       (visit_reference_op_load): Do walk vuse-vdef chains on
+       vn_reference_lookup.
+       (visit_reference_op_store): But do not here.
+       * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
+       vn_reference_lookup.
+       (vn_lookup_with_vuses): But do so here.
+
+2008-04-14  Ian Lance Taylor  <iant@google.com>
+
+       * fold-const.c (fold_overflow_warning): Remove assertion.
+
+2008-04-15  Ben Elliston  <bje@au.ibm.com>
+
+       * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
+       temp1 local variables.
+
+2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
+
+       PR target/35661
+       * config/i386/winnt.c (i386_pe_section_type_flags): Mark
+       ".text.unlikely" section as executable.
+
+2008-04-14  James E. Wilson  <wilson@tuliptree.org>
+
+       * config/ia64/ia64.c (rtx_needs_barrier): Handle
+       UNSPEC_FR_SQRT_RECIP_APPROX_RES.
+       * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
+       (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
+       divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
+       divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
+       divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
+
+2008-04-14  Ian Lance Taylor  <iant@google.com>
+
+       * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
+       * fold-const.c (fold_comparison): If appropriate, test
+       POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
+       (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
+       reassociating a pointer type.
+       * doc/invoke.texi (Optimize Options): Document that
+       -fstrict-overflow applies to pointer wraparound.
+
+2008-04-13  Jan Hubicka  <jh@suse.cz>
+
+       * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
+
+2008-04-12  Andrew Pinski  <pinskia@gmail.com>
+
+       * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
+       we are going to "save the world".
+
+2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
+       ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
+       operand 0 constraint, not "=".
+
+2008-04-11  James E. Wilson  <wilson@tuliptree.org>
+
+       * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
+
+2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
+       of size of positions_needed * CHAR_BIT.
+
+2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/35897
+       * dse.c (store_info): Change positions_needed to unsigned
+       HOST_WIDE_INT.
+       (lowpart_bitmask): New.
+       (record_store): Cast to unsigned HOST_WIDE_INT for
+       positions_needed.  Assert width <= size of positions_needed *
+       CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
+       (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
+       lowpart_bitmask to set mask.
+
+2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/constraints.md: New file.
+       * config/bfin/bfin.md: Include it.
+       (adddi3): Use satisfies_constraint functions instead of the old macros.
+       * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
+       CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
+       CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
+       CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
+       CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
+       CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
+       EXTRA_CONSTRAINT): Delete.
+       * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
+       reg_or_neg7bit_operand): Use satisfies_constraint functions instead
+       of the old macros.
+       * config/bfin/bfin.c: Include "tm-constrs.h".
+       (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
+       Use satisfies_constraint functions instead of the old macros.
+       * doc/md.texi (Blackfin Constraints): Update file name reference.
+
+2008-04-11  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/35869
+       * tree-vrp.c (execute_vrp): Move switch statement update after
+       jump threading.  Schedule another cfg cleanup run.
+
+2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
+
+       PR c/35744
+       * attribs.c (decl_attributes): Return early on errorneous node.
+
+2008-04-10  Oleg Ryjkov  <olegr@google.com>
+
+       * tree.h (struct tree_base): Added a new flag default_def_flag.
+       (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
+
+2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
+
+2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/35768
+       * pa.md: Define mode iterator P.  Define mode attribute dwc.
+       (dcacheflush): Update pattern to use iterator P and attribute dwc.
+       (icacheflush): Likewise.
+       * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
+       !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
+
+2008-04-11  Ben Elliston  <bje@au.ibm.com>
+
+       * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
+
+2008-04-10  Rafael Espindola  <espindola@google.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Don't handle
+       TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
+       (extract_range_from_expr): The same.
+
+2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (GPR2): New mode iterator.
+       (seq): Add comment.
+       (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
+       *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
+       *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
+       Rewrite these to take two modes, the mode of comparison and the
+       mode of the destination.
+       * config/mips/mips.c (mips_expand_scc): Instead of having
+       paradoxical subreg as destination, expand "narrowing" scc if mode
+       of comparison is SI and target is requested in DI mode.
+       (mips_emit_int_order_test): Update comment.  Make mode of
+       comparison match CMP0 rather than TARGET.  When creating inverse
+       target use mode of TARGET.
+
+2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * gcov-dump.c (tag_summary): Only print summaries for the first
+       GCOV_COUNTERS_SUMMABLE counters.
+
+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
 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
+       * 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
+       * config/i386/i386.c (ix86_pass_by_reference): Correct calling
        abi for x86_64-pc-mingw.
 
 2008-04-02  Richard Guenther  <rguenther@suse.de>
 
 2008-03-28  Nick Clifton  <nickc@redhat.com>
 
+       PR target/31110
        * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
        Return GENERAL_REGS for stack adjustment reloads.
 
 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
            Anatoly Sokolov <aesok@post.ru>
 
-       * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
+       * config/avr/avr.c (avr_arch_types): Add avr6 entry.
        (avr_arch): Add ARCH_AVR6.
        (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
        (initial_elimination_offset): Initialize and use 'avr_pc_size' 
        (avr_assemble_integer): (Ditto.).
        (avr_output_addr_vec_elt): (Ditto.).
        (print_operand): Handle "!" code.
-       * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
+       * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
        __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
        (AVR_HAVE_EIJMP_EICALL): Define.
        (AVR_3_BYTE_PC): Redefine.
        (LINK_SPEC): Add atmega2560 and atmega2561.
        (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
        (crtm2561.o).
-       * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
+       * config/avr/avr.md (call_insn): Use eicall instead of icall 
        for 3 byte PC devices.
        (call_value_insn): (Ditto.).
        (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
        (*tablejump): (Ditto.).
        (*indirect_jump_avr6): Add insn.
        (*tablejump_rjmp): Don't use for 3 byte PC devices.
-       * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
+       * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
        instead of ijmp for 3 byte PC devices.
        (__tablejump2__): (Ditto.).
-       * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
+       * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
        (MULITLIB_DIRNAMES): (Ditto.). 
        (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.