re PR rtl-optimization/36929 (internal compiler error: Segmentation fault)
authorAndreas Schwab <schwab@gcc.gnu.org>
Wed, 30 Jul 2008 18:22:50 +0000 (18:22 +0000)
committerAndreas Schwab <schwab@gcc.gnu.org>
Wed, 30 Jul 2008 18:22:50 +0000 (18:22 +0000)
PR rtl-optimization/36929
* dse.c (replace_inc_dec): Use emit_insn_before instead of
add_insn_before and fix argument order.
(replace_inc_dec_mem): Handle NULL rtx.

From-SVN: r138333

gcc/ChangeLog
gcc/dse.c

index 2951220b6eb25cdf50fbd30d4e394b4ac1f6a58b..02485f738ff79c890aea6c8750ed8d38edda2286 100644 (file)
@@ -1,7 +1,14 @@
+2008-07-30  Andreas Schwab  <schwab@suse.de>
+
+       PR rtl-optimization/36929
+       * dse.c (replace_inc_dec): Use emit_insn_before instead of
+       add_insn_before and fix argument order.
+       (replace_inc_dec_mem): Handle NULL rtx.
+
 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
 
        * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
-        function.
+       function.
        (arm_compute_initial_elimination_offset): Use it.
        (arm_compute_save_reg_mask): Include static chain save slot when
        calculating alignment.
@@ -19,8 +26,8 @@
 
 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
 
-        * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
-        instead of NULL_RTVEC.
+       * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
+       instead of NULL_RTVEC.
 
 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
 
@@ -59,7 +66,7 @@
        (conversion_warning): Use the new function. Handle non-negative
        constant in bitwise-and.
        * c-common.h (shorten_binary_op): Declare.
-       
+
 2008-07-30  Olivier Hainque  <hainque@adacore.com>
 
        * scan.c (make_sstring_space): Add explicit conversions of
 
        PR 34985
        * c-decl.c (merge_decls): Merge USED flags.
-       
+
 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
        (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
        code and head comment accordingly.
        (scan_prog_file): Use symkind names instead of bare integers.
-       
+
 2008-07-25  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
        * dojump.c (clear_pending_stack_adjust): Likewise.
        * print-tree.c (print_node): Ignore DECL_INLINE.
        * tree-inline.c (inlinable_function_p): Likewise.
-       
+
 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
 
        * doc/extend.texi (hot attribute): Document that the hot attribute
        (cgraph_gate_early_inlining): Likewise.
        (gate_inline_passes): Remove.
        (pass_inline_parameters, pass_ipa_inline): Remove gates.
-       (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 
+       (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
        pass_O0_always_inline): Remove.
        * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
        * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
        * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
        imp symbol extension.
 
-        2008-07-23  Ian Lance Taylor  <iant@google.com>
+       2008-07-23  Ian Lance Taylor  <iant@google.com>
 
        * tree-vrp.c (infer_value_range): Ignore asm statements when
        looking for memory accesses for -fdelete-null-pointer-checks.
 
 2008-07-23  Martin Jambor  <mjambor@suse.cz>
 
-        * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
+       * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
        rather than for DECL_SAVED_TREE.
        * ipa-prop.c: Include diagnostic.h.
-        (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
+       (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
        thoroughly.
        (ipa_detect_param_modifications): Function rewritten from scratch.
        (ipa_compute_jump_functions): Changed accesses to modification flags.
        (ipa_node_duplication_hook): Update flags duplication.
        (ipa_print_all_params_modified): Updated flag access.
        * ipa-prop.h (struct ipa_param_flags): New structure.
-        (struct ipa_node_params): New field modification_analysis_done,
-        modified_flags changed into param_flags.
-        (ipa_is_ith_param_modified): Changed to use new flags.
+       (struct ipa_node_params): New field modification_analysis_done,
+       modified_flags changed into param_flags.
+       (ipa_is_ith_param_modified): Changed to use new flags.
        * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
 
        * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
        * doc/invoke.texi (Optimize options): Add description of
        -findirect-inlining.
        * common.opt (flag_indirect_inlining): New flag.
-       * opts.c (decode_options): Set flag_indirect_inlining when 
+       * opts.c (decode_options): Set flag_indirect_inlining when
        optimize >= 3.
 
        * ipa-inline.c: Include ipa-prop.h.
        (inline_indirect_intraprocedural_analysis): New function.
        (inline_generate_summary): Allocate parameter and argument info
        structures, call inline_indirect_intraprocedural_analysis on each
-       node when doing indirect inlining and deallocate indirect inlining 
+       node when doing indirect inlining and deallocate indirect inlining
        data structures in the end.
        * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
        (free_all_ipa_structures_after_iinln): New function.
-       (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
+       (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
        done.
        * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
 
        of computing the frequency separately.
        (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
        of computing the frequency separately.
-       * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
+       * ipa-cp.c (ipcp_print_all_structures): Replace a call to
        ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
        * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
        (ipa_get_stmt_member_ptr_load_param): New function.
        * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
        * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
        * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
-       
+
 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
 
        PR 36907
        * c-typeck.c: All calls to pedwarn changed.
        * c-common.c: All calls to pedwarn changed.
        * c-parser.c: All calls to pedwarn changed.
-       
+
 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
            Karthik Kumar  <karthikkumar@gmail.com>
 
 
        PR tree-opt/36879
        * tree-switch-conversion.c (build_one_array): Call
-       varpool_mark_needed_node and varpool_finalize_decl 
+       varpool_mark_needed_node and varpool_finalize_decl
        instead of assemble_variable.
 
 2008-07-19  Jan Hubicka  <jh@suse.cz>
        (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
        issues, centralize the nested array types collapsing control and
        disable the transformation for Ada.
-       
+
 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/36786
        * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
 
 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * config/xtensa/libgcc-xtensa.ver: New file.
        * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
-       
+
 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * df-problems.c (df_set_note): Avoid C++ keywords.
 
        * config/h8300/h8300.md (length): Fix branch offset limit.
 
-2008-07-11  Anatoly Sokolov  <aesok@post.ru>   
+2008-07-11  Anatoly Sokolov  <aesok@post.ru>
 
        * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
        * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
        callers.
        * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
        lower_omp_ordered, lower_omp_critical, lower_omp_for,
-       create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
+       create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
        * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
        * tree-sra.c (generate_element_init): Likewise.
        * tree-mudflap.c (execute_mudflap_function_ops,
        * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
 
 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
-       
+
        Fix PR tree-optimization/23455
        Fix PR tree-optimization/35286
        Fix PR tree-optimization/35287
        (vn_nary_op_compute_hash): De-staticify.
        (vn_nary_op_eq): Ditto.
        (vn_nary_op_lookup_pieces): New function.
-       (vn_nary_op_lookup): Add new argument.  
+       (vn_nary_op_lookup): Add new argument.
        (vn_nary_op_insert_pieces): New function.
        (vn_nary_op_insert): Add return type. Modify to deal with value ids.
        (vn_phi_insert): Ditto.
        (visit_reference_op_load): Ditto.
        (visit_reference_op_store): Ditto.
        (init_scc_vn): Init next_value_id, constant_to_value_id and
-       constant_value_ids. 
+       constant_value_ids.
        (free_scc_vn): Free them.
        (set_hashtable_value_ids): New function.
        (run_scc_vn): Use it.
        above).
        * tree.c (iterative_hash_hashval_t): Made non-static
        * tree.h (iterative_hash_hashval_t): Declare it.
-       
+
 2008-07-08  Martin Jambor  <mjambor@suse.cz>
 
        * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
        (ipa_register_cgraph_hooks): New function.
        (ipa_unregister_cgraph_hooks): New function.
        (free_all_ipa_structures_after_ipa_cp): New function.
-       
+
        * ipa-prop.h: Include vec.h.
        (ipa_node_params_t): New typedef with vector types for it.
        (ipa_edge_args_t):  New typedef with vector types for it.
        (IPA_EDGE_REF): Changed to access an on-the-side vector.
        (ipa_check_create_node_params): New function.
        (ipa_check_create_edge_args): New function.
-       
+
        * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
        all users.
-       
+
 2008-07-07  Tom Tromey  <tromey@redhat.com>
 
        * configure, config.in: Rebuilt.
        -print-sysroot option.
        (main): Print the sysroot if requested.
        * doc/invoke.texi (Debugging Options): Document -print-sysroot.
-       
+
 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        PR target/34780
 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
        * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
-       
+
 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
 
        * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
 2008-07-02  Martin Jambor  <mjambor@suse.cz>
 
        * tree-switch-conversion.c: Included timevar.h which I forgot before.
-       
+
 2008-07-02  Martin Jambor  <mjambor@suse.cz>
 
        * tree-switch-conversion.c: Included timevar.h
 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
-       
+
 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        PR rtl-optimization/34744
        (ix86_init_builtins): Here.
        (ix86_scalar_mode_supported_p): Always return true for TFmode.
        (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
-       'q' and 'w', respectively. 
+       'q' and 'w', respectively.
 
        * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
        TARGET_64BIT.
 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
-       
+
 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
 
        PR middle-end/34906
        * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
        memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
        record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
-       * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
+       * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
        * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
        vn_nary_op_insert): Likewise.
        * tree-ssa.c (redirect_edge_var_map_add,
 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
 
        * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
-       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
-       * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
+       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+       * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
 
 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
 
        * config/avr/avr.c (avr_mcu_t): Add attiny167.
-       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
-       * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
+       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+       * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
 
 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
 
        * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
-       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
-       * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
+       * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+       * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
 
 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
 
        (delete_unmarked_insns): Don't handle libcall blocks.
        (preserve_libcall_for_dce): Remove.
        (prescan_insns_for_dce): Don't special-case libcall block insns.
-       * reload1 (reload): Don't handle libcall notes. 
+       * reload1 (reload): Don't handle libcall notes.
        * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
        documentation.
 
 
        * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
-       * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
+       * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
 
 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        PR target/36336
-       * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
+       * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
        reg_equiv_constant.
 
 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
            Nathan Sidwell  <nathan@codesourcery.com>
            Maxim Kuvyrkov  <maxim@codesourcery.com>
            Richard Sandiford  <rdsandiford@googlemail.com>
-       
+
        * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
        * config/mips/mips-protos.h (mips_expand_vector_init): New.
        * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        PR middle-end/36447
-       * simplify-rtx.c (simplify_subreg): Add check for shift count 
+       * simplify-rtx.c (simplify_subreg): Add check for shift count
        greater than size.
 
 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
        default.
-       
+
 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
 
        PR tree-optimization/36218
 
        PR target/36424
        * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
-       * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
-       * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
+       * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
+       * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
 
 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
 
        Rename parallel_nesting_level to taskreg_nesting_level.
        (scan_omp_task): New function.
        (lower_rec_input_clauses): Don't run constructors for firstprivate
-       explicit task vars which are initialized by *_omp_cpyfn*.  
+       explicit task vars which are initialized by *_omp_cpyfn*.
        Pass outer var ref to omp_clause_default_ctor hook if
        OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
        Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
 
        PR target/30243
        * builtins.c (expand_builtin_signbit): Don't take lowpart when
-       register is already smaller or equal to required mode. 
+       register is already smaller or equal to required mode.
 
 2008-06-04  Xinliang David Li  <davidxl@google.com>
 
-       * tree-call-cdce.c: New file. 
+       * tree-call-cdce.c: New file.
        (cond_dead_built_in_calls): New static variable.
        (input_domain): New struct.
        (check_pow): New function.
        * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
        TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
 
-2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
+2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
 
        PR target/34879
        * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
        * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
        (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
        (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
-       * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
-       movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
+       * config/avr/avr.c (expand_prologue, expand_epilogue): Use
+       movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
        stack pointer register.
-       (output_movhi): Remove code for interrupt specific writing to the 
+       (output_movhi): Remove code for interrupt specific writing to the
        stack pointer register.
 
 2008-05-31  Richard Guenther  <rguenther@suse.de>
        call clobber check for NMTs.
 
 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
-       
+
        * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
        for printing gcov_type.
 
        that the bitfield is of integral type before testing its precision.
 
 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
-           Sa Liu  <saliu@de.ibm.com> 
+           Sa Liu  <saliu@de.ibm.com>
 
-       * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
+       * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
        __modti3, __udivti3, __umodti3 and __udivmodti4.
        * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
        that implement TImode mul and div functions.
 
        * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
        instead of pm_lo8/pm_hi8 to makes this call working on avr6.
-       * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
+       * config/avr/avr.c (expand_prologue): Tune "call_prologue"
        optimization for 'avr6' architecture.
 
 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
        * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
        instantiate_scev.
        (analyze_siv_subscript): Pass in the loop nest number.
-       Call evolution_function_is_affine_in_loop instead of 
+       Call evolution_function_is_affine_in_loop instead of
        evolution_function_is_affine_p.
        (analyze_overlapping_iterations): Pass in the loop nest number.
 
 
 2008-05-19  Xinliang David Li  <davidxl@google.com>
 
-       * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
+       * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
        * opts.c: Ditto.
        * common.opt: Ditto.
        * doc/invoke.texi: Ditto.
 2008-05-18 Xinliang David Li   <davidxl@google.com>
 
        * gcc/tree-ssa-dce.c: Coding style fix.
-       (check_pow): Documentation comment. 
+       (check_pow): Documentation comment.
        (check_log): Documenation comment. Coding style fix.
        (is_unnecessary_except_errno_call): Ditto.
        (gen_conditions_for_pow): Ditto.
        (gen_shrink_wrap_conditions): Ditto.
        (shrink_wrap_one_built_in_calls): Ditto.
        * gcc/doc/invoke.texi: Better documentation string.
-       * ChangeLog: Fix wrong change log entries from 
+       * ChangeLog: Fix wrong change log entries from
        May 17 checkin on function call DCE.
 
 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
        * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
        * df-problems.c (simulation routines): Fixed block comment to
        properly say how to add forwards scanning functions.
-       
+
 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-inline.c (setup_one_parameter): Remove dead code.
 2008-05-17 Xinliang David Li   <davidxl@google.com>
 
        * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
-       (check_pow, check_log, is_unnecessary_except_errno_call): New 
-       functions to check for eliminating math functions that are pure 
+       (check_pow, check_log, is_unnecessary_except_errno_call): New
+       functions to check for eliminating math functions that are pure
        except for setting errno.
        (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
        general condition expressions for shrink-wrapping pow/log calls.
 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
 
        * tree-ssa-dse (max_stmt_uid): Removed.
-       (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
+       (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
        tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
        * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
        * function.h (cfun.last_stmt_uid): New field.
        write_summary, read_summary.
        * cgraphunit.c (cgraph_process_new_functions): Changed call from
        pass_ipa_inline.function_generate_summary, to
-       compute_inline_parameters. 
+       compute_inline_parameters.
        * ipa-inline.c (compute_inline_parameters): Made public and added
        node parameter.
        (compute_inline_parameters_for_current): New function.
        (pass_ipa_inline): Updated for new IPA_PASS structure.
        * passes.c (execute_ipa_summary_passes): Now is called once per
        pass rather than once per node*pass.
-       
+
 2008-05-15  Anatoly Sokolov <aesok@post.ru>
 
-       * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
+       * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
        avr_have_mul_p, avr_asm_only_p): Remove variables.
        (avr_override_options): Remove initialization of removed variables.
-       (avr_file_start):  Convert removed variables to fields of 
-       'struct base_arch_s *avr_current_arch'. 
+       (avr_file_start):  Convert removed variables to fields of
+       'struct base_arch_s *avr_current_arch'.
        * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
        (AVR_HAVE_MUL): (Ditto.).
        (AVR_HAVE_MOVW): (Ditto.).
-       (AVR_HAVE_LPMX): (Ditto.). 
-       (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
+       (AVR_HAVE_LPMX): (Ditto.).
+       (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
        avr_asm_only_p): Remove declaration.
 
 2008-05-15  Diego Novillo  <dnovillo@google.com>
        (record_truncated_value): Turn it into a for_each_rtx callback.
        (record_truncated_values): New function.
        (combine_instructions): Call note_uses with record_truncated_values.
-       Change name of check_conversion to check_promoted_subreg. 
+       Change name of check_conversion to check_promoted_subreg.
 
 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
 
 
        * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
        LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
-       emit_library_call_value. 
+       emit_library_call_value.
        * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
        * tree.h (ECF_LIBCALL_BLOCK): Removed.
-       * calls.c (initialize_argument_information, precompute_arguments, 
+       * calls.c (initialize_argument_information, precompute_arguments,
        expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
        (precompute_arguments): Removed flags parameter.
        * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
-       
+
 2008-05-14  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
-               
+
 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/i386.c (bdesc_ptest): Removed.
        CONVERT_EXPR_P.
        (CONVERT_EXPR_P): Define.
        (CASE_CONVERT): Define.
-       
+
 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        PR middle-end/36117
 
 2008-05-08  David Daney  <ddaney@avtrex.com>
            Richard Sandiford  <rsandifo@nildram.co.uk>
-       
+
        * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
        special case of constant zero operands.
        * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
        (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
        (static_execute): Set looping true for recursive functions.
        Undo setting state to IPA_NEITHER for recursive functions.
-       * cse.c (cse_insn): 
+       * cse.c (cse_insn):
        * ifcvt.c (noce_can_store_speculate_p): Changed
-       CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
+       CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
        RTL_CONST_OR_PURE_CALL_P.
        * dse.c (scan_insn): Ditto.
        * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
        DECL_PURE_P.
        * tree-cfg.c (update_call_expr_flags): Do not clear tree side
        effects for looping pure or const calls.
-       (verify_gimple_expr): Added verification code. 
+       (verify_gimple_expr): Added verification code.
        * config/alpha/alpha.c (alpha_legitimize_address,
        alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
        RTL_CONST_CALL_P.
        (ipcp_redirect): Removed newly unused local variable callee.
        (ipcp_redirect): Removed (a bit confusing) local variable type.
        (ipcp_insert_stage): Added local variable info.
-       (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
+       (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
        renamed too
        (ipcp_formal_create): Removed.
        (ipcp_method_cval_set): Removed.
        (ipcp_propagate_stage): Renamed lattice variables.
        (ipcp_method_cval_set_cvalue_type): Removed.
        (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
-       (ipcp_print_all_lattices): Changed printed strings to refer to 
+       (ipcp_print_all_lattices): Changed printed strings to refer to
        lattices rather than cvals.
        (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
        (ipcp_propagate_const): Changed formal parameters.
        (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
        (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
        (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
-       (ipcp_print_func_profile_counts): Changed string from "method" to 
+       (ipcp_print_func_profile_counts): Changed string from "method" to
        "function"
        (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
        (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
        (ipcp_lat_is_const): Changed parameters and made inline.
        (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
        (ipcp_redirect): Renamed to ipcp_need_redirect_p
-       (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
+       (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
        the predicate condition directly
        (ipcp_propagate_stage): Added local variable args. Removed local
        variable callee.  (Both are mere code simplifications.)
        * gthr-single.h: Add in required interface elements as per gthr.h.
        Add stub types for __gthread_key_t, __gthread_once_t. Add defines
        for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
-       Generalize UNUSED macro. 
+       Generalize UNUSED macro.
        (__gthread_once): Add.
        (__gthread_key_create): Add.
        (__gthread_key_delete): Add.
        (__gthread_getspecific): Add.
        (__gthread_setspecific): Add.
-       
+
 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
 
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
 
        * doc/invoke.texi (max-flow-memory-locations): Removed.
        * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
-       
+
 2008-05-03  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/34973
 
        * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
        instead of setting number of formal parameters to zero.
-       (ipcp_init_stage): Do not set the number of actual parameters to zero 
+       (ipcp_init_stage): Do not set the number of actual parameters to zero
        either.
        (ipcp_propagate_stage): Explicitly skipping all calls to nodes
        which are called with variable number of arguments.
        (ipcp_insert_stage): Explicitely skipping all nodes which are
        called with variable number of arguments.
-       (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
+       (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
        number of parameters.
 
        * ipa-prop.h (struct ipa_node_params): Added flag
        (ipa_is_called_with_var_arguments): Added.
        (ipa_get_ith_param): Added.  All readers of param_decls converted
        to use it instead.
-       (ipa_set_cs_argument_count): Added, sole writer to argument_count 
-       changed to use it. 
+       (ipa_set_cs_argument_count): Added, sole writer to argument_count
+       changed to use it.
        (ipa_get_cs_argument_count): Added, all readers of argument_count
        changed to cal it.
-       (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
+       (ipa_get_ith_jump_func): Added. Accessors of jump values changed
        to use it.
-       
+
        * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
        (struct ipcp_lattice): Renamed cval_type to type
        (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
        (build_const_val): Changed the type of parameter cvalue to tree
        (ipcp_propagate_const): Changed the type of parameter cvalue to tree
        (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
-       
-       * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
-       constant 
+
+       * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
+       constant
 
        * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
        (ipa_methodlist_not_empty): Removed, the sole user now checks directly
        (ipa_method_tree_map_create): Removed.
        (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
        (ipa_create_param_decls_array): Creates the array itself
-       (ipa_create_param_decls_array): Temporary variable info instead of 
+       (ipa_create_param_decls_array): Temporary variable info instead of
        a few dereferences.
        (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
        (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
        (ipa_edges_create): Renamed to ipa_create_all_edge_args
        (ipa_edges_free): Renamed to ipa_free_all_edge_args
        (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
-       (ipa_free_all_node_params): Deallocation to jump_functions moved to 
+       (ipa_free_all_node_params): Deallocation to jump_functions moved to
        ipa_free_all_edge_args
        (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
        (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
        (ipa_methodlist_next_method_set): Removed.
        (ipa_method_is_modified): Removed.
        (ipa_method_modify_create): Removed.
-       (ipa_method_modify_init): Temporary variable info instead of a few 
+       (ipa_method_modify_init): Temporary variable info instead of a few
        dereferences.
-       (ipa_detect_param_modifications): Temporary variable info instead of 
+       (ipa_detect_param_modifications): Temporary variable info instead of
        a few dereferences.
-       (ipa_compute_jump_functions): Temporary variable info instead of 
+       (ipa_compute_jump_functions): Temporary variable info instead of
        a few dereferences.
        (ipa_method_modify_set): Removed.
        (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
-       (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
+       (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
        than craph_node as the first parameter.
        (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
        (ipa_method_modify_init): Removed.
-       (ipa_compute_jump_functions): Added a temp variable instead of 
+       (ipa_compute_jump_functions): Added a temp variable instead of
        repeatadly dereferencing the cgraph_edge.aux pointer
        (ipa_callsite_param_set_type): Removed.
-       (ipa_compute_jump_functions): i renamed to index and moved to 
+       (ipa_compute_jump_functions): i renamed to index and moved to
        an inner block
        (ipa_callsite_param_set_info_type_formal): Removed.
        (ipa_callsite_param_set_info_type): Removed.
 
        * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
        prefixed all values with IPA_. Changed all users.
-       (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
-       CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
-       and FORMAL_IPATYPE IPA_PASS_THROUGH. 
+       (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
+       CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
+       and FORMAL_IPATYPE IPA_PASS_THROUGH.
        (union parameter_info): Renamed to jump_func_value.
        (union jump_func_value): Renamed value to constant
        (struct ipa_jump_func): Renamed info_type to value
        * 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.  
+       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.
        (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.
        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 
+       (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
        the case of parallelisation of reductions.
        (expr_invariant_in_region_p): New.
 
        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
 
        * 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.  
+       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.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_EXTRACT_OFFSET.
        (DF_REF_EXTRACT_MODE): New macro.
        (df_byte_lr_bb_info): New structure.
-       (df_print_byte_regset, df_compute_accessed_bytes, 
+       (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_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_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_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-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.  
+       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_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_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_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 
+       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.
        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. 
+       * 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,
 
        * config/sh/sh.c (expand_cbranchdi4): Use original operands for
        msw_skip comparison.
-       
+
 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/35739
        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. 
+       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.
        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_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,
        (*<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. 
+       abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
 
 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
 
 
 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 
+       * 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 
+       * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
        atmega103 device.
 
 2008-04-07  Jan Hubicka  <jh@suse.cz>
        (assign_stack_local): Update
        (expand_function_end): Update.
        (get_art_pointer_save_area): Update
-       * function.h 
+       * function.h
        * emit-rtl.c (rtl): Declare.
        (regno_reg_rtx): Declare.
        (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
        (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 
+       * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
        '__AVR_MEGA__'.
 
 2008-04-06  Richard Guenther  <rguenther@suse.de>
 
        * 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
 
 2008-04-02  Anatoly Sokolov <aesok@post.ru>
 
-       * config/avr/predicates.md (io_address_operand): New predicate. 
+       * 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 
+       (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.).
 
        * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
        * config/t-openbsd-thread: Remove commented out lines.
-       
+
        * config/x-interix: Remove.
 
        * config/m68hc11/t-m68hc11-gas: Rename to...
        (reload_reg_rtx_for_input): New variable.
        (reload_reg_rtx_for_output): Likewise.
        (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
-       when reassigning a pseudo register.  Load reloadreg from 
+       when reassigning a pseudo register.  Load reloadreg from
        reload_reg_rtx_for_input, moving the mode and register
        calculation to...
        (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
        (build/genflags.o): Likewise.
 
 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
        instead of size_int for integer types.
        (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
        to match type of MINUS_EXPR.
-       
+
 2008-03-25  Tom Tromey  <tromey@redhat.com>
 
        * configure: Rebuilt.
 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
 
        * config/sh/sh.md (prefetch): Add condition for SH2A target.
-       (prefetch_sh2a): New.   
+       (prefetch_sh2a): New.
 
 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
            Naveen.H.S  <naveen.hs@kpitcummins.com>
 
        * diagnostic.c (diagnostic_count_diagnostic): Delete.
        (diagnostic_report_diagnostic): Update. Handle ICEs here.
-       
+
 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
 
        * gthr-vxworks.h (UNUSED): Define.
 
        * doc/extend.texi (Function Attributes): Add missing comma in the
        example of the "alloc_size" attribute.
-       
+
 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
 
        Revert:
        * 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' 
+       (initial_elimination_offset): Initialize and use 'avr_pc_size'
        instead of fixed value 2.
        (print_operand_address): Use gs() asm specifier instead of pm().
        (avr_assemble_integer): (Ditto.).
        (avr_output_addr_vec_elt): (Ditto.).
        (print_operand): Handle "!" code.
-       * 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.
        (AVR_2_BYTE_PC): (Ditto.).
        (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
        (LINK_SPEC): Add atmega2560 and atmega2561.
-       (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
+       (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
        (crtm2561.o).
-       * 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.
-       * 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.).
        * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
-       (MULITLIB_DIRNAMES): (Ditto.). 
+       (MULITLIB_DIRNAMES): (Ditto.).
        (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
 
 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
        being a PHI_NODE.
 
 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * doc/invoke.texi (Option Summary, Xtensa Options): Document
        -mserialize-volatile and -mno-serialize-volatile Xtensa options.
        * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
        (df_ref_create_structure): Allocate df_ref_extract if offset and
        width fields are used.
        (df_def_record_1): Get offset and width from ZERO_EXTRACT.
-       (df_uses_record): Get offset and width from ZERO_EXTRACT 
+       (df_uses_record): Get offset and width from ZERO_EXTRACT
        and SIGN_EXTRACT.
        * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
        DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
        (df_ref_extract): New structure.
        (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
        (df_ref_create): Add width and offset parameters.
-       
+
 2008-03-05  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        * Makefile.in (OBJS-common): Remove struct-equiv.o.
        (struct-equiv.o): Remove rule.
        * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
-       insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
+       insns_match_p, struct_equiv_block_eq, struct_equiv_init,
        rtx_equiv_p, condjump_equiv_p): Remove prototypes.
 
 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
        * tree-vect-analyze.c: Remove unused static decls.
        * lambda.h (dependence_level): New.
        * common.opt (ftree-loop-distribution): New.
-       * tree-flow.h (mark_virtual_ops_in_bb, 
+       * tree-flow.h (mark_virtual_ops_in_bb,
        slpeel_tree_duplicate_loop_to_edge_cfg,
        rename_variables_in_loop): Declared.
        * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
 2008-02-26  Jason Merrill  <jason@redhat.com>
 
        PR c++/35315
-       * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
+       * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
        alone if it's the naming decl for the type's main variant.
 
 2008-02-26  Tom Tromey  <tromey@redhat.com>
        * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
        * tree-stdarg.c (execute_optimize_stdarg): Likewise.
        * tree-inline.c (inline_forbidden_p_1): Likewise.
-       
+
 2008-02-26  Richard Guenther  <rguenther@suse.de>
 
        * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
        Wvolatile-register-var.
        * common.opt: Move Wvolatile-register-var to...
        * c.opt: ...here.
-       
+
 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
 
        * common.opt (Wlarger-than=): New.
        * opth-gen.awk: Likewise.
        * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
        * tree-optimize.c (tree_rest_of_compilation): Likewise.
-       
+
 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
 
        * c-common.c (match_case_to_enum_1): Add appropriate
        (print_ignored_options): New.
        (handle_option): Postpone errors for unknown -Wno-* options.
        * opts.h (print_ignored_options): Declare.
-       
+
 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        * config/mips/mips.md (loadgp_blockage, blockage): Change type
        PR c/35162
        * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
        actual behaviour and C99.
-       
+
 2008-02-26  Ben Elliston  <bje@au.ibm.com>
 
        * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
        unused local variable `has_hot_blocks'.
        (fix_crossing_conditional_branches): Remove unused local variable
        `prev_bb'.
-       
+
 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
 
        PR middle-end/19984
 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/22076
-       PR target/34256 
+       PR target/34256
        * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
        prevent reload from using MMX registers.
        (*mov<mode>_internal): Ditto.
 
        * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
        as a jump, not as a plain insn.
-       
+
 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
 
        * doc/invoke.texi (Warning Options): Add new option
        * doc/install.texi: Correct references to CFLAGS, replacing them
        with BOOT_CFLAGS.  Document flags used during bootstrap for
        target libraries.
-                               
+
 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
        cannot be disambiguated.
        * c.opt (v): Pass on to the common option handler.
 
-2008-02-19  Revital Eres  <eres@il.ibm.com> 
+2008-02-19  Revital Eres  <eres@il.ibm.com>
 
        * modulo-sched.c (sms_schedule): Change dump message when
        create_ddg function fails.
 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
 
        Revert:
-       2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
+       2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
        * config/i386/sfp-machine.h (CMPtype): Define as typedef using
        libgcc_cmp_return mode.
 
        Add -fdump-ipa-inline.
        * tree-dump.c (dump_files): Remove tree-inlined dump.
        * tree-pass.h (tree_dump_index): Remove TDI_inlined.
-       
+
 2008-02-12  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/35171
 
 2008-02-08  Sa Liu  <saliu@de.ibm.com>
 
-       * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
+       * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
        intrinsics spu_convts, spu_convtu, spu_convtf.
 
 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
        optc-gen.awk.
        * opts-common.c: Likewise.
        * optc-gen.awk: Likewise.
-       
+
 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
 
        PR rtl-opt/33410
        * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
-       EXPR_LIST for the REG_EQUAL instead of a comparison with a 
+       EXPR_LIST for the REG_EQUAL instead of a comparison with a
        funny mode.
 
 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
 
 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
 
-       * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
+       * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
        builtin_define ("__USE_INIT_FINI__").
        * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
        -msx multilibs.
        * doc/c-tree.texi (Types): Fix grammar.
        (Expression trees): Ditto.
        * doc/passes.texi (Tree-SSA passes): Ditto.
-       
+
        * doc/configterms.texi (Configure Terms): Fix typo.
        * doc/cpp.texi (Common Predefined Macros): Ditto.
        * doc/md.texi (Machine Constraints): Ditto.
-       
+
        * doc/makefile.texi (Makefile): Add comma.
 
 2008-01-31  Tom Browder  <tom.browder@gmail.com>
            Gerald Pfeifer  <gerald@pfeifer.com>
-       
+
        * doc/sourcebuild.texi (Front End): Remove references to CVS
        and CVSROOT/modules.
        (Texinfo Manuals): Replace reference to CVS by one to SVN.
        options. Minor fixes.
        (-std): Move reference to standards closer to where language
        standards are first mentioned.
-       
+
 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
 
        PR rtl-optimization/34995
 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
 
        PR target/34412
-       * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
+       * config/avr/avr.c (expand_prologue): Use correct QI mode frame
        pointer for tiny stack.
 
 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
        Change type of cost to comp_cost.
        (determine_iv_cost): Increase cost of non-original ivs, instead
        of decreasing the cost of original ones.
-       (get_address_cost): Indicate the complexity of the addressing mode 
+       (get_address_cost): Indicate the complexity of the addressing mode
        in comp_cost.
        (try_add_cand_for): Prefer using ivs not specific to some object.
        * tree-flow.h (force_expr_to_var_cost): Declaration removed.
        * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
        New functions.
        (remove_structure): Update allocations list before removing structure.
-       
+
 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
 
-       * ipa-struct-reorg.c (is_safe_cond_expr, 
+       * ipa-struct-reorg.c (is_safe_cond_expr,
        create_new_stmts_for_cond_expr): Use integer_zerop function,
        that recognize not only zero-pointer, but zero-integer too.
 
 
        PR c++/25701
        * doc/gcc.texi (Software development): Add a direntry for g++.
-       
+
 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
 
        * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
        (avr_arch_types): Add 'avr31' and 'avr51' entries.
        (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
        (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
-       (avr_override_options): Init 'avr_current_arch'. 
+       (avr_override_options): Init 'avr_current_arch'.
        (base_arch_s): Move from here...
-       * config/avr/avr.h (base_arch_s): ... here. Add new members 
-       'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
+       * config/avr/avr.h (base_arch_s): ... here. Add new members
+       'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
        'mega' to 'have_jmp_call'.
-       (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
+       (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
        "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
        macros.
-       (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
+       (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
        architectures.
-       * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
+       * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
        MULTILIB_MATCHES): (Ditto.).
 
 2008-01-23  Richard Guenther  <rguenther@suse.de>
 
 2008-01-21  Alon Dayan  <alond@il.ibm.com>
            Olga Golovanevsky  <olga@il.ibm.com>
-       
+
        PR tree-optimization/34701
        * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
        when the structure size is not a power of 2.
 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
        * doc/install.texi: Add doc for --enable-checking=df.
-       
+
 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        PR rtl-optimization/34808
        (df_live_init): Init the df_live sets only with the variables
        found live by df_lr.
        (df_live_transfer_function): Use the df_lr sets to prune the
-       df_live sets as they are being computed.  
+       df_live sets as they are being computed.
        (df_live_free): Free df_live_scratch.
 
 2008-01-18  Ian Lance Taylor  <iant@google.com>
 
 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
 
-       * tree-data-ref.c (subscript_dependence_tester_1): Call 
+       * tree-data-ref.c (subscript_dependence_tester_1): Call
        free_conflict_function.
        (compute_self_dependence): Same.
 
        PR c++/24924
        * c-opts (c_common_post_options): Do not enable CPP
        flag_pedantic_errors by default.
-       
+
 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR rtl-optimization/31944
        correct type.
 
 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * config/xtensa/xtensa.c (override_options): Set flag_shlib.
-       
+
 2008-01-11  James E. Wilson  <wilson@specifix.com>
 
        PR target/26015
 
 2008-01-11  Anatoly Sokolov <aesok@post.ru>
 
-       * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
-       save/restore frame pointer register and don't use 'call-prologues' 
+       * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
+       save/restore frame pointer register and don't use 'call-prologues'
        optimization in function with "OS_task" attribute.
 
 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
 
        2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
        * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
-       for TARGET_RECIP.       
-       
+       for TARGET_RECIP.
+
 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
-       
+
        * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
        for vectorization tuned.
-       
+
 2008-01-08  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/34683
index 4d5120160fa29425ceede7abfe0d0beb67e751e6..992332663772774e6d568ce5e5946a96fef5f2e1 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -783,10 +783,9 @@ replace_inc_dec (rtx *r, void *d)
       {
        rtx r1 = XEXP (x, 0);
        rtx c = gen_int_mode (Pmode, data->size);
-       add_insn_before (data->insn, 
-                        gen_rtx_SET (Pmode, r1, 
-                                     gen_rtx_PLUS (Pmode, r1, c)),
-                        NULL);
+       emit_insn_before (gen_rtx_SET (Pmode, r1, 
+                                      gen_rtx_PLUS (Pmode, r1, c)),
+                         data->insn);
        return -1;
       }
                 
@@ -795,10 +794,9 @@ replace_inc_dec (rtx *r, void *d)
       {
        rtx r1 = XEXP (x, 0);
        rtx c = gen_int_mode (Pmode, -data->size);
-       add_insn_before (data->insn, 
-                        gen_rtx_SET (Pmode, r1, 
-                                     gen_rtx_PLUS (Pmode, r1, c)),
-                        NULL);
+       emit_insn_before (gen_rtx_SET (Pmode, r1, 
+                                      gen_rtx_PLUS (Pmode, r1, c)),
+                         data->insn);
        return -1;
       }
        
@@ -809,8 +807,7 @@ replace_inc_dec (rtx *r, void *d)
           insn that contained it.  */
        rtx add = XEXP (x, 0);
        rtx r1 = XEXP (add, 0);
-       add_insn_before (data->insn, 
-                        gen_rtx_SET (Pmode, r1, add), NULL);
+       emit_insn_before (gen_rtx_SET (Pmode, r1, add), data->insn);
        return -1;
       }
 
@@ -827,12 +824,12 @@ static int
 replace_inc_dec_mem (rtx *r, void *d)
 {
   rtx x = *r;
-  if (GET_CODE (x) == MEM)
+  if (x != NULL_RTX && MEM_P (x))
     {
       struct insn_size data;
 
       data.size = GET_MODE_SIZE (GET_MODE (x));
-      data.insn = (rtx)d;
+      data.insn = (rtx) d;
 
       for_each_rtx (&XEXP (x, 0), replace_inc_dec, &data);