OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [ChangeLog-2006] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
2006-12-29  Paolo Bonzini  
2006-12-29  Paolo Bonzini  
        PR bootstrap/29544
        PR bootstrap/29544
        * gcc/Makefile.in (STAGE1_CHECKING): Rename to...
        * gcc/Makefile.in (STAGE1_CHECKING): Rename to...
        (STAGE1_CHECKING_CFLAGS): ... this.
        (STAGE1_CHECKING_CFLAGS): ... this.
2006-12-28  H.J. Lu  
2006-12-28  H.J. Lu  
        Backport from mainline:
        Backport from mainline:
        2006-12-02  H.J. Lu  
        2006-12-02  H.J. Lu  
        PR target/30040
        PR target/30040
        * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
        * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
        (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
        (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
        processor detection.
        processor detection.
        * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
        * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
        -march=native if there is no -mtune=*.
        -march=native if there is no -mtune=*.
        * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
        * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
        coretypes.h.
        coretypes.h.
2006-12-27  Ian Lance Taylor  
2006-12-27  Ian Lance Taylor  
        PR debug/26964
        PR debug/26964
        * dwarf2out.c (gen_type_die): Don't write out a DIE for
        * dwarf2out.c (gen_type_die): Don't write out a DIE for
        ENUMERAL_TYPE if it was already written out.
        ENUMERAL_TYPE if it was already written out.
2006-12-23  Eric Botcazou  
2006-12-23  Eric Botcazou  
        * dwarf2out.c (dbx_reg_number): Do leaf register remapping
        * dwarf2out.c (dbx_reg_number): Do leaf register remapping
        only if the function is leaf.
        only if the function is leaf.
        (multiple_reg_loc_descriptor): Likewise.
        (multiple_reg_loc_descriptor): Likewise.
2006-12-21  Jakub Jelinek  
2006-12-21  Jakub Jelinek  
        PR middle-end/30262
        PR middle-end/30262
        PR middle-end/30263
        PR middle-end/30263
        * tree-nested.c (walk_asm_expr): New function.
        * tree-nested.c (walk_asm_expr): New function.
        (walk_stmts): Use it for ASM_EXPR.
        (walk_stmts): Use it for ASM_EXPR.
        PR target/30230
        PR target/30230
        * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
        * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
        (bundling): Use it.
        (bundling): Use it.
2006-12-17  Matthias Klose  
2006-12-17  Matthias Klose  
        PR libstdc++/11953
        PR libstdc++/11953
        * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
        * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
2006-12-16  Joseph Myers  
2006-12-16  Joseph Myers  
            David Edelsohn  
            David Edelsohn  
        PR target/24036
        PR target/24036
        * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
        * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
        HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
        HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
        * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
        * defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
        HARD_REGNO_NREGS_WITH_PADDING): Define.
        HARD_REGNO_NREGS_WITH_PADDING): Define.
        * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
        * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
        HARD_REGNO_NREGS_WITH_PADDING): Define.
        HARD_REGNO_NREGS_WITH_PADDING): Define.
        * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
        * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
        Use new macros to detect modes with holes; do not look at integer
        Use new macros to detect modes with holes; do not look at integer
        units.
        units.
        (subreg_offset_representable_p): Check for and disallow cases
        (subreg_offset_representable_p): Check for and disallow cases
        where the modes use different numbers of bits from registers.
        where the modes use different numbers of bits from registers.
        * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
        * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
        constant for soft-float.
        constant for soft-float.
        (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
        (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
        containing doubles.
        containing doubles.
        (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
        (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
        in E500 double case.
        in E500 double case.
        * config/rs6000/rs6000.md (movtf): Allow soft-float.
        * config/rs6000/rs6000.md (movtf): Allow soft-float.
        (movtf_softfloat): New.
        (movtf_softfloat): New.
2006-12-15  Jakub Jelinek  
2006-12-15  Jakub Jelinek  
        PR target/30185
        PR target/30185
        * config/rs6000/rs6000.md (div3): Use correct mode in
        * config/rs6000/rs6000.md (div3): Use correct mode in
        force_reg call.
        force_reg call.
2006-12-13  Richard Guenther  
2006-12-13  Richard Guenther  
        * ipa-inline.c (cgraph_flatten_node): Replace leafify with
        * ipa-inline.c (cgraph_flatten_node): Replace leafify with
        flatten.
        flatten.
        (cgraph_decide_inlining): Likewise.
        (cgraph_decide_inlining): Likewise.
2006-12-13  Richard Guenther  
2006-12-13  Richard Guenther  
        * ipa-reference.c (scan_for_static_refs): Also scan
        * ipa-reference.c (scan_for_static_refs): Also scan
        tcc_comparison class trees.
        tcc_comparison class trees.
2006-12-12  Daniel Berlin  
2006-12-12  Daniel Berlin  
        * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
        * tree-ssa-structalias.c (handle_ptr_arith): Return false when we
        can't handle the pointer arithmetic.
        can't handle the pointer arithmetic.
2006-12-12  Jakub Jelinek  
2006-12-12  Jakub Jelinek  
        PR libstdc++/11953
        PR libstdc++/11953
        * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
        * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
        * config/ia64/linux.h (CPP_SPEC): Define.
        * config/ia64/linux.h (CPP_SPEC): Define.
        * config/s390/linux.h (CPP_SPEC): Define.
        * config/s390/linux.h (CPP_SPEC): Define.
2006-12-12  Jim Wilson  
2006-12-12  Jim Wilson  
            Jakub Jelinek  
            Jakub Jelinek  
        PR rtl-optimization/27761
        PR rtl-optimization/27761
        * combine.c (try_combine): Don't create a useless garbage SET
        * combine.c (try_combine): Don't create a useless garbage SET
        if PATTERN (i2) is a PARALLEL.  If added_sets_1, save
        if PATTERN (i2) is a PARALLEL.  If added_sets_1, save
        PATTERN (i1) resp. SET from i1src to i1dest in i1pat
        PATTERN (i1) resp. SET from i1src to i1dest in i1pat
        and use it to prevent accidental modification of i1src.
        and use it to prevent accidental modification of i1src.
2006-12-12  Richard Guenther  
2006-12-12  Richard Guenther  
        PR middle-end/30147
        PR middle-end/30147
        * fold-const.c (fold_read_from_constant_string): Only fold read
        * fold-const.c (fold_read_from_constant_string): Only fold read
        from constant string if the result type is integer.
        from constant string if the result type is integer.
2006-12-09  Maxim Kuvyrkov  
2006-12-09  Maxim Kuvyrkov  
        * haifa-sched.c (schedule_block): Remove excessive sanity check.
        * haifa-sched.c (schedule_block): Remove excessive sanity check.
2006-12-08  Mike Stump  
2006-12-08  Mike Stump  
        * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
        * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
        libgcc with -mmacosx-version-min=10.4.
        libgcc with -mmacosx-version-min=10.4.
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
        G4 for 10.5+ unless doing kernel builds.
        G4 for 10.5+ unless doing kernel builds.
2006-12-08  John David Anglin  
2006-12-08  John David Anglin  
        PR target/30039
        PR target/30039
        * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
        * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
        patterns.  Correct length of high:DI instruction sequence.
        patterns.  Correct length of high:DI instruction sequence.
2006-12-07  Maxim Kuvyrkov  
2006-12-07  Maxim Kuvyrkov  
        PR target/29794
        PR target/29794
        * sched-rgn.c (add_block1): Use correct initializer.
        * sched-rgn.c (add_block1): Use correct initializer.
2006-12-05  H.J. Lu  
2006-12-05  H.J. Lu  
        PR driver/30074
        PR driver/30074
        * config.host: Add driver-i386.o only if compiling for x86 or
        * config.host: Add driver-i386.o only if compiling for x86 or
        x86_64.
        x86_64.
2006-12-04  Jakub Jelinek  
2006-12-04  Jakub Jelinek  
        PR libgomp/29947
        PR libgomp/29947
        * omp-low.c (expand_omp_for_static_nochunk,
        * omp-low.c (expand_omp_for_static_nochunk,
        expand_omp_for_static_chunk): Do all arithmetics in signed rather than
        expand_omp_for_static_chunk): Do all arithmetics in signed rather than
        unsigned type.
        unsigned type.
        PR middle-end/29965
        PR middle-end/29965
        * omp-low.c (determine_parallel_type): Don't try to optimize combined
        * omp-low.c (determine_parallel_type): Don't try to optimize combined
        parallels if region->exit or region->inner->exit is NULL.
        parallels if region->exit or region->inner->exit is NULL.
        (expand_omp_parallel): Handle NULL region->exit even if cfg is already
        (expand_omp_parallel): Handle NULL region->exit even if cfg is already
        built.
        built.
        (expand_omp_for_generic): Handle NULL region->cond and region->exit.
        (expand_omp_for_generic): Handle NULL region->cond and region->exit.
        (expand_omp_for): Use expand_omp_for_generic if either region->cond
        (expand_omp_for): Use expand_omp_for_generic if either region->cond
        or region->exit is NULL.
        or region->exit is NULL.
        (expand_omp_sections): Handle NULL region->cond or region->exit.
        (expand_omp_sections): Handle NULL region->cond or region->exit.
        (expand_omp_synch):
        (expand_omp_synch):
2006-12-03  Kaveh R. Ghazi  
2006-12-03  Kaveh R. Ghazi  
        * doc/install.texi: Update MPFR prerequisite to version 2.2.1.
        * doc/install.texi: Update MPFR prerequisite to version 2.2.1.
2006-12-02  Andrew Pinski  
2006-12-02  Andrew Pinski  
        PR tree-opt/29984
        PR tree-opt/29984
        * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
        * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
        and MIN_EXRP.
        and MIN_EXRP.
2006-11-29  Joseph Myers  
2006-11-29  Joseph Myers  
        * config/rs6000/predicates.md (gpc_reg_operand): Check
        * config/rs6000/predicates.md (gpc_reg_operand): Check
        invalid_e500_subreg.
        invalid_e500_subreg.
        * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
        * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
        SImode subregs of SPE vectors.
        SImode subregs of SPE vectors.
        * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
        * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
        * jump.c (true_regnum): Require subregs to satisfy
        * jump.c (true_regnum): Require subregs to satisfy
        subreg_offset_representable_p.
        subreg_offset_representable_p.
2006-11-29  Jie Zhang  
2006-11-29  Jie Zhang  
        * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
        * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
2006-11-29  Jim Tison  
2006-11-29  Jim Tison  
        * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
        * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
        __gthread_recursive_mutex_init): Define.
        __gthread_recursive_mutex_init): Define.
2006-11-29  Joseph Myers  
2006-11-29  Joseph Myers  
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
        STRICT_ALIGNMENT and the type is more aligned than the saved
        STRICT_ALIGNMENT and the type is more aligned than the saved
        registers, copy via a temporary.
        registers, copy via a temporary.
2006-11-28  Joseph Myers  
2006-11-28  Joseph Myers  
        * function.c (instantiate_virtual_regs_in_insn): Call force_reg
        * function.c (instantiate_virtual_regs_in_insn): Call force_reg
        inside start_sequence / end_sequence pair.
        inside start_sequence / end_sequence pair.
2006-11-27  Michael Matz  
2006-11-27  Michael Matz  
            Andreas Krebbel  
            Andreas Krebbel  
        PR target/29319
        PR target/29319
        * config/s390/predicates.md (larl_operand): Check addend of larl
        * config/s390/predicates.md (larl_operand): Check addend of larl
        operand to be in range of -/+2GB.
        operand to be in range of -/+2GB.
        * config/s390/s390.c (legitimize_pic_address): Likewise.
        * config/s390/s390.c (legitimize_pic_address): Likewise.
        Changed type of variable even to HOST_WIDE_INT.
        Changed type of variable even to HOST_WIDE_INT.
2006-11-26  Kaveh R. Ghazi  
2006-11-26  Kaveh R. Ghazi  
        * doc/install.texi: Remove documentation for --with-mpfr-dir
        * doc/install.texi: Remove documentation for --with-mpfr-dir
        and --with-gmp-dir, add documentation for --with-mpfr-include,
        and --with-gmp-dir, add documentation for --with-mpfr-include,
        --with-mpfr-lib, --with-gmp-include and --with-gmp-lib.
        --with-mpfr-lib, --with-gmp-include and --with-gmp-lib.
2006-11-25  Andrew Pinski  
2006-11-25  Andrew Pinski  
        PR tree-opt/29964
        PR tree-opt/29964
        * ipa-pure-const.c (check_tree): If the original tree
        * ipa-pure-const.c (check_tree): If the original tree
        is volatile return early and say the function is not pure
        is volatile return early and say the function is not pure
        nor const.  Remove the volatile check for writes.
        nor const.  Remove the volatile check for writes.
        (analyze_function): Print out the result of the local
        (analyze_function): Print out the result of the local
        analysis pass.
        analysis pass.
2006-11-24  Jakub Jelinek  
2006-11-24  Jakub Jelinek  
        PR c/29955
        PR c/29955
        * c-tree.h (c_maybe_initialize_eh): New prototype.
        * c-tree.h (c_maybe_initialize_eh): New prototype.
        * c-decl.c (finish_decl): Move EH initialization...
        * c-decl.c (finish_decl): Move EH initialization...
        (c_maybe_initialize_eh): ... here.  New function.
        (c_maybe_initialize_eh): ... here.  New function.
        * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
        * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
        if not #pragma omp atomic.
        if not #pragma omp atomic.
        PR c/29736
        PR c/29736
        * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
        * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
        or UNION_TYPE inner types.
        or UNION_TYPE inner types.
2006-11-24  Joseph Myers  
2006-11-24  Joseph Myers  
        * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
        * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
        MASK_STRICT_ALIGN.
        MASK_STRICT_ALIGN.
        * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
        * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
        * config/rs6000/rs6000.c (rs6000_override_options): Use
        * config/rs6000/rs6000.c (rs6000_override_options): Use
        MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
        MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
        POWERPC_MASKS.
        POWERPC_MASKS.
2006-11-24  Andreas Krebbel  
2006-11-24  Andreas Krebbel  
        * config/s390.c (s390_emit_compare_and_swap): New function.
        * config/s390.c (s390_emit_compare_and_swap): New function.
        (s390_expand_cs_hqi, s390_expand_atomic): Call
        (s390_expand_cs_hqi, s390_expand_atomic): Call
        s390_emit_compare_and_swap.
        s390_emit_compare_and_swap.
2006-11-23  John David Anglin  
2006-11-23  John David Anglin  
        * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
        * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
2006-11-22  Joseph Myers  
2006-11-22  Joseph Myers  
        * config/rs6000/spe.md (SPE64): New mode macro.
        * config/rs6000/spe.md (SPE64): New mode macro.
        (mov_sidf_e500_subreg0): Change to mov_si_e500_subreg0.  Add
        (mov_sidf_e500_subreg0): Change to mov_si_e500_subreg0.  Add
        memory load.
        memory load.
        (mov_si_e500_subreg0_2): New.
        (mov_si_e500_subreg0_2): New.
        (mov_sidf_e500_subreg4): Change to mov_si_e500_subreg4.  Add
        (mov_sidf_e500_subreg4): Change to mov_si_e500_subreg4.  Add
        memory load.
        memory load.
        (mov_si_e500_subreg4_2): New.
        (mov_si_e500_subreg4_2): New.
        * config/rs6000/predicates.md (input_operand): Do not allow
        * config/rs6000/predicates.md (input_operand): Do not allow
        invalid E500 subregs.
        invalid E500 subregs.
        (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
        (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
        if TARGET_SPE.
        if TARGET_SPE.
        * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
        * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
        involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
        involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
        involving vector modes if TARGET_SPE.
        involving vector modes if TARGET_SPE.
2006-11-20  Anatoly Sokolov 
2006-11-20  Anatoly Sokolov 
        PR target/18553
        PR target/18553
        PR target/29449
        PR target/29449
        * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
        * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
        * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
        * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
2006-11-19  John David Anglin  
2006-11-19  John David Anglin  
        PR target/29114
        PR target/29114
        * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
        * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
        larger than BITS_PER_WORD.
        larger than BITS_PER_WORD.
2006-11-19  Richard Guenther  
2006-11-19  Richard Guenther  
        Backport from mainline:
        Backport from mainline:
        2006-11-15  Paolo Bonzini  
        2006-11-15  Paolo Bonzini  
        PR middle-end/29753
        PR middle-end/29753
        * gimplify.c (fold_indirect_ref_rhs): Use
        * gimplify.c (fold_indirect_ref_rhs): Use
        STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
        STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
2006-11-18  John David Anglin  
2006-11-18  John David Anglin  
        PR fortran/27885
        PR fortran/27885
        PR middle-end/28176
        PR middle-end/28176
        * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
        * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
        to MAX_FIXED_MODE_SIZE.
        to MAX_FIXED_MODE_SIZE.
2006-11-18  Aldy Hernandez  
2006-11-18  Aldy Hernandez  
       * doc/invoke.texi: Fix mno-isel typo.
       * doc/invoke.texi: Fix mno-isel typo.
2006-11-18  Joseph Myers  
2006-11-18  Joseph Myers  
        * config/rs6000/spe.md (movv4hi_internal): Add alternative for
        * config/rs6000/spe.md (movv4hi_internal): Add alternative for
        easy vector constant loads.
        easy vector constant loads.
2006-11-18  Joseph Myers  
2006-11-18  Joseph Myers  
        * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
        * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
        __NO_LWSYNC__ if TARGET_NO_LWSYNC.
        __NO_LWSYNC__ if TARGET_NO_LWSYNC.
        * config/rs6000/sync.md (lwsync): Emit plain sync if
        * config/rs6000/sync.md (lwsync): Emit plain sync if
        TARGET_NO_LWSYNC.
        TARGET_NO_LWSYNC.
2006-11-17  Jakub Jelinek  
2006-11-17  Jakub Jelinek  
        PR middle-end/29584
        PR middle-end/29584
        * tree-ssa-forwprop.c (simplify_switch_expr): Don't
        * tree-ssa-forwprop.c (simplify_switch_expr): Don't
        optimize if DEF doesn't have integral type.
        optimize if DEF doesn't have integral type.
2006-11-17  Uros Bizjak  
2006-11-17  Uros Bizjak  
        * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
        * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
        number of arguments passed to local functions in SSE registers is 3.
        number of arguments passed to local functions in SSE registers is 3.
        * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
        * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
        number of arguments passed in SSE registers to 3.
        number of arguments passed in SSE registers to 3.
2006-11-16  Eric Botcazou  
2006-11-16  Eric Botcazou  
        PR middle-end/26306
        PR middle-end/26306
        * gimplify.c (gimplify_expr): Only force a load for references to
        * gimplify.c (gimplify_expr): Only force a load for references to
        non-BLKmode volatile values.
        non-BLKmode volatile values.
        * doc/implement-c.texi (Qualifiers implementation): Document the
        * doc/implement-c.texi (Qualifiers implementation): Document the
        interpretation of what a volatile access is.
        interpretation of what a volatile access is.
        * doc/extend.texi (C++ Extensions): Rework same documentation.
        * doc/extend.texi (C++ Extensions): Rework same documentation.
2006-11-16  Andrew Pinski  
2006-11-16  Andrew Pinski  
        PR tree-opt/29788
        PR tree-opt/29788
        * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
        * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
        to what is the const decl is a place holder for.
        to what is the const decl is a place holder for.
2006-11-16  Maxim Kuvyrkov  
2006-11-16  Maxim Kuvyrkov  
        PR target/29201
        PR target/29201
        * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
        * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
        bb to ...
        bb to ...
        (get_last_bb_insn): ... new global function.
        (get_last_bb_insn): ... new global function.
        (basic_block.h): Declare it.
        (basic_block.h): Declare it.
        * haifa-sched.c (create_recovery_block): Use it.
        * haifa-sched.c (create_recovery_block): Use it.
2006-11-16  Joseph Myers  
2006-11-16  Joseph Myers  
        * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
        * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
        memory operand.
        memory operand.
2006-11-15  Steve Ellcey  
2006-11-15  Steve Ellcey  
        * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
        * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
        routines for integer division.
        routines for integer division.
2006-11-15  Steve Ellcey  
2006-11-15  Steve Ellcey  
        PR other/25028
        PR other/25028
        * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
        * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
        _fixunstfdi, and  _floatditf
        _fixunstfdi, and  _floatditf
2006-11-15  Jakub Jelinek  
2006-11-15  Jakub Jelinek  
        PR tree-optimization/29581
        PR tree-optimization/29581
        * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
        * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
        REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
        REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
        type is different between Y and USE, create a temporary
        type is different between Y and USE, create a temporary
        variable, initialize it at the beginning of the body bb
        variable, initialize it at the beginning of the body bb
        and use it as replacement instead of Y.
        and use it as replacement instead of Y.
2006-11-15  Richard Guenther  
2006-11-15  Richard Guenther  
        Backport from mainline:
        Backport from mainline:
        2006-11-12  Michael Matz  
        2006-11-12  Michael Matz  
                    Roger Sayle  
                    Roger Sayle  
        PR rtl-optimization/29797
        PR rtl-optimization/29797
        * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
        * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
        BITS_BIG_ENDIAN targets.
        BITS_BIG_ENDIAN targets.
2006-11-14  Eric Christopher  
2006-11-14  Eric Christopher  
        * configure: Regenerate with autoconf 2.59.
        * configure: Regenerate with autoconf 2.59.
2006-11-13  DJ Delorie  
2006-11-13  DJ Delorie  
        * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
        * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
        temporary for intermediates.
        temporary for intermediates.
2006-11-13  Jakub Jelinek  
2006-11-13  Jakub Jelinek  
        * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
        * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
        test.
        test.
        * configure: Rebuilt.
        * configure: Rebuilt.
        * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
        * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
        style versions.
        style versions.
        * configure: Rebuilt.
        * configure: Rebuilt.
2006-11-13  Andrew Pinski  
2006-11-13  Andrew Pinski  
        PR tree-opt/29439
        PR tree-opt/29439
        * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
        * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
        checking for overflow.
        checking for overflow.
2006-11-13  Richard Guenther  
2006-11-13  Richard Guenther  
        Backport from mainline:
        Backport from mainline:
        2006-10-23  Richard Guenther  
        2006-10-23  Richard Guenther  
        PR middle-end/21032
        PR middle-end/21032
        * convert.c (convert_to_real): Fold (float)-x to -(float)x
        * convert.c (convert_to_real): Fold (float)-x to -(float)x
        only if not flag_rounding_math.
        only if not flag_rounding_math.
2006-11-12  Jason Merrill  
2006-11-12  Jason Merrill  
            Andrew Pinski 
            Andrew Pinski 
        PR middle-end/28915
        PR middle-end/28915
        * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
        * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
        vector ctors.
        vector ctors.
        * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
        * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
        vector ctors.
        vector ctors.
        * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
        * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
        * tree.c (build_vector): Handle non-_CST elements.
        * tree.c (build_vector): Handle non-_CST elements.
2006-11-12  Daniel Berlin  
2006-11-12  Daniel Berlin  
        Fix PR tree-optimization/29587
        Fix PR tree-optimization/29587
        * tree-ssa-structalias.c (process_constraint): Don't
        * tree-ssa-structalias.c (process_constraint): Don't
        mark address taken due only to escaped vars constraint.
        mark address taken due only to escaped vars constraint.
2006-11-12  Jie Zhang  
2006-11-12  Jie Zhang  
        Revert
        Revert
        2006-11-11  Jie Zhang  
        2006-11-11  Jie Zhang  
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        and __BFIN__.
        and __BFIN__.
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
        instead of builtin_define for bfin and BFIN.
        instead of builtin_define for bfin and BFIN.
2006-11-11  Jie Zhang  
2006-11-11  Jie Zhang  
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        and __BFIN__.
        and __BFIN__.
2006-11-11  Richard Sandiford  
2006-11-11  Richard Sandiford  
        PR middle-end/27528
        PR middle-end/27528
        * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
        * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
        constraints accept neither registers or memories.
        constraints accept neither registers or memories.
2006-11-11  Jie Zhang  
2006-11-11  Jie Zhang  
        * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
        * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
        (NO_PROFILE_COUNTERS): Define as 1.
        (NO_PROFILE_COUNTERS): Define as 1.
2006-11-09  Serge Belyshev  
2006-11-09  Serge Belyshev  
        PR middle-end/29726
        PR middle-end/29726
        * fold-const.c (fold_binary) : Fix typo in variable name.
        * fold-const.c (fold_binary) : Fix typo in variable name.
2006-11-09  Eric Christopher  
2006-11-09  Eric Christopher  
        PR bootstrap/26892
        PR bootstrap/26892
        PR bootstrap/27814
        PR bootstrap/27814
        PR other/28994
        PR other/28994
        * configure: Regenerate.
        * configure: Regenerate.
        * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
        * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
        * config.gcc (powerpc64-*-darwin*): New target.
        * config.gcc (powerpc64-*-darwin*): New target.
        * config.host: Ditto.
        * config.host: Ditto.
        * config/rs6000/darwin64.h: New file.
        * config/rs6000/darwin64.h: New file.
        * config/rs6000/x-darwin64: Ditto.
        * config/rs6000/x-darwin64: Ditto.
        * config/rs6000/host-ppc64-darwin.c: Ditto.
        * config/rs6000/host-ppc64-darwin.c: Ditto.
2006-11-08  Brooks Moses  
2006-11-08  Brooks Moses  
        * doc/invoke.texi: Minor formatting fixes in option lists.
        * doc/invoke.texi: Minor formatting fixes in option lists.
2006-11-08  Eric Christopher  
2006-11-08  Eric Christopher  
        Backport from mainline:
        Backport from mainline:
        * config.gcc: Add x86_64-darwin host support.
        * config.gcc: Add x86_64-darwin host support.
        * config.host: Ditto.
        * config.host: Ditto.
        * config/i386/darwin64.h: New file.
        * config/i386/darwin64.h: New file.
        * config/i386/t-darwin64: Ditto.
        * config/i386/t-darwin64: Ditto.
2006-11-08  Janis Johnson  
2006-11-08  Janis Johnson  
        * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
        * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
        and output-exists-not.
        and output-exists-not.
2006-11-07  Richard Guenther  
2006-11-07  Richard Guenther  
        PR tree-optimization/29610
        PR tree-optimization/29610
        * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
        * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
        of tree_purge_dead_eh_edges as it may free dominators.
        of tree_purge_dead_eh_edges as it may free dominators.
        * g++.dg/other/pr29610.C: New testcase.
        * g++.dg/other/pr29610.C: New testcase.
2006-11-07  Jie Zhang  
2006-11-07  Jie Zhang  
        * gcc.c (process_command): Treat -b as normal switch if its argument
        * gcc.c (process_command): Treat -b as normal switch if its argument
        has no dash.
        has no dash.
2006-11-06  Vladimir Prus  
2006-11-06  Vladimir Prus  
        Backport from mainline:
        Backport from mainline:
        * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do not
        * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do not
        set inhibit_libc.
        set inhibit_libc.
        * config/arm/t-strongarm-elf: Likewise.
        * config/arm/t-strongarm-elf: Likewise.
        * config/arm/t-pe: Likewise.
        * config/arm/t-pe: Likewise.
        * config/arm/t-arm-elf: Likewise.
        * config/arm/t-arm-elf: Likewise.
        * config/arm/t-xscale-elf: Likewise.
        * config/arm/t-xscale-elf: Likewise.
        * config/arm/t-arm-coff: Likewise.
        * config/arm/t-arm-coff: Likewise.
        * config/arm/t-xscale-coff: Likewise.
        * config/arm/t-xscale-coff: Likewise.
        * config/arm/t-wince-pe: Likewise.
        * config/arm/t-wince-pe: Likewise.
2006-11-06  Richard Guenther  
2006-11-06  Richard Guenther  
        Backport from mainline:
        Backport from mainline:
        2006-10-21  Richard Guenther  
        2006-10-21  Richard Guenther  
        PR target/19116
        PR target/19116
        * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
        * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
        if flag_unsafe_math_optimizations is specified.  We have
        if flag_unsafe_math_optimizations is specified.  We have
        flag_finite_math_only for that.
        flag_finite_math_only for that.
        * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
        * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
        or flag_unsafe_math_optimizations.
        or flag_unsafe_math_optimizations.
        PR middle-end/28796
        PR middle-end/28796
        * simplify-rtx.c (simplify_const_relational_operation):
        * simplify-rtx.c (simplify_const_relational_operation):
        Do not constant-fold ORDERED and UNORDERED for
        Do not constant-fold ORDERED and UNORDERED for
        flag_unsafe_math_optimizations but only we do not need to
        flag_unsafe_math_optimizations but only we do not need to
        honor NaNs for the given mode.
        honor NaNs for the given mode.
2006-11-05  Jakub Jelinek  
2006-11-05  Jakub Jelinek  
        PR middle-end/29695
        PR middle-end/29695
        * fold-const.c (fold_ternary): Fix A < 0 ?  : 0
        * fold-const.c (fold_ternary): Fix A < 0 ?  : 0
        simplification.
        simplification.
2006-11-02  Brooks Moses  
2006-11-02  Brooks Moses  
        * doc/invoke.texi: Fix mfp-trap-mode typo.
        * doc/invoke.texi: Fix mfp-trap-mode typo.
2006-11-02  Eric Botcazou  
2006-11-02  Eric Botcazou  
        * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
        * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
        instructions.
        instructions.
        (sparc64-sun-solaris2*): Likewise.
        (sparc64-sun-solaris2*): Likewise.
2006-11-02  Uros Bizjak 
2006-11-02  Uros Bizjak 
        PR target/29377
        PR target/29377
        * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
        * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
        argument to HOST_WIDE_INT.  Update function prototype.
        argument to HOST_WIDE_INT.  Update function prototype.
        (round_frame_size): Change return type to HOST_WIDE_INT.  Change
        (round_frame_size): Change return type to HOST_WIDE_INT.  Change
        "size" argument to HOST_WIDE_INT.  Update function prototype.
        "size" argument to HOST_WIDE_INT.  Update function prototype.
2006-11-01  Chris Johns 
2006-11-01  Chris Johns 
        PR bootstrap/28400
        PR bootstrap/28400
        * Makefile.in (install-driver): Use exeext when installing
        * Makefile.in (install-driver): Use exeext when installing
        $target-gcc-$version.
        $target-gcc-$version.
2006-11-01  Andrew Haley  
2006-11-01  Andrew Haley  
        * fold-const.c (fold_unary): Don't fold (t1)(t2) to (t1) if this
        * fold-const.c (fold_unary): Don't fold (t1)(t2) to (t1) if this
        is a Java program.
        is a Java program.
2006-11-01  Kaveh R. Ghazi  
2006-11-01  Kaveh R. Ghazi  
        * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
        * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2006-10-31  Eric Botcazou  
2006-10-31  Eric Botcazou  
        PR target/24071
        PR target/24071
        * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
        * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
        * gthr-posix95.h (__gthread_active_p): Likewise.
        * gthr-posix95.h (__gthread_active_p): Likewise.
2006-10-30  Jakub Jelinek  
2006-10-30  Jakub Jelinek  
        PR tree-optimization/29637
        PR tree-optimization/29637
        * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
        * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
        of the innertype is the innertype itself.
        of the innertype is the innertype itself.
        * gcc.dg/pr29637.c: New test.
        * gcc.dg/pr29637.c: New test.
2006-10-27  Mike Stump  
2006-10-27  Mike Stump  
        * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
        * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
        __DYNAMIC__ from here back to ...
        __DYNAMIC__ from here back to ...
        * config/darwin.h (CPP_SPEC): ... here.
        * config/darwin.h (CPP_SPEC): ... here.
2006-10-26  Andreas Krebbel  
2006-10-26  Andreas Krebbel  
        * config/s390/s390.c (s390_init_frame_layout): Check positive
        * config/s390/s390.c (s390_init_frame_layout): Check positive
        frame_size.
        frame_size.
2006-10-26  Ben Elliston  
2006-10-26  Ben Elliston  
        * doc/extend.texi (Variable Attributes): Typo fix.
        * doc/extend.texi (Variable Attributes): Typo fix.
2006-10-25  Steve Ellcey  
2006-10-25  Steve Ellcey  
        * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
        * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
        Add unix98.o to link line.
        Add unix98.o to link line.
2006-10-25  Richard Sandiford  
2006-10-25  Richard Sandiford  
            David Daney  
            David Daney  
        PR middle-end/29519
        PR middle-end/29519
        * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
        * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
2006-10-25  Daniel Berlin  
2006-10-25  Daniel Berlin  
        * tree-ssa-structalias.c (intra_create_variable_infos):
        * tree-ssa-structalias.c (intra_create_variable_infos):
          Don't recreate nonlocal_all if it already exists.
          Don't recreate nonlocal_all if it already exists.
2006-10-23  Ulrich Weigand  
2006-10-23  Ulrich Weigand  
        * config/s390/predicates.md ("bras_sym_operand"): Do not accept
        * config/s390/predicates.md ("bras_sym_operand"): Do not accept
        nonlocal function symbols if flag_pic.
        nonlocal function symbols if flag_pic.
2006-10-22  Richard Sandiford  
2006-10-22  Richard Sandiford  
        * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
        * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
        expressions.
        expressions.
2006-10-20  Mark Mitchell  
2006-10-20  Mark Mitchell  
        * DEV-PHASE: Mark as prerelease.
        * DEV-PHASE: Mark as prerelease.
2006-10-20  Daniel Berlin  
2006-10-20  Daniel Berlin  
        * tree.h (DECL_PTA_ARTIFICIAL): Remove.
        * tree.h (DECL_PTA_ARTIFICIAL): Remove.
        (tree_decl_with_vis): Remove artificial_pta_var flag.
        (tree_decl_with_vis): Remove artificial_pta_var flag.
        * tree-flow.h (referenced_var_check_and_insert): Expose.
        * tree-flow.h (referenced_var_check_and_insert): Expose.
        (nonlocal_all): New prototype.
        (nonlocal_all): New prototype.
        * tree-ssa-structalias.c (nonlocal_for_type): Remove.
        * tree-ssa-structalias.c (nonlocal_for_type): Remove.
        (nonlocal_all): Make global.
        (nonlocal_all): Make global.
        (nonlocal_lookup): Remove.
        (nonlocal_lookup): Remove.
        (nonlocal_insert): Ditto.
        (nonlocal_insert): Ditto.
        (create_nonlocal_var): Do not call nonlocal_insert.
        (create_nonlocal_var): Do not call nonlocal_insert.
        (get_nonlocal_id_for_type): Remove.
        (get_nonlocal_id_for_type): Remove.
        (find_global_initializers): Mark new vars we find for renaming.
        (find_global_initializers): Mark new vars we find for renaming.
        (intra_create_variable_infos): Only create one nonlocal.
        (intra_create_variable_infos): Only create one nonlocal.
        (expand_nonlocal_solutions): Remove.
        (expand_nonlocal_solutions): Remove.
        (compute_points_to_sets): Don't call it.
        (compute_points_to_sets): Don't call it.
        (ipa_pta_execute): Ditto.
        (ipa_pta_execute): Ditto.
        (init_alias_heapvars): Don't create nonlocal_for_type.
        (init_alias_heapvars): Don't create nonlocal_for_type.
        (delete_alias_heapvars): Don't remove it.
        (delete_alias_heapvars): Don't remove it.
        * tree-ssa-operands.c (access_can_touch_variable): Don't prune
        * tree-ssa-operands.c (access_can_touch_variable): Don't prune
        nonlocal_all.
        nonlocal_all.
2006-10-19  Brooks Moses  
2006-10-19  Brooks Moses  
        * doc/install.texi (Downloading GCC): Clarify mention of
        * doc/install.texi (Downloading GCC): Clarify mention of
        Fortran in the "full distribution" description.
        Fortran in the "full distribution" description.
2006-10-19  Daniel Berlin  
2006-10-19  Daniel Berlin  
        Fix PR tree-optimization/28778
        Fix PR tree-optimization/28778
        Fix PR tree-optimization/29156
        Fix PR tree-optimization/29156
        Fix PR tree-optimization/29415
        Fix PR tree-optimization/29415
        * tree.h (DECL_PTA_ARTIFICIAL): New macro.
        * tree.h (DECL_PTA_ARTIFICIAL): New macro.
        (tree_decl_with_vis): Add artificial_pta_var flag.
        (tree_decl_with_vis): Add artificial_pta_var flag.
        * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
        * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
        pushed into callers.
        pushed into callers.
        * tree-ssa-structalias.c (nonlocal_for_type): New variable.
        * tree-ssa-structalias.c (nonlocal_for_type): New variable.
        (nonlocal_all): Ditto.
        (nonlocal_all): Ditto.
        (struct variable_info): Add directly_dereferenced member.
        (struct variable_info): Add directly_dereferenced member.
        (var_escaped_vars): New variable.
        (var_escaped_vars): New variable.
        (escaped_vars_tree): Ditto.
        (escaped_vars_tree): Ditto.
        (escaped_vars_id): Ditto.
        (escaped_vars_id): Ditto.
        (nonlocal_vars_id): Ditto.
        (nonlocal_vars_id): Ditto.
        (new_var_info): Set directly_dereferenced.
        (new_var_info): Set directly_dereferenced.
        (graph_size): New variable
        (graph_size): New variable
        (build_constraint_graph): Use graph_size.
        (build_constraint_graph): Use graph_size.
        (solve_graph): Don't process constraints that cannot change the
        (solve_graph): Don't process constraints that cannot change the
        solution, don't try to propagate an empty solution to our
        solution, don't try to propagate an empty solution to our
        successors.
        successors.
        (process_constraint): Set directly_dereferenced.
        (process_constraint): Set directly_dereferenced.
        (could_have_pointers): New function.
        (could_have_pointers): New function.
        (get_constraint_for_component_ref): Don't process STRING_CST.
        (get_constraint_for_component_ref): Don't process STRING_CST.
        (nonlocal_lookup): New function.
        (nonlocal_lookup): New function.
        (nonlocal_insert): Ditto.
        (nonlocal_insert): Ditto.
        (create_nonlocal_var): Ditto.
        (create_nonlocal_var): Ditto.
        (get_nonlocal_id_for_type): Ditto.
        (get_nonlocal_id_for_type): Ditto.
        (get_constraint_for): Allow results vector to be empty in the case
        (get_constraint_for): Allow results vector to be empty in the case
        of string constants.
        of string constants.
        Handle results of calls properly.
        Handle results of calls properly.
        (update_alias_info): Update alias info stats on number and type of
        (update_alias_info): Update alias info stats on number and type of
        calls.
        calls.
        (find_func_aliases): Use could_have_pointers.
        (find_func_aliases): Use could_have_pointers.
        (make_constraint_from_escaped): Renamed from
        (make_constraint_from_escaped): Renamed from
        make_constraint_to_anything, and changed to make constraints from
        make_constraint_to_anything, and changed to make constraints from
        escape variable.
        escape variable.
        (make_constraint_to_escaped): New function.
        (make_constraint_to_escaped): New function.
        (find_global_initializers): Ditto.
        (find_global_initializers): Ditto.
        (create_variable_info_for): Make constraint from escaped to any
        (create_variable_info_for): Make constraint from escaped to any
        global variable, and from any global variable to the set of
        global variable, and from any global variable to the set of
        escaped vars.
        escaped vars.
        (intra_create_variable_infos): Deal with escaped instead of
        (intra_create_variable_infos): Deal with escaped instead of
        pointing to anything.
        pointing to anything.
        (set_uids_in_ptset): Do type pruning on directly dereferenced
        (set_uids_in_ptset): Do type pruning on directly dereferenced
        variables.
        variables.
        (find_what_p_points_to): Adjust call to set_uids_with_ptset.
        (find_what_p_points_to): Adjust call to set_uids_with_ptset.
        (init_base_vars): Fix comment, and initialize escaped_vars.
        (init_base_vars): Fix comment, and initialize escaped_vars.
        (need_to_solve): Removed.
        (need_to_solve): Removed.
        (find_escape_constraints): New function.
        (find_escape_constraints): New function.
        (expand_nonlocal_solutions): Ditto.
        (expand_nonlocal_solutions): Ditto.
        (compute_points_to_sets): Call find_escape_constraints and
        (compute_points_to_sets): Call find_escape_constraints and
        expand_nonlocal_solutions.
        expand_nonlocal_solutions.
        (delete_points_to_sets): Don't fall off the end of the graph.
        (delete_points_to_sets): Don't fall off the end of the graph.
        (init_alias_heapvars): Initialize nonlocal_for_type and
        (init_alias_heapvars): Initialize nonlocal_for_type and
        nonlocal_all.
        nonlocal_all.
        (delete_alias_heapvars): Free nonlocal_for_type and null out
        (delete_alias_heapvars): Free nonlocal_for_type and null out
        nonlocal_all.
        nonlocal_all.
2006-10-19  Eric Botcazou  
2006-10-19  Eric Botcazou  
        * fold-const.c (add_double): Rename to add_double_with_sign.
        * fold-const.c (add_double): Rename to add_double_with_sign.
        Add 'unsigned_p' parameter and take it into account for the overflow.
        Add 'unsigned_p' parameter and take it into account for the overflow.
        (mul_double): Rename to mul_double_with_sign.
        (mul_double): Rename to mul_double_with_sign.
        Add 'unsigned_p' parameter and take it into account for the overflow.
        Add 'unsigned_p' parameter and take it into account for the overflow.
        (fold_div_compare): Call add_double_with_sign instead of add_double
        (fold_div_compare): Call add_double_with_sign instead of add_double
        and mul_double_with_sign instead of mul_double, passing them the
        and mul_double_with_sign instead of mul_double, passing them the
        unsignedness of the type.
        unsignedness of the type.
        * tree.h (add_double): Macroize.
        * tree.h (add_double): Macroize.
        (add_double_with_sign): New prototype.
        (add_double_with_sign): New prototype.
        (mul_double): Macroize.
        (mul_double): Macroize.
        (mul_double_with_sign): New prototype.
        (mul_double_with_sign): New prototype.
2006-10-19  Chen Liqin  
2006-10-19  Chen Liqin  
        * config/score/crti.asm: New file.
        * config/score/crti.asm: New file.
        * config/score/crtn.asm: New file.
        * config/score/crtn.asm: New file.
        * config/score/elf.h: New file.
        * config/score/elf.h: New file.
        * config/score/mac.md: New file.
        * config/score/mac.md: New file.
        * config/score/misc.md: New file.
        * config/score/misc.md: New file.
        * config/score/mul-div.S: New file.
        * config/score/mul-div.S: New file.
        * config/score/predicates.md: New file.
        * config/score/predicates.md: New file.
        * config/score/score7.md: New file.
        * config/score/score7.md: New file.
        * config/score/score.c: New file.
        * config/score/score.c: New file.
        * config/score/score-conv.h: New file.
        * config/score/score-conv.h: New file.
        * config/score/score.h: New file.
        * config/score/score.h: New file.
        * config/score/score.md: New file.
        * config/score/score.md: New file.
        * config/score/score-mdaux.c: New file.
        * config/score/score-mdaux.c: New file.
        * config/score/score-mdaux.h: New file.
        * config/score/score-mdaux.h: New file.
        * config/score/score-modes.def: New file.
        * config/score/score-modes.def: New file.
        * config/score/score.opt: New file.
        * config/score/score.opt: New file.
        * config/score/score-protos.h: New file.
        * config/score/score-protos.h: New file.
        * config/score/score-version.h: New file.
        * config/score/score-version.h: New file.
        * config/score/t-score-elf: New file.
        * config/score/t-score-elf: New file.
        * config.gcc: Add score*-*-* configurations(Update before).
        * config.gcc: Add score*-*-* configurations(Update before).
        * doc/invoke.texi (Score Options): New section.
        * doc/invoke.texi (Score Options): New section.
        * doc/md.texi (Score family): New section to document constraints.
        * doc/md.texi (Score family): New section to document constraints.
2006-10-19  Nick Clifton  
2006-10-19  Nick Clifton  
        * config/arm/arm.c: Fix spelling typo.
        * config/arm/arm.c: Fix spelling typo.
2006-10-18  Tom Tromey  
2006-10-18  Tom Tromey  
        * doc/install.texi (Prerequisites): Mention automake 1.9.6.
        * doc/install.texi (Prerequisites): Mention automake 1.9.6.
2006-10-18  Jan Hubicka  
2006-10-18  Jan Hubicka  
        PR middle-end/29299
        PR middle-end/29299
        * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
        * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
        are used.
        are used.
2006-10-18  Marcin Dalecki  
2006-10-18  Marcin Dalecki  
        * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
        * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
        TSI_SAME_STMT, since that's the desired entity.
        TSI_SAME_STMT, since that's the desired entity.
2006-10-17  Wolfgang Gellerich  
2006-10-17  Wolfgang Gellerich  
        * config/s390/contraints.md: New file.
        * config/s390/contraints.md: New file.
        * config/s390/s390-protos.h (s390_mem_constraint,
        * config/s390/s390-protos.h (s390_mem_constraint,
        s390_O_constraint_str, s390_N_constraint_str,
        s390_O_constraint_str, s390_N_constraint_str,
        s390_float_const_zero_p): Function prototypes added.
        s390_float_const_zero_p): Function prototypes added.
        * config/s390/s390.c (s390_extra_constraint_str,
        * config/s390/s390.c (s390_extra_constraint_str,
        s390_const_double_ok_for_constraint_p,
        s390_const_double_ok_for_constraint_p,
        s390_const_ok_for_constraint_p): Functions removed.
        s390_const_ok_for_constraint_p): Functions removed.
        (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
        (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
        s390_float_const_zero_p): New functions.
        s390_float_const_zero_p): New functions.
        * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
        * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
        CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
        CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
        EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
        EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
        Macro definitions removed.
        Macro definitions removed.
        (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
        (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
        s390_extra_constraint_str): Functions removed.
        s390_extra_constraint_str): Functions removed.
2006-10-17  Andrew Pinsiki  
2006-10-17  Andrew Pinsiki  
            Richard Sandiford  
            Richard Sandiford  
        PR target/29413
        PR target/29413
        * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
        * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
        * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
        * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
2006-10-16  Geoffrey Keating  
2006-10-16  Geoffrey Keating  
        * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
        * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
        (DWARF2_FRAME_REG_OUT): Likewise.
        (DWARF2_FRAME_REG_OUT): Likewise.
        * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
        * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
        (DWARF2_FRAME_REG_OUT): Likewise.
        (DWARF2_FRAME_REG_OUT): Likewise.
2006-10-17  Paul Brook  
2006-10-17  Paul Brook  
        * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
        * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
2006-10-16  Brooks Moses  
2006-10-16  Brooks Moses  
        * doc/contrib.texi, doc/install.texi, doc/standards.texi:
        * doc/contrib.texi, doc/install.texi, doc/standards.texi:
        Standardize on "GNU Fortran" as the official name of the Fortran
        Standardize on "GNU Fortran" as the official name of the Fortran
        compiler.
        compiler.
2006-10-16  Mike Stump  
2006-10-16  Mike Stump  
        * doc/invoke.texi (Darwin Options): Document -mkernel.
        * doc/invoke.texi (Darwin Options): Document -mkernel.
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
        -mkernel support.
        -mkernel support.
        (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
        (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
        SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
        SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
        (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
        (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
        (OS_MISSING_ALTIVEC): Add.
        (OS_MISSING_ALTIVEC): Add.
        * config/i386/i386.c (override_options): Add
        * config/i386/i386.c (override_options): Add
        SUBSUBTARGET_OVERRIDE_OPTIONS callout.
        SUBSUBTARGET_OVERRIDE_OPTIONS callout.
        * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
        * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
        -mkernel, -static or -mdynamic-no-pic is given.
        -mkernel, -static or -mdynamic-no-pic is given.
        (C_COMMON_OVERRIDE_OPTIONS): Add.
        (C_COMMON_OVERRIDE_OPTIONS): Add.
        * config/darwin.opt (fapple-kext): Add.
        * config/darwin.opt (fapple-kext): Add.
        (mkernel): Add.
        (mkernel): Add.
        * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
        * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
        -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
        -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
        -mkernel support.
        -mkernel support.
        (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
        (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
        (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
        (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
        (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
        (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
        (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
        (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
        (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
        (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
        (flag_mkernel): Add.
        (flag_mkernel): Add.
        (flag_apple_kext): Add.
        (flag_apple_kext): Add.
        (TARGET_KEXTABI): Add.
        (TARGET_KEXTABI): Add.
        * config/darwin.c (darwin_handle_kext_attribute): Add.
        * config/darwin.c (darwin_handle_kext_attribute): Add.
        (DARWIN_VTABLE_P): Add.
        (DARWIN_VTABLE_P): Add.
        (darwin_binds_local_p): Add partial support for rebinding vtables
        (darwin_binds_local_p): Add partial support for rebinding vtables
        in kexts.
        in kexts.
        (darwin_kextabi_p): Add.
        (darwin_kextabi_p): Add.
        (darwin_override_options): Add.
        (darwin_override_options): Add.
        * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
        * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
        (darwin_kextabi_p): Add.
        (darwin_kextabi_p): Add.
        (darwin_override_options): Add.
        (darwin_override_options): Add.
        * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
        * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
        __DYNAMIC__ and __STATIC__ here.
        __DYNAMIC__ and __STATIC__ here.
2006-10-16  Brooks Moses  
2006-10-16  Brooks Moses  
        * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
        * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
        Added mention of "make pdf" target, and Texinfo requirements for
        Added mention of "make pdf" target, and Texinfo requirements for
        same.
        same.
2006-10-16  DJ Delorie  
2006-10-16  DJ Delorie  
        * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
        * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
        into the GOT in case we need a subreg of the address.
        into the GOT in case we need a subreg of the address.
2006-10-16  Richard Guenther  
2006-10-16  Richard Guenther  
        PR target/25519
        PR target/25519
        * doc/extend.texi (X86 Built-in Functions): Fix typos in
        * doc/extend.texi (X86 Built-in Functions): Fix typos in
        SSE builtin documentation.  Document SSE2 builtins.
        SSE builtin documentation.  Document SSE2 builtins.
2006-10-15  John David Anglin  
2006-10-15  John David Anglin  
        * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
        * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
        symbol in the output file for non-shared links when -nostdlib or
        symbol in the output file for non-shared links when -nostdlib or
        -nodefaultlibs isn't specified.
        -nodefaultlibs isn't specified.
        * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
        * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
        posix thread support.
        posix thread support.
2006-10-15  Jan Hubicka  
2006-10-15  Jan Hubicka  
        PR middle-end/29241
        PR middle-end/29241
        * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
        * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
        declared always_inline even when not inlining.
        declared always_inline even when not inlining.
2006-10-15  Eric Botcazou  
2006-10-15  Eric Botcazou  
            John David Anglin  
            John David Anglin  
            Andrew Pinski  
            Andrew Pinski  
        PR middle-end/29111
        PR middle-end/29111
        * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
        * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
2006-10-15  Jan Hubicka  
2006-10-15  Jan Hubicka  
            Richard Guenther  
            Richard Guenther  
        PR middle-end/29299
        PR middle-end/29299
        * cgraphunit.c (cgraph_finalize_compilation_unit): Call
        * cgraphunit.c (cgraph_finalize_compilation_unit): Call
        process_function_and_variable_attributes on all variables, including
        process_function_and_variable_attributes on all variables, including
        those discovered during cgraph construction phase.
        those discovered during cgraph construction phase.
2006-10-15  Bernhard Fischer  
2006-10-15  Bernhard Fischer  
        * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
        * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
2006-10-14  Uros Bizjak  
2006-10-14  Uros Bizjak  
        * config/i386/athlon.md (athlon_fist): Add fisttp.
        * config/i386/athlon.md (athlon_fist): Add fisttp.
2006-10-13  David Edelsohn  
2006-10-13  David Edelsohn  
            Ian Lance Taylor  
            Ian Lance Taylor  
        PR middle-end/29250
        PR middle-end/29250
        * expr.c (expand_expr_real_1) 
        * expr.c (expand_expr_real_1) 
        CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
        CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
        recursing.
        recursing.
2006-10-14  Kazu Hirata  
2006-10-14  Kazu Hirata  
        * config/score/score.c, config/score/score.h: Fix comment
        * config/score/score.c, config/score/score.h: Fix comment
        typos.
        typos.
2006-10-13  Kaveh R. Ghazi  
2006-10-13  Kaveh R. Ghazi  
        PR bootstrap/29402
        PR bootstrap/29402
        * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
        * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
        shell pipeline.
        shell pipeline.
2006-10-13  Eric Christopher  
2006-10-13  Eric Christopher  
        * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
        * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2006-10-13  Carlos O'Donell  
2006-10-13  Carlos O'Donell  
        Revert this change:
        Revert this change:
        2006-10-13  Carlos O'Donell  
        2006-10-13  Carlos O'Donell  
        * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
        * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
        alignment supported by 32-bit ELF.
        alignment supported by 32-bit ELF.
2006-10-13  Eric Christopher  
2006-10-13  Eric Christopher  
        * config/darwin.c (darwin_emit_unwind_label): Strip
        * config/darwin.c (darwin_emit_unwind_label): Strip
        name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
        name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
2006-10-13  Richard Guenther  
2006-10-13  Richard Guenther  
        PR tree-optimization/29446
        PR tree-optimization/29446
        * tree-vrp.c (fix_equivalence_set): Remove.
        * tree-vrp.c (fix_equivalence_set): Remove.
        (extract_range_from_assert): Do not call fix_equivalence_set.
        (extract_range_from_assert): Do not call fix_equivalence_set.
        (debug_value_range): Print a newline.
        (debug_value_range): Print a newline.
        (compare_name_with_value): For equivalence sets with
        (compare_name_with_value): For equivalence sets with
        inconsistent value ranges conservatively bail out.
        inconsistent value ranges conservatively bail out.
        (compare_names): Likewise.
        (compare_names): Likewise.
2006-10-13  David Edelsohn  
2006-10-13  David Edelsohn  
        * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
        * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
        and MPFR for gfortran.
        and MPFR for gfortran.
2006-10-13  Carlos O'Donell  
2006-10-13  Carlos O'Donell  
        * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
        * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
        alignment supported by 32-bit ELF.
        alignment supported by 32-bit ELF.
2006-10-13  Paolo Bonzini  
2006-10-13  Paolo Bonzini  
        PR c/29092
        PR c/29092
        * c-typeck.c (digest_init): Always allow initializing vectors
        * c-typeck.c (digest_init): Always allow initializing vectors
        that have static storage duration with compound literals.
        that have static storage duration with compound literals.
        * tree.c (build_type_attribute_qual_variant): New, based on
        * tree.c (build_type_attribute_qual_variant): New, based on
        build_type_attribute_variant.
        build_type_attribute_variant.
        (build_type_attribute_variant): Rewrite using the former.
        (build_type_attribute_variant): Rewrite using the former.
        (make_vector_type): Use build_type_attribute_qual_variant to build
        (make_vector_type): Use build_type_attribute_qual_variant to build
        type variants.  Use type_hash_canon on the others.
        type variants.  Use type_hash_canon on the others.
2006-10-13  Daniel Berlin 
2006-10-13  Daniel Berlin 
            Ramana Radhakrishnan  
            Ramana Radhakrishnan  
        * tree-flow-inline.h (zero_ssa_operands): Fix comment.
        * tree-flow-inline.h (zero_ssa_operands): Fix comment.
2006-10-12  Jan Hubicka  
2006-10-12  Jan Hubicka  
        PR c/28419
        PR c/28419
        * c-decl.c (c_make_fname_decl): Do not segfault in case where
        * c-decl.c (c_make_fname_decl): Do not segfault in case where
        current_function_decl is set but current_function_scope is not.
        current_function_decl is set but current_function_scope is not.
2006-10-12  Jie Zhang  
2006-10-12  Jie Zhang  
        * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
        * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
        emit_insn to emit eh_return_internal instruction.
        emit_insn to emit eh_return_internal instruction.
        (eh_return_internal): Explicitly set pc.
        (eh_return_internal): Explicitly set pc.
2006-10-11  Richard Guenther  
2006-10-11  Richard Guenther  
        PR tree-optimization/28230
        PR tree-optimization/28230
        * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
        * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
        to the correct place.
        to the correct place.
2006-10-11  Richard Guenther  
2006-10-11  Richard Guenther  
        PR inline-asm/29119
        PR inline-asm/29119
        * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
        * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
        addressable.
        addressable.
2006-10-10  Brooks Moses  
2006-10-10  Brooks Moses  
        * configure.ac: Added pdf to "Make-hooks"
        * configure.ac: Added pdf to "Make-hooks"
        * Makefile.in: Added TEXI2PDF definition, and various pdf-file
        * Makefile.in: Added TEXI2PDF definition, and various pdf-file
        targets and *.pdf file patterns in cleanup targets.
        targets and *.pdf file patterns in cleanup targets.
        * configure: Regenerated.
        * configure: Regenerated.
2006-10-10  Anatoly Sokolov 
2006-10-10  Anatoly Sokolov 
        * config/avr/predicates.md: New file.
        * config/avr/predicates.md: New file.
        * config/avr/avr.md: Include it.
        * config/avr/avr.md: Include it.
        (REG_SP): New constant.
        (REG_SP): New constant.
        (peepholes): Use predicates.
        (peepholes): Use predicates.
        (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
        (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
        difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
        difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
        sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
        sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
2006-10-10  Adam Nemet  
2006-10-10  Adam Nemet  
        * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
        * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
        avoid alias set 0.
        avoid alias set 0.
2006-10-10  Jakub Jelinek  
2006-10-10  Jakub Jelinek  
        PR middle-end/29272
        PR middle-end/29272
        * builtins.c (var_decl_component_p): New function.
        * builtins.c (var_decl_component_p): New function.
        (fold_builtin_memset, fold_builtin_memory_op): Restrict
        (fold_builtin_memset, fold_builtin_memory_op): Restrict
        single entry optimization to variables and components thereof.
        single entry optimization to variables and components thereof.
2006-10-10  Richard Guenther  
2006-10-10  Richard Guenther  
        PR rtl-optimization/29323
        PR rtl-optimization/29323
        * except.c (set_nothrow_function_flags): For functions
        * except.c (set_nothrow_function_flags): For functions
        that do not bind local bail out early.
        that do not bind local bail out early.
2006-10-10  Ben Elliston  
2006-10-10  Ben Elliston  
        * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
        * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
        -mdlmzb option.
        -mdlmzb option.
2006-10-09  Richard Henderson  
2006-10-09  Richard Henderson  
        Revert emutls patch.
        Revert emutls patch.
2006-10-09  Richard Guenther  
2006-10-09  Richard Guenther  
        PR middle-end/29254
        PR middle-end/29254
        * cgraphunit.c (verify_cgraph_node): Bail out on earlier
        * cgraphunit.c (verify_cgraph_node): Bail out on earlier
        errors.
        errors.
2006-10-09  Steve Ellcey  
2006-10-09  Steve Ellcey  
        PR target/27880
        PR target/27880
        * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
        * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
        * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
        * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
        * configure: Regenerate.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config.in: Regenerate.
2006-10-09  Aldy Hernandez  
2006-10-09  Aldy Hernandez  
        * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
        * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2006-10-08  Richard Sandiford  
2006-10-08  Richard Sandiford  
        * config/mips/mips.c (mips_legitimize_tls_address): Implement
        * config/mips/mips.c (mips_legitimize_tls_address): Implement
        all TLS models in the same way as local exec if !TARGET_ABICALLS.
        all TLS models in the same way as local exec if !TARGET_ABICALLS.
        Remove stray newline.
        Remove stray newline.
2006-10-08  Richard Sandiford  
2006-10-08  Richard Sandiford  
        * config/mips/mips.c (mips_classify_symbol): Do not return
        * config/mips/mips.c (mips_classify_symbol): Do not return
        SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
        SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
        (mips_in_small_data_p): Tweak comments.
        (mips_in_small_data_p): Tweak comments.
2006-10-08  Richard Sandiford  
2006-10-08  Richard Sandiford  
        * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
        * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2006-10-07  Kazu Hirata  
2006-10-07  Kazu Hirata  
        * gimplify.c, sched-int.h: Fix comment typos.
        * gimplify.c, sched-int.h: Fix comment typos.
        * sched-int.h: Fix comment typos.
        * sched-int.h: Fix comment typos.
2006-10-06  Maxim Kuvyrkov  
2006-10-06  Maxim Kuvyrkov  
        * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
        * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
        New macros.
        New macros.
        * sched-ebb.c (begin_schedule_ready): Use them.
        * sched-ebb.c (begin_schedule_ready): Use them.
        * haifa-sched.c (schedule_insn, move_insn, try_ready,
        * haifa-sched.c (schedule_insn, move_insn, try_ready,
        add_to_speculative_block, create_check_block_twin, speculate_insn,
        add_to_speculative_block, create_check_block_twin, speculate_insn,
        fix_jump_move, move_block_after_check): Ditto.
        fix_jump_move, move_block_after_check): Ditto.
        * sched-rgn.c (new_ready): Ditto.
        * sched-rgn.c (new_ready): Ditto.
2006-10-06  Maxim Kuvyrkov  
2006-10-06  Maxim Kuvyrkov  
        PR rtl-optimization/29128
        PR rtl-optimization/29128
        * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
        * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
        * sched-ebb.c (advance_target_bb): Use it to fix condition to
        * sched-ebb.c (advance_target_bb): Use it to fix condition to
        allow interblock movement of speculation checks.
        allow interblock movement of speculation checks.
2006-10-06  Zdenek Dvorak 
2006-10-06  Zdenek Dvorak 
        PR middle-end/29256
        PR middle-end/29256
        * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
        * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
        casted to integer type.
        casted to integer type.
        (get_address_cost): Decrease cost of [symbol + index] addressing modes
        (get_address_cost): Decrease cost of [symbol + index] addressing modes
        if they are significantly more expensive than [reg + index] ones.
        if they are significantly more expensive than [reg + index] ones.
2006-10-06  Jakub Jelinek  
2006-10-06  Jakub Jelinek  
        PR tree-optimization/29330
        PR tree-optimization/29330
        * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
        * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
        (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
        (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
        on newly allocated ddrs.
        on newly allocated ddrs.
        (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
        (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
        to VEC (loop_p, heap) pointer.
        to VEC (loop_p, heap) pointer.
        (compute_data_dependences_for_loop): Adjust caller.
        (compute_data_dependences_for_loop): Adjust caller.
        (free_dependence_relations): Free DDR_LOOP_NEST.
        (free_dependence_relations): Free DDR_LOOP_NEST.
        * tree-loop-linear.c (linear_transform_loops): Don't forget to
        * tree-loop-linear.c (linear_transform_loops): Don't forget to
        free DEPENDENCE_RELATIONS and DATAREFS.
        free DEPENDENCE_RELATIONS and DATAREFS.
        PR target/28924
        PR target/28924
        * builtins.c (expand_builtin_sync_operation,
        * builtins.c (expand_builtin_sync_operation,
        expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
        expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
        Use convert_to_mode to handle promoted arguments.
        Use convert_to_mode to handle promoted arguments.
2006-10-06  J"orn Rennecke  
2006-10-06  J"orn Rennecke  
        * print-tree.c (print_node_brief, print_node): Print sign of Inf.
        * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2006-10-06  J"orn Rennecke  
2006-10-06  J"orn Rennecke  
        * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
        * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2006-10-05  Uros Bizjak  
2006-10-05  Uros Bizjak  
        * config/i386/sync.md ("sync_add", "sync_sub",
        * config/i386/sync.md ("sync_add", "sync_sub",
        "sync_ior", "sync_and", "sync_xor"):
        "sync_ior", "sync_and", "sync_xor"):
        Use  instead of "r" as operand 1 constraint.
        Use  instead of "r" as operand 1 constraint.
2006-10-06  Olivier Hainque  
2006-10-06  Olivier Hainque  
        * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
        * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
        Don't recurse on the pointed-to type.
        Don't recurse on the pointed-to type.
        * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
        * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
        DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
        DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
        types with components of variable size.
        types with components of variable size.
2006-10-06  Danny Smith  
2006-10-06  Danny Smith  
        config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
        config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2006-10-06  Jakub Jelinek  
2006-10-06  Jakub Jelinek  
        PR tree-optimization/29290
        PR tree-optimization/29290
        * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
        * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
        multiple exits.
        multiple exits.
        PR target/29198
        PR target/29198
        * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
        * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
        * config/i386/predicates.md (local_symbolic_operand): Likewise.
        * config/i386/predicates.md (local_symbolic_operand): Likewise.
        PR c/29091
        PR c/29091
        * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
        * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
        the number of vector elements fill the rest with zeros.
        the number of vector elements fill the rest with zeros.
2006-10-05  Richard Sandiford  
2006-10-05  Richard Sandiford  
        * config/mips/mips.c (mips_pass_by_reference): Do not return false
        * config/mips/mips.c (mips_pass_by_reference): Do not return false
        for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
        for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
        instead.
        instead.
2006-10-05  Bernd Schmidt  
2006-10-05  Bernd Schmidt  
        * config/bfin/bfin.md (subsi3): Lose expander, change previously
        * config/bfin/bfin.md (subsi3): Lose expander, change previously
        unnamed pattern into subsi3.  Use correct constraints/predicates.
        unnamed pattern into subsi3.  Use correct constraints/predicates.
        * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
        * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
        * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
        * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2006-10-05  Ira Rosen  
2006-10-05  Ira Rosen  
        * doc/loop.texi: Add data references analysis description.
        * doc/loop.texi: Add data references analysis description.
2006-10-04  Brooks Moses  
2006-10-04  Brooks Moses  
        * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
        * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2006-10-04  Richard Henderson  
2006-10-04  Richard Henderson  
            Jakub Jelinek  
            Jakub Jelinek  
        * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
        * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
        * builtin-types.def (BT_WORD): Make unsigned.
        * builtin-types.def (BT_WORD): Make unsigned.
        (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
        (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
        * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
        * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
        (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
        (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
        * c-decl.c (grokdeclarator): Don't error if !have_tls.
        * c-decl.c (grokdeclarator): Don't error if !have_tls.
        * c-parser.c (c_parser_omp_threadprivate): Likewise.
        * c-parser.c (c_parser_omp_threadprivate): Likewise.
        * cgraph.c (decide_is_variable_needed): Look at force_output.
        * cgraph.c (decide_is_variable_needed): Look at force_output.
        Recurse for emulated tls.
        Recurse for emulated tls.
        * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
        * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
        checks redundant with decide_is_variable_needed.
        checks redundant with decide_is_variable_needed.
        (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
        (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
        emulated tls.
        emulated tls.
        * expr.c (emutls_var_address): New.
        * expr.c (emutls_var_address): New.
        (expand_expr_real_1): Expand emulated tls.
        (expand_expr_real_1): Expand emulated tls.
        (expand_expr_addr_expr_1): Likewise.
        (expand_expr_addr_expr_1): Likewise.
        * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
        * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
        * output.h (emutls_finish): Declare.
        * output.h (emutls_finish): Declare.
        * toplev.c (compile_file): Call it.
        * toplev.c (compile_file): Call it.
        * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
        * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
        address before wrapping in CONST.
        address before wrapping in CONST.
        * varasm.c (emutls_htab, emutls_object_type): New.
        * varasm.c (emutls_htab, emutls_object_type): New.
        (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
        (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
        (get_emutls_object_name, get_emutls_object_type): New.
        (get_emutls_object_name, get_emutls_object_type): New.
        (get_emutls_init_templ_addr, emutls_decl): New.
        (get_emutls_init_templ_addr, emutls_decl): New.
        (emutls_common_1, emutls_finish): New.
        (emutls_common_1, emutls_finish): New.
        (assemble_variable): When emulating tls, swap decls; generate
        (assemble_variable): When emulating tls, swap decls; generate
        constructor for the emutls objects.
        constructor for the emutls objects.
        (do_assemble_alias): When emulating tls, swap decl and target name.
        (do_assemble_alias): When emulating tls, swap decl and target name.
        (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
        (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
        for emulated tls.
        for emulated tls.
        * emutls.c: New file.
        * emutls.c: New file.
        * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
        * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
        tls_object for real tls.
        tls_object for real tls.
2006-10-04  Zack Weinberg  
2006-10-04  Zack Weinberg  
        Fix bug in constraint-check generator, reported by Rask Ingemann
        Fix bug in constraint-check generator, reported by Rask Ingemann
        Lambertsen:
        Lambertsen:
        * genpreds.c (add_constraint): Don't remove anything from the
        * genpreds.c (add_constraint): Don't remove anything from the
        expression here.
        expression here.
        (write_tm_constrs_h): Detect whether "op" argument is used, and
        (write_tm_constrs_h): Detect whether "op" argument is used, and
        mark it ARG_UNUSED if it isn't.
        mark it ARG_UNUSED if it isn't.
        (write_insn_const_int_ok_for_constraint): Skip the part of the
        (write_insn_const_int_ok_for_constraint): Skip the part of the
        expression that would test whether "op" (which is not available
        expression that would test whether "op" (which is not available
        here) is a CONST_INT.
        here) is a CONST_INT.
2006-10-04  Ryan Mansfield  
2006-10-04  Ryan Mansfield  
        PR c++/28448
        PR c++/28448
        * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
        * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2006-10-03  Geoffrey Keating  
2006-10-03  Geoffrey Keating  
        * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
        * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
        current Leopard versions.
        current Leopard versions.
        * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
        * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2006-10-03  Kazu Hirata  
2006-10-03  Kazu Hirata  
        * doc/install.texi: Fix typos.
        * doc/install.texi: Fix typos.
2006-10-03  Eric Botcazou  
2006-10-03  Eric Botcazou  
        * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
        * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
        * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
        * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
        * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
        * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2006-10-02  Jack Howarth  
2006-10-02  Jack Howarth  
        * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
        * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
        arg to be struct mach_header_64* instead.
        arg to be struct mach_header_64* instead.
2006-10-02  Jakub Jelinek  
2006-10-02  Jakub Jelinek  
        PR c/29154
        PR c/29154
        * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
        * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
        side effects after the outer expression's post side effects.
        side effects after the outer expression's post side effects.
2006-10-01  Sandra Loosemore  
2006-10-01  Sandra Loosemore  
        * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
        * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
        comments to reflect actual behavior and relationship between
        comments to reflect actual behavior and relationship between
        DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
        DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
        * doc/c-tree.texi (Working with declarations): Fix documentation
        * doc/c-tree.texi (Working with declarations): Fix documentation
        of FIELD_DECL likewise.
        of FIELD_DECL likewise.
2006-10-01  Ryan Mansfield  
2006-10-01  Ryan Mansfield  
        PR c/20533
        PR c/20533
        * doc/extend.texi: Add used variable attribute description.
        * doc/extend.texi: Add used variable attribute description.
2006-09-30  Joseph S. Myers  
2006-09-30  Joseph S. Myers  
        PR c/24010
        PR c/24010
        * c.opt (Woverride-init): New.
        * c.opt (Woverride-init): New.
        * c-opts.c (c_common_post_options): Default warn_override_init to
        * c-opts.c (c_common_post_options): Default warn_override_init to
        extra_warnings.
        extra_warnings.
        * c-typeck.c (add_pending_init, output_init_element): Warn for
        * c-typeck.c (add_pending_init, output_init_element): Warn for
        overriding initializers without side effects.
        overriding initializers without side effects.
        * doc/invoke.texi (-Woverride-init): Document.
        * doc/invoke.texi (-Woverride-init): Document.
        (-Wextra): Update.
        (-Wextra): Update.
2006-09-30  Eric Botcazou  
2006-09-30  Eric Botcazou  
        PR rtl-optimization/28096
        PR rtl-optimization/28096
        * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
        * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
        assignment has already been used as a destination earlier in the block.
        assignment has already been used as a destination earlier in the block.
2006-09-29  Eric Botcazou  
2006-09-29  Eric Botcazou  
        * builtins.c (expand_builtin_setjmp): Delete.
        * builtins.c (expand_builtin_setjmp): Delete.
        (expand_builtin) : Mark as unreachable.
        (expand_builtin) : Mark as unreachable.
        : New case.
        : New case.
        : Likewise.
        : Likewise.
        : Likewise.
        : Likewise.
        * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
        * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
        (BUILT_IN_SETJMP_DISPATCHER): Likewise.
        (BUILT_IN_SETJMP_DISPATCHER): Likewise.
        (BUILT_IN_SETJMP_RECEIVER): Likewise.
        (BUILT_IN_SETJMP_RECEIVER): Likewise.
        * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
        * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
        (lower_function_body): Initialize it to false.  If it is set to true
        (lower_function_body): Initialize it to false.  If it is set to true
        at the end of the processing, emit the setjmp dispatcher.
        at the end of the processing, emit the setjmp dispatcher.
        (lower_stmt) : Invoke lower_builtin_setjmp if the callee
        (lower_stmt) : Invoke lower_builtin_setjmp if the callee
        is __builtin_setjmp and set calls_builtin_setjmp to true as well.
        is __builtin_setjmp and set calls_builtin_setjmp to true as well.
        : Fall through to above case if there is a CALL_EXPR
        : Fall through to above case if there is a CALL_EXPR
        on the rhs of the assignment.
        on the rhs of the assignment.
        (lower_builtin_setjmp): New function.
        (lower_builtin_setjmp): New function.
        * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
        * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
        BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
        BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
        * tree-cfg.c (make_exit_edges) : Use specific predicate
        * tree-cfg.c (make_exit_edges) : Use specific predicate
        to detect calls that can go to non-local labels.  Use specific
        to detect calls that can go to non-local labels.  Use specific
        helper to create the abnormal edges associated with them.
        helper to create the abnormal edges associated with them.
        : Likewise.
        : Likewise.
        (make_abnormal_goto_edges): New function extracted from...
        (make_abnormal_goto_edges): New function extracted from...
        (make_goto_expr_edges): ...here.  Call it for computed gotos.
        (make_goto_expr_edges): ...here.  Call it for computed gotos.
        (simple_goto_p): Minor tweak.
        (simple_goto_p): Minor tweak.
        (tree_can_make_abnormal_goto): New predicate.
        (tree_can_make_abnormal_goto): New predicate.
        (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
        (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
        (tree_purge_dead_abnormal_call_edges): New function.
        (tree_purge_dead_abnormal_call_edges): New function.
        * tree-flow.h (tree_can_make_abnormal_goto): Declare.
        * tree-flow.h (tree_can_make_abnormal_goto): Declare.
        (tree_purge_dead_abnormal_call_edges): Likewise.
        (tree_purge_dead_abnormal_call_edges): Likewise.
        (make_abnormal_goto_edges): Likewise.
        (make_abnormal_goto_edges): Likewise.
        * tree-inline.c (expand_call_inline): Simplify statement frobbing.
        * tree-inline.c (expand_call_inline): Simplify statement frobbing.
        Purge all dead abnormal edges if the call was in the last statement.
        Purge all dead abnormal edges if the call was in the last statement.
        * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
        * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
        (execute_fixup_cfg): If there are non-local labels in the function,
        (execute_fixup_cfg): If there are non-local labels in the function,
        scan the basic blocks and split them at calls that can go to non-local
        scan the basic blocks and split them at calls that can go to non-local
        labels or add missing abnormal call edges.  Write down the CFG in the
        labels or add missing abnormal call edges.  Write down the CFG in the
        dump file.
        dump file.
        (pass_fixup_cfg): Remove TODO_dump_func flag.
        (pass_fixup_cfg): Remove TODO_dump_func flag.
        * unwind-sjlj.c: Poison setjmp.
        * unwind-sjlj.c: Poison setjmp.
        * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
        * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
        * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
        * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
        (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
        (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
        (DONT_USE_BUILTIN_SETJMP): Document it.
        (DONT_USE_BUILTIN_SETJMP): Document it.
2006-09-28  Geoffrey Keating  
2006-09-28  Geoffrey Keating  
        PR target/28617
        PR target/28617
        * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
        * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
        to 1 when __ppc64__ is defined.
        to 1 when __ppc64__ is defined.
        * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
        * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
        darwin-64.c.
        darwin-64.c.
        * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
        * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2006-09-28  Steve Ellcey  
2006-09-28  Steve Ellcey  
        * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
        * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
        * config/ia64/unwind-hpux.c: Delete.
        * config/ia64/unwind-hpux.c: Delete.
2006-09-28  Eric Botcazou  
2006-09-28  Eric Botcazou  
        * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
        * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
        on the element before gimplifying it, instead of punting if it is of
        on the element before gimplifying it, instead of punting if it is of
        variable size.
        variable size.
2006-09-28  Zdenek Dvorak 
2006-09-28  Zdenek Dvorak 
        * doc/loop.texi: New file.
        * doc/loop.texi: New file.
        * doc/gccint.texi: Reference loop.texi.
        * doc/gccint.texi: Reference loop.texi.
        * Makefile.in (loop.texi): Add.
        * Makefile.in (loop.texi): Add.
2006-09-27  Geoffrey Keating  
2006-09-27  Geoffrey Keating  
        * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
        * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
        __sysctl.
        __sysctl.
        * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
        * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
        * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
        * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2006-09-28  Kaz Kojima  
2006-09-28  Kaz Kojima  
        * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
        * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2006-09-27  Steven G. Kargl  
2006-09-27  Steven G. Kargl  
        * doc/install.texi: Document required versions of GMP and MPFR.
        * doc/install.texi: Document required versions of GMP and MPFR.
2006-09-27  Paul Brook  
2006-09-27  Paul Brook  
        PR target/29230
        PR target/29230
        * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
        * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2006-09-27  Richard Sandiford  
2006-09-27  Richard Sandiford  
        * reload1.c (alter_reg): Require the alignment of the stack slot to
        * reload1.c (alter_reg): Require the alignment of the stack slot to
        be at least reg_max_ref_width bytes.
        be at least reg_max_ref_width bytes.
        (scan_paradoxical_subregs): Record the largest width in
        (scan_paradoxical_subregs): Record the largest width in
        reg_max_ref_width.
        reg_max_ref_width.
2006-09-26  Jakub Jelinek  
2006-09-26  Jakub Jelinek  
        PR middle-end/25261
        PR middle-end/25261
        PR middle-end/28790
        PR middle-end/28790
        * tree-nested.c (struct nesting_info): Added static_chain_added.
        * tree-nested.c (struct nesting_info): Added static_chain_added.
        (convert_call_expr): Set static_chain_added when adding static
        (convert_call_expr): Set static_chain_added when adding static
        chain.  Handle OMP_PARALLEL and OMP_SECTION.
        chain.  Handle OMP_PARALLEL and OMP_SECTION.
2006-09-25  Matthias Klose  
2006-09-25  Matthias Klose  
        * doc/invoke.texi: Add missing full stop.
        * doc/invoke.texi: Add missing full stop.
2006-09-25  Richard Henderson  
2006-09-25  Richard Henderson  
        * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
        * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
        before cgraph_function_flags_ready.
        before cgraph_function_flags_ready.
2006-09-24  Zdenek Dvorak 
2006-09-24  Zdenek Dvorak 
            Adam Nemet  
            Adam Nemet  
        * tree-ssa-loop-ivopts.c (aff_combination_convert,
        * tree-ssa-loop-ivopts.c (aff_combination_convert,
        determine_common_wider_type): New functions.
        determine_common_wider_type): New functions.
        (get_computation_aff): Use them to simplify arithmetic between
        (get_computation_aff): Use them to simplify arithmetic between
        UBASE and CBASE if they are shortened from the same type.
        UBASE and CBASE if they are shortened from the same type.
2006-09-24  Kazu Hirata  
2006-09-24  Kazu Hirata  
        PR target/28911
        PR target/28911
        * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
        * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
        -2147483647 - 1 instead of 0x80000000.
        -2147483647 - 1 instead of 0x80000000.
2006-09-23  Revital1 Eres  
2006-09-23  Revital1 Eres  
        * flags.h (HONOR_NANS): Fix typo in comment.
        * flags.h (HONOR_NANS): Fix typo in comment.
2006-09-23  Uros Bizjak 
2006-09-23  Uros Bizjak 
        * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
        * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2006-09-23  Jakub Jelinek  
2006-09-23  Jakub Jelinek  
        PR c/28706
        PR c/28706
        PR c/28712
        PR c/28712
        * tree.c (merge_attributes, attribute_list_contained): If both
        * tree.c (merge_attributes, attribute_list_contained): If both
        TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
        TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
        simple_cst_equal.
        simple_cst_equal.
        * c-typeck.c (comptypes_internal): Don't consider aggregates
        * c-typeck.c (comptypes_internal): Don't consider aggregates
        in different TUs as compatible if there one set of attributes is
        in different TUs as compatible if there one set of attributes is
        not a subset of the other type's attributes.
        not a subset of the other type's attributes.
        (composite_type): Try harder not to create a new aggregate type.
        (composite_type): Try harder not to create a new aggregate type.
2006-09-22  Geoffrey Keating  
2006-09-22  Geoffrey Keating  
        * config/i386/driver-i386.c: Always define host_detect_local_cpu.
        * config/i386/driver-i386.c: Always define host_detect_local_cpu.
        * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
        * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
        or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
        or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
        (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
        (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
        than replicating condition above.
        than replicating condition above.
        * config.host (i[34567]86-*-*): Always use driver-i386.o.
        * config.host (i[34567]86-*-*): Always use driver-i386.o.
        * config/darwin.h (LINK_SYSROOT_SPEC): New.
        * config/darwin.h (LINK_SYSROOT_SPEC): New.
        (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
        (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
        the linker by default.
        the linker by default.
2006-09-22  Mike Stump  
2006-09-22  Mike Stump  
        * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
        * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
        code.
        code.
2006-09-22  Richard Guenther  
2006-09-22  Richard Guenther  
        PR middle-end/28964
        PR middle-end/28964
        * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
        * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
        sort of stack variables stable.
        sort of stack variables stable.
2006-09-22  Peter Bergner 
2006-09-22  Peter Bergner 
        PR middle-end/28690
        PR middle-end/28690
        * explow.c (force_reg): Set REG_POINTER flag according to
        * explow.c (force_reg): Set REG_POINTER flag according to
        MEM_POINTER flag.
        MEM_POINTER flag.
2006-09-22  Zdenek Dvorak 
2006-09-22  Zdenek Dvorak 
        PR tree-optimization/28888
        PR tree-optimization/28888
        * tree-if-conv.c (combine_blocks): Rewritten.
        * tree-if-conv.c (combine_blocks): Rewritten.
        * tree-cfg.c (tree_verify_flow_info): Check that edges with
        * tree-cfg.c (tree_verify_flow_info): Check that edges with
        EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
        EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2006-09-22  Jakub Jelinek  
2006-09-22  Jakub Jelinek  
        * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
        * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
        needed.
        needed.
2006-09-21  Richard Sandiford  
2006-09-21  Richard Sandiford  
        * varasm.c (copy_constant): Fix reversed gcc_assert check.
        * varasm.c (copy_constant): Fix reversed gcc_assert check.
2006-09-21  Janis Johnson  
2006-09-21  Janis Johnson  
        * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
        * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2006-09-21  Roger Sayle  
2006-09-21  Roger Sayle  
        PR debug/29132
        PR debug/29132
        * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
        * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
        dw_fde_current_label, to be the start of the function, i.e. the same
        dw_fde_current_label, to be the start of the function, i.e. the same
        value as dw_fde_begin.
        value as dw_fde_begin.
2006-09-20  Richard Sandiford  
2006-09-20  Richard Sandiford  
        * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
        * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
        * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
        * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
        (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
        (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
        (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
        (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
        (*nmadd, *nmadd_fastmath): Require !HONOR_NANS.
        (*nmadd, *nmadd_fastmath): Require !HONOR_NANS.
        (*nmsub, *nmsub_fastmath): Likewise.
        (*nmsub, *nmsub_fastmath): Likewise.
        (abs2, neg2): Likewise.
        (abs2, neg2): Likewise.
        * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
        * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
        (*mips_abs_ps): New define_insn.
        (*mips_abs_ps): New define_insn.
2006-09-20  Josh Conner  
2006-09-20  Josh Conner  
        PR middle-end/25505
        PR middle-end/25505
        * calls.c (expand_call): Allow reuse of structure return stack
        * calls.c (expand_call): Allow reuse of structure return stack
        temp.
        temp.
2006-09-20  Paul Brook  
2006-09-20  Paul Brook  
        * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
        * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
        positive offsets.
        positive offsets.
2006-09-20  Janis Johnson  
2006-09-20  Janis Johnson  
        * doc/extend.texi (Decimal Float): Update for latest draft TR,
        * doc/extend.texi (Decimal Float): Update for latest draft TR,
        clean up terminology.
        clean up terminology.
2006-09-20  Steve Ellcey  
2006-09-20  Steve Ellcey  
        PR target/28574
        PR target/28574
        * ifcvt.c (dead_or_predicable): Don't predicate then blocks
        * ifcvt.c (dead_or_predicable): Don't predicate then blocks
        with tablejumps in them.
        with tablejumps in them.
2006-09-20  Jakub Jelinek  
2006-09-20  Jakub Jelinek  
        PR middle-end/28046
        PR middle-end/28046
        * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
        * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
        wrap it into TARGET_EXPR.
        wrap it into TARGET_EXPR.
2006-09-20  Eric Christopher  
2006-09-20  Eric Christopher  
        * config/i386/i386.c (x86_fisttp): Remove.
        * config/i386/i386.c (x86_fisttp): Remove.
        * config/i386/i386.h (x86_fisttp): Ditto.
        * config/i386/i386.h (x86_fisttp): Ditto.
        (TARGET_FISTTP): Ditto.
        (TARGET_FISTTP): Ditto.
2006-09-19  Eric Christopher  
2006-09-19  Eric Christopher  
        * doc/tm.texi (OBJC_JBLEN): Describe.
        * doc/tm.texi (OBJC_JBLEN): Describe.
        * config/i386/darwin.h (OBJC_JBLEN): Define.
        * config/i386/darwin.h (OBJC_JBLEN): Define.
        * config/rs6000/darwin.h: Ditto.
        * config/rs6000/darwin.h: Ditto.
2006-09-19  Steven Bosscher  
2006-09-19  Steven Bosscher  
        PR rtl-optimization/21299
        PR rtl-optimization/21299
        * reload1.c (reload): Purge invalid ASMs in the final pass.
        * reload1.c (reload): Purge invalid ASMs in the final pass.
2006-09-19  Steve Ellcey  
2006-09-19  Steve Ellcey  
        PR  28490
        PR  28490
        * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
        * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
        pointers as legitimate constants.
        pointers as legitimate constants.
2006-09-19  Paul Brook  
2006-09-19  Paul Brook  
        PR target/28516
        PR target/28516
        * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
        * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
2006-09-17  Zdenek Dvorak 
2006-09-17  Zdenek Dvorak 
        PR tree-optimization/28887
        PR tree-optimization/28887
        * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
        * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
        component parts from the reference.
        component parts from the reference.
        (gather_memory_references_ref): Record the reference without the
        (gather_memory_references_ref): Record the reference without the
        nonaddressable component parts.
        nonaddressable component parts.
2006-09-17  Steven Bosscher  
2006-09-17  Steven Bosscher  
        PR c/25993
        PR c/25993
        * c-opts.c (c_common_handle_option): Ignore the -std options
        * c-opts.c (c_common_handle_option): Ignore the -std options
        if the input language is assembly.
        if the input language is assembly.
2006-09-17  Ira Rosen  
2006-09-17  Ira Rosen  
        PR tree-opt/21591
        PR tree-opt/21591
        * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
        * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
        tag first.
        tag first.
        (ptr_ptr_may_alias_p): Likewise.
        (ptr_ptr_may_alias_p): Likewise.
        (record_record_differ_p): New function.
        (record_record_differ_p): New function.
        (base_object_differ_p): Call record_record_differ_p.
        (base_object_differ_p): Call record_record_differ_p.
2006-09-16  Andrew Pinski  
2006-09-16  Andrew Pinski  
        PR tree-opt/29059
        PR tree-opt/29059
        * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
        * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
        away for the expr argument.
        away for the expr argument.
2006-09-16  Steven Bosscher  
2006-09-16  Steven Bosscher  
        PR tree-opt/27742
        PR tree-opt/27742
        * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
        * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
        before using it for dumping after vectorizing loops.
        before using it for dumping after vectorizing loops.
2006-09-16  Andrew Pinski  
2006-09-16  Andrew Pinski  
            Jack Howarth  
            Jack Howarth  
        PR target/29030
        PR target/29030
        * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
        * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
        skip on error_mark_node.
        skip on error_mark_node.
        (rs6000_darwin64_record_arg_recurse): Likewise.
        (rs6000_darwin64_record_arg_recurse): Likewise.
2006-09-16  Steven Bosscher  
2006-09-16  Steven Bosscher  
        * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
        * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
        * doc/rtl.texi: Remove related documentation.
        * doc/rtl.texi: Remove related documentation.
2006-09-16  Bernd Schmidt  
2006-09-16  Bernd Schmidt  
        * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
        * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
        printf.
        printf.
2006-09-15  Jim Wilson  
2006-09-15  Jim Wilson  
        * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
        * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
        Handle symbol offsets same as they are handled in ia64_expand_move
        Handle symbol offsets same as they are handled in ia64_expand_move
        and move_operand.
        and move_operand.
2006-09-16  Andreas Tobler  
2006-09-16  Andreas Tobler  
        * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
        * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
        Add forgotten parameter to the fprintf call.
        Add forgotten parameter to the fprintf call.
2006-09-15  Steve Ellcey  
2006-09-15  Steve Ellcey  
        * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
        * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
2006-09-15  Uros Bizjak 
2006-09-15  Uros Bizjak 
        * doc/contrib.texi: Add my entry.
        * doc/contrib.texi: Add my entry.
2006-09-15  Nick Clifton  
2006-09-15  Nick Clifton  
        * doc/md.texi (Processor pipeline description): Fix typo in
        * doc/md.texi (Processor pipeline description): Fix typo in
        example of how to use the absence_set directive and reword the
        example of how to use the absence_set directive and reword the
        description to make it slightly easier to read.
        description to make it slightly easier to read.
2006-09-15  Bernd Schmidt  
2006-09-15  Bernd Schmidt  
        * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
        * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
        * loop-doloop.c (doloop_optimize): Use it to limit costs of
        * loop-doloop.c (doloop_optimize): Use it to limit costs of
        expanding the number of iterations.
        expanding the number of iterations.
        * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
        * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
        * cfgrtl.c (emit_insn_at_entry): New function.
        * cfgrtl.c (emit_insn_at_entry): New function.
        * rtl.h (emit_insn_at_entry): Declare it.
        * rtl.h (emit_insn_at_entry): Declare it.
        * integrate.c (emit_initial_value_sets): Use it.
        * integrate.c (emit_initial_value_sets): Use it.
        * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
        * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
        * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
        * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
        bad.
        bad.
        (struct loop_work and related VEC declarations): Delete.
        (struct loop_work and related VEC declarations): Delete.
        (bfin_dump_loops): Print out new member bad.
        (bfin_dump_loops): Print out new member bad.
        (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
        (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
        (bfin_scan_loop): Don't recurse.
        (bfin_scan_loop): Don't recurse.
        (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
        (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
        loops.  No longer need to update outer loops if the current one is
        loops.  No longer need to update outer loops if the current one is
        found bad.  Move some validitiy checks to bfin_discover_loop.
        found bad.  Move some validitiy checks to bfin_discover_loop.
        (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
        (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
        but changed not to check for nesting.  Also changed to use the new bad
        but changed not to check for nesting.  Also changed to use the new bad
        flag.
        flag.
        (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
        (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
        time.  Use bitmap based test to discover loop nesting.
        time.  Use bitmap based test to discover loop nesting.
2006-09-15  Kazu Hirata  
2006-09-15  Kazu Hirata  
        * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
        * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
        one line.
        one line.
2006-09-14  Richard Guenther  
2006-09-14  Richard Guenther  
            Kazu Hirata  
            Kazu Hirata  
        PR middle-end/28884.
        PR middle-end/28884.
        * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
        * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
        (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
        (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
        Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
        Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
        with TARGET_FUNCTION_VALUE.
        with TARGET_FUNCTION_VALUE.
2006-09-14  Anatoly Sokolov 
2006-09-14  Anatoly Sokolov 
        PR target/26504
        PR target/26504
        * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
        * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2006-09-13  Aldy Hernandez  
2006-09-13  Aldy Hernandez  
        * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
        * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
        of a RETURN_EXPR
        of a RETURN_EXPR
2006-09-13  Andrew Pinski  
2006-09-13  Andrew Pinski  
        PR debug/28980
        PR debug/28980
        * dwarf2out.c (loc_descriptor_from_tree_1): Handle
        * dwarf2out.c (loc_descriptor_from_tree_1): Handle
        FUNCTION_DECL.
        FUNCTION_DECL.
2006-09-13  Andreas Krebbel  
2006-09-13  Andreas Krebbel  
        * basic_block.h (bb_has_eh_pred): Fix comment.
        * basic_block.h (bb_has_eh_pred): Fix comment.
2006-09-13  Andreas Krebbel  
2006-09-13  Andreas Krebbel  
        * flow.c (calculate_global_regs_live): Invalidate eh registers
        * flow.c (calculate_global_regs_live): Invalidate eh registers
        on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
        on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
        (propagate_block): Handle eh registers as if they were set at basic
        (propagate_block): Handle eh registers as if they were set at basic
        block start.
        block start.
        * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
        * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
        registers.
        registers.
        * global.c (global_conflicts): Make eh registers to conflict with
        * global.c (global_conflicts): Make eh registers to conflict with
        pseudos live at basic block begin.
        pseudos live at basic block begin.
        * basic_block.h (bb_has_eh_pred): New function.
        * basic_block.h (bb_has_eh_pred): New function.
2006-09-13  Richard Sandiford  
2006-09-13  Richard Sandiford  
        PR rtl-optimization/28982
        PR rtl-optimization/28982
        * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
        * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
        index of a PRE_MODIFY or POST_MODIFY address.
        index of a PRE_MODIFY or POST_MODIFY address.
        * reload1.c (inc_for_reload): Use find_replacement on the original
        * reload1.c (inc_for_reload): Use find_replacement on the original
        base and index registers.
        base and index registers.
2006-09-12  H.J. Lu  
2006-09-12  H.J. Lu  
        * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
        * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
        for -Os. Update __m128 alignment requirement.
        for -Os. Update __m128 alignment requirement.
2006-09-13  Jan Hubicka  
2006-09-13  Jan Hubicka  
        * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
        * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2006-09-12  Eric Botcazou  
2006-09-12  Eric Botcazou  
        PR rtl-optimization/28243
        PR rtl-optimization/28243
        * combine.c (distribute_notes) : Do not consider SETs past
        * combine.c (distribute_notes) : Do not consider SETs past
        the insn to which the note was originally attached.
        the insn to which the note was originally attached.
2006-09-12  Andrew Pinski  
2006-09-12  Andrew Pinski  
            Roger Sayle  
            Roger Sayle  
        * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
        * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
        outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
        outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
        on platforms that don't use dwarf for debug info.
        on platforms that don't use dwarf for debug info.
2006-09-12  Jason Merrill  
2006-09-12  Jason Merrill  
        PR middle-end/28493
        PR middle-end/28493
        * builtins.c (expand_builtin_setjmp_receiver): Clobber
        * builtins.c (expand_builtin_setjmp_receiver): Clobber
        hard_frame_pointer_rtx after using it to update the frame pointer.
        hard_frame_pointer_rtx after using it to update the frame pointer.
2006-09-12  Roger Sayle  
2006-09-12  Roger Sayle  
        * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
        * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
        (TARGET_ASM_CLOSE_PAREN): Likewise.
        (TARGET_ASM_CLOSE_PAREN): Likewise.
        * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
        * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
        (TARGET_ASM_CLOSE_PAREN): Likewise.
        (TARGET_ASM_CLOSE_PAREN): Likewise.
2006-09-12  Roger Sayle  
2006-09-12  Roger Sayle  
        PR target/22223
        PR target/22223
        * config/alpha/alpha.c (alpha_start_function): Don't emit stack
        * config/alpha/alpha.c (alpha_start_function): Don't emit stack
        frame information for frames larger than 512 Kbytes on Tru64 when
        frame information for frames larger than 512 Kbytes on Tru64 when
        using the native assembler.
        using the native assembler.
2006-09-12  Roger Sayle  
2006-09-12  Roger Sayle  
        PR middle-end/4520
        PR middle-end/4520
        PR bootstrap/28784
        PR bootstrap/28784
        * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
        * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
        and symbols.  Instead use the implementation from cse.c's hash_rtx.
        and symbols.  Instead use the implementation from cse.c's hash_rtx.
2006-09-12  Jan Hubicka  
2006-09-12  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
        * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
        (vect_transform_loop): Likewise.
        (vect_transform_loop): Likewise.
        * tree-vectorizer.c (new_loop_vec_info): Likewise.
        * tree-vectorizer.c (new_loop_vec_info): Likewise.
        (new_loop_vec_info): Likewise.
        (new_loop_vec_info): Likewise.
        (destroy_loop_vec_info): Likewise.
        (destroy_loop_vec_info): Likewise.
        * tree-dfa.c (create_var_ann): Use GCC_CNEW.
        * tree-dfa.c (create_var_ann): Use GCC_CNEW.
        (create_stmt_ann): Likewise.
        (create_stmt_ann): Likewise.
        (create_tree_ann): Rename to ...
        (create_tree_ann): Rename to ...
        (create_tree_common_ann): ... this one; allocate only the common part
        (create_tree_common_ann): ... this one; allocate only the common part
        of annotations.
        of annotations.
        * tree-vn.c (set_value_handle): Use get_tree_common_ann.
        * tree-vn.c (set_value_handle): Use get_tree_common_ann.
        (get_value_handle): Likewise.
        (get_value_handle): Likewise.
        * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
        * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
        get_tree_common_ann.
        get_tree_common_ann.
        * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
        * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
        (vinfo_for_stmt): Use stmt annotations.
        (vinfo_for_stmt): Use stmt annotations.
        * tree-flow.h (tree_ann_common_t): New type.
        * tree-flow.h (tree_ann_common_t): New type.
        (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
        (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
        (tree_ann, get_tree_ann, create_tree_ann): New.
        (tree_ann, get_tree_ann, create_tree_ann): New.
        * tree-flow-inline.h (get_function_ann): Do more type checking.
        * tree-flow-inline.h (get_function_ann): Do more type checking.
        (stmt_ann): Likewise.
        (stmt_ann): Likewise.
        (tree_ann): Rename to ...
        (tree_ann): Rename to ...
        (tree_common_ann): ... this one; return ony common_ann
        (tree_common_ann): ... this one; return ony common_ann
        (get_tree_ann): Rename to ...
        (get_tree_ann): Rename to ...
        (tree_common_ann): This one; return only common_ann.
        (tree_common_ann): This one; return only common_ann.
        * tree-vect-patterns.c (vect_pattern_recog_1): Update call
        * tree-vect-patterns.c (vect_pattern_recog_1): Update call
        of set_stmt_info.
        of set_stmt_info.
2006-09-11  Geoffrey Keating  
2006-09-11  Geoffrey Keating  
        * config.gcc (i[34567]86-*-darwin*): Set with_arch and
        * config.gcc (i[34567]86-*-darwin*): Set with_arch and
        with_cpu by default.
        with_cpu by default.
        * dwarf2out.c (dwarf_file_data): New.
        * dwarf2out.c (dwarf_file_data): New.
        (enum dw_val_class): Add dw_val_class_file.
        (enum dw_val_class): Add dw_val_class_file.
        (struct dw_val_struct): Add val_file.
        (struct dw_val_struct): Add val_file.
        (file_table): Change to a hash table.
        (file_table): Change to a hash table.
        (file_table_emitted): Delete.
        (file_table_emitted): Delete.
        (file_table_last_lookup_index): Delete.
        (file_table_last_lookup_index): Delete.
        (emitcount): Delete.
        (emitcount): Delete.
        (last_emitted_file): New.
        (last_emitted_file): New.
        (lookup_filename): Change prototype to return a struct dwarf_file_data.
        (lookup_filename): Change prototype to return a struct dwarf_file_data.
        (init_file_table): Delete.
        (init_file_table): Delete.
        (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
        (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
        (AT_addr): Add comment.
        (AT_addr): Add comment.
        (add_AT_file): New.
        (add_AT_file): New.
        (AT_file): New.
        (AT_file): New.
        (get_AT_file): New.
        (get_AT_file): New.
        (print_die): Handle dw_val_class_file.
        (print_die): Handle dw_val_class_file.
        (print_dwarf_line_table): Update for new file table structure.
        (print_dwarf_line_table): Update for new file table structure.
        (attr_checksum): Do checksum a filename.
        (attr_checksum): Do checksum a filename.
        (same_dw_val_p, same_attr_p): Do compare a filename.
        (same_dw_val_p, same_attr_p): Do compare a filename.
        (size_of_die): Handle dw_val_class_file.
        (size_of_die): Handle dw_val_class_file.
        (value_format): Likewise.
        (value_format): Likewise.
        (output_die): Likewise.  Also, call maybe_emit_file here.
        (output_die): Likewise.  Also, call maybe_emit_file here.
        (struct file_info): Constify filenames.  Make file_idx a pointer
        (struct file_info): Constify filenames.  Make file_idx a pointer
        to a struct dwarf_file_data.
        to a struct dwarf_file_data.
        (struct dir_info): Constify directory names.  Remove 'used' field.
        (struct dir_info): Constify directory names.  Remove 'used' field.
        (struct file_name_acquire_data): New.
        (struct file_name_acquire_data): New.
        (file_name_acquire): New.
        (file_name_acquire): New.
        (output_file_names): Modify to handle new file data structures.
        (output_file_names): Modify to handle new file data structures.
        (add_src_coords_attributes): Use add_AT_file.
        (add_src_coords_attributes): Use add_AT_file.
        (add_call_src_coords_attributes): Likewise.
        (add_call_src_coords_attributes): Likewise.
        (dwarf2out_imported_module_or_decl): Likewise.
        (dwarf2out_imported_module_or_decl): Likewise.
        (gen_subprogram_die): Modify for new file data structures.
        (gen_subprogram_die): Modify for new file data structures.
        (gen_variable_die): Likewise.
        (gen_variable_die): Likewise.
        (file_table_eq): New.
        (file_table_eq): New.
        (file_table_hash): New.
        (file_table_hash): New.
        (file_table_last_lookup): New.
        (file_table_last_lookup): New.
        (lookup_filename): Rewrite to handle new file data structures.
        (lookup_filename): Rewrite to handle new file data structures.
        (maybe_emit_file): Rewrite to handle new file data structures.
        (maybe_emit_file): Rewrite to handle new file data structures.
        (dwarf2out_source_line): Always call lookup_filename and
        (dwarf2out_source_line): Always call lookup_filename and
        maybe_emit_file.
        maybe_emit_file.
        (dwarf2out_init): Create file_table here.
        (dwarf2out_init): Create file_table here.
        (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
        (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
        (file_table_relative_p): New.
        (file_table_relative_p): New.
        (dwarf2out_finish): Change detection of relative filenames
        (dwarf2out_finish): Change detection of relative filenames
        to work with new file data structures.  Move output_line_info call
        to work with new file data structures.  Move output_line_info call
        after debug_info output.
        after debug_info output.
2006-09-11  H.J. Lu  
2006-09-11  H.J. Lu  
        PR target/13685
        PR target/13685
        PR target/27537
        PR target/27537
        PR target/28621
        PR target/28621
        * config/i386/i386.c (override_options): Always default to 16
        * config/i386/i386.c (override_options): Always default to 16
        byte stack boundary.
        byte stack boundary.
2006-09-11  Alexandre Oliva  
2006-09-11  Alexandre Oliva  
        PR target/28672
        PR target/28672
        * var-tracking.c (dump_dataflow_set): Start dumping at
        * var-tracking.c (dump_dataflow_set): Start dumping at
        register zero.
        register zero.
        (clobber_variable_part): Kill only the variable part in
        (clobber_variable_part): Kill only the variable part in
        registers holding it, leaving other variables alone.
        registers holding it, leaving other variables alone.
2006-09-11  Josh Triplett  
2006-09-11  Josh Triplett  
        * doc/extend.texi (Other Builtins): Actually use the macro
        * doc/extend.texi (Other Builtins): Actually use the macro
        argument in the documentation example for
        argument in the documentation example for
        __builtin_types_compatible_p.
        __builtin_types_compatible_p.
2006-09-11  Eric Botcazou  
2006-09-11  Eric Botcazou  
        PR rtl-optimization/28726
        PR rtl-optimization/28726
        * sched-deps.c (sched_analyze_reg): New function extracted from...
        * sched-deps.c (sched_analyze_reg): New function extracted from...
        (sched_analyze_1): ...here.  Call it to analyze references to
        (sched_analyze_1): ...here.  Call it to analyze references to
        registers.  Treat again writes to a stack register as writing to the
        registers.  Treat again writes to a stack register as writing to the
        register.
        register.
        (sched_analyze_2): ...and here.  Call it to analyze references to
        (sched_analyze_2): ...and here.  Call it to analyze references to
        registers.  Treat again reads of a stack register as reading the
        registers.  Treat again reads of a stack register as reading the
        register.
        register.
2006-09-11  Guenter Roeck  
2006-09-11  Guenter Roeck  
            David Edelsohn  
            David Edelsohn  
        PR target/27287
        PR target/27287
        * config/rs6000/spe.md (frob_df_di): Remove %H.
        * config/rs6000/spe.md (frob_df_di): Remove %H.
        (frob_di_df): Remove %H.  Change evmergelo to mr.
        (frob_di_df): Remove %H.  Change evmergelo to mr.
        (frob_di_df_2): Remove %H.  Change evldd to two loads.
        (frob_di_df_2): Remove %H.  Change evldd to two loads.
2006-09-11  Hideki Iwamoto  
2006-09-11  Hideki Iwamoto  
        * doc/cpp.texi: Fix names of charset options.
        * doc/cpp.texi: Fix names of charset options.
2006-09-10  Andrew Pinski  
2006-09-10  Andrew Pinski  
        PR target/29009
        PR target/29009
        * config/i386/i386.c (override_options): Use 128-bit
        * config/i386/i386.c (override_options): Use 128-bit
        stack boundary always for 64bits.
        stack boundary always for 64bits.
2006-09-10  Eric Botcazou  
2006-09-10  Eric Botcazou  
        PR rtl-optimization/28636
        PR rtl-optimization/28636
        * combine.c (force_to_mode): Test for side-effects before
        * combine.c (force_to_mode): Test for side-effects before
        substituting by zero.
        substituting by zero.
        (simplify_shift_const): Likewise for zero or other constants.
        (simplify_shift_const): Likewise for zero or other constants.
2006-09-10  Steven Bosscher  
2006-09-10  Steven Bosscher  
        PR middle-end/26983
        PR middle-end/26983
        * builtins.c (expand_builtin_setjmp): Force next_lab to be
        * builtins.c (expand_builtin_setjmp): Force next_lab to be
        preserved.
        preserved.
2006-09-10  Richard Sandiford  
2006-09-10  Richard Sandiford  
        PR target/29006
        PR target/29006
        * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
        * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
        * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
        * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
        returned by mode_for_size, rather than the mode of src itself,
        returned by mode_for_size, rather than the mode of src itself,
        to choose between 32-bit and 64-bit patterns.
        to choose between 32-bit and 64-bit patterns.
        (mips_mem_fits_mode_p): New function.
        (mips_mem_fits_mode_p): New function.
        * config/mips/mips.md (mov_l, mov_r): Use it to check
        * config/mips/mips.md (mov_l, mov_r): Use it to check
        that the size of the source matches the size of the destination.
        that the size of the source matches the size of the destination.
        (mov_l, mov_r): Likewise.
        (mov_l, mov_r): Likewise.
2006-09-10  Eric Christopher  
2006-09-10  Eric Christopher  
        * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
        * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
        for literal16.
        for literal16.
2006-09-09  Eric Christopher  
2006-09-09  Eric Christopher  
        PR target/28995
        PR target/28995
        * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
        * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
        for literal16.
        for literal16.
2006-09-09  Roger Sayle  
2006-09-09  Roger Sayle  
            Nicolas Setton 
            Nicolas Setton 
        * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
        * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2006-09-10  Andreas Schwab  
2006-09-10  Andreas Schwab  
        * config/m68k/m68k.md (bungt_rev): New pattern.
        * config/m68k/m68k.md (bungt_rev): New pattern.
2006-09-09  Paolo Bonzini  
2006-09-09  Paolo Bonzini  
            Dale Johannesen  
            Dale Johannesen  
        PR target/26778
        PR target/26778
        * regclass.c (struct reg_pref): Update documentation.
        * regclass.c (struct reg_pref): Update documentation.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
2006-09-08  Eric Christopher  
2006-09-08  Eric Christopher  
        * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
        * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
        * config/t-slibgcc-darwin: Support x86_64 multilib.
        * config/t-slibgcc-darwin: Support x86_64 multilib.
        * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
        * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
        Return 1 for x86_64-darwin.
        Return 1 for x86_64-darwin.
        * config/i386/t-darwin: Add m64 multilib.
        * config/i386/t-darwin: Add m64 multilib.
        (LIB2_SIDITI_CONV_FUNCS): Use.
        (LIB2_SIDITI_CONV_FUNCS): Use.
        (LIB2FUNCS_EXTRA): Ditto.
        (LIB2FUNCS_EXTRA): Ditto.
        * config/i386/darwin.h: Support x86_64.
        * config/i386/darwin.h: Support x86_64.
        * config/i386/i386.c (override_options): Turn on flag_pic
        * config/i386/i386.c (override_options): Turn on flag_pic
        for x86_64-darwin. Disable flag_omit_pointer.
        for x86_64-darwin. Disable flag_omit_pointer.
        (get_pc_thunk_name): Assert !TARGET_64BIT.
        (get_pc_thunk_name): Assert !TARGET_64BIT.
        (legitimate_address_p): Disable machopic addressing for
        (legitimate_address_p): Disable machopic addressing for
        x86_64.
        x86_64.
        (legitimize_pic_address): Ditto.
        (legitimize_pic_address): Ditto.
        (ix86_expand_move): Ditto.
        (ix86_expand_move): Ditto.
        (ix86_expand_call): Ditto.
        (ix86_expand_call): Ditto.
        (machopic_output_stub): Ditto.
        (machopic_output_stub): Ditto.
        * config/darwin.c (machopic_select_section): Support literal16.
        * config/darwin.c (machopic_select_section): Support literal16.
        (machopic_select_rtx_section): Ditto.
        (machopic_select_rtx_section): Ditto.
        * config/darwin-sections.def: Ditto.
        * config/darwin-sections.def: Ditto.
        * config/darwin-64.c: New.
        * config/darwin-64.c: New.
2006-09-08  Joseph S. Myers  
2006-09-08  Joseph S. Myers  
        PR c/28504
        PR c/28504
        * c-tree.h (struct c_arg_info): Add pending_sizes.
        * c-tree.h (struct c_arg_info): Add pending_sizes.
        * c-parser.c (c_parser_parms_declarator,
        * c-parser.c (c_parser_parms_declarator,
        c_parser_parms_list_declarator): Initialize pending_sizes.
        c_parser_parms_list_declarator): Initialize pending_sizes.
        * c-decl.c (get_parm_info): Initialize pending_sizes.
        * c-decl.c (get_parm_info): Initialize pending_sizes.
        (get_parm_info): Set pending_sizes.
        (get_parm_info): Set pending_sizes.
        (grokdeclarator): Call put_pending_sizes for parameters for
        (grokdeclarator): Call put_pending_sizes for parameters for
        function definition only.
        function definition only.
2006-09-07  Jason Merrill  
2006-09-07  Jason Merrill  
        PR middle-end/27724
        PR middle-end/27724
        * varasm.c (output_constant): Only strip actual no-op conversions.
        * varasm.c (output_constant): Only strip actual no-op conversions.
        PR target/13685
        PR target/13685
        * config/i386/i386.c (override_options): Use 128-bit
        * config/i386/i386.c (override_options): Use 128-bit
        stack boundary if -msse.
        stack boundary if -msse.
2006-09-07  Eric Christopher  
2006-09-07  Eric Christopher  
        * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
        * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
        comment.
        comment.
        * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
        * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
        Redefine.
        Redefine.
2006-09-07  Geoffrey Keating  
2006-09-07  Geoffrey Keating  
        * dwarf2out.c: Remove strange characters from comment above
        * dwarf2out.c: Remove strange characters from comment above
        dwarf2out_frame_debug_expr.
        dwarf2out_frame_debug_expr.
2006-09-07  Eric Christopher  
2006-09-07  Eric Christopher  
        * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
        * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
        * config/darwin.h: ... to here.
        * config/darwin.h: ... to here.
2006-09-07  H.J. Lu  
2006-09-07  H.J. Lu  
        * config/i386/i386.c (x86_partial_flag_reg_stall): New.
        * config/i386/i386.c (x86_partial_flag_reg_stall): New.
        * config/i386/i386.h (x86_partial_flag_reg_stall): New.
        * config/i386/i386.h (x86_partial_flag_reg_stall): New.
        (TARGET_PARTIAL_FLAG_REG_STALL): New.
        (TARGET_PARTIAL_FLAG_REG_STALL): New.
        * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
        * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
        TARGET_PARTIAL_FLAG_REG_STALL.
        TARGET_PARTIAL_FLAG_REG_STALL.
        (*ashldi3_cconly_rex64): Likewise.
        (*ashldi3_cconly_rex64): Likewise.
        (*ashlsi3_cmp): Likewise.
        (*ashlsi3_cmp): Likewise.
        (*ashlsi3_cconly): Likewise.
        (*ashlsi3_cconly): Likewise.
        (*ashlsi3_cmp_zext): Likewise.
        (*ashlsi3_cmp_zext): Likewise.
        (*ashlhi3_cmp): Likewise.
        (*ashlhi3_cmp): Likewise.
        (*ashlhi3_cconly): Likewise.
        (*ashlhi3_cconly): Likewise.
        (*ashlqi3_cmp): Likewise.
        (*ashlqi3_cmp): Likewise.
        (*ashlqi3_cconly): Likewise.
        (*ashlqi3_cconly): Likewise.
        (*ashrdi3_cmp_rex64): Likewise.
        (*ashrdi3_cmp_rex64): Likewise.
        (*ashrdi3_cconly_rex64): Likewise.
        (*ashrdi3_cconly_rex64): Likewise.
        (*ashrsi3_cmp): Likewise.
        (*ashrsi3_cmp): Likewise.
        (*ashrsi3_cconly): Likewise.
        (*ashrsi3_cconly): Likewise.
        (*ashrsi3_cmp_zext): Likewise.
        (*ashrsi3_cmp_zext): Likewise.
        (*ashrhi3_cmp): Likewise.
        (*ashrhi3_cmp): Likewise.
        (*ashrhi3_cconly): Likewise.
        (*ashrhi3_cconly): Likewise.
        (*ashrqi3_cmp): Likewise.
        (*ashrqi3_cmp): Likewise.
        (*ashrqi3_cconly): Likewise.
        (*ashrqi3_cconly): Likewise.
        (*lshrdi3_cmp_rex64): Likewise.
        (*lshrdi3_cmp_rex64): Likewise.
        (*lshrdi3_cconly_rex64): Likewise.
        (*lshrdi3_cconly_rex64): Likewise.
        (*lshrsi3_cmp): Likewise.
        (*lshrsi3_cmp): Likewise.
        (*lshrsi3_cconly): Likewise.
        (*lshrsi3_cconly): Likewise.
        (*lshrsi3_cmp_zext): Likewise.
        (*lshrsi3_cmp_zext): Likewise.
        (*lshrhi3_cmp): Likewise.
        (*lshrhi3_cmp): Likewise.
        (*lshrhi3_cconly): Likewise.
        (*lshrhi3_cconly): Likewise.
        (*lshrqi2_cmp): Likewise.
        (*lshrqi2_cmp): Likewise.
        (*lshrqi2_cconly): Likewise.
        (*lshrqi2_cconly): Likewise.
2006-09-07 Uros Bizjak 
2006-09-07 Uros Bizjak 
        PR target/28946
        PR target/28946
        * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
        * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
        "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
        "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
        "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
        "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
        "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
        "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
        "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
        "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
        "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
        "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
        "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
        "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
        "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
        "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
        "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
        "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
        implement only CC setting effects of shift instructions.
        implement only CC setting effects of shift instructions.
2006-09-07  Martin Michlmayr  
2006-09-07  Martin Michlmayr  
        * doc/contrib.texi: Add myself.
        * doc/contrib.texi: Add myself.
2006-09-07  Andrew Pinski  
2006-09-07  Andrew Pinski  
        PR middle-end/28862
        PR middle-end/28862
        * stor-layout.c (relayout_decl): Don't zero the alignment if it
        * stor-layout.c (relayout_decl): Don't zero the alignment if it
        was set by the user.
        was set by the user.
2006-09-07  Paolo Bonzini  
2006-09-07  Paolo Bonzini  
        PR target/27117
        PR target/27117
        * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
        * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
        (divsi_inv_m1): Use them.
        (divsi_inv_m1): Use them.
        (UNSPEC_DIV_INV_TABLE): New constant.
        (UNSPEC_DIV_INV_TABLE): New constant.
2006-09-06  James E Wilson  
2006-09-06  James E Wilson  
        PR rtl-opt/27883
        PR rtl-opt/27883
        * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
        * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
        then call count_or_remove_death_notes.
        then call count_or_remove_death_notes.
2006-09-06  Jason Merrill  
2006-09-06  Jason Merrill  
        PR c++/27371
        PR c++/27371
        * tree-inline.c (copy_result_decl_to_var): New fn.
        * tree-inline.c (copy_result_decl_to_var): New fn.
        (declare_return_variable): Use it.  Call declare_inline_vars here.
        (declare_return_variable): Use it.  Call declare_inline_vars here.
        (expand_call_inline): Not here.
        (expand_call_inline): Not here.
2006-09-06  Diego Novillo  
2006-09-06  Diego Novillo  
        * doc/contrib.texi: Update my entry.
        * doc/contrib.texi: Update my entry.
2006-09-06  Nick Clifton  
2006-09-06  Nick Clifton  
        * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
        * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
2006-09-05  Andrew Pinski  
2006-09-05  Andrew Pinski  
        PR tree-opt/28937
        PR tree-opt/28937
        * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
        * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
        (canonicalize_induction_variables): Likewise.
        (canonicalize_induction_variables): Likewise.
        (tree_unroll_loops_completely): Likewise.
        (tree_unroll_loops_completely): Likewise.
        (tree_ssa_prefetch_arrays): Likewise.
        (tree_ssa_prefetch_arrays): Likewise.
        (remove_empty_loops): Likewise.
        (remove_empty_loops): Likewise.
        * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
        * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
        TODO_cleanup_cfg instead of directly calling
        TODO_cleanup_cfg instead of directly calling
        cleanup_tree_cfg_loop.
        cleanup_tree_cfg_loop.
        * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
        * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
        Likewise.
        Likewise.
        (tree_unroll_loops_completely): Likewise.
        (tree_unroll_loops_completely): Likewise.
        (remove_empty_loops): Likewise.
        (remove_empty_loops): Likewise.
        * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
        * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
        * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
        * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
        of tree_ssa_unswitch_loops.
        of tree_ssa_unswitch_loops.
        (tree_ssa_loop_ivcanon): Use the return value of
        (tree_ssa_loop_ivcanon): Use the return value of
        canonicalize_induction_variables.
        canonicalize_induction_variables.
        (tree_ssa_empty_loop): Use the return value of
        (tree_ssa_empty_loop): Use the return value of
        remove_empty_loops.
        remove_empty_loops.
        (tree_complete_unroll): Use the return value of
        (tree_complete_unroll): Use the return value of
        tree_unroll_loops_completely.
        tree_unroll_loops_completely.
        (tree_ssa_loop_prefetch): Use the return value of
        (tree_ssa_loop_prefetch): Use the return value of
        tree_ssa_prefetch_arrays.
        tree_ssa_prefetch_arrays.
        * passes.c (execute_todo): Before Cleanup CFG, set
        * passes.c (execute_todo): Before Cleanup CFG, set
        updating_used_alone and after cleanup CFG, call
        updating_used_alone and after cleanup CFG, call
        recalculate_used_alone.
        recalculate_used_alone.
2006-09-05  Andrew Pinski  
2006-09-05  Andrew Pinski  
        PR tree-opt/28952
        PR tree-opt/28952
        * tree-vect-transform.c (vectorizable_condition): Move the check
        * tree-vect-transform.c (vectorizable_condition): Move the check
        for the type after the check for simple condition.
        for the type after the check for simple condition.
2006-09-05  J"orn Rennecke  
2006-09-05  J"orn Rennecke  
            Kaz Kojima  
            Kaz Kojima  
        PR target/28764
        PR target/28764
        * mode-switching.c (optimize_mode_switching): Make the destination
        * mode-switching.c (optimize_mode_switching): Make the destination
        block of an abnormal edge have no anticipatable mode.  Don't
        block of an abnormal edge have no anticipatable mode.  Don't
        insert mode switching code at the end of the source block of
        insert mode switching code at the end of the source block of
        an abnormal edge.
        an abnormal edge.
2006-09-05  Paolo Bonzini  
2006-09-05  Paolo Bonzini  
        PR rtl-optimization/26847
        PR rtl-optimization/26847
        * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
        * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
        (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
        (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
        (simplify_plus_minus): Count n_constants while filling ops.  Replace
        (simplify_plus_minus): Count n_constants while filling ops.  Replace
        qsort with insertion sort.  Before going through the array to simplify
        qsort with insertion sort.  Before going through the array to simplify
        pairs, sort it.  Delay early exit until after the first sort, exiting
        pairs, sort it.  Delay early exit until after the first sort, exiting
        only if no swaps occurred.  Simplify pairs in reversed order, without
        only if no swaps occurred.  Simplify pairs in reversed order, without
        special-casing the first iteration.  Pack ops after simplifying pairs.
        special-casing the first iteration.  Pack ops after simplifying pairs.
2006-09-05  Anatoly Sokolov 
2006-09-05  Anatoly Sokolov 
        * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
        * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
        (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
        (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
2006-09-05  Richard Guenther  
2006-09-05  Richard Guenther  
        PR tree-optimization/28900
        PR tree-optimization/28900
        * tree-if-conv.c (find_phi_replacement_condition): Gimplify
        * tree-if-conv.c (find_phi_replacement_condition): Gimplify
        compound conditional before creating COND_EXPR condition.
        compound conditional before creating COND_EXPR condition.
2006-09-05  Richard Guenther  
2006-09-05  Richard Guenther  
        PR tree-optimization/28905
        PR tree-optimization/28905
        * tree-vrp.c (fix_equivalence_set): Manually implement
        * tree-vrp.c (fix_equivalence_set): Manually implement
        !value_ranges_intersect_p to also handle symbolic ranges.
        !value_ranges_intersect_p to also handle symbolic ranges.
2006-09-05  Richard Guenther  
2006-09-05  Richard Guenther  
        PR middle-end/28935
        PR middle-end/28935
        * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
        * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
        of a COND_EXPR.
        of a COND_EXPR.
2006-09-04  Eric Botcazou  
2006-09-04  Eric Botcazou  
        PR rtl-optimization/27616
        PR rtl-optimization/27616
        * cse.c (table_size): New static variable.
        * cse.c (table_size): New static variable.
        (new_basic_block): Initialize it to 0.
        (new_basic_block): Initialize it to 0.
        (remove_from_table): Decrement it.
        (remove_from_table): Decrement it.
        (insert): Increment it.
        (insert): Increment it.
        (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
        (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
        (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
        (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
        fold_rtx_mem_1 if under the cap.
        fold_rtx_mem_1 if under the cap.
        (fold_rtx) : In the associative case, delay a little
        (fold_rtx) : In the associative case, delay a little
        the lookup of the equivalent expression and test for equality of the
        the lookup of the equivalent expression and test for equality of the
        first operand of the equivalent expression before in turn looking up
        first operand of the equivalent expression before in turn looking up
        an equivalent constant for the second operand.
        an equivalent constant for the second operand.
2006-09-02  Geoffrey Keating  
2006-09-02  Geoffrey Keating  
        Revert this change:
        Revert this change:
        2006-03-17  Alexandre Oliva  
        2006-03-17  Alexandre Oliva  
        * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
        * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
        pointer, instead of assuming it is possible to derive the
        pointer, instead of assuming it is possible to derive the
        correct args size from a call insn.
        correct args size from a call insn.
2006-09-02  Jakub Jelinek  
2006-09-02  Jakub Jelinek  
        PR middle-end/27567
        PR middle-end/27567
        * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
        * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
        (fold_builtin_mempcpy): Rename to...
        (fold_builtin_mempcpy): Rename to...
        (fold_builtin_memory_op): ... this.  Optimize one element copy
        (fold_builtin_memory_op): ... this.  Optimize one element copy
        into an assignment.
        into an assignment.
        (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
        (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
        functions.
        functions.
        (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
        (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
        (expand_builtin_memcpy, expand_builtin_mempcpy,
        (expand_builtin_memcpy, expand_builtin_mempcpy,
        expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
        expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
        (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
        (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
        BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
        BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
        BUILT_IN_MEM{CPY,PCPY,MOVE}.
        BUILT_IN_MEM{CPY,PCPY,MOVE}.
2006-09-01  DJ Delorie  
2006-09-01  DJ Delorie  
        * config/m32c/cond.md (cbranch4): Defer splitting until after reload.
        * config/m32c/cond.md (cbranch4): Defer splitting until after reload.
        (stzx_16): Likewise.
        (stzx_16): Likewise.
        ("stzx_24_"): Likewise.
        ("stzx_24_"): Likewise.
        ("stzx_reversed_"): Likewise, and make mode-specific.
        ("stzx_reversed_"): Likewise, and make mode-specific.
        ("cmp_op"): New.
        ("cmp_op"): New.
        (cmp): Change to expander; just save operands.
        (cmp): Change to expander; just save operands.
        (b_op): New.
        (b_op): New.
        (b): Change to expander, emit compare here.
        (b): Change to expander, emit compare here.
        (s_op): Change to use split and expander.
        (s_op): Change to use split and expander.
        (s_24_op): Likewise.
        (s_24_op): Likewise.
        (s_): New.
        (s_): New.
        (s__24): New.
        (s__24): New.
        (movqicc__
        (movqicc__
        (movhicc__): New.
        (movhicc__): New.
        (s): New.
        (s): New.
        (s_24): New.
        (s_24): New.
        * config/m32c/m32c.c (compare_op0, compare_op1): New.
        * config/m32c/m32c.c (compare_op0, compare_op1): New.
        (m32c_pend_compare): New.
        (m32c_pend_compare): New.
        (m32c_unpend_compare): New.
        (m32c_unpend_compare): New.
        (m32c_expand_scc): New.
        (m32c_expand_scc): New.
        (m32c_expand_movcc): Emit the compare also.
        (m32c_expand_movcc): Emit the compare also.
        * config/m32c/predicates.md (mra_nopp_operand): New.
        * config/m32c/predicates.md (mra_nopp_operand): New.
2006-09-01  J"orn Rennecke  
2006-09-01  J"orn Rennecke  
        Richard Guenther  
        Richard Guenther  
        Adam Nemet  
        Adam Nemet  
        PR middle-end/27226
        PR middle-end/27226
        * builtins.c (get_pointer_alignment): Handle more forms
        * builtins.c (get_pointer_alignment): Handle more forms
        of base addresses that can be used to derive more precise
        of base addresses that can be used to derive more precise
        information about alignment.
        information about alignment.
2006-09-01  Jason Merrill  
2006-09-01  Jason Merrill  
        PR c++/28899
        PR c++/28899
        * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
        * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
        want_value.
        want_value.
        * gimplify.c (voidify_wrapper_expr): Handle null type.
        * gimplify.c (voidify_wrapper_expr): Handle null type.
2006-09-01  Josh Conner  
2006-09-01  Josh Conner  
        PR c++/25505
        PR c++/25505
        * tree-nrv.c (dest_safe_for_nrv_p): New function.
        * tree-nrv.c (dest_safe_for_nrv_p): New function.
        (execute_return_slot_opt): Use it.
        (execute_return_slot_opt): Use it.
2006-08-31  Josh Conner  
2006-08-31  Josh Conner  
        PR c++/25505
        PR c++/25505
        * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
        * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
        returning aggregates.
        returning aggregates.
2006-08-31  Zdenek Dvorak 
2006-08-31  Zdenek Dvorak 
        PR tree-optimization/28839
        PR tree-optimization/28839
        * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
        * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
        blocks in that phi arguments appear.
        blocks in that phi arguments appear.
2006-08-31  Roger Sayle  
2006-08-31  Roger Sayle  
        PR other/22313
        PR other/22313
        * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
        * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
        NULL, otherwise use an advance_loc4 to adjust relative to the
        NULL, otherwise use an advance_loc4 to adjust relative to the
        current label.
        current label.
        (output_cfi) : Update the current label.
        (output_cfi) : Update the current label.
        (dwarf2out_switch_text_section): Reset the current label to avoid
        (dwarf2out_switch_text_section): Reset the current label to avoid
        using advance_loc4 over section boundaries.
        using advance_loc4 over section boundaries.
2006-08-31  Andreas Krebbel  
2006-08-31  Andreas Krebbel  
        PR target/24367
        PR target/24367
        * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
        * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
        r12 + SYMBOLIC_CONST.
        r12 + SYMBOLIC_CONST.
2006-08-30  Richard Guenther  
2006-08-30  Richard Guenther  
        * Makefile.in (see.o): Add $(EXPR_H) dependency.
        * Makefile.in (see.o): Add $(EXPR_H) dependency.
2006-08-30  Zdenek Dvorak 
2006-08-30  Zdenek Dvorak 
        PR rtl-optimization/27735
        PR rtl-optimization/27735
        * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
        * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
        Add new argument to keep track of whether an irreducible region
        Add new argument to keep track of whether an irreducible region
        was affected.  All callers changed.
        was affected.  All callers changed.
        (fix_irreducible_loops): Removed.
        (fix_irreducible_loops): Removed.
        (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
        (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
        flags were invalidated.
        flags were invalidated.
2006-08-29  H.J. Lu  
2006-08-29  H.J. Lu  
        * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
        * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
        instead of SF operands.
        instead of SF operands.
        (*fop_df_comm_sse): Likewise.
        (*fop_df_comm_sse): Likewise.
        (*fop_df_comm_i387): Likewise.
        (*fop_df_comm_i387): Likewise.
        (*fop_df_1_mixed): Likewise.
        (*fop_df_1_mixed): Likewise.
        (*fop_df_1_sse): Likewise.
        (*fop_df_1_sse): Likewise.
2006-08-29  Andrew Pinski  
2006-08-29  Andrew Pinski  
            J"orn Rennecke  
            J"orn Rennecke  
        PR tree-optimization/17506
        PR tree-optimization/17506
        * tree-ssa.c (warn_uninit): If warning about a location outside of
        * tree-ssa.c (warn_uninit): If warning about a location outside of
        the current function, note where the variable was declared.
        the current function, note where the variable was declared.
2006-08-28  Zdenek Dvorak 
2006-08-28  Zdenek Dvorak 
        PR tree-optimization/28411
        PR tree-optimization/28411
        * double-int.c (double_int_div): Use double_int_divmod.
        * double-int.c (double_int_div): Use double_int_divmod.
        (double_int_divmod, double_int_sdivmod, double_int_udivmod,
        (double_int_divmod, double_int_sdivmod, double_int_udivmod,
        double_int_mod, double_int_smod, double_int_umod): New functions.
        double_int_mod, double_int_smod, double_int_umod): New functions.
        * double-int.h (double_int_divmod, double_int_sdivmod,
        * double-int.h (double_int_divmod, double_int_sdivmod,
        double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
        double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
        Declare.
        Declare.
        * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
        * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
        in double_int.
        in double_int.
        (get_computation_aff, get_computation_cost_at): Handle double_int
        (get_computation_aff, get_computation_cost_at): Handle double_int
        return type of constant_multiple_of.
        return type of constant_multiple_of.
2006-08-28  Kazu Hirata  
2006-08-28  Kazu Hirata  
        PR middle-end/26632
        PR middle-end/26632
        * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
        * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
        an implicit conversion.
        an implicit conversion.
2006-08-28  Prafulla Thakare  
2006-08-28  Prafulla Thakare  
        * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
        * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
2006-08-27  Roger Sayle  
2006-08-27  Roger Sayle  
        * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
        * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
        x87 instructions.
        x87 instructions.
2006-08-27  Kazu Hirata  
2006-08-27  Kazu Hirata  
        * config/i386/crtfastmath.c: Fix a comment typo.
        * config/i386/crtfastmath.c: Fix a comment typo.
2006-08-26  Roger Sayle  
2006-08-26  Roger Sayle  
        * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
        * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
        temporary visit flags on CASE_LABEL_EXPRs.
        temporary visit flags on CASE_LABEL_EXPRs.
        * c-common.c (match_case_to_enum): Add function comment.  Avoid
        * c-common.c (match_case_to_enum): Add function comment.  Avoid
        O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
        O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
        (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
        (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
        CASE_HIGH_SEEN for enumerated types.  If the switch expression is
        CASE_HIGH_SEEN for enumerated types.  If the switch expression is
        a constant, only warn if that constant value isn't handled.
        a constant, only warn if that constant value isn't handled.
2006-08-26  Joseph S. Myers  
2006-08-26  Joseph S. Myers  
        PR c++/24009
        PR c++/24009
        * input.h (restore_input_file_stack): Declare.
        * input.h (restore_input_file_stack): Declare.
        (INPUT_FILE_STACK_BITS): Define.
        (INPUT_FILE_STACK_BITS): Define.
        * toplev.c (fs_p, input_file_stack_history,
        * toplev.c (fs_p, input_file_stack_history,
        input_file_stack_restored, restore_input_file_stack): New.
        input_file_stack_restored, restore_input_file_stack): New.
        (push_srcloc, pop_srcloc): Check for input_file_stack_tick
        (push_srcloc, pop_srcloc): Check for input_file_stack_tick
        overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
        overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
        (pop_srcloc): Don't free old state of stack.
        (pop_srcloc): Don't free old state of stack.
2006-08-26  David Edelsohn  
2006-08-26  David Edelsohn  
        PR target/27544
        PR target/27544
        * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
        * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
        (PowerPC Type Attributes): New.
        (PowerPC Type Attributes): New.
2006-08-26  Bob Wilson  
2006-08-26  Bob Wilson  
        * config/xtensa/xtensa.c (function_arg_boundary): New.
        * config/xtensa/xtensa.c (function_arg_boundary): New.
        (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
        (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
        STACK_BOUNDARY.
        STACK_BOUNDARY.
        * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
        * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
        function_arg_boundary function that limits alignment to STACK_BOUNDARY.
        function_arg_boundary function that limits alignment to STACK_BOUNDARY.
2006-08-26  Jakub Jelinek  
2006-08-26  Jakub Jelinek  
        PR middle-end/28683
        PR middle-end/28683
        * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
        * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
        3 following insns.
        3 following insns.
2006-08-25  Volker Reichelt  
2006-08-25  Volker Reichelt  
        * flow.c (verify_wide_reg): Use internal_error for consistency failure.
        * flow.c (verify_wide_reg): Use internal_error for consistency failure.
        (verify_local_live_at_start): Likewise.
        (verify_local_live_at_start): Likewise.
2006-08-25  Joseph S. Myers  
2006-08-25  Joseph S. Myers  
        PR c/27893
        PR c/27893
        * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
        * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
        omp_add_variable): Treat sizes as variable whenever not
        omp_add_variable): Treat sizes as variable whenever not
        INTEGER_CST.
        INTEGER_CST.
2006-08-26  Richard Guenther  
2006-08-26  Richard Guenther  
        PR middle-end/28814
        PR middle-end/28814
        * fold-const.c (fold_binary): Fold temporary to correct
        * fold-const.c (fold_binary): Fold temporary to correct
        type before constructing new comparison.
        type before constructing new comparison.
2006-08-25  Fariborz Jahanian  
2006-08-25  Fariborz Jahanian  
        PR c/28418
        PR c/28418
        * c-gimplify.c (gimplify_compound_literal_expr): Don't add
        * c-gimplify.c (gimplify_compound_literal_expr): Don't add
        variable again if DECL_SEEN_IN_BIND_EXPR_P.
        variable again if DECL_SEEN_IN_BIND_EXPR_P.
2006-08-25  Joseph S. Myers  
2006-08-25  Joseph S. Myers  
        PR c/28299
        PR c/28299
        * c-decl.c (start_function): Don't try to process prototype
        * c-decl.c (start_function): Don't try to process prototype
        information from old declaration that isn't a function.
        information from old declaration that isn't a function.
2006-08-25  Jan Hubicka  
2006-08-25  Jan Hubicka  
        PR target/28621
        PR target/28621
        * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
        * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
2006-08-25  Alan Modra  
2006-08-25  Alan Modra  
        PR target/27075
        PR target/27075
        * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
        * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
        for 8 byte objects.
        for 8 byte objects.
2006-08-25  J"orn Rennecke  
2006-08-25  J"orn Rennecke  
        PR tree-optimization/16876
        PR tree-optimization/16876
        * c-typeck.c (c_convert_parm_for_inlining): Don't take early
        * c-typeck.c (c_convert_parm_for_inlining): Don't take early
        exit if PARM doesn't match VALUE.
        exit if PARM doesn't match VALUE.
2006-08-25  Bob Wilson  
2006-08-25  Bob Wilson  
        * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
        * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
        literal_prefix directive.
        literal_prefix directive.
        (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
        (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
        * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
        * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
        * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
        * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
2006-08-25  David Edelsohn  
2006-08-25  David Edelsohn  
        PR target/28753
        PR target/28753
        * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
        * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
        predicate to general_operand.  Add 0->y and I->r alternatives.
        predicate to general_operand.  Add 0->y and I->r alternatives.
2006-08-25  Kazu Hirata  
2006-08-25  Kazu Hirata  
        * doc/tm.texi: Fix a typo.
        * doc/tm.texi: Fix a typo.
        * predict.c: Fix comment typos.
        * predict.c: Fix comment typos.
2006-08-25  Nick Clifton  
2006-08-25  Nick Clifton  
        * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
        * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
        assertions of "cpu" and "machine".
        assertions of "cpu" and "machine".
2006-08-24  Andrew Pinski  
2006-08-24  Andrew Pinski  
        PR tree-opt/28807
        PR tree-opt/28807
        * tree-ssa-operands.c (access_can_touch_variable): Don't say
        * tree-ssa-operands.c (access_can_touch_variable): Don't say
        the access through a base which has an alias set of 0 cannot
        the access through a base which has an alias set of 0 cannot
        touch the variable.
        touch the variable.
2006-08-24  Bill Wendling  
2006-08-24  Bill Wendling  
        * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
        * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
2006-08-24  Jan Hubicka  
2006-08-24  Jan Hubicka  
        * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
        * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
2006-08-24  Jan Hubicka  
2006-08-24  Jan Hubicka  
        PR debug/26881
        PR debug/26881
        * cgraph.c: Fix comments.
        * cgraph.c: Fix comments.
        (cgraph_varpool_mark_needed_node): Mark only variables not already
        (cgraph_varpool_mark_needed_node): Mark only variables not already
        output to file.
        output to file.
        * cgraphunit.c: Update comments; include gt-cgraphunit.h
        * cgraphunit.c: Update comments; include gt-cgraphunit.h
        (cgraph_varpool_assembled_nodes_queue): New static variable.
        (cgraph_varpool_assembled_nodes_queue): New static variable.
        (cgraph_varpool_assemble_decl): Record output decls for debug out code.
        (cgraph_varpool_assemble_decl): Record output decls for debug out code.
        (cgraph_varpool_output_debug_info): New function.
        (cgraph_varpool_output_debug_info): New function.
        (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
        (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
        * Makefile.in: Add gt-cgraphunit.h
        * Makefile.in: Add gt-cgraphunit.h
2006-08-24  Jan Hubicka  
2006-08-24  Jan Hubicka  
        * predict.c (probability_reliable_p): New predicate.
        * predict.c (probability_reliable_p): New predicate.
        (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
        (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
        (predict_loops): Do not predict loop exit with less than 2%
        (predict_loops): Do not predict loop exit with less than 2%
        probability.
        probability.
        * basic-block.h (edge_probability_reliable_p,
        * basic-block.h (edge_probability_reliable_p,
        br_prob_note_reliable_p): Declare.
        br_prob_note_reliable_p): Declare.
        * ia64.h (ia64_print_operand): Do not disable on-chip branch
        * ia64.h (ia64_print_operand): Do not disable on-chip branch
        prediction when static predictor is not reliable.
        prediction when static predictor is not reliable.
        * rs6000.c (output_cbranch): Likewise.
        * rs6000.c (output_cbranch): Likewise.
2006-08-23  Stuart Hastings  
2006-08-23  Stuart Hastings  
        PR 28825
        PR 28825
        * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
        * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
        ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
        ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
2006-08-21  Geoffrey Keating  
2006-08-21  Geoffrey Keating  
        PR debug/28692
        PR debug/28692
        * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
        * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
        complex values, nor for generic vector values.
        complex values, nor for generic vector values.
2006-08-22  Richard Guenther  
2006-08-22  Richard Guenther  
        PR middle-end/28776
        PR middle-end/28776
        * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
        * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
        parameter.  Convert arguments to arithmetic expression to the
        parameter.  Convert arguments to arithmetic expression to the
        chrecs type.
        chrecs type.
        (analyze_scalar_evolution_1): Adjust caller.
        (analyze_scalar_evolution_1): Adjust caller.
2006-08-22  Jan Hubicka  
2006-08-22  Jan Hubicka  
        Patch by Paolo Bonzini
        Patch by Paolo Bonzini
        * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
        * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
        my previous patch.
        my previous patch.
2006-08-22  Daniel Berlin  
2006-08-22  Daniel Berlin  
        PR tree-optimization/28003
        PR tree-optimization/28003
        * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
        * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
        before grouping aliases.
        before grouping aliases.
2006-08-22  Roger Sayle  
2006-08-22  Roger Sayle  
        * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
        * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
        if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
        if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
2006-08-21  Jason Merrill  
2006-08-21  Jason Merrill  
        PR c++/27115
        PR c++/27115
        * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
        * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
        wrapper.  Loop to handle nested wrappers.
        wrapper.  Loop to handle nested wrappers.
        (gimplify_bind_expr): Remove temp parameter.
        (gimplify_bind_expr): Remove temp parameter.
        (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
        (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
        and STATEMENT_LIST on the rhs.
        and STATEMENT_LIST on the rhs.
        (gimplify_statement_list): Voidify the STATEMENT_LIST.
        (gimplify_statement_list): Voidify the STATEMENT_LIST.
        (gimplify_expr): Pass pre_p to gimplify_statement_list.
        (gimplify_expr): Pass pre_p to gimplify_statement_list.
        (gimplify_target_expr): Remove special BIND_EXPR handling.
        (gimplify_target_expr): Remove special BIND_EXPR handling.
2006-08-21  J"orn Rennecke  
2006-08-21  J"orn Rennecke  
        * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
        * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
        #if !__SHMEDIA__ .
        #if !__SHMEDIA__ .
2006-08-21  Olivier Hainque  
2006-08-21  Olivier Hainque  
        * gimplify.c (gimplify_init_constructor) :
        * gimplify.c (gimplify_init_constructor) :
        Arrange for the temporary captures of components overlapping the lhs
        Arrange for the temporary captures of components overlapping the lhs
        to happen before the lhs is possibly cleared.
        to happen before the lhs is possibly cleared.
2006-08-21  Mark Shinwell  
2006-08-21  Mark Shinwell  
        * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
        * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
        necessary places to pass the correct "number of registers" values
        necessary places to pass the correct "number of registers" values
        to _Unwind_VRS_Pop.
        to _Unwind_VRS_Pop.
2006-08-20  Jan Hubicka  
2006-08-20  Jan Hubicka  
        * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
        * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
        (create_name_tags): Instead of quadratic checking use hashtable.
        (create_name_tags): Instead of quadratic checking use hashtable.
        * bitmap.h: Include hashtab.h.
        * bitmap.h: Include hashtab.h.
        (bitmap_hash): Declare.
        (bitmap_hash): Declare.
        * bitmap.c (bitmap_hash): New function.
        * bitmap.c (bitmap_hash): New function.
2006-08-20  Jan Hubicka  
2006-08-20  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
        * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
        twice.
        twice.
        * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
        * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
        * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
        * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
        (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
        (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
        cgraph_decide_inlining_incrementally): Update use of
        cgraph_decide_inlining_incrementally): Update use of
        cgraph_check_inline_limits.
        cgraph_check_inline_limits.
        * cgraph.c (edge_hash, edge_eq): New function.
        * cgraph.c (edge_hash, edge_eq): New function.
        (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
        (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
        cgraph_edge_remove_caller, cgraph_node_remove_callees,
        cgraph_edge_remove_caller, cgraph_node_remove_callees,
        cgraph_remove_node): Maintain call site hash.
        cgraph_remove_node): Maintain call site hash.
        * cgraph.h (struct cgraph_node): Add call_site_hash.
        * cgraph.h (struct cgraph_node): Add call_site_hash.
        (cgraph_set_call_stmt): New function.
        (cgraph_set_call_stmt): New function.
2006-08-20  Jan Hubicka  
2006-08-20  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * reload1.c (reg_has_output_reload): Turn into regset.
        * reload1.c (reg_has_output_reload): Turn into regset.
        (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
        (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
        choose_reload_regs, emit_reload_insns): Update to new
        choose_reload_regs, emit_reload_insns): Update to new
        reg_has_output_reload.
        reg_has_output_reload.
2006-08-20  Jan Hubicka  
2006-08-20  Jan Hubicka  
        PR middle-end/28779
        PR middle-end/28779
        * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
        * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
        function body sizes.
        function body sizes.
        * cgraphunit.c (cgraph_analyze_function): Don't do so.
        * cgraphunit.c (cgraph_analyze_function): Don't do so.
2006-08-20  Danny Smith  
2006-08-20  Danny Smith  
        PR target/28648 c:
        PR target/28648 c:
        * tree.c (handle_dll_attribute): Return early if not a
        * tree.c (handle_dll_attribute): Return early if not a
        var or function decl.
        var or function decl.
2006-08-18  Joseph Myers  
2006-08-18  Joseph Myers  
        PR target/27565
        PR target/27565
        * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
        * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
        alignment of SPE vector types.
        alignment of SPE vector types.
2006-08-18  Christophe Jaillet  
2006-08-18  Christophe Jaillet  
        * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
        * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
2006-08-17  Jakub Jelinek  
2006-08-17  Jakub Jelinek  
        PR c/28744
        PR c/28744
        * cgraph.h (struct cgraph_node): Remove externally_visible
        * cgraph.h (struct cgraph_node): Remove externally_visible
        bitfield.
        bitfield.
        * cgraphunit.c (process_function_and_variable_attributes): Set
        * cgraphunit.c (process_function_and_variable_attributes): Set
        local.externally_visible rather than externally_visible.
        local.externally_visible rather than externally_visible.
        PR c/28744
        PR c/28744
        * c-common.c (handle_externally_visible_attribute): First look
        * c-common.c (handle_externally_visible_attribute): First look
        at TREE_CODE and only if it is function or var decl, check for
        at TREE_CODE and only if it is function or var decl, check for
        non-public objects.  Don't warn for DECL_EXTERNAL.
        non-public objects.  Don't warn for DECL_EXTERNAL.
        * cgraphunit.c (process_function_and_variable_attributes): Warn
        * cgraphunit.c (process_function_and_variable_attributes): Warn
        if externally_visible attribute is used on non-public object.
        if externally_visible attribute is used on non-public object.
2006-08-17  Jan Hubicka  
2006-08-17  Jan Hubicka  
        PR tree-optimization/27865
        PR tree-optimization/27865
        * reload1.c (forget_marked_reloads): New function.
        * reload1.c (forget_marked_reloads): New function.
        (forget_old_reloads_1): When data are passed, just mark the registers
        (forget_old_reloads_1): When data are passed, just mark the registers
        for later removal.
        for later removal.
        (reload_as_needed): Use the new mechanizm.
        (reload_as_needed): Use the new mechanizm.
2006-08-17  Alexandre Oliva  
2006-08-17  Alexandre Oliva  
        PR target/28146
        PR target/28146
        * reload.h (reg_equiv_alt_mem_list): New declaration.
        * reload.h (reg_equiv_alt_mem_list): New declaration.
        * reload1.c (reg_equiv_alt_mem_list): New definition.
        * reload1.c (reg_equiv_alt_mem_list): New definition.
        (reload): Initialize it and release it.
        (reload): Initialize it and release it.
        (delete_output_reload): Use it.
        (delete_output_reload): Use it.
        * reload.c (push_reg_equiv_alt_mem): New function.
        * reload.c (push_reg_equiv_alt_mem): New function.
        (find_reloads_toplev): Call it.
        (find_reloads_toplev): Call it.
        (find_reloads_address, find_reloads_address_1): Likewise.
        (find_reloads_address, find_reloads_address_1): Likewise.
        (find_reloads_subreg_address): Likewise.
        (find_reloads_subreg_address): Likewise.
2006-08-17  Maxim Kuvyrkov  
2006-08-17  Maxim Kuvyrkov  
        PR rtl-optimization/28489
        PR rtl-optimization/28489
        * sched-ebb.c (begin_schedule_ready): Create basic block
        * sched-ebb.c (begin_schedule_ready): Create basic block
        at the right place.
        at the right place.
        (advance_target_bb): Skip empty blocks.
        (advance_target_bb): Skip empty blocks.
        * haifa-sched.c (bb_note): Make global.
        * haifa-sched.c (bb_note): Make global.
        * sched-int.h (bb_note): Add prototype.
        * sched-int.h (bb_note): Add prototype.
2006-08-16  Zdenek Dvorak 
2006-08-16  Zdenek Dvorak 
        PR tree-optimization/27865
        PR tree-optimization/27865
        * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
        * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
        for pointer types.
        for pointer types.
        * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
        * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
        fold_used_pointer, pointer_used_p): New functions.
        fold_used_pointer, pointer_used_p): New functions.
        (analyze_scalar_evolution_1): Use fold_used_pointer.
        (analyze_scalar_evolution_1): Use fold_used_pointer.
        * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
        * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
        * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
        * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
        for pointers.
        for pointers.
2006-08-17  Paolo Bonzini 
2006-08-17  Paolo Bonzini 
        PR c++/28573
        PR c++/28573
        * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
        * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
        or the INTEGER_CST.  Fail on a CALL_EXPR.
        or the INTEGER_CST.  Fail on a CALL_EXPR.
        (fold_offsetof): Pass new argument to fold_offsetof_1.
        (fold_offsetof): Pass new argument to fold_offsetof_1.
        * c-parser.c (c_parser_postfix_expression): Don't include a NULL
        * c-parser.c (c_parser_postfix_expression): Don't include a NULL
        operand into an INDIRECT_REF.
        operand into an INDIRECT_REF.
        * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
        * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
2006-08-16  Zdenek Dvorak 
2006-08-16  Zdenek Dvorak 
        PR gcov/profile/26570
        PR gcov/profile/26570
        * value-prof.c (static_values): Removed.
        * value-prof.c (static_values): Removed.
        (tree_find_values_to_profile): Do not set static_values.
        (tree_find_values_to_profile): Do not set static_values.
        (find_values_to_profile): Do not free static_values.
        (find_values_to_profile): Do not free static_values.
        * profile.c (instrument_values): Do not free the values.
        * profile.c (instrument_values): Do not free the values.
        (branch_prob): Free the values.
        (branch_prob): Free the values.
2006-08-16  Naveen.H.S  
2006-08-16  Naveen.H.S  
        * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
        * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
2006-08-16  Joseph S. Myers  
2006-08-16  Joseph S. Myers  
        PR c/27697
        PR c/27697
        * c-typeck.c (build_component_ref): Combine qualifiers of
        * c-typeck.c (build_component_ref): Combine qualifiers of
        structure or union and field.
        structure or union and field.
2006-08-16  Zdenek Dvorak 
2006-08-16  Zdenek Dvorak 
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
        * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
        * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
        * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
        * tree-into-ssa.c (struct dom_dfsnum): New.
        * tree-into-ssa.c (struct dom_dfsnum): New.
        (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
        (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
        functions.
        functions.
        (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
        (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
        compute_global_livein.
        compute_global_livein.
        (prepare_block_for_update, prepare_use_sites_for): Mark the uses
        (prepare_block_for_update, prepare_use_sites_for): Mark the uses
        in phi nodes in the correct blocks.
        in phi nodes in the correct blocks.
2006-08-16  Zdenek Dvorak 
2006-08-16  Zdenek Dvorak 
        PR tree-optimization/28364
        PR tree-optimization/28364
        * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
        * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
        correctly.
        correctly.
        (fold_affine_expr): New function.
        (fold_affine_expr): New function.
        (may_eliminate_iv): Use fold_affine_expr.
        (may_eliminate_iv): Use fold_affine_expr.
2006-08-16  Volker Reichelt  
2006-08-16  Volker Reichelt  
        PR c/27489
        PR c/27489
        * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
        * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
        Clean up.
        Clean up.
2006-08-16  Mike Stump  
2006-08-16  Mike Stump  
        * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
        * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
        * doc/cppopts.texi (-MD): Likewise.
        * doc/cppopts.texi (-MD): Likewise.
2006-08-15  Danny Smith  
2006-08-15  Danny Smith  
        PR c/28287
        PR c/28287
        * c-common.c (handle_weak_attribute): Ignore and warn if
        * c-common.c (handle_weak_attribute): Ignore and warn if
        not a FUNCTION_ or VAR_DECL.
        not a FUNCTION_ or VAR_DECL.
2006-07-15  Mike Stump  
2006-07-15  Mike Stump  
        PR c/28280
        PR c/28280
        * c-parser.c (c_parser_typeof_specifier): Don't use
        * c-parser.c (c_parser_typeof_specifier): Don't use
        c_finish_expr_stmt, open code desired semantics instead.
        c_finish_expr_stmt, open code desired semantics instead.
2006-08-15  Nick Clifton  
2006-08-15  Nick Clifton  
        * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
        * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
        fragment to tmake_file only if threads are enabled.
        fragment to tmake_file only if threads are enabled.
        * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
        * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
        * config/i386/t-gthr-win32: New file. ... here.
        * config/i386/t-gthr-win32: New file. ... here.
2006-08-15  Volker Reichelt  
2006-08-15  Volker Reichelt  
        PR c/28649
        PR c/28649
        * c-parser.c (c_parser_compound_statement_nostart): Reset
        * c-parser.c (c_parser_compound_statement_nostart): Reset
        parser->error after each statement.
        parser->error after each statement.
2006-08-15  Jakub Jelinek  
2006-08-15  Jakub Jelinek  
        PR middle-end/28713
        PR middle-end/28713
        * omp-low.c (lower_omp_parallel): Convert t to
        * omp-low.c (lower_omp_parallel): Convert t to
        receiver_decl's type.
        receiver_decl's type.
        (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
        (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
        source before comparison.
        source before comparison.
        PR middle-end/28724
        PR middle-end/28724
        * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
        * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
        to itype in assignment to oldival2.
        to itype in assignment to oldival2.
2006-07-14  Andrew Pinski  
2006-07-14  Andrew Pinski  
        PR c/27490
        PR c/27490
        PR c/27489
        PR c/27489
        * c-typeck.c (build_compound_expr): If the second expression
        * c-typeck.c (build_compound_expr): If the second expression
        is an error mark, then just return an error mark instead of
        is an error mark, then just return an error mark instead of
        creating a COMPOUND_EXPR.
        creating a COMPOUND_EXPR.
2006-07-14  Mike Stump  
2006-07-14  Mike Stump  
        * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
        * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
2006-08-14  Kazu Hirata  
2006-08-14  Kazu Hirata  
        * c-decl.c, var-tracking.c: Fix comment typos.
        * c-decl.c, var-tracking.c: Fix comment typos.
2006-08-14  Richard Sandiford  
2006-08-14  Richard Sandiford  
        PR rtl-optimization/28634
        PR rtl-optimization/28634
        * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
        * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
        for floating-point modes unless flag_unsafe_math_optimizations.
        for floating-point modes unless flag_unsafe_math_optimizations.
2006-08-13  Alexandre Oliva  
2006-08-13  Alexandre Oliva  
            Andrew Pinski  
            Andrew Pinski  
        PR c/27184
        PR c/27184
        * tree.c (build_array_type): Unify array types with
        * tree.c (build_array_type): Unify array types with
        unspecified index_type.
        unspecified index_type.
        * c-decl.c (grokdeclarator): Make sure we do not modify a
        * c-decl.c (grokdeclarator): Make sure we do not modify a
        unified incomplete array type.
        unified incomplete array type.
        * c-typeck.c (store_init_value): Create distinct type before
        * c-typeck.c (store_init_value): Create distinct type before
        filling in the index type in an initializer from a compound
        filling in the index type in an initializer from a compound
        literal.
        literal.
        * c-decl.c (grokdeclarator): Remove code where we copy the
        * c-decl.c (grokdeclarator): Remove code where we copy the
        array type over.
        array type over.
2006-08-13  Andrew Pinski  
2006-08-13  Andrew Pinski  
        * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
        * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
        into account for TODO_dump_cgraph.
        into account for TODO_dump_cgraph.
        (TODO_update_ssa_no_phi): Likewise.
        (TODO_update_ssa_no_phi): Likewise.
        (TODO_update_ssa_full_phi): Likewise.
        (TODO_update_ssa_full_phi): Likewise.
        (TODO_update_ssa_only_virtuals): Likewise.
        (TODO_update_ssa_only_virtuals): Likewise.
        (TODO_remove_unused_locals): Likewise.
        (TODO_remove_unused_locals): Likewise.
        (TODO_set_props): Likewise.
        (TODO_set_props): Likewise.
        (TODO_update_stmt_usage): Likewise.
        (TODO_update_stmt_usage): Likewise.
2006-08-13  Dirk Mueller  
2006-08-13  Dirk Mueller  
        * c-common.c (strict_aliasing_warning): Fix formatting.
        * c-common.c (strict_aliasing_warning): Fix formatting.
2006-08-13  Matthias Klose  
2006-08-13  Matthias Klose  
        * doc/invoke.texi: Fix spelling errors.
        * doc/invoke.texi: Fix spelling errors.
2006-08-11  Eric Botcazou  
2006-08-11  Eric Botcazou  
        PR rtl-optimization/23454
        PR rtl-optimization/23454
        * reorg.c (relax_delay_slots): Update comment.
        * reorg.c (relax_delay_slots): Update comment.
2006-08-11  Richard Guenther  
2006-08-11  Richard Guenther  
        PR middle-end/28651
        PR middle-end/28651
        * simplify-rtx.c (simplify_const_relational_operation):
        * simplify-rtx.c (simplify_const_relational_operation):
        Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
        Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
        codes.
        codes.
2006-08-10  Eric Botcazou  
2006-08-10  Eric Botcazou  
        * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
        * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
        TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
        TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
2006-08-10  Paul Brook  
2006-08-10  Paul Brook  
        * final.c (final_scan_insn): Clear current_insn_predicate before
        * final.c (final_scan_insn): Clear current_insn_predicate before
        outputting inline asm.
        outputting inline asm.
2006-08-10  Dorit Nuzman  
2006-08-10  Dorit Nuzman  
        PR tree-optimization/26197
        PR tree-optimization/26197
        * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
        * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
        get_ref_base_and_extent and overlap_subvar to add only relevant
        get_ref_base_and_extent and overlap_subvar to add only relevant
        subvars as may-aliases.
        subvars as may-aliases.
        (add_may_alias_for_new_tag): New function, factored out of
        (add_may_alias_for_new_tag): New function, factored out of
        new_type_alias.
        new_type_alias.
        * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
        * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
        with additional argument.
        with additional argument.
        * tree-flow.h (new_type_alias): Takes additional argument.
        * tree-flow.h (new_type_alias): Takes additional argument.
2006-08-09  Nathan Sidwell  
2006-08-09  Nathan Sidwell  
        * gcov.c (no_data_file): New flag.
        * gcov.c (no_data_file): New flag.
        (read_count_file): Set it if data file not present.  Assume counts
        (read_count_file): Set it if data file not present.  Assume counts
        zero if not found.
        zero if not found.
        (output_lines): Don't name the data file, if there wasn't one.
        (output_lines): Don't name the data file, if there wasn't one.
2006-08-09  Eric Botcazou  
2006-08-09  Eric Botcazou  
        * config/rs6000/rs6000.c (print_operand) : Fix comment and adjust.
        * config/rs6000/rs6000.c (print_operand) : Fix comment and adjust.
        (rs6000_generate_compare): Tweak comments.
        (rs6000_generate_compare): Tweak comments.
        * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
        * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
2006-08-09  Alexandre Oliva  
2006-08-09  Alexandre Oliva  
        * var-tracking.c (enum micro_operation_type): Add MO_COPY.
        * var-tracking.c (enum micro_operation_type): Add MO_COPY.
        (var_debug_decl): New function.
        (var_debug_decl): New function.
        (var_reg_set): Follow debug decl link.  Add location even if
        (var_reg_set): Follow debug decl link.  Add location even if
        reg is already known to hold some other variable.
        reg is already known to hold some other variable.
        (var_mem_set): Follow debug decl link.
        (var_mem_set): Follow debug decl link.
        (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
        (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
        decl link.  Delete other known locations of the variable part
        decl link.  Delete other known locations of the variable part
        if requested.
        if requested.
        (var_reg_delete, var_mem_delete): Delete other known locations
        (var_reg_delete, var_mem_delete): Delete other known locations
        of the variable part if requested.
        of the variable part if requested.
        (same_variable_part_p): New function.
        (same_variable_part_p): New function.
        (add_stores): Select MO_COPY when appropriate.
        (add_stores): Select MO_COPY when appropriate.
        (vt_initialize): Handle it.
        (vt_initialize): Handle it.
        (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
        (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
        known locations for MO_SET and MO_CLOBBER.
        known locations for MO_SET and MO_CLOBBER.
        (find_variable_location_part): New function.
        (find_variable_location_part): New function.
        (set_variable_part, delete_variable_part): Use it.
        (set_variable_part, delete_variable_part): Use it.
        (clobber_variable_part): New function.
        (clobber_variable_part): New function.
        * dwarf2out.c (dwarf2out_var_location): Do not follow debug
        * dwarf2out.c (dwarf2out_var_location): Do not follow debug
        decl link.
        decl link.
2006-08-07  Victor Kaplansky 
2006-08-07  Victor Kaplansky 
        PR tree-optimization/26969
        PR tree-optimization/26969
        * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
        * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
        with an empty list of PHIs.
        with an empty list of PHIs.
2006-08-06  Paolo Bonzini  
2006-08-06  Paolo Bonzini  
        PR target/27827
        PR target/27827
        * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
        * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
        instructions.
        instructions.
2006-08-06  Andreas Schwab  
2006-08-06  Andreas Schwab  
        * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
        * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
        string.  Whitespace and comment fixup.
        string.  Whitespace and comment fixup.
2006-08-05  Volker Reichelt  
2006-08-05  Volker Reichelt  
        PR c/28502
        PR c/28502
        * c-decl.c (validate_proto_after_old_defn): Return false on invalid
        * c-decl.c (validate_proto_after_old_defn): Return false on invalid
        argument.
        argument.
        PR c/27721
        PR c/27721
        * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
        * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
        PR c/28136
        PR c/28136
        * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
        * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
2006-08-04  Jan Hubicka  
2006-08-04  Jan Hubicka  
        PR target/26655
        PR target/26655
        PR target/28270
        PR target/28270
        * reload.c (push_reload): Patch out the mismatching instruction;
        * reload.c (push_reload): Patch out the mismatching instruction;
        return early.
        return early.
        (find_reload): Bail out if the instruction was patched out.
        (find_reload): Bail out if the instruction was patched out.
2006-08-04  Jan Hubicka  
2006-08-04  Jan Hubicka  
        PR tree-optimization/24888
        PR tree-optimization/24888
        * tree-inline.c (expand_call_inline): Do not re-record variables.
        * tree-inline.c (expand_call_inline): Do not re-record variables.
        (declare_inline_vars): Add variable to unexpanded_var_list.
        (declare_inline_vars): Add variable to unexpanded_var_list.
2006-08-04  John David Anglin  
2006-08-04  John David Anglin  
            Roger Sayle  
            Roger Sayle  
        PR rtl-optimization/26244
        PR rtl-optimization/26244
        * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
        * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
        inner_const are negative or greater than or equal to the bitsize of
        inner_const are negative or greater than or equal to the bitsize of
        MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
        MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
        Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
        Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
        Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
        Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
        CONST0_RTX (mode) when the new shift count is greater than or equal to
        CONST0_RTX (mode) when the new shift count is greater than or equal to
        to the bitsize of the object being shifted and XEXP (y, 0) has no side
        to the bitsize of the object being shifted and XEXP (y, 0) has no side
        effects.
        effects.
2006-08-04  Kazu Hirata  
2006-08-04  Kazu Hirata  
        * tree-cfg.c: Fix a comment typo.
        * tree-cfg.c: Fix a comment typo.
2006-08-03  Mark Mitchell  
2006-08-03  Mark Mitchell  
        PR c++/28148
        PR c++/28148
        * varasm.c (output_constant): Give the front end another chance to
        * varasm.c (output_constant): Give the front end another chance to
        expand constants, after stripping NOPs.
        expand constants, after stripping NOPs.
2006-08-03  Jan Hubicka  
2006-08-03  Jan Hubicka  
        * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
        * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
        implementation.
        implementation.
2006-08-03  Dorit Nuzman  
2006-08-03  Dorit Nuzman  
        PR tree-optimization/27770
        PR tree-optimization/27770
        * tree-vectorizer.h (get_vectype_for_scalar_type): Function
        * tree-vectorizer.h (get_vectype_for_scalar_type): Function
        declaration removed (moved to tree-flow.h).
        declaration removed (moved to tree-flow.h).
        (vect_can_force_dr_alignment_p): Likewise.
        (vect_can_force_dr_alignment_p): Likewise.
        * tree-flow.h (get_vectype_for_scalar_type): New function declaration
        * tree-flow.h (get_vectype_for_scalar_type): New function declaration
        (moved from tree-vectorizer.h).
        (moved from tree-vectorizer.h).
        (vect_can_force_dr_alignment_p): Likewise.
        (vect_can_force_dr_alignment_p): Likewise.
        * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
        * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
        from outside the vectorizer - in particular from cgraph stage.
        from outside the vectorizer - in particular from cgraph stage.
        * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
        * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
        the alignment of global arrays when -fsection-anchors is enabled.
        the alignment of global arrays when -fsection-anchors is enabled.
        * cgraphunit.c (cgraph_increase_alignment): New function.
        * cgraphunit.c (cgraph_increase_alignment): New function.
        (cgraph_optimize): Call cgraph_increase_alignment.
        (cgraph_optimize): Call cgraph_increase_alignment.
2006-08-03  David Edelsohn  
2006-08-03  David Edelsohn  
        PR target/27566
        PR target/27566
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
        not reload a SPE symbol_ref into a lo_sum address.
        not reload a SPE symbol_ref into a lo_sum address.
2006-08-02  Daniel Jacobowitz  
2006-08-02  Daniel Jacobowitz  
        PR debug/28063
        PR debug/28063
        * dwarf2out.c (prune_unused_types_prune): Move call to
        * dwarf2out.c (prune_unused_types_prune): Move call to
        prune_unused_types_update_strings to cover the parent DIE also.
        prune_unused_types_update_strings to cover the parent DIE also.
2006-08-02  Jan Hubicka  
2006-08-02  Jan Hubicka  
        PR gcov/profile/28480
        PR gcov/profile/28480
        * tree-cfg.c (change_bb_for_stmt): New function.
        * tree-cfg.c (change_bb_for_stmt): New function.
        (tree_merge_blocks, tree_split_blocks): Use it.
        (tree_merge_blocks, tree_split_blocks): Use it.
2006-08-01  Volker Reichelt  
2006-08-01  Volker Reichelt  
        PR c++/28250
        PR c++/28250
        PR c++/28257
        PR c++/28257
        PR c++/28259
        PR c++/28259
        PR c++/28267
        PR c++/28267
        * toplev.c (compile_file): Return early on errorcount or sorrycount.
        * toplev.c (compile_file): Return early on errorcount or sorrycount.
        * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
        * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
        (cgraph_optimize): Likewise.
        (cgraph_optimize): Likewise.
2006-08-01  Stuart Hastings  
2006-08-01  Stuart Hastings  
        * rtl.h (UINTVAL) New.
        * rtl.h (UINTVAL) New.
        * config/rs6000/rs6000.c (SMALL_INT) Use it.
        * config/rs6000/rs6000.c (SMALL_INT) Use it.
        * testsuite/gcc.dg/20060801-1.c: New.
        * testsuite/gcc.dg/20060801-1.c: New.
2006-08-01  Daniel Jacobowitz  
2006-08-01  Daniel Jacobowitz  
        PR debug/23336
        PR debug/23336
        * c-typeck.c (build_external_type): Mark used enum types.
        * c-typeck.c (build_external_type): Mark used enum types.
        * dwarf2out.c (dwarf2out_abstract_function): Save and restore
        * dwarf2out.c (dwarf2out_abstract_function): Save and restore
        cfun also.
        cfun also.
        (gen_subprogram_die): Whitespace fix.
        (gen_subprogram_die): Whitespace fix.
2006-08-01  Jan Hubicka  
2006-08-01  Jan Hubicka  
        * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
        * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
        bitmap when not needed.
        bitmap when not needed.
        * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
        * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
        bitmaps.
        bitmaps.
2006-08-01  Dirk Mueller  
2006-08-01  Dirk Mueller  
        * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
        * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
2006-07-31  Volker Reichelt  
2006-07-31  Volker Reichelt  
        * Makefile.in: Revert part of previous patch:
        * Makefile.in: Revert part of previous patch:
        Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
        Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
        and REGS_H.
        and REGS_H.
2006-07-30  Eric Christopher  
2006-07-30  Eric Christopher  
        PR target/27543
        PR target/27543
        * doc/extend.texi (i386 Variable Attributes): Add anchor.
        * doc/extend.texi (i386 Variable Attributes): Add anchor.
        (PowerPC Variable Attributes): New section.
        (PowerPC Variable Attributes): New section.
2006-07-30  Atsushi Nemoto  
2006-07-30  Atsushi Nemoto  
        PR target/28126 (partial fix)
        PR target/28126 (partial fix)
        * config/mips/mips.md (tls_get_tp_): Set can_delay to no.
        * config/mips/mips.md (tls_get_tp_): Set can_delay to no.
2006-07-28  Jan Hubicka  
2006-07-28  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * cfgrtl.c (rtl_delete_block): Free regsets.
        * cfgrtl.c (rtl_delete_block): Free regsets.
        * flow.c (allocate_bb_life_data): Re-use regsets if available.
        * flow.c (allocate_bb_life_data): Re-use regsets if available.
2006-07-28  Volker Reichelt  
2006-07-28  Volker Reichelt  
        * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
        * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
        and variables used in dependencies.
        and variables used in dependencies.
2006-07-27  Arjan van de Ven 
2006-07-27  Arjan van de Ven 
        * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
        * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
        %fs for -mcmodel=kernel.
        %fs for -mcmodel=kernel.
        (stack_tls_protect_test_di): Likewise.
        (stack_tls_protect_test_di): Likewise.
2006-07-27  Carlos O'Donell  
2006-07-27  Carlos O'Donell  
        * Makefile.in: Use mkinstalldirs.
        * Makefile.in: Use mkinstalldirs.
2006-07-27  H.J. Lu  
2006-07-27  H.J. Lu  
        PR driver/28437
        PR driver/28437
        * opts-common.c (prune_options): Skip joined switches.
        * opts-common.c (prune_options): Skip joined switches.
2006-07-27  Jan Hubicka  
2006-07-27  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * cselib.c (cselib_process_insn): Don't remove useless values too
        * cselib.c (cselib_process_insn): Don't remove useless values too
        often for very large hashtables.
        often for very large hashtables.
2006-07-27  Jan Hubicka  
2006-07-27  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * global.c (greg_obstack): New obstack.
        * global.c (greg_obstack): New obstack.
        (allocate_bb_info): Use it.
        (allocate_bb_info): Use it.
        (free_bb_info): Likewise.
        (free_bb_info): Likewise.
        (modify_reg_pav): Likewise.
        (modify_reg_pav): Likewise.
2006-07-27  Roger Sayle  
2006-07-27  Roger Sayle  
        * builtins.c (fold_fixed_mathfn): When long and long long are the
        * builtins.c (fold_fixed_mathfn): When long and long long are the
        same size, canonicalize llceil*, llfloor*, llround* and llrint*
        same size, canonicalize llceil*, llfloor*, llround* and llrint*
        functions to their lceil*, lfloor*, lround* and lrint* forms.
        functions to their lceil*, lfloor*, lround* and lrint* forms.
2006-07-27  Kazuhiro Inaoka  
2006-07-27  Kazuhiro Inaoka  
        PR gcc/28508
        PR gcc/28508
        * config/m32r/m32r.md (branch_insn): Reduce pc range for short
        * config/m32r/m32r.md (branch_insn): Reduce pc range for short
        branch.
        branch.
        (rev_branch_insn): Likewise.
        (rev_branch_insn): Likewise.
2006-07-27  Jan Hubicka  
2006-07-27  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
        * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
        (reg_set_in_bb, max_reg_computed): New static variables.
        (reg_set_in_bb, max_reg_computed): New static variables.
        (regmove_optimize): Free the new array.
        (regmove_optimize): Free the new array.
        (fixup_match_1): Update call of reg_is_remote_constant_p.
        (fixup_match_1): Update call of reg_is_remote_constant_p.
2006-07-26  Jan Hubicka  
2006-07-26  Jan Hubicka  
        PR tree-optimization/27882
        PR tree-optimization/27882
        * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
        * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
        and decl fields.
        and decl fields.
        * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
        * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
        next pointer
        next pointer
        (cgraph_analyze_compilation_unit): Likewise.
        (cgraph_analyze_compilation_unit): Likewise.
        * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
        * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
        * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
        * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
        (cgraph_early_inlinine): Make order garbage collected.
        (cgraph_early_inlinine): Make order garbage collected.
        * Makefile.in (gt-ipa-inline): New garbagecollected file.
        * Makefile.in (gt-ipa-inline): New garbagecollected file.
2006-07-26  Daniel Jacobowitz  
2006-07-26  Daniel Jacobowitz  
        * dbxout.c (output_types_sort): Add a comment.
        * dbxout.c (output_types_sort): Add a comment.
        (output_used_types): Free the VEC.
        (output_used_types): Free the VEC.
2006-07-26  Daniel Jacobowitz  
2006-07-26  Daniel Jacobowitz  
        * function.c (reorder_fix_fragments): Delete.
        * function.c (reorder_fix_fragments): Delete.
        (reorder_blocks): Don't call it.
        (reorder_blocks): Don't call it.
        (reorder_blocks_1): Put all subblocks under the origin block.
        (reorder_blocks_1): Put all subblocks under the origin block.
2006-07-26  Zdenek Dvorak 
2006-07-26  Zdenek Dvorak 
        PR rtl-optimization/27907
        PR rtl-optimization/27907
        * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
        * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
        FLOAT_TRUNCATE.
        FLOAT_TRUNCATE.
2006-07-25  Roger Sayle  
2006-07-25  Roger Sayle  
        PR middle-end/28473
        PR middle-end/28473
        * convert.c (convert_to_integer): When transforming (T)foo(x) into
        * convert.c (convert_to_integer): When transforming (T)foo(x) into
        bar(x) check that bar's result type can represent all the values of T.
        bar(x) check that bar's result type can represent all the values of T.
2006-07-25  Zdenek Dvorak 
2006-07-25  Zdenek Dvorak 
        * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
        * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
2006-07-25  Nick Clifton  
2006-07-25  Nick Clifton  
        * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
        * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
        size_lookup[] array.
        size_lookup[] array.
        (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
        (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
        (ggc_pch_count_object): Likewise.
        (ggc_pch_count_object): Likewise.
        (ggc_pch_alloc_object): Likewise.
        (ggc_pch_alloc_object): Likewise.
        (ggc_pch_write_object): Likewise.
        (ggc_pch_write_object): Likewise.
        (init_ggc): Do not attempt to initialize entries in the
        (init_ggc): Do not attempt to initialize entries in the
        size_lookup[] array for objects whose size is greater than than
        size_lookup[] array for objects whose size is greater than than
        the length of the array.
        the length of the array.
2006-07-25  Daniel Jacobowitz  
2006-07-25  Daniel Jacobowitz  
        * dbxout.c (output_used_types_helper): Push queued types
        * dbxout.c (output_used_types_helper): Push queued types
        on a VEC.
        on a VEC.
        (output_types_sort): New.
        (output_types_sort): New.
        (output_used_types): Collect used types on a VEC and sort them
        (output_used_types): Collect used types on a VEC and sort them
        before emission.
        before emission.
2006-07-24  Richard Guenther  
2006-07-24  Richard Guenther  
        PR middle-end/28463
        PR middle-end/28463
        * cgraph.c (cgraph_remove_node): Do not check if dumps
        * cgraph.c (cgraph_remove_node): Do not check if dumps
        are enabled.
        are enabled.
        * cgraphunit.c (cgraph_optimize): Likewise.
        * cgraphunit.c (cgraph_optimize): Likewise.
2006-07-24  Jan Hubicka  
2006-07-24  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
        * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
        * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
        * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
        splitting before first stmt.
        splitting before first stmt.
2006-07-24  Jan Hubicka  
2006-07-24  Jan Hubicka  
        PR rtl-optimization/28071
        PR rtl-optimization/28071
        * ipa-inline.c (update_caller_keys): Remove edges that
        * ipa-inline.c (update_caller_keys): Remove edges that
        are no longer inline candidates.
        are no longer inline candidates.
2006-07-23  Daniel Jacobowitz  
2006-07-23  Daniel Jacobowitz  
        PR debug/27473
        PR debug/27473
        * dbxout.c (output_used_types_helper, output_used_types): New.
        * dbxout.c (output_used_types_helper, output_used_types): New.
        (dbxout_symbol): Call output_used_types.
        (dbxout_symbol): Call output_used_types.
2006-07-23  Jan Hubicka  
2006-07-23  Jan Hubicka  
        PR c/25795
        PR c/25795
        PR c++/27369
        PR c++/27369
        * cgraph.c (cgraph_varpool_nodes): Export.
        * cgraph.c (cgraph_varpool_nodes): Export.
        (decide_is_variable_needed): Ignored "used" attribute in
        (decide_is_variable_needed): Ignored "used" attribute in
        unit-at-a-time mode.
        unit-at-a-time mode.
        * cgraph.h (cgraph_varpool_nodes): Declare.
        * cgraph.h (cgraph_varpool_nodes): Declare.
        * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
        * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
        unit-at-a-time mode.
        unit-at-a-time mode.
2006-07-23  Roger Sayle  
2006-07-23  Roger Sayle  
        PR target/28247
        PR target/28247
        * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
        * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
        mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
        mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
        the __gthrw form of thr_keycreate.
        the __gthrw form of thr_keycreate.
        (__gthread_key_delete): Silence the unused argument warning.
        (__gthread_key_delete): Silence the unused argument warning.
2006-07-23  Steven Bosscher  
2006-07-23  Steven Bosscher  
        PR debug/25468
        PR debug/25468
        * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
        * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
        Cache the last found '\0' marker to avoid quadratic behavior.
        Cache the last found '\0' marker to avoid quadratic behavior.
2006-07-23  Jan Hubicka  
2006-07-23  Jan Hubicka  
        * i386.md (subsi_3_zext): Fix output template.
        * i386.md (subsi_3_zext): Fix output template.
2006-07-21  Mike Stump  
2006-07-21  Mike Stump  
        * doc/invoke.texi (C++ Dialect Options): Note that
        * doc/invoke.texi (C++ Dialect Options): Note that
        -fvisibility-inlines-hidden doesn't affect explicitly
        -fvisibility-inlines-hidden doesn't affect explicitly
        instantiationed inline methods.
        instantiationed inline methods.
2006-07-20  Roger Sayle  
2006-07-20  Roger Sayle  
        * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
        * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
        if the target assembler is GNU binutils' gas.
        if the target assembler is GNU binutils' gas.
        * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
        * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
        whether to pass GNU gas or native as command line options.
        whether to pass GNU gas or native as command line options.
2006-07-20  Jason Merrill  
2006-07-20  Jason Merrill  
        * tree.c (remove_attribute): New fn.
        * tree.c (remove_attribute): New fn.
        * tree.h: Declare it.
        * tree.h: Declare it.
2006-07-20  Paul Brook  
2006-07-20  Paul Brook  
        PR 27363
        PR 27363
        * cse.c (cse_insn): Add destination addresses to hash table. Check if
        * cse.c (cse_insn): Add destination addresses to hash table. Check if
        they are invalidated by this instruction.
        they are invalidated by this instruction.
2006-07-21  Danny Smith  
2006-07-21  Danny Smith  
        PR target/28427
        PR target/28427
        * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
        * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
2006-07-20  Eric Christopher  
2006-07-20  Eric Christopher  
        PR target/26877
        PR target/26877
        * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
        * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
2006-07-19  Eric Christopher  
2006-07-19  Eric Christopher  
        * config/t-slibgcc-darwin (stmp-lipo): Remove.
        * config/t-slibgcc-darwin (stmp-lipo): Remove.
        Rewrite dependencies for libgcc_s.1.dylib.
        Rewrite dependencies for libgcc_s.1.dylib.
2006-07-19  Jakub Jelinek  
2006-07-19  Jakub Jelinek  
        * except.c (duplicate_eh_regions_1): Clear next_peer.
        * except.c (duplicate_eh_regions_1): Clear next_peer.
2006-07-17  Nathan Sidwell  
2006-07-17  Nathan Sidwell  
        * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
        * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
        -mlongcall does not guarantee all calls will be long.
        -mlongcall does not guarantee all calls will be long.
        * doc/extend.texi (long_call/short_call): Document that longcall
        * doc/extend.texi (long_call/short_call): Document that longcall
        does not guarantee a long call will be used.
        does not guarantee a long call will be used.
        (longcall/shortcall): Likewise.
        (longcall/shortcall): Likewise.
2006-07-18  Roger Sayle  
2006-07-18  Roger Sayle  
        PR middle-end/28283
        PR middle-end/28283
        * expmed.c (expand_shift): Additionally check that the shift_cost
        * expmed.c (expand_shift): Additionally check that the shift_cost
        is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
        is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
        before implementing a LSHIFT_EXPR as a sequence of additions.
        before implementing a LSHIFT_EXPR as a sequence of additions.
        * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
        * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
        middle-end that DImode shifts need to be synthesized by expand.
        middle-end that DImode shifts need to be synthesized by expand.
2006-07-18  Diego Novillo  
2006-07-18  Diego Novillo  
        PR 28410
        PR 28410
        * tree-ssa-operands.c (access_can_touch_variable): Update
        * tree-ssa-operands.c (access_can_touch_variable): Update
        comment.
        comment.
        Return true if ALIAS is .GLOBAL_VAR.
        Return true if ALIAS is .GLOBAL_VAR.
2006-07-18  David Daney  
2006-07-18  David Daney  
        * gcc.c (display_help): Fix typo in help text.
        * gcc.c (display_help): Fix typo in help text.
2006-07-18  Olivier Hainque  
2006-07-18  Olivier Hainque  
        * tree.h (categorize_ctor_elements): Adjust prototype and add
        * tree.h (categorize_ctor_elements): Adjust prototype and add
        descriptive comment, both in accordance with the interface change
        descriptive comment, both in accordance with the interface change
        described below.
        described below.
        * varasm.c (constructor_static_from_elts_p): New function.
        * varasm.c (constructor_static_from_elts_p): New function.
        Whether a constructor node is a valid static constant initializer
        Whether a constructor node is a valid static constant initializer
        if all its elements are.
        if all its elements are.
        (initializer_constant_valid_p) : Use it.
        (initializer_constant_valid_p) : Use it.
        * output.h: Declare it.
        * output.h: Declare it.
        * expr.c (categorize_ctor_elements_1): Return whether the constructor
        * expr.c (categorize_ctor_elements_1): Return whether the constructor
        is a valid constant initializer instead of computing the number of
        is a valid constant initializer instead of computing the number of
        non-constant elements.  Use constructor_static_from_elts_p for this
        non-constant elements.  Use constructor_static_from_elts_p for this
        purpose.  Replace the head comment with an indication that this is a
        purpose.  Replace the head comment with an indication that this is a
        helper for categorize_ctor_elements.
        helper for categorize_ctor_elements.
        (categorize_ctor_elements): Same interface change as for the _1
        (categorize_ctor_elements): Same interface change as for the _1
        helper.  Former head comment from this helper moved here, adjusted to
        helper.  Former head comment from this helper moved here, adjusted to
        account for the interface changes.
        account for the interface changes.
        (mostly_zeros_p): Adjust call to categorize_ctor_elements.
        (mostly_zeros_p): Adjust call to categorize_ctor_elements.
        (all_zeros_p): Likewise.
        (all_zeros_p): Likewise.
        * gimplify.c (gimplify_init_constructor): Decide whether we can make
        * gimplify.c (gimplify_init_constructor): Decide whether we can make
        static versions of the constructor from the categorize_ctor_elements
        static versions of the constructor from the categorize_ctor_elements
        return value instead of the formerly computed number of non-constant
        return value instead of the formerly computed number of non-constant
        elements.
        elements.
2006-07-18  Paolo Bonzini  
2006-07-18  Paolo Bonzini  
        * configure: Regenerate.
        * configure: Regenerate.
        * Makefile.in (build_libsubdir): New configure substitution
        * Makefile.in (build_libsubdir): New configure substitution
        (build_libobjdir): New variable.
        (build_libobjdir): New variable.
        (BUILD_LIBIBERTY): Use it.
        (BUILD_LIBIBERTY): Use it.
2006-07-18  Volker Reichelt  
2006-07-18  Volker Reichelt  
        PR c/28286
        PR c/28286
        * c-pragma.c (handle_pragma_pack): Handle invalid constants.
        * c-pragma.c (handle_pragma_pack): Handle invalid constants.
2006-07-18  Alexandre Oliva  
2006-07-18  Alexandre Oliva  
        PR c/26993
        PR c/26993
        * c-common.c (handle_weakref_attribute): Ignore attribute in
        * c-common.c (handle_weakref_attribute): Ignore attribute in
        the same conditions the alias attribute is ignored.
        the same conditions the alias attribute is ignored.
2006-07-17  Carlos O'Donell  
2006-07-17  Carlos O'Donell  
        * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
        * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
        (dbxout_begin_prologue): Increment scope_labelno.
        (dbxout_begin_prologue): Increment scope_labelno.
2006-07-17  Richard Henderson  
2006-07-17  Richard Henderson  
        PR 27889
        PR 27889
        * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
        * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
        if needed.
        if needed.
2006-07-17  Roger Sayle  
2006-07-17  Roger Sayle  
            Rainer Orth  
            Rainer Orth  
        * config/i386/gmon-sol2.c: Silence compilation warnings by partially
        * config/i386/gmon-sol2.c: Silence compilation warnings by partially
        synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
        synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
        blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
        blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
        functions such as sbrk, write, etc..  Add function prototypes.
        functions such as sbrk, write, etc..  Add function prototypes.
        Convert function declarations from K&R to ISO C.  Cast pointers
        Convert function declarations from K&R to ISO C.  Cast pointers
        to "long" and "unsigned long" instead of "int" and "unsigned int".
        to "long" and "unsigned long" instead of "int" and "unsigned int".
        Convert tokens following #endif into comments.
        Convert tokens following #endif into comments.
2006-07-17  Toon Moene  
2006-07-17  Toon Moene  
        * invoke.texi: Remove mention of f77; Reformat table for
        * invoke.texi: Remove mention of f77; Reformat table for
        inline parameter options correctly; mention that -malign-double
        inline parameter options correctly; mention that -malign-double
        is default on x86-64 targets.
        is default on x86-64 targets.
2006-07-17  Zdenek Dvorak 
2006-07-17  Zdenek Dvorak 
        * tree-chrec.c (avoid_arithmetics_in_type_p): New.
        * tree-chrec.c (avoid_arithmetics_in_type_p): New.
        (convert_affine_scev, chrec_convert_aggressive): Use
        (convert_affine_scev, chrec_convert_aggressive): Use
        avoid_arithmetics_in_type_p.  Do not check for the subtypes
        avoid_arithmetics_in_type_p.  Do not check for the subtypes
        separately.
        separately.
2006-07-17  Richard Sandiford  
2006-07-17  Richard Sandiford  
        PR middle-end/28403
        PR middle-end/28403
        * optabs.c (expand_doubleword_shift): Wrap the call to
        * optabs.c (expand_doubleword_shift): Wrap the call to
        do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
        do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
2006-07-17  Richard Sandiford  
2006-07-17  Richard Sandiford  
        PR middle-end/28402
        PR middle-end/28402
        * optabs.c (expand_binop): Pass next_methods rather than methods
        * optabs.c (expand_binop): Pass next_methods rather than methods
        to expand_doubleword_shift.
        to expand_doubleword_shift.
2006-07-17  J"orn Rennecke  
2006-07-17  J"orn Rennecke  
        PR other/28251
        PR other/28251
        * tree.h (dump_addr): Declare.
        * tree.h (dump_addr): Declare.
        * print-tree.c (dump_addr): New function.
        * print-tree.c (dump_addr): New function.
        (print_node_brief, print_node): Use it.
        (print_node_brief, print_node): Use it.
        * print-rtl.c (print_rtx): Likewise.
        * print-rtl.c (print_rtx): Likewise.
        * common.opt (-fdump-noaddr): New option.
        * common.opt (-fdump-noaddr): New option.
        * doc/invoke.texi (-fdump-noaddr): Document.
        * doc/invoke.texi (-fdump-noaddr): Document.
        * loop-unroll.c (si_info_hash): Make hash independent of addresses.
        * loop-unroll.c (si_info_hash): Make hash independent of addresses.
        (ve_info_hash): Likewise.
        (ve_info_hash): Likewise.
2006-07-13  Andrew Haley  
2006-07-13  Andrew Haley  
        PR tree-optimization/19505
        PR tree-optimization/19505
        * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
        * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
        edge leaving this block, make sure that the destination of this
        edge leaving this block, make sure that the destination of this
        block has only one predecessor.
        block has only one predecessor.
2006-07-17  Richard Guenther  
2006-07-17  Richard Guenther  
        PR tree-optimization/28238
        PR tree-optimization/28238
        * tree-inline.c (copy_bb): Check if we produced valid
        * tree-inline.c (copy_bb): Check if we produced valid
        gimple copying and substituting a stmt.  If not, gimplify
        gimple copying and substituting a stmt.  If not, gimplify
        it.
        it.
2006-07-16  Eric Botcazou  
2006-07-16  Eric Botcazou  
        * optabs.c (maybe_encapsulate_block): New function extracted from...
        * optabs.c (maybe_encapsulate_block): New function extracted from...
        (emit_libcall_block): ...here.  Invoke it on the block of insns to
        (emit_libcall_block): ...here.  Invoke it on the block of insns to
        maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
        maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
        (emit_no_conflict_block): Likewise.
        (emit_no_conflict_block): Likewise.
2006-07-16  Eric Botcazou  
2006-07-16  Eric Botcazou  
        * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
        * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
2006-07-15  Roger Sayle  
2006-07-15  Roger Sayle  
        * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
        * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
        a new NOP_EXPR case of the switch statement.
        a new NOP_EXPR case of the switch statement.
2006-07-15  Kaz Kojima  
2006-07-15  Kaz Kojima  
        PR middle-end/28160
        PR middle-end/28160
        * stor-layout.c (place_field): Take the bit field with
        * stor-layout.c (place_field): Take the bit field with
        an excessive size into account in the ms-bitfiled case.
        an excessive size into account in the ms-bitfiled case.
        PR middle-end/28161
        PR middle-end/28161
        * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
        * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
        the previous bit field.
        the previous bit field.
2006-07-14  Eliot Dresselhaus  
2006-07-14  Eliot Dresselhaus  
        PR target/27287
        PR target/27287
        * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
        * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
2006-07-14  Ulrich Weigand  
2006-07-14  Ulrich Weigand  
        * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
        * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
        signal frames correctly even when the signal was installed with
        signal frames correctly even when the signal was installed with
        sa_restorer set.
        sa_restorer set.
2006-07-14  Carlos O'Donell  
2006-07-14  Carlos O'Donell  
        * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
        * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
        (dbxout_function_end): Use local label LFBB. Remove hook
        (dbxout_function_end): Use local label LFBB. Remove hook
        DBX_OUTPUT_NFUN.
        DBX_OUTPUT_NFUN.
        (dbxout_source_line): Use local label LFBB.
        (dbxout_source_line): Use local label LFBB.
        (dbxout_block): Likewise.
        (dbxout_block): Likewise.
        (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
        (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
        (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
        (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
        * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
        * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
        and DBX_OUTPUT_NFUN.
        and DBX_OUTPUT_NFUN.
2006-07-13  Janis Johnson  
2006-07-13  Janis Johnson  
        * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
        * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
2006-07-13  Jan Hubicka  
2006-07-13  Jan Hubicka  
        * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
        * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
        align_variable.
        align_variable.
        * output.h (align_variable): Declare.
        * output.h (align_variable): Declare.
        * varasm.c (align_variable): Export.
        * varasm.c (align_variable): Export.
        * value-prof.c (tree_value_profile_transformations): Recompute iterator
        * value-prof.c (tree_value_profile_transformations): Recompute iterator
        when basic block changed.
        when basic block changed.
2006-07-13  Nick Clifton  
2006-07-13  Nick Clifton  
        * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
        * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
        walking the LOG_LINKS chain.
        walking the LOG_LINKS chain.
2006-07-12  Geoffrey Keating  
2006-07-12  Geoffrey Keating  
        * doc/invoke.texi (C++ Dialect Options): Explain difference
        * doc/invoke.texi (C++ Dialect Options): Explain difference
        between -fvisibility-inlines-hidden and setting hidden
        between -fvisibility-inlines-hidden and setting hidden
        visibility explicitly.
        visibility explicitly.
2006-07-12  Eric Christopher  
2006-07-12  Eric Christopher  
        * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
        * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
        (stmp-lipo): Depend on libgcc.a.
        (stmp-lipo): Depend on libgcc.a.
2006-07-12  Kazu Hirata  
2006-07-12  Kazu Hirata  
        * tree.c: Fix a comment typo.
        * tree.c: Fix a comment typo.
2006-07-12  Naveen.H.S  
2006-07-12  Naveen.H.S  
        * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
        * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
        dest.
        dest.
        (umulhisi3_r): Likewise.
        (umulhisi3_r): Likewise.
2006-07-12  Paolo Carlini  
2006-07-12  Paolo Carlini  
        PR libstdc++/27878
        PR libstdc++/27878
        * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
        * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
        x < 19, vs wchar_t support.
        x < 19, vs wchar_t support.
2006-07-12  Nick Clifton  
2006-07-12  Nick Clifton  
        * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
        * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
        instead of -isa=sh4.
        instead of -isa=sh4.
2006-07-12  Mike Stump  
2006-07-12  Mike Stump  
        * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
        * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
2006-07-10  Eric Christopher  
2006-07-10  Eric Christopher  
        * config/t-slibgcc-darwin: Rewrite.
        * config/t-slibgcc-darwin: Rewrite.
2006-07-10  Laurynas Biveinis  
2006-07-10  Laurynas Biveinis  
        PR bootstrap/20437
        PR bootstrap/20437
        * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
        * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
        dependencies.
        dependencies.
2006-07-08  Matthias Klose  
2006-07-08  Matthias Klose  
        * doc/sourcebuild.texi: Fix typo.
        * doc/sourcebuild.texi: Fix typo.
2006-07-07  Mike Stump  
2006-07-07  Mike Stump  
        * toplev.c (process_options): Don't give -ffunction-sections may
        * toplev.c (process_options): Don't give -ffunction-sections may
        affect debugging warning for Mach-O.
        affect debugging warning for Mach-O.
2006-07-07  James E Wilson  
2006-07-07  James E Wilson  
        * config/mips/mips.md (cpu): Add sb1a.
        * config/mips/mips.md (cpu): Add sb1a.
        * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
        * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
        addition to sb1.  Adjust comments to clarify SB-1A differences from
        addition to sb1.  Adjust comments to clarify SB-1A differences from
        SB-1.
        SB-1.
        (ir_sb1a_load): New.  Modify bypasses to use it.
        (ir_sb1a_load): New.  Modify bypasses to use it.
        (ir_sb1a_simple_alu): Likewise.
        (ir_sb1a_simple_alu): Likewise.
        * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
        * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
        (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
        (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
        (mips_issue_rate): Add PROCESSOR_SB1A.
        (mips_issue_rate): Add PROCESSOR_SB1A.
        (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
        (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
        * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
        * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
        (TARGET_SB1): Add PROCESSOR_SB1A check.
        (TARGET_SB1): Add PROCESSOR_SB1A check.
        (TUNE_SB1): Likewise.
        (TUNE_SB1): Likewise.
        * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
        * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
        * config/mips/mips.c (mips_store_data_bypass_p): New.
        * config/mips/mips.c (mips_store_data_bypass_p): New.
        * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
        * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
        store_data_bypass_p.
        store_data_bypass_p.
2006-07-08  Paul Brook  
2006-07-08  Paul Brook  
        PR target/27991
        PR target/27991
        * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
        * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
2006-07-07   Richard Guenther  
2006-07-07   Richard Guenther  
        PR middle-end/28268
        PR middle-end/28268
        * tree.h (build_one_cst): Declare.
        * tree.h (build_one_cst): Declare.
        * tree.c (build_one_cst): New function.
        * tree.c (build_one_cst): New function.
        * tree-ssa-math-opts.c (get_constant_one): Remove.
        * tree-ssa-math-opts.c (get_constant_one): Remove.
        (insert_reciprocals): Use build_one_cst.
        (insert_reciprocals): Use build_one_cst.
        * fold-const.c (fold_plusminus_mult): Likewise.
        * fold-const.c (fold_plusminus_mult): Likewise.
2006-07-07  Roger Sayle  
2006-07-07  Roger Sayle  
        * pointer-set.c (pointer_set_destroy): Correct whitespace.
        * pointer-set.c (pointer_set_destroy): Correct whitespace.
        * cfgloopanal.c (dump_graph): Likewise.
        * cfgloopanal.c (dump_graph): Likewise.
        * dojump.c (discard_pending_stack_adjust): Likewise.
        * dojump.c (discard_pending_stack_adjust): Likewise.
        * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
        * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
        Likewise.
        Likewise.
        * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
        * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
        * function.c (finalize_block_changes): Likewise.
        * function.c (finalize_block_changes): Likewise.
        * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
        * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
        * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
        * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
        * rtl.c (dump_rtx_statistics): Likewise.
        * rtl.c (dump_rtx_statistics): Likewise.
        * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
        * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
        Likewise.
        Likewise.
        * varray.c (dump_varray_statistics): Likewise.
        * varray.c (dump_varray_statistics): Likewise.
        * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
        * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
        decode_decimal64, encode_decimal128, decode_decimal128,
        decode_decimal64, encode_decimal128, decode_decimal128,
        decimal_real_to_decimal): Likewise.
        decimal_real_to_decimal): Likewise.
2006-07-07  Richard Guenther  
2006-07-07  Richard Guenther  
        PR tree-optimization/28187
        PR tree-optimization/28187
        * tree-vrp.c (vrp_operand_equal_p): New function.
        * tree-vrp.c (vrp_operand_equal_p): New function.
        (vrp_bitmap_equal_p): Likewise.
        (vrp_bitmap_equal_p): Likewise.
        (update_value_range): Use them to compare old and new
        (update_value_range): Use them to compare old and new
        max and min values.
        max and min values.
2006-07-06  Roger Sayle  
2006-07-06  Roger Sayle  
        * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
        * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
        a default case to switch statement to silence compiler warnings.
        a default case to switch statement to silence compiler warnings.
2006-07-06  Roger Sayle  
2006-07-06  Roger Sayle  
        PR target/27968
        PR target/27968
        * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
        * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
        the configured assembler supports the x87's ffreep mnemonic.
        the configured assembler supports the x87's ffreep mnemonic.
        * configure: Regenerate.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config.in: Regenerate.
        * config/i386/i386.c (output_387_ffreep): New function.
        * config/i386/i386.c (output_387_ffreep): New function.
        (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
        (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
        (output_387_reg_move): Likewise.
        (output_387_reg_move): Likewise.
2006-07-06  Paul Eggert  
2006-07-06  Paul Eggert  
        Port to hosts whose 'sort' and 'tail' implementations
        Port to hosts whose 'sort' and 'tail' implementations
        treat operands with leading '+' as file names, as POSIX
        treat operands with leading '+' as file names, as POSIX
        has required since 2001.  However, make sure the code still
        has required since 2001.  However, make sure the code still
        works on pre-POSIX hosts.
        works on pre-POSIX hosts.
        * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
        * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
        which says you should use "tail -c +N" rather than "tail +Nc".
        which says you should use "tail -c +N" rather than "tail +Nc".
        Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
        Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
2006-07-06  Zdenek Dvorak 
2006-07-06  Zdenek Dvorak 
        * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
        * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
        argument name.
        argument name.
2006-07-06  David Edelsohn  
2006-07-06  David Edelsohn  
        PR target/28150
        PR target/28150
        * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
        * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
        PRE_{INC,DEC} of TFmode.
        PRE_{INC,DEC} of TFmode.
2006-07-06  David Edelsohn  
2006-07-06  David Edelsohn  
            Alan Modra  
            Alan Modra  
        PR target/28170
        PR target/28170
        * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
        * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
        bounds. Simplify.
        bounds. Simplify.
2006-07-06  Rainer Orth  
2006-07-06  Rainer Orth  
        PR target/28285
        PR target/28285
        * config/alpha/predicates.md (alpha_swapped_comparison_operator):
        * config/alpha/predicates.md (alpha_swapped_comparison_operator):
        Remove duplicate gtu.
        Remove duplicate gtu.
2006-07-05  Jason Merrill  
2006-07-05  Jason Merrill  
        PR c++/13983
        PR c++/13983
        PR c++/17519
        PR c++/17519
        * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
        * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
        * c-common.c (handle_packed_attribute): So don't copy it here.
        * c-common.c (handle_packed_attribute): So don't copy it here.
        * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
        * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
2006-07-05  Mike Stump  
2006-07-05  Mike Stump  
        * doc/invoke.texi (Invoking G++): Clarify prose for g++.
        * doc/invoke.texi (Invoking G++): Clarify prose for g++.
2006-07-05  H.J. Lu  
2006-07-05  H.J. Lu  
        PR target/26146
        PR target/26146
        * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
        * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
2006-07-05  Richard Guenther  
2006-07-05  Richard Guenther  
        PR target/28158
        PR target/28158
        * config/i386/i386.md (*negdf2_1): Restrict pattern to
        * config/i386/i386.md (*negdf2_1): Restrict pattern to
        TARGET_SSE2 targets if using SSE math.
        TARGET_SSE2 targets if using SSE math.
        (*absdf2_1): Likewise.
        (*absdf2_1): Likewise.
2006-07-05  Richard Guenther  
2006-07-05  Richard Guenther  
        PR tree-optimization/28162
        PR tree-optimization/28162
        * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
        * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
        make sure to convert the operands to the correct type.
        make sure to convert the operands to the correct type.
2006-07-04  Paolo Bonzini  
2006-07-04  Paolo Bonzini  
        PR tree-optimization/28218
        PR tree-optimization/28218
        * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
        * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
        to calculate and free the dominator information.
        to calculate and free the dominator information.
2006-07-04  Peter O'Gorman  
2006-07-04  Peter O'Gorman  
        * mklibgcc.in: chmod 644 before ranlib during install.
        * mklibgcc.in: chmod 644 before ranlib during install.
2006-07-04  Andrew Stubbs 
2006-07-04  Andrew Stubbs 
            J"orn Rennecke 
            J"orn Rennecke 
        * configure.ac (.eh_frame data check): Use diff -b.
        * configure.ac (.eh_frame data check): Use diff -b.
2006-07-04  Eric Botcazou  
2006-07-04  Eric Botcazou  
        PR bootstrap/18058
        PR bootstrap/18058
        * Makefile.in (BUILD_RTL): Add build/vec.o.
        * Makefile.in (BUILD_RTL): Add build/vec.o.
        (build/gencondmd.o): Filter out -fkeep-inline-functions.
        (build/gencondmd.o): Filter out -fkeep-inline-functions.
        (build/genextract): Delete.
        (build/genextract): Delete.
        (build/genautomata): Likewise.
        (build/genautomata): Likewise.
2006-07-04  Alan Modra  
2006-07-04  Alan Modra  
        PR target/28207
        PR target/28207
        * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
        * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
        128-bit IBM long doubles for ABI_V4.
        128-bit IBM long doubles for ABI_V4.
2006-07-03  Eric Botcazou  
2006-07-03  Eric Botcazou  
        * tree.c (range_in_array_bounds_p): New predicate.
        * tree.c (range_in_array_bounds_p): New predicate.
        * tree.h (range_in_array_bounds_p): Declare it.
        * tree.h (range_in_array_bounds_p): Declare it.
        * tree-eh.c (tree_could_trap_p) : Use it to
        * tree-eh.c (tree_could_trap_p) : Use it to
        return a less conservative answer.
        return a less conservative answer.
        * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
        * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
        and flag 'is_group'.
        and flag 'is_group'.
        (IS_ELEMENT_FOR_GROUP): New macro.
        (IS_ELEMENT_FOR_GROUP): New macro.
        (FOR_EACH_ACTUAL_CHILD): Likewise.
        (FOR_EACH_ACTUAL_CHILD): Likewise.
        (next_child_for_group): New helper function.
        (next_child_for_group): New helper function.
        (can_completely_scalarize_p): Take into account groups.
        (can_completely_scalarize_p): Take into account groups.
        (sra_hash_tree): Handle RANGE_EXPR.
        (sra_hash_tree): Handle RANGE_EXPR.
        (sra_elt_eq): Likewise.
        (sra_elt_eq): Likewise.
        (lookup_element): Be prepared for handling groups.
        (lookup_element): Be prepared for handling groups.
        (is_valid_const_index): Delete.
        (is_valid_const_index): Delete.
        (maybe_lookup_element_for_expr) : Use in_array_bounds_p
        (maybe_lookup_element_for_expr) : Use in_array_bounds_p
        instead of is_valid_const_index.
        instead of is_valid_const_index.
        : New case.
        : New case.
        (sra_walk_expr) : Use in_array_bounds_p instead of
        (sra_walk_expr) : Use in_array_bounds_p instead of
        is_valid_const_index.
        is_valid_const_index.
        : Do not unconditionally punt.
        : Do not unconditionally punt.
        (scan_dump): Dump info for groups too.
        (scan_dump): Dump info for groups too.
        (decide_instantiation_1): Likewise.
        (decide_instantiation_1): Likewise.
        (decide_block_copy): Assert that the element is not a group.
        (decide_block_copy): Assert that the element is not a group.
        Propagate decision to groups.
        Propagate decision to groups.
        (generate_one_element_ref): Handle RANGE_EXPR.
        (generate_one_element_ref): Handle RANGE_EXPR.
        (mark_no_warning): Iterate over actual childs.
        (mark_no_warning): Iterate over actual childs.
        (generate_copy_inout): Likewise.
        (generate_copy_inout): Likewise.
        (generate_element_copy): Likewise.
        (generate_element_copy): Likewise.
        (generate_element_zero): Likewise.
        (generate_element_zero): Likewise.
        (generate_element_init_1): Likewise.
        (generate_element_init_1): Likewise.
        (dump_sra_elt_name): Handle RANGE_EXPR.
        (dump_sra_elt_name): Handle RANGE_EXPR.
2006-07-03  Roger Sayle  
2006-07-03  Roger Sayle  
        PR tree-optimization/26251
        PR tree-optimization/26251
        * tree-ssa-threadupdate.c (redirection_block_p): New function.
        * tree-ssa-threadupdate.c (redirection_block_p): New function.
        (thread_block): When optimizing for size refuse to thread jumps
        (thread_block): When optimizing for size refuse to thread jumps
        that would require duplication of blocks other than redirection
        that would require duplication of blocks other than redirection
        blocks.
        blocks.
2006-07-03  Paolo Bonzini  
2006-07-03  Paolo Bonzini  
        * configure.ac: Fix thinko in previous check-in.
        * configure.ac: Fix thinko in previous check-in.
        * configure: Regenerate.
        * configure: Regenerate.
2006-07-03  Paolo Bonzini  
2006-07-03  Paolo Bonzini  
        PR other/27063
        PR other/27063
        * configure.ac (for lang...): Simplify nesting of conditionals.
        * configure.ac (for lang...): Simplify nesting of conditionals.
        Test subdir_requires for non-enabled languages.  Move processing
        Test subdir_requires for non-enabled languages.  Move processing
        of lang_opt_files and lang_tree_fiels below that test.
        of lang_opt_files and lang_tree_fiels below that test.
        * configure: Regenerate.
        * configure: Regenerate.
        * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
        * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
2006-07-01  Martin Michlmayr  
2006-07-01  Martin Michlmayr  
        * doc/gcov.texi (Invoking Gcov): Add a missing word.
        * doc/gcov.texi (Invoking Gcov): Add a missing word.
2006-06-30  Kazu Hirata  
2006-06-30  Kazu Hirata  
        * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
        * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
        comment typos.
        comment typos.
2006-06-29  Jason Merrill  
2006-06-29  Jason Merrill  
        PR c++/26905
        PR c++/26905
        PR c++/26612
        PR c++/26612
        PR c++/27000
        PR c++/27000
        PR c++/26984
        PR c++/26984
        PR c++/19134
        PR c++/19134
        * tree.c (build_decl_stat): Don't hande #pragma visibility here.
        * tree.c (build_decl_stat): Don't hande #pragma visibility here.
        * c-common.c (c_determine_visibility): Handle it here.
        * c-common.c (c_determine_visibility): Handle it here.
        * c-decl.c (finish_decl): Call c_determine_visibility for
        * c-decl.c (finish_decl): Call c_determine_visibility for
        functions, too.
        functions, too.
        * flags.h (enum symbol_visibility): Sort from most to least visibility.
        * flags.h (enum symbol_visibility): Sort from most to least visibility.
        * tree.h: Likewise.
        * tree.h: Likewise.
        * varasm.c (default_assemble_visibility): Likewise.
        * varasm.c (default_assemble_visibility): Likewise.
        * c-common.c (handle_visibility_attribute): Complain about trying
        * c-common.c (handle_visibility_attribute): Complain about trying
        to give visibility to an already defined class, or trying to change
        to give visibility to an already defined class, or trying to change
        declared visibility. Always attach the attribute.
        declared visibility. Always attach the attribute.
        PR c++/26905
        PR c++/26905
        PR c++/21675
        PR c++/21675
        PR c++/17470
        PR c++/17470
        * attribs.c (decl_attributes): Ignore type-in-place attributes
        * attribs.c (decl_attributes): Ignore type-in-place attributes
        once the type has been defined.
        once the type has been defined.
2006-06-29  Roger Sayle  
2006-06-29  Roger Sayle  
        PR middle-end/27428
        PR middle-end/27428
        * c-lex.c (c_lex_with_flags) : Increment errorcount
        * c-lex.c (c_lex_with_flags) : Increment errorcount
        to indicate the cpplib has issued an error message for us.
        to indicate the cpplib has issued an error message for us.
2006-06-29  Asher Langton  
2006-06-29  Asher Langton  
        PR target/25765
        PR target/25765
        * config/i386/i386.c (ix86_output_function_epilogue): Don't
        * config/i386/i386.c (ix86_output_function_epilogue): Don't
        insert a label at the end of an function under Mach-O.
        insert a label at the end of an function under Mach-O.
2006-06-29  Eric Christopher  
2006-06-29  Eric Christopher  
            Evan Cheng  
            Evan Cheng  
        * predicates.md (vector_all_ones_operand): New.
        * predicates.md (vector_all_ones_operand): New.
        (nonimmediate_or_sse_const_operand): Ditto.
        (nonimmediate_or_sse_const_operand): Ditto.
        * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
        * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
        * config/i386/i386.c (standard_sse_constant_opcode): Define.
        * config/i386/i386.c (standard_sse_constant_opcode): Define.
        (standard_sse_mode_p): Ditto.
        (standard_sse_mode_p): Ditto.
        (standard_sse_constant_p): Add case for -1 vector.
        (standard_sse_constant_p): Add case for -1 vector.
        (ix86_expand_vector_move): Try to use.
        (ix86_expand_vector_move): Try to use.
        * sse.md (*mov_internal): Use nonimmediate_or_sse_const_operand.
        * sse.md (*mov_internal): Use nonimmediate_or_sse_const_operand.
        Call standard_sse_constant_opcode.
        Call standard_sse_constant_opcode.
        (*movv4sf_internal): Ditto.
        (*movv4sf_internal): Ditto.
        (*movv2df_internal): Ditto.
        (*movv2df_internal): Ditto.
2006-06-29  Roger Sayle  
2006-06-29  Roger Sayle  
        * genpreds.c (write_match_code_switch): Correctly use XSTR instead
        * genpreds.c (write_match_code_switch): Correctly use XSTR instead
        of XEXP to extract the operands of a MATCH_CODE rtx.
        of XEXP to extract the operands of a MATCH_CODE rtx.
2006-06-28  Andrew Pinski  
2006-06-28  Andrew Pinski  
        * tree.c (tree_size): Do not waste tail padding in
        * tree.c (tree_size): Do not waste tail padding in
        struct tree_string and make the size be the same as
        struct tree_string and make the size be the same as
        build_string will generate.
        build_string will generate.
2006-06-28  Jason Merrill  
2006-06-28  Jason Merrill  
        PR c++/27768
        PR c++/27768
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
        * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
        may_aliases already in the tag's annotations to the bitmap.
        may_aliases already in the tag's annotations to the bitmap.
2006-06-28  Roger Sayle  
2006-06-28  Roger Sayle  
        * genpreds.c (write_predicate_stmts) : Add missing break.
        * genpreds.c (write_predicate_stmts) : Add missing break.
2006-06-28  Roger Sayle  
2006-06-28  Roger Sayle  
        * genpreds.c (generate_switch_p): New function.
        * genpreds.c (generate_switch_p): New function.
        (add_mode_tests): Push the new mode test down inside an AND expr
        (add_mode_tests): Push the new mode test down inside an AND expr
        if this allows the switch-suitable MATCH_CODE to be near the root.
        if this allows the switch-suitable MATCH_CODE to be near the root.
        (write_match_code_switch): New function to write a MATCH_CODE as
        (write_match_code_switch): New function to write a MATCH_CODE as
        a switch statement.
        a switch statement.
        (write_predicate_stmts): New function to write a predicate RTX
        (write_predicate_stmts): New function to write a predicate RTX
        expression as a sequence of statements.
        expression as a sequence of statements.
        (write_one_predicate_function): Use write_predicate_stmts.
        (write_one_predicate_function): Use write_predicate_stmts.
        (write_tm_constrs_h): Likewise.
        (write_tm_constrs_h): Likewise.
2006-06-26  Fred Fish  
2006-06-26  Fred Fish  
        * config/mips/t-sb1: New file.
        * config/mips/t-sb1: New file.
        * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
        * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
        tmake_file list.
        tmake_file list.
2006-06-26  DJ Delorie  
2006-06-26  DJ Delorie  
        * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
        * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
2006-06-26  Naveen H.S  
2006-06-26  Naveen H.S  
            Jayant Sonar  
            Jayant Sonar  
            Jaydeep Vipradas  
            Jaydeep Vipradas  
        * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
        * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
        (subsi3, subsi3_1, subsi3_2): New.
        (subsi3, subsi3_1, subsi3_2): New.
        * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
        * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
        * config/m32c/mov.md (SI mov peephole): New.
        * config/m32c/mov.md (SI mov peephole): New.
        * config/m32c/m32.c (m32c_immd_dbl_mov): New.
        * config/m32c/m32.c (m32c_immd_dbl_mov): New.
        * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
        * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
2006-06-26  Olivier Hainque  
2006-06-26  Olivier Hainque  
        * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
        * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
        a CALL_EXPR target function declaration.
        a CALL_EXPR target function declaration.
2006-06-26  Richard Guenther  
2006-06-26  Richard Guenther  
        * tree.c (build_string): Do not waste tail padding in
        * tree.c (build_string): Do not waste tail padding in
        struct tree_string.
        struct tree_string.
2006-06-26  Richard Guenther  
2006-06-26  Richard Guenther  
        * ggc-page.c (init_ggc): Add missing element to size_lookup
        * ggc-page.c (init_ggc): Add missing element to size_lookup
        table.
        table.
        Revert
        Revert
        2006-06-23  Richard Guenther  
        2006-06-23  Richard Guenther  
        * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
        * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
        sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
        sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
        alignment requests instead.  Add verification code.
        alignment requests instead.  Add verification code.
        Add struct tree_function_decl and struct tree_binfo size to
        Add struct tree_function_decl and struct tree_binfo size to
        extra_order_size_table.  Add missing element to size_lookup
        extra_order_size_table.  Add missing element to size_lookup
        table.
        table.
2006-06-25  Eric Botcazou  
2006-06-25  Eric Botcazou  
        PR middle-end/28151
        PR middle-end/28151
        * fold-const.c (const_binop): Be prepared for self returning zero.
        * fold-const.c (const_binop): Be prepared for self returning zero.
        Simplify code handling complex values.
        Simplify code handling complex values.
2006-06-24  Olivier Hainque  
2006-06-24  Olivier Hainque  
        * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
        * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
        (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
        (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
        aggregate types.
        aggregate types.
2006-06-24  Olivier Hainque  
2006-06-24  Olivier Hainque  
        * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
        * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
        ARRAY_REF, so have the callback called for the low bound expression.
        ARRAY_REF, so have the callback called for the low bound expression.
2006-06-23  Janis Johnson  
2006-06-23  Janis Johnson  
        * tree.h (DECIMAL_FLOAT_TYPE_P): New.
        * tree.h (DECIMAL_FLOAT_TYPE_P): New.
        * c-typeck.c (c_common_type): Disallow operations on decimal float
        * c-typeck.c (c_common_type): Disallow operations on decimal float
        types and other float types.
        types and other float types.
        * convert.c (convert_to_real): Don't ignore conversions involving
        * convert.c (convert_to_real): Don't ignore conversions involving
        decimal float types.
        decimal float types.
2006-06-23  Olivier Hainque  
2006-06-23  Olivier Hainque  
        * tree.c (max_int_size_in_bytes): New function, inspired from
        * tree.c (max_int_size_in_bytes): New function, inspired from
        code in function.c:assign_temp.
        code in function.c:assign_temp.
        * tree.h (max_int_size_in_bytes): Declare.
        * tree.h (max_int_size_in_bytes): Declare.
        * function.c (assign_temp): Use it.
        * function.c (assign_temp): Use it.
        * gimplify.c (create_tmp_var): Relax the assertions on the type
        * gimplify.c (create_tmp_var): Relax the assertions on the type
        properties, not mandating constant size any more.
        properties, not mandating constant size any more.
        (force_constant_size): New static function.
        (force_constant_size): New static function.
        (gimple_add_tmp_var): Use it, forcing variable size to a
        (gimple_add_tmp_var): Use it, forcing variable size to a
        constant upper bound if it is not constant on entry.
        constant upper bound if it is not constant on entry.
2006-06-23  Danny Smith   
2006-06-23  Danny Smith   
        PR target/27789
        PR target/27789
        * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
        * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
        for initialization and setting of one_only flag to ...
        for initialization and setting of one_only flag to ...
        (i386_pe_encode_section_info): ...here.
        (i386_pe_encode_section_info): ...here.
        (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
        (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
        Recheck that the symbol has not been defined.
        Recheck that the symbol has not been defined.
2006-06-23  Richard Guenther  
2006-06-23  Richard Guenther  
        * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
        * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
        sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
        sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
        alignment requests instead.  Add verification code.
        alignment requests instead.  Add verification code.
        Add struct tree_function_decl and struct tree_binfo size to
        Add struct tree_function_decl and struct tree_binfo size to
        extra_order_size_table.  Add missing element to size_lookup
        extra_order_size_table.  Add missing element to size_lookup
        table.
        table.
2006-06-22  Roger Sayle  
2006-06-22  Roger Sayle  
            John David Anglin  
            John David Anglin  
        PR middle-end/28131
        PR middle-end/28131
        * expr.c (expand_expr_real_1) : Check whether the
        * expr.c (expand_expr_real_1) : Check whether the
        call to lang_hooks.types.type_for_mode returned NULL_TREE.
        call to lang_hooks.types.type_for_mode returned NULL_TREE.
2006-06-23  Ben Elliston  
2006-06-23  Ben Elliston  
        * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
        * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
        negate dn -- manipulate it directly.
        negate dn -- manipulate it directly.
2006-06-22  Roger Sayle  
2006-06-22  Roger Sayle  
            Steven Bosscher  
            Steven Bosscher  
        PR target/27531
        PR target/27531
        * reload1.c (gen_reload): Call mark_jump_label on the new insns
        * reload1.c (gen_reload): Call mark_jump_label on the new insns
        generated by gen_move_insn to add REG_LABEL notes if necessary.
        generated by gen_move_insn to add REG_LABEL notes if necessary.
2006-06-22  Bob Wilson  
2006-06-22  Bob Wilson  
        * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
        * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
        (leaf_entry): Remove use of MIN_ESA.
        (leaf_entry): Remove use of MIN_ESA.
2006-06-22  Zdenek Dvorak 
2006-06-22  Zdenek Dvorak 
        PR rtl-optimization/28121
        PR rtl-optimization/28121
        * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
        * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
        the entry edge.
        the entry edge.
2006-06-21  DJ Delorie  
2006-06-21  DJ Delorie  
        * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
        * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
        (TN-16C-A156A/E).
        (TN-16C-A156A/E).
        (mulhisi3_r): Likewise.
        (mulhisi3_r): Likewise.
2006-06-21  Richard Sandiford  
2006-06-21  Richard Sandiford  
        PR middle-end/28034
        PR middle-end/28034
        * coverage.c (coverage_counter_alloc): Leave the index type
        * coverage.c (coverage_counter_alloc): Leave the index type
        unspecified.
        unspecified.
        (coverage_counter_alloc): Use null arguments for operands 2 and 3
        (coverage_counter_alloc): Use null arguments for operands 2 and 3
        of the ARRAY_REF.
        of the ARRAY_REF.
2006-06-21  Andrew Pinski  
2006-06-21  Andrew Pinski  
        * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
        * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
        section from the "Options for Code Generation Conventions".
        section from the "Options for Code Generation Conventions".
2006-06-21  Richard Henderson  
2006-06-21  Richard Henderson  
        PR target/26347
        PR target/26347
        PR target/27082
        PR target/27082
        * config/alpha/predicates.md (small_symbolic_operand): Deny weak
        * config/alpha/predicates.md (small_symbolic_operand): Deny weak
        symbols.
        symbols.
        (global_symbolic_operand): Allow weak symbols, even if local_p.
        (global_symbolic_operand): Allow weak symbols, even if local_p.
2006-06-21  Eric Botcazou  
2006-06-21  Eric Botcazou  
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
        (find_interesting_uses_address): Punt if above function returns true.
        (find_interesting_uses_address): Punt if above function returns true.
2006-06-21  Richard Guenther  
2006-06-21  Richard Guenther  
        * configure: Regenerated.
        * configure: Regenerated.
2006-06-21  Joseph Myers  
2006-06-21  Joseph Myers  
        * config/mips/mips.c (function_arg): Where one part of a
        * config/mips/mips.c (function_arg): Where one part of a
        complex argument is in registers and the other part in the stack,
        complex argument is in registers and the other part in the stack,
        return a REG not a PARALLEL.
        return a REG not a PARALLEL.
2006-06-21  Mark Mitchell  
2006-06-21  Mark Mitchell  
        * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
        * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
        when cross-compiling.  Do not substitute libstdcxx_incdir.
        when cross-compiling.  Do not substitute libstdcxx_incdir.
        * configure: Regenerated.
        * configure: Regenerated.
2006-06-21  Jakub Jelinek  
2006-06-21  Jakub Jelinek  
        * varasm.c (mergeable_string_section): Check for embedded NULs and
        * varasm.c (mergeable_string_section): Check for embedded NULs and
        NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
        NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
        rather than TREE_STRING_LENGTH bytes.
        rather than TREE_STRING_LENGTH bytes.
2006-06-21  Richard Guenther  
2006-06-21  Richard Guenther  
        * ggc-page.c (extra_order_size_table): Add var_ann_d,
        * ggc-page.c (extra_order_size_table): Add var_ann_d,
        tree_ssa_name, bitmap_element and phi_node with 4 arguments
        tree_ssa_name, bitmap_element and phi_node with 4 arguments
        sizes.
        sizes.
2006-06-21  Richrad Guenther  
2006-06-21  Richrad Guenther  
        * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
        * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
        Limit iteration over the dominators.
        Limit iteration over the dominators.
2006-06-20  Roger Sayle  
2006-06-20  Roger Sayle  
        * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
        * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
        (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
        (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2006-06-20  Richard Guenther  
2006-06-20  Richard Guenther  
        Michael Matz  
        Michael Matz  
        * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
        * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
        function.
        function.
        * alloc-pool.c (free_alloc_pool_if_empty): New function.
        * alloc-pool.c (free_alloc_pool_if_empty): New function.
        * et-forest.h (et_free_pools): Prototype new function.
        * et-forest.h (et_free_pools): Prototype new function.
        * et-forest.c (et_free_tree_force): Free parent occurrence.
        * et-forest.c (et_free_tree_force): Free parent occurrence.
        (et_free_pools): New function.
        (et_free_pools): New function.
        * dominance.c (free_dominance_info): Free et-forest alloc
        * dominance.c (free_dominance_info): Free et-forest alloc
        pools.
        pools.
2006-06-20  Roger Sayle  
2006-06-20  Roger Sayle  
        * expr.c (expand_expr_real_1) : For vector constants with
        * expr.c (expand_expr_real_1) : For vector constants with
        integer modes, attempt to directly construct an integer constant.
        integer modes, attempt to directly construct an integer constant.
        * fold-const.c (native_encode_vector): Determine the size of each
        * fold-const.c (native_encode_vector): Determine the size of each
        element from the vector type instead of the first vector element.
        element from the vector type instead of the first vector element.
        * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
        * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
        if all of its elements/components are constant.
        if all of its elements/components are constant.
        (build_constructor_from_list): Likewise.
        (build_constructor_from_list): Likewise.
2006-06-20  Zdenek Dvorak 
2006-06-20  Zdenek Dvorak 
        PR tree-optimization/27331
        PR tree-optimization/27331
        * tree-data-ref.c (free_data_ref): New function.
        * tree-data-ref.c (free_data_ref): New function.
        (create_data_ref): Fail if the data reference has unknown access
        (create_data_ref): Fail if the data reference has unknown access
        function.
        function.
        (free_data_refs): Use free_data_ref.
        (free_data_refs): Use free_data_ref.
2006-06-19  Andrew Pinski  
2006-06-19  Andrew Pinski  
        PR middle-end/28075
        PR middle-end/28075
        * tree-inline.c (setup_one_parameter): Strip useless
        * tree-inline.c (setup_one_parameter): Strip useless
        type conversion before adding it to the IR.
        type conversion before adding it to the IR.
        (declare_return_variable): Likewise.
        (declare_return_variable): Likewise.
2006-06-19  Martin Michlmayr  
2006-06-19  Martin Michlmayr  
        PR c/27149
        PR c/27149
        * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
        * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2006-06-19  Mike Stump  
2006-06-19  Mike Stump  
        * tree.c (variably_modified_type_p): VM arguments don't make the
        * tree.c (variably_modified_type_p): VM arguments don't make the
        type a VM type.
        type a VM type.
2006-06-19  Richard Guenther  
2006-06-19  Richard Guenther  
        * tree-ssa-pre.c (try_combine_conversion): Strip useless
        * tree-ssa-pre.c (try_combine_conversion): Strip useless
        type conversions after folding.
        type conversions after folding.
2006-06-19  Richard Guenther  
2006-06-19  Richard Guenther  
        * ggc-page.c (extra_order_size_tab): Add entries with
        * ggc-page.c (extra_order_size_tab): Add entries with
        size of struct function and basic_block.
        size of struct function and basic_block.
        (size_lookup): Extend to cover sizes up to 511.
        (size_lookup): Extend to cover sizes up to 511.
        (ggc_alloc_stat): Adjust user.
        (ggc_alloc_stat): Adjust user.
        (ggc_pch_count_object): Likewise.
        (ggc_pch_count_object): Likewise.
        (ggc_pch_alloc_object): Likewise.
        (ggc_pch_alloc_object): Likewise.
        (ggc_pch_write_object): Likewise.
        (ggc_pch_write_object): Likewise.
2006-06-19  Zdenek Dvorak 
2006-06-19  Zdenek Dvorak 
        * tree-ssa-loop-niter.c (implies_ge_p): New function.
        * tree-ssa-loop-niter.c (implies_ge_p): New function.
        (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
        (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
        correctly.
        correctly.
2006-06-19  Denis Chertykov  
2006-06-19  Denis Chertykov  
        * config/avr/libgcc.S : Correct my wrong previous commit.
        * config/avr/libgcc.S : Correct my wrong previous commit.
2006-06-19  Roger Sayle  
2006-06-19  Roger Sayle  
        PR target/27861
        PR target/27861
        * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
        * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
        have stripped a SUBREG from the shift count, so we may need to
        have stripped a SUBREG from the shift count, so we may need to
        convert_to_mode back to the type's mode before calling make_tree.
        convert_to_mode back to the type's mode before calling make_tree.
        Use new_amount instead of amount to avoid expanding a tree twice.
        Use new_amount instead of amount to avoid expanding a tree twice.
2006-06-19  Richard Guenther  
2006-06-19  Richard Guenther  
        PR middle-end/28045
        PR middle-end/28045
        * fold-const.c (operand_equal_p): Check if the argument types
        * fold-const.c (operand_equal_p): Check if the argument types
        have the same precision before stripping NOPs.
        have the same precision before stripping NOPs.
2006-06-19  Daniel Berlin  
2006-06-19  Daniel Berlin  
        Fix PR tree-optimization/27341
        Fix PR tree-optimization/27341
        * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
        * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
        statement we get.
        statement we get.
        * tree-complex.c (pass_lower_complex): Update SMT usage.
        * tree-complex.c (pass_lower_complex): Update SMT usage.
2006-06-19  Andreas Krebbel  
2006-06-19  Andreas Krebbel  
        * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
        * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
        Add a new alternative to the constraint strings. Add move of
        Add a new alternative to the constraint strings. Add move of
        operand 1 to 3 to the splitter definition.
        operand 1 to 3 to the splitter definition.
        ("doloop_si_long"): Second contraint alternative removed.
        ("doloop_si_long"): Second contraint alternative removed.
2006-06-08  Anatoly Sokolov 
2006-06-08  Anatoly Sokolov 
        * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
        * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
        (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
        (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
        __AVR_HAVE_LPMX__.
        __AVR_HAVE_LPMX__.
        (AVR_HAVE_MOVW) Define.
        (AVR_HAVE_MOVW) Define.
        (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
        (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
        (ASM_SPEC): Add avr25.
        (ASM_SPEC): Add avr25.
        (LINK_SPEC): Add avr25.
        (LINK_SPEC): Add avr25.
        * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
        * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
        (base_arch_s): Add new member 'have_movw_lpmx'.
        (base_arch_s): Add new member 'have_movw_lpmx'.
        (avr_arch_types): Init 'have_movw_lpmx'.
        (avr_arch_types): Init 'have_movw_lpmx'.
        (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
        (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
        attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
        attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
        attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
        attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
        (avr_override_options): Init 'avr_have_movw_lpmx_p'.
        (avr_override_options): Init 'avr_have_movw_lpmx_p'.
        (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
        (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
        AVR_HAVE_MOVW.
        AVR_HAVE_MOVW.
        (avr_file_start): Do not output '.arh' derective.
        (avr_file_start): Do not output '.arh' derective.
        * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
        * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
        (__do_copy_data): Use __AVR_HAVE_LPMX__.
        (__do_copy_data): Use __AVR_HAVE_LPMX__.
        * config/avr/avr.md (mcu_enhanced): Delete.
        * config/avr/avr.md (mcu_enhanced): Delete.
        (mcu_have_movw): Define.
        (mcu_have_movw): Define.
        (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
        (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
        (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
        (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
        * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
        * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
        (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
        (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
        attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
        attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
        attiny861 and at86rf401 devices.
        attiny861 and at86rf401 devices.
2006-06-18  Jie Zhang  
2006-06-18  Jie Zhang  
        * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
        * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
        of 4096.
        of 4096.
2006-06-17  Karl Berry  
2006-06-17  Karl Berry  
        * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
        * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
        doc/gccint.texi, doc/install.texi (@dircategory): Use
        doc/gccint.texi, doc/install.texi (@dircategory): Use
        "Software development" instead of "Programming", following
        "Software development" instead of "Programming", following
        the Free Software Directory.
        the Free Software Directory.
2006-06-17  Alexandre Oliva  
2006-06-17  Alexandre Oliva  
        * config/i386/i386.c (legitimate_tls_address)
        * config/i386/i386.c (legitimate_tls_address)
        : Add tp after DTPOFF.
        : Add tp after DTPOFF.
        * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
        * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
        (*tls_dynamic_gnu2_combine_64): Likewise.
        (*tls_dynamic_gnu2_combine_64): Likewise.
2006-06-16  Richard Guenther  
2006-06-16  Richard Guenther  
        PR middle-end/27116
        PR middle-end/27116
        * fold-const.c (negate_expr_p): Do not introduce undefined
        * fold-const.c (negate_expr_p): Do not introduce undefined
        overflow in negating INTEGER_CSTs.
        overflow in negating INTEGER_CSTs.
        (fold_negate_expr): Rename from negate_expr.  Revert last
        (fold_negate_expr): Rename from negate_expr.  Revert last
        change for folding BIT_NOT_EXPR.  Change semantics to
        change for folding BIT_NOT_EXPR.  Change semantics to
        return NULL_TREE for non-simplified negations.  Do not
        return NULL_TREE for non-simplified negations.  Do not
        strip type conversions and unify type handling.
        strip type conversions and unify type handling.
        (negate_expr): New function, wrap around fold_negate_expr
        (negate_expr): New function, wrap around fold_negate_expr
        but ensure building a tree always.  Strip type conversions
        but ensure building a tree always.  Strip type conversions
        here, fold to result type.
        here, fold to result type.
        (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
        (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2006-06-16  Roger Sayle  
2006-06-16  Roger Sayle  
        PR middle-end/27802
        PR middle-end/27802
        * reg-stack.c (subst_stack_regs): Handle noreturn function calls
        * reg-stack.c (subst_stack_regs): Handle noreturn function calls
        that (would) return their results in stack registers.
        that (would) return their results in stack registers.
2006-06-16  Michael Matz  
2006-06-16  Michael Matz  
        Richard Guenther  
        Richard Guenther  
        * fold-const.c (fold_truthop): Only return new tree node if
        * fold-const.c (fold_truthop): Only return new tree node if
        we canonicalized something.
        we canonicalized something.
2006-06-16  Richard Guenther  
2006-06-16  Richard Guenther  
        * function.h (enum function_frequency): Move declaration
        * function.h (enum function_frequency): Move declaration
        out of struct function.
        out of struct function.
        (struct function): Move bool fields and the enum to the bitfield
        (struct function): Move bool fields and the enum to the bitfield
        section.  Reorder elements to avoid padding.  Remove unused
        section.  Reorder elements to avoid padding.  Remove unused
        fields left over from the RTL inliner removal.
        fields left over from the RTL inliner removal.
        * function.c (free_after_compilation): Do not zero removed fields.
        * function.c (free_after_compilation): Do not zero removed fields.
        * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
        * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
        (ipa-type-escape.o): Likewise.
        (ipa-type-escape.o): Likewise.
2006-06-16  Richard Guenther  
2006-06-16  Richard Guenther  
        * cgraph.h (struct cgraph_local_info): Turn bool elements
        * cgraph.h (struct cgraph_local_info): Turn bool elements
        into a bitfield.
        into a bitfield.
        (struct cgraph_node): Likewise.
        (struct cgraph_node): Likewise.
        (struct cgraph_varpool_node): Likewise.
        (struct cgraph_varpool_node): Likewise.
2006-06-15  Richard Guenther  
2006-06-15  Richard Guenther  
        * fold-const.c (fold_truth_not_expr): Rename from
        * fold-const.c (fold_truth_not_expr): Rename from
        invert_truthvalue.  Give it fold_* semantics to avoid
        invert_truthvalue.  Give it fold_* semantics to avoid
        generating garbage.
        generating garbage.
        (invert_truthvalue): New function.  Wrapper around
        (invert_truthvalue): New function.  Wrapper around
        fold_truth_not_expr.
        fold_truth_not_expr.
        (optimize_minmax_comparison): Avoid creating garbage.
        (optimize_minmax_comparison): Avoid creating garbage.
        (fold_unary): Use fold_truth_not_expr for folding
        (fold_unary): Use fold_truth_not_expr for folding
        TRUTH_NOT_EXPR.
        TRUTH_NOT_EXPR.
        (fold_ternary): Replace uses of invert_truthvalue with
        (fold_ternary): Replace uses of invert_truthvalue with
        fold_truth_not_expr where applicable.
        fold_truth_not_expr where applicable.
        * tree.h (fold_truth_not_expr): Prototype.
        * tree.h (fold_truth_not_expr): Prototype.
2006-06-16  Richard Guenther  
2006-06-16  Richard Guenther  
        PR tree-optimization/27781
        PR tree-optimization/27781
        * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
        * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
        * ipa-pure-const.c (target.h): Include.
        * ipa-pure-const.c (target.h): Include.
        (analyze_function): Do not analyze functions that do not
        (analyze_function): Do not analyze functions that do not
        bind locally.
        bind locally.
2006-06-15  Andrew MacLeod  
2006-06-15  Andrew MacLeod  
        PR middle-end/27793
        PR middle-end/27793
        * tree-dfa.c (referenced_vars_dup_list): Remove.
        * tree-dfa.c (referenced_vars_dup_list): Remove.
        (find_referenced_vars): Remove assert.
        (find_referenced_vars): Remove assert.
        (referenced_var_check_and_insert): Replace dup list with assert.
        (referenced_var_check_and_insert): Replace dup list with assert.
        * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
        * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
        * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
        * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2006-06-15  Richard Guenther  
2006-06-15  Richard Guenther  
        * tree-ssa-structalias.c (alias_get_name): Avoid creating
        * tree-ssa-structalias.c (alias_get_name): Avoid creating
        extra unused identifiers if not dumping.
        extra unused identifiers if not dumping.
        (create_variable_info_for): Likewise.
        (create_variable_info_for): Likewise.
2006-06-15  Zdenek Dvorak 
2006-06-15  Zdenek Dvorak 
        * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
        * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
        (derive_constant_upper_bound): Derive more precise upper bound in
        (derive_constant_upper_bound): Derive more precise upper bound in
        common cases.  Return type changed to double_int.
        common cases.  Return type changed to double_int.
        (record_estimate): Reflect the changed return type of
        (record_estimate): Reflect the changed return type of
        derive_constant_upper_bound.
        derive_constant_upper_bound.
        * double-int.c (double_int_zext, double_int_sext): Fix.
        * double-int.c (double_int_zext, double_int_sext): Fix.
2006-06-15  Paolo Bonzini  
2006-06-15  Paolo Bonzini  
        * configure.ac (CFLAGS): Get them from the toplevel or from the
        * configure.ac (CFLAGS): Get them from the toplevel or from the
        configure invocation.
        configure invocation.
        * configure: Regenerate.
        * configure: Regenerate.
        * Makefile.in (CFLAGS): Substitute value provided by configure.
        * Makefile.in (CFLAGS): Substitute value provided by configure.
2006-06-14  Mark Mitchell  
2006-06-14  Mark Mitchell  
        PR c++/26559
        PR c++/26559
        * c-common.h (c_finish_omp_atomic): Adjust declaration.
        * c-common.h (c_finish_omp_atomic): Adjust declaration.
        * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
        * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
        rather than calling add_stmt on it.
        rather than calling add_stmt on it.
        * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
        * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2006-06-14  Andreas Krebbel  
2006-06-14  Andreas Krebbel  
        PR middle-end/27959
        PR middle-end/27959
        * reload1.c (reload): Remove registers returned by update_eliminables
        * reload1.c (reload): Remove registers returned by update_eliminables
        from used_spill_regs.
        from used_spill_regs.
2006-06-13  DJ Delorie  
2006-06-13  DJ Delorie  
        * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
        * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2006-06-13  Carlos O'Donell  
2006-06-13  Carlos O'Donell  
        * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
        * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
        html__strip_dir, html__mkdir_p. Enhance install-html target.
        html__strip_dir, html__mkdir_p. Enhance install-html target.
        * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
        * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
        * configure: Regenerate.
        * configure: Regenerate.
2006-06-13  Fariborz Jahanian 
2006-06-13  Fariborz Jahanian 
        * fold-const.c (fold_cond_expr_with_comparison): Check for
        * fold-const.c (fold_cond_expr_with_comparison): Check for
        Objective-C++ as language in deciding COND_EXPR transformation.
        Objective-C++ as language in deciding COND_EXPR transformation.
2006-06-06  J"orn Rennecke 
2006-06-06  J"orn Rennecke 
        PR target/28014:
        PR target/28014:
        * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
        * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
        * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
        * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
        * config/sh/lib1funcs.h (SL, SL1): Define.
        * config/sh/lib1funcs.h (SL, SL1): Define.
        * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
        * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
        * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
        * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
        * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
        * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
        (OBJS_Os_4_200): New variable.
        (OBJS_Os_4_200): New variable.
        ($(T)libgcc-Os-4-200.a): Use it.
        ($(T)libgcc-Os-4-200.a): Use it.
        * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
        * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
        when dividing 1 and/or by 0.
        when dividing 1 and/or by 0.
2006-06-13  Roger Sayle  
2006-06-13  Roger Sayle  
        * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include 
        * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include 
        before  to define sigset_t required by .
        before  to define sigset_t required by .
        * configure: Regenerate.
        * configure: Regenerate.
2006-06-13  Jie Zhang  
2006-06-13  Jie Zhang  
        * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
        * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
        for real instruction.
        for real instruction.
2006-06-13  Maxim Kuvyrkov  
2006-06-13  Maxim Kuvyrkov  
        PR middle-end/26807
        PR middle-end/26807
        * haifa-sched.c (check_cfg): Handle special case.
        * haifa-sched.c (check_cfg): Handle special case.
2006-06-13  Eric Botcazou  
2006-06-13  Eric Botcazou  
        PR debug/26754
        PR debug/26754
        * gimplify.c (declare_tmp_vars): Rename into declare_vars.
        * gimplify.c (declare_tmp_vars): Rename into declare_vars.
        Add debug_info parameter.  Chain the vars to the BLOCK instead
        Add debug_info parameter.  Chain the vars to the BLOCK instead
        of the BIND_EXPR if debug info are requested for them.
        of the BIND_EXPR if debug info are requested for them.
        (pop_gimplify_context): Adjust for above change.
        (pop_gimplify_context): Adjust for above change.
        (gimple_add_tmp_var): Likewise.
        (gimple_add_tmp_var): Likewise.
        * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
        * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
        Add bool parameter.
        Add bool parameter.
        * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
        * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
        (convert_local_reference): Likewise.
        (convert_local_reference): Likewise.
        (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
        (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
        (finalize_nesting_tree_1): Request that debug info be emitted
        (finalize_nesting_tree_1): Request that debug info be emitted
        for debug_var_chain.
        for debug_var_chain.
2006-06-13  Maxim Kuvyrkov  
2006-06-13  Maxim Kuvyrkov  
        * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
        * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
        for PR target/27863.
        for PR target/27863.
2006-06-13  Richard Guenther  
2006-06-13  Richard Guenther  
        PR middle-end/27536
        PR middle-end/27536
        * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
        * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2006-06-13  Richard Guenther  
2006-06-13  Richard Guenther  
        PR tree-optimization/27830
        PR tree-optimization/27830
        * tree-inline.c (copy_body_r): For copying the operand
        * tree-inline.c (copy_body_r): For copying the operand
        of an ADDR_EXPR make sure to fold &* afterwards.
        of an ADDR_EXPR make sure to fold &* afterwards.
2006-06-12  Eric Botcazou  
2006-06-12  Eric Botcazou  
        * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
        * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
        lvalues in the fb_none case with side-effects.
        lvalues in the fb_none case with side-effects.
2006-06-12  Kazu Hirata  
2006-06-12  Kazu Hirata  
        * tree-flow.h: Remove the prototype for
        * tree-flow.h: Remove the prototype for
        compute_phi_arg_on_exit.
        compute_phi_arg_on_exit.
        * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
        * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
        protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
        protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
        Remove.
        Remove.
2006-06-12  Mark Shinwell  
2006-06-12  Mark Shinwell  
        * builtins.c (expand_builtin_return_addr): Only use
        * builtins.c (expand_builtin_return_addr): Only use
        frame_pointer_rtx when count == 0 and we are expanding
        frame_pointer_rtx when count == 0 and we are expanding
        __builtin_return_address.
        __builtin_return_address.
2006-06-12  Fred Fish  
2006-06-12  Fred Fish  
        * config/mips/mips.c (mips_file_start): Create special section
        * config/mips/mips.c (mips_file_start): Create special section
        ".gcc_compiled_longXX" for o64 ABI as well as EABI.
        ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2006-06-11  Eric Christopher  
2006-06-11  Eric Christopher  
        PR middle-end/27948
        PR middle-end/27948
        * stor-layout.c (place_field): Remove check for
        * stor-layout.c (place_field): Remove check for
        remaining_in_alignment when aligning at the end of a run.
        remaining_in_alignment when aligning at the end of a run.
2006-06-11  Eric Christopher  
2006-06-11  Eric Christopher  
        PR 27542
        PR 27542
        * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
        * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
        pragma.
        pragma.
2006-06-11  Roger Sayle  
2006-06-11  Roger Sayle  
        PR target/27858
        PR target/27858
        Revert incorrect fix for PR target/27158
        Revert incorrect fix for PR target/27158
        2006-05-08  Roger Sayle  
        2006-05-08  Roger Sayle  
        * reload.c (find_reloads_toplev): Only return the simplified SUBREG
        * reload.c (find_reloads_toplev): Only return the simplified SUBREG
        of a reg_equiv_constant if the result is a legitimate constant.
        of a reg_equiv_constant if the result is a legitimate constant.
2006-06-11  Roger Sayle  
2006-06-11  Roger Sayle  
        PR target/27158
        PR target/27158
        * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
        * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
        extract a CONST_VECTOR element and interpret it as an integer.
        extract a CONST_VECTOR element and interpret it as an integer.
        (vspltis_constant): Use const_vector_elt_as_int instead of the
        (vspltis_constant): Use const_vector_elt_as_int instead of the
        macro CONST_VECTOR_ELT in order to handle FP vector modes.
        macro CONST_VECTOR_ELT in order to handle FP vector modes.
        * config/rs6000/predicates.md (easy_vector_const): Consider
        * config/rs6000/predicates.md (easy_vector_const): Consider
        floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
        floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2006-06-11  Kaz Kojima  
2006-06-11  Kaz Kojima  
        PR middle-end/27942
        PR middle-end/27942
        * stor-layout.c (update_alignment_for_field): Don't add extra
        * stor-layout.c (update_alignment_for_field): Don't add extra
        alignment for packed non-bitfield fields in ms_bitfield_layout_p
        alignment for packed non-bitfield fields in ms_bitfield_layout_p
        code.
        code.
2006-06-09  Ralf Corsepius  
2006-06-09  Ralf Corsepius  
        * config/mips/t-rtems: Add EL/EB multilib variants.
        * config/mips/t-rtems: Add EL/EB multilib variants.
2006-06-09  Mike Stump  
2006-06-09  Mike Stump  
        * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
        * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2006-06-09  David Daney  
2006-06-09  David Daney  
        * doc/install.texi: Add binutils version recommendation for mips-*-*.
        * doc/install.texi: Add binutils version recommendation for mips-*-*.
2006-06-09  Andreas Krebbel  
2006-06-09  Andreas Krebbel  
        * reload.c (find_reloads): Unset force_reload for 'X' constraint.
        * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2006-06-09  Richard Guenther  
2006-06-09  Richard Guenther  
        PR tree-optimization/26998
        PR tree-optimization/26998
        * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
        * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
        of signed types, only TYPE_MIN_VALUE is special, but for both,
        of signed types, only TYPE_MIN_VALUE is special, but for both,
        minimum and maximum value.  Likewise VR_ANTI_RANGE is special
        minimum and maximum value.  Likewise VR_ANTI_RANGE is special
        in this case, as is -fwrapv.
        in this case, as is -fwrapv.
2006-06-08  Mike Stump  
2006-06-08  Mike Stump  
        PR target/26427
        PR target/26427
        * config/darwin.c (darwin_asm_output_anchor): Disable
        * config/darwin.c (darwin_asm_output_anchor): Disable
        -fsection-anchors on darwin for now.
        -fsection-anchors on darwin for now.
        * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
        * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
        * rs6000/rs6000.c (optimization_options): Likewise.
        * rs6000/rs6000.c (optimization_options): Likewise.
2006-06-08  Volker Reichelt  
2006-06-08  Volker Reichelt  
        PR target/27421
        PR target/27421
        * config/i386/i386.c (classify_argument): Skip fields with invalid
        * config/i386/i386.c (classify_argument): Skip fields with invalid
        types in unions.
        types in unions.
2006-06-08  Steven Bosscher  
2006-06-08  Steven Bosscher  
        * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
        * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
        (cse_insn): Likewise for the stack_pointer_rtx.
        (cse_insn): Likewise for the stack_pointer_rtx.
2006-06-08  Roger Sayle  
2006-06-08  Roger Sayle  
        * tree-ssa-dom.c (record_conditions): Only record "unordered"
        * tree-ssa-dom.c (record_conditions): Only record "unordered"
        conditions from floating point comparisons.
        conditions from floating point comparisons.
2006-06-08  Paolo Bonzini  
2006-06-08  Paolo Bonzini  
        PR middle-end/27733
        PR middle-end/27733
        * expmed.c (struct alg_hash_entry): Fix type of field T
        * expmed.c (struct alg_hash_entry): Fix type of field T
        to match synth_mult argument.
        to match synth_mult argument.
        (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
        (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2006-06-08  Maxim Kuvyrkov  
2006-06-08  Maxim Kuvyrkov  
        PR target/27863
        PR target/27863
        * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
        * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
        block boundaries.
        block boundaries.
2006-06-08  Richard Guenther  
2006-06-08  Richard Guenther  
        PR middle-end/27116
        PR middle-end/27116
        * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
        * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
        only, if overflow is defined and not trapping.
        only, if overflow is defined and not trapping.
        (negate_expr): Likewise.
        (negate_expr): Likewise.
2006-06-07  Zdenek Dvorak 
2006-06-07  Zdenek Dvorak 
        PR tree-optimization/27872
        PR tree-optimization/27872
        * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
        * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
        flag on the new exit edge of the unrolled loop.
        flag on the new exit edge of the unrolled loop.
2006-06-07  Zdenek Dvorak 
2006-06-07  Zdenek Dvorak 
        PR rtl-optimization/26449
        PR rtl-optimization/26449
        * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
        * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2006-06-07  Andrew MacLeod  
2006-06-07  Andrew MacLeod  
        PR middle-end/27793
        PR middle-end/27793
        * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
        * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
        referenced_variables with matching DECL_UID's.
        referenced_variables with matching DECL_UID's.
        (find_referenced_vars): Make sure duplicate list is empty to start.
        (find_referenced_vars): Make sure duplicate list is empty to start.
        (referenced_var_p): Remove.
        (referenced_var_p): Remove.
        (referenced_var_check_and_insert): Renamed from referenced_var_insert.
        (referenced_var_check_and_insert): Renamed from referenced_var_insert.
        Check if var is in the list, and add if needed.  Update the duplicate
        Check if var is in the list, and add if needed.  Update the duplicate
        list if a different var is in the list with the same DECL_UID.
        list if a different var is in the list with the same DECL_UID.
        (add_referenced_var): Call routine to check and insert.
        (add_referenced_var): Call routine to check and insert.
        * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
        * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
        * tree-flow.h (referenced_vars_dup_list): External declaration.
        * tree-flow.h (referenced_vars_dup_list): External declaration.
2006-06-07  Fred Fish  
2006-06-07  Fred Fish  
        * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
        * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
        into single entry.
        into single entry.
2006-06-07  Paolo Bonzini  
2006-06-07  Paolo Bonzini  
        PR target/27390
        PR target/27390
        * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
        * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
        the imaginary and real parts of a clobbered register.
        the imaginary and real parts of a clobbered register.
        Emit insn to set the imaginary part.
        Emit insn to set the imaginary part.
2006-06-06  Peter Lemieszewski  
2006-06-06  Peter Lemieszewski  
        * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
        * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
        in lieu of unwind-dw2-fde.c.
        in lieu of unwind-dw2-fde.c.
2006-06-06  Francois-Xavier Coudert  
2006-06-06  Francois-Xavier Coudert  
        * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
        * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2006-06-06  Ulrich Weigand  
2006-06-06  Ulrich Weigand  
        PR target/27842
        PR target/27842
        * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
        * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
        ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
        ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
        ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
        ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
        V4SImode temporaries and operations instead.
        V4SImode temporaries and operations instead.
2006-06-06  Joseph S. Myers  
2006-06-06  Joseph S. Myers  
        * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
        * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
        dp-bit.c.
        dp-bit.c.
2006-06-06  Mike Stump  
2006-06-06  Mike Stump  
        * Makefile.in: Rename to htmldir to build_htmldir to avoid
        * Makefile.in: Rename to htmldir to build_htmldir to avoid
        installing during build.
        installing during build.
2006-06-06  Maxim Kuvyrkov  
2006-06-06  Maxim Kuvyrkov  
        * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
        * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
        value to 0.
        value to 0.
        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
        * config/ia64/ia64.c (params.h): New header.
        * config/ia64/ia64.c (params.h): New header.
        (ia64_optimization_options): New function to adjust parameters.
        (ia64_optimization_options): New function to adjust parameters.
        * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
        * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
        * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
        * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
        * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
        * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2006-06-05  Kazu Hirata  
2006-06-05  Kazu Hirata  
        * stor-layout.c (debug_rli): Fix a typo in a debug message.
        * stor-layout.c (debug_rli): Fix a typo in a debug message.
2006-06-05  Steve Ellcey  
2006-06-05  Steve Ellcey  
        PR target/27051
        PR target/27051
        * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
        * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2006-06-05  Dorit Nuzman  
2006-06-05  Dorit Nuzman  
            Victor Kaplansky  
            Victor Kaplansky  
        PR tree-optimization/26360
        PR tree-optimization/26360
        * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
        * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
        stmts.
        stmts.
2006-06-04  Roger Sayle  
2006-06-04  Roger Sayle  
            Andrew Pinski  
            Andrew Pinski  
        PR middle-end/27382
        PR middle-end/27382
        * c-common.c (c_common_truthvalue_conversion): Explicitly check
        * c-common.c (c_common_truthvalue_conversion): Explicitly check
        for LABEL_DECL before calling DECL_WEAK.
        for LABEL_DECL before calling DECL_WEAK.
        PR c/27150
        PR c/27150
        * c-typeck.c (build_binary_op): Likewise, explicitly check for
        * c-typeck.c (build_binary_op): Likewise, explicitly check for
        LABEL_DECL and PARM_DECL.
        LABEL_DECL and PARM_DECL.
2006-06-05  Joseph S. Myers  
2006-06-05  Joseph S. Myers  
        PR c/25161
        PR c/25161
        PR c/27020
        PR c/27020
        * c-decl.c (grokdeclarator): Disallow variably modified types at
        * c-decl.c (grokdeclarator): Disallow variably modified types at
        file scope.  Avoid marking shared array type of constant size as
        file scope.  Avoid marking shared array type of constant size as
        VLA.
        VLA.
2006-06-04  Volker Reichelt  
2006-06-04  Volker Reichelt  
        PR c++/27601
        PR c++/27601
        * c-common.c (fold_offsetof_1): Handle static members.
        * c-common.c (fold_offsetof_1): Handle static members.
2006-06-04 Eric Christopher 
2006-06-04 Eric Christopher 
        * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
        * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
        (debug_rli): Output value for remaining_in_alignment.
        (debug_rli): Output value for remaining_in_alignment.
        (update_alignment_for_field): Unconditionalize
        (update_alignment_for_field): Unconditionalize
        ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
        ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
        extra alignment code.
        extra alignment code.
        (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
        (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
        ms_bitfield_layout_p code. Rewrite handling of structure fields.
        ms_bitfield_layout_p code. Rewrite handling of structure fields.
        * tree.h (record_layout_info_s): Remove prev_packed.
        * tree.h (record_layout_info_s): Remove prev_packed.
        * doc/extend.texi (ms_struct): Add documentation of format.
        * doc/extend.texi (ms_struct): Add documentation of format.
2006-06-04  Mark Shinwell  
2006-06-04  Mark Shinwell  
        * tree.h: Declare folding_initializer.
        * tree.h: Declare folding_initializer.
        * builtins.c (fold_builtin_constant_p): Give definite answer
        * builtins.c (fold_builtin_constant_p): Give definite answer
        if folding inside an initializer.
        if folding inside an initializer.
        * fold-const.c: Define folding_initializer.
        * fold-const.c: Define folding_initializer.
        (START_FOLD_INIT): Save and then set folding_initializer.
        (START_FOLD_INIT): Save and then set folding_initializer.
        (END_FOLD_INIT): Restore folding_initializer.
        (END_FOLD_INIT): Restore folding_initializer.
2006-06-04  Richard Guenther  
2006-06-04  Richard Guenther  
        PR tree-optimization/27039
        PR tree-optimization/27039
        * fold-const.c (fold_comparison): Handle pointer comparison
        * fold-const.c (fold_comparison): Handle pointer comparison
        again for all comparison codes.  Compare offsets in signed
        again for all comparison codes.  Compare offsets in signed
        size type.
        size type.
        (fold_binary): Move code from here.
        (fold_binary): Move code from here.
2006-06-03  Roger Sayle  
2006-06-03  Roger Sayle  
        PR target/26223
        PR target/26223
        * config/i386/i386.c (construct_container): Split static issued_error
        * config/i386/i386.c (construct_container): Split static issued_error
        flag into issued_sse_arg_error, issued_sse_ret_error and
        flag into issued_sse_arg_error, issued_sse_ret_error and
        issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
        issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
        requires the use of x87 registers and the user explicitly
        requires the use of x87 registers and the user explicitly
        specified the -mno-80387 command line option.
        specified the -mno-80387 command line option.
2006-06-02  Geoffrey Keating  
2006-06-02  Geoffrey Keating  
        * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
        * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
        HAVE_DECL_SIGALTSTACK.
        HAVE_DECL_SIGALTSTACK.
        (MC_FLD): New.
        (MC_FLD): New.
        (segv_handler): Use MC_FLD.
        (segv_handler): Use MC_FLD.
        * configure.ac: Check for a sigaltstack declaration.
        * configure.ac: Check for a sigaltstack declaration.
        Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
        Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
        * configure: Regenerate.
        * configure: Regenerate.
        * config.in: Regenerate.
        * config.in: Regenerate.
2006-06-03  J"orn Rennecke 
2006-06-03  J"orn Rennecke 
        PR other/27850
        PR other/27850
        * Makefile.in (stmp-fixinc): Fix typo.
        * Makefile.in (stmp-fixinc): Fix typo.
2006-06-02  Roger Sayle  
2006-06-02  Roger Sayle  
        * fold-const.c (fold_unary) : Ensure folded expressions
        * fold-const.c (fold_unary) : Ensure folded expressions
        are type correct.  Clean-up.
        are type correct.  Clean-up.
        : Likewise.  Optimize creal(~z) as creal(z).
        : Likewise.  Optimize creal(~z) as creal(z).
        : Likewise.  Optimize cimag(~z) as -cimag(z).
        : Likewise.  Optimize cimag(~z) as -cimag(z).
2006-06-01  DJ Delorie  
2006-06-01  DJ Delorie  
        * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
        * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
        shift, as we've disabled the "switch" insn that needs it.
        shift, as we've disabled the "switch" insn that needs it.
2006-06-01  Per Bothner  
2006-06-01  Per Bothner  
        Suppress extra '#1  or '#1 ' on -dD output.
        Suppress extra '#1  or '#1 ' on -dD output.
        * c-opts.c (finish_options): Use internal line 0 for .
        * c-opts.c (finish_options): Use internal line 0 for .
        * c-ppoutput.c (cb_define): Don't increment line 0.
        * c-ppoutput.c (cb_define): Don't increment line 0.
2006-06-01  Pete Steinmetz  
2006-06-01  Pete Steinmetz  
        * doc/invoke.texi: Add cpu_type power6.
        * doc/invoke.texi: Add cpu_type power6.
        * config.gcc: Add cpu_type power6.
        * config.gcc: Add cpu_type power6.
        * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
        * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
        to power5+ with Altivec.
        to power5+ with Altivec.
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
        * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
        * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
2006-05-30  Anatoly Sokolov 
2006-05-30  Anatoly Sokolov 
        * config/avr/avr.h (SET_ASM_OP): Define.
        * config/avr/avr.h (SET_ASM_OP): Define.
2006-06-01  Kazu Hirata  
2006-06-01  Kazu Hirata  
        * config/bfin/bfin.c: Fix comment typos.
        * config/bfin/bfin.c: Fix comment typos.
2006-06-01  Paolo Bonzini  
2006-06-01  Paolo Bonzini  
        PR 25453
        PR 25453
        * doc/install.texi: Document --enable-bootstrap and
        * doc/install.texi: Document --enable-bootstrap and
        --disable-bootstrap.
        --disable-bootstrap.
2006-06-01  Paolo Bonzini  
2006-06-01  Paolo Bonzini  
        * doc/install.texi: Document that InfoZIP can replace jar.
        * doc/install.texi: Document that InfoZIP can replace jar.
2006-05-31  Roger Sayle  
2006-05-31  Roger Sayle  
        * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
        * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
        isn't available, directly generate the simpler x87 patterns without
        isn't available, directly generate the simpler x87 patterns without
        the (use (const_int 0)).
        the (use (const_int 0)).
        * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
        * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
        implementation isn't available.
        implementation isn't available.
        (*negdf2_1): Likewise.
        (*negdf2_1): Likewise.
        (*negxf2_1): XF mode negation is always done using the x87.
        (*negxf2_1): XF mode negation is always done using the x87.
        (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
        (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
2006-05-31  Roger Sayle  
2006-05-31  Roger Sayle  
        * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
        * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
        additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
        additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
        cabs(z).
        cabs(z).
        (fold_builtin_decl) : Update fold_builtin_cabs call.
        (fold_builtin_decl) : Update fold_builtin_cabs call.
2006-05-31  Jie Zhang  
2006-05-31  Jie Zhang  
        * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
        * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
        * config/bfin/bfin.c (basic-block.h): Include.
        * config/bfin/bfin.c (basic-block.h): Include.
        (struct machine_function): New.
        (struct machine_function): New.
        (bfin_init_machine_status): New.
        (bfin_init_machine_status): New.
        (override_options): Initialize init_machine_status.
        (override_options): Initialize init_machine_status.
        (bfin_hardware_loop): New.
        (bfin_hardware_loop): New.
        (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
        (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
        (DEF_VEC_P (loop_info)): New.
        (DEF_VEC_P (loop_info)): New.
        (DEF_VEC_ALLOC_P (loop_info,heap)): New.
        (DEF_VEC_ALLOC_P (loop_info,heap)): New.
        (struct loop_info): New.
        (struct loop_info): New.
        (loop_info): New typedef.
        (loop_info): New typedef.
        (struct loop_work): New.
        (struct loop_work): New.
        (loop_work): New typedef.
        (loop_work): New typedef.
        (DEF_VEC_O (loop_work)): New.
        (DEF_VEC_O (loop_work)): New.
        (DEF_VEC_ALLOC_O (loop_work,heap)): New.
        (DEF_VEC_ALLOC_O (loop_work,heap)): New.
        (bfin_dump_loops): New.
        (bfin_dump_loops): New.
        (bfin_bb_in_loop): New.
        (bfin_bb_in_loop): New.
        (bfin_scan_loop): New.
        (bfin_scan_loop): New.
        (bfin_optimize_loop): New.
        (bfin_optimize_loop): New.
        (bfin_reorg_loops): New.
        (bfin_reorg_loops): New.
        (bfin_reorg): Use bfin_reorg_loops.
        (bfin_reorg): Use bfin_reorg_loops.
        * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
        * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
        loop registers.
        loop registers.
        (I_REGNO_P): Simplify.
        (I_REGNO_P): Simplify.
        (DP_REGNO_P, DPREG_P): New macros.
        (DP_REGNO_P, DPREG_P): New macros.
        (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
        (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
        REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
        REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
        (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
        (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
        Add LT_REGS, LC_REGS, LB_REGS.
        Add LT_REGS, LC_REGS, LB_REGS.
        (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
        (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
        'l' for LB_REGS.
        'l' for LB_REGS.
        (REGNO_REG_CLASS): Deal with loop registers.
        (REGNO_REG_CLASS): Deal with loop registers.
        * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
        * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
        letters.
        letters.
        (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
        (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
        New constants for loop registers.
        New constants for loop registers.
        (UNSPEC_LSETUP_END): New.
        (UNSPEC_LSETUP_END): New.
        (seq_insns): New define_attr. Set it for appropriate insns.
        (seq_insns): New define_attr. Set it for appropriate insns.
        (movsi_insn): Add alternatives for move from/to
        (movsi_insn): Add alternatives for move from/to
        loop count registers.
        loop count registers.
        (doloop_end): New define_expand.
        (doloop_end): New define_expand.
        (loop_end): New define_insn.
        (loop_end): New define_insn.
        (define_split for bad doloop_end): New.
        (define_split for bad doloop_end): New.
        (lsetup_with_autoinit): New define_insn.
        (lsetup_with_autoinit): New define_insn.
        (lsetup_without_autoinit): New define_insn.
        (lsetup_without_autoinit): New define_insn.
        (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
        (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
        * config/bfin/predicates.md (lc_register_operand): New.
        * config/bfin/predicates.md (lc_register_operand): New.
        (lt_register_operand): New.
        (lt_register_operand): New.
        (lb_register_operand): New.
        (lb_register_operand): New.
        (nondp_register_operand): New.
        (nondp_register_operand): New.
        (nondp_reg_or_memory_operand): New.
        (nondp_reg_or_memory_operand): New.
        * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
        * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
2006-05-31  Jie Zhang  
2006-05-31  Jie Zhang  
        * config/bfin/bfin.c (bfin_delegitimize_address): New.
        * config/bfin/bfin.c (bfin_delegitimize_address): New.
        (TARGET_DELEGITIMIZE_ADDRESS): Define.
        (TARGET_DELEGITIMIZE_ADDRESS): Define.
2006-05-31  Daniel Jacobowitz  
2006-05-31  Daniel Jacobowitz  
        * Makefile.in (CATALOGS): Add po/ prefix.
        * Makefile.in (CATALOGS): Add po/ prefix.
        * configure: Regenerated.
        * configure: Regenerated.
2006-05-31  Richard Earnshaw  
2006-05-31  Richard Earnshaw  
        PR target/27829
        PR target/27829
        * arm.c (arm_print_operand case 'S'): Validate that the operand is
        * arm.c (arm_print_operand case 'S'): Validate that the operand is
        a shift operand before calling shift_op.  Avoid redundant call of
        a shift operand before calling shift_op.  Avoid redundant call of
        shift_op.
        shift_op.
2006-05-30  Naveen.H.S  
2006-05-30  Naveen.H.S  
            DJ Delorie  
            DJ Delorie  
        * config/m32c/m32c.c (m32c_expand_insv): Check that the value
        * config/m32c/m32c.c (m32c_expand_insv): Check that the value
        we're inserting is a singlt-bit constant.
        we're inserting is a singlt-bit constant.
2006-05-30  Roger Sayle  
2006-05-30  Roger Sayle  
        * simplify-rtx.c (simplify_binary_operation_1) : Cast
        * simplify-rtx.c (simplify_binary_operation_1) : Cast
        width to HOST_WIDE_INT to avoid comparison warnings on some targets.
        width to HOST_WIDE_INT to avoid comparison warnings on some targets.
2006-05-30  Roger Sayle  
2006-05-30  Roger Sayle  
        PR tree-optimization/23452
        PR tree-optimization/23452
        * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
        * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
        to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
        to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
        (fold_binary) : Call fold_mult_zconjz for integral
        (fold_binary) : Call fold_mult_zconjz for integral
        complex values and with -ffast-math for FP complex values.
        complex values and with -ffast-math for FP complex values.
2006-05-30  Kazu Hirata  
2006-05-30  Kazu Hirata  
        * c-common.h: Remove the prototype for yyparse.
        * c-common.h: Remove the prototype for yyparse.
        * rtl.h: Remove the prototype for init_loop.
        * rtl.h: Remove the prototype for init_loop.
2006-05-30  Andreas Krebbel  
2006-05-30  Andreas Krebbel  
        * cse.c (validate_canon_reg, cse_insn): Don't change insns without
        * cse.c (validate_canon_reg, cse_insn): Don't change insns without
        calling recog.
        calling recog.
2006-05-30  Roger Sayle  
2006-05-30  Roger Sayle  
        * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
        * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
        and rotate cases.
        and rotate cases.
        : Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
        : Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
        log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
        log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
2006-05-30  Dirk Mueller  
2006-05-30  Dirk Mueller  
        PR c/27273
        PR c/27273
        * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
        * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
        for CONSTANT_CLASS_P expresisons.
        for CONSTANT_CLASS_P expresisons.
2006-05-30  Volker Reichelt  
2006-05-30  Volker Reichelt  
        PR c/27718
        PR c/27718
        * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
        * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
2006-05-30  Zdenek Dvorak 
2006-05-30  Zdenek Dvorak 
        PR tree-optimization/27779
        PR tree-optimization/27779
        * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
        * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
        initial_condition instead of CHREC_LEFT.
        initial_condition instead of CHREC_LEFT.
2006-05-30  Steven Bosscher  
2006-05-30  Steven Bosscher  
        * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
        * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
        * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
        * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
        Make prototypes ISO C90.
        Make prototypes ISO C90.
2006-05-30  Mircea Namolaru  
2006-05-30  Mircea Namolaru  
            Leehod Baruch    
            Leehod Baruch    
        * see.c (see_analyze_one_def): Correct check.
        * see.c (see_analyze_one_def): Correct check.
        (see_get_extension_data): Check if extension is parallel.
        (see_get_extension_data): Check if extension is parallel.
        (see_get_extension_reg): Likewise.
        (see_get_extension_reg): Likewise.
2006-05-30  Uros Bizjak  
2006-05-30  Uros Bizjak  
        PR target/27790
        PR target/27790
        * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
        * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
        into register for (code == GTU).
        into register for (code == GTU).
2006-05-29  Roger Sayle  
2006-05-29  Roger Sayle  
        PR tree-optimization/24964
        PR tree-optimization/24964
        * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
        * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
        : Minor clean-up.  Don't convert x*-1.0 into -x if we honor
        : Minor clean-up.  Don't convert x*-1.0 into -x if we honor
        signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
        signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
        abs(x)*abs(x) as x*x for scalar floating point modes.
        abs(x)*abs(x) as x*x for scalar floating point modes.
2006-05-29  Sebastian Pop  
2006-05-29  Sebastian Pop  
        PR middle-end/27745
        PR middle-end/27745
        * lambda-code.c (perfect_nestify): Don't copy statements
        * lambda-code.c (perfect_nestify): Don't copy statements
        in the inner loop: move them to the inner loop header.
        in the inner loop: move them to the inner loop header.
2006-05-29  Diego Novillo  
2006-05-29  Diego Novillo  
        PR 26237
        PR 26237
        * c-tree.texi: Document OpenMP directives and clauses.
        * c-tree.texi: Document OpenMP directives and clauses.
2006-05-29  Kazu Hirata  
2006-05-29  Kazu Hirata  
        * varasm.c (globalize_decl): Fix indentation.
        * varasm.c (globalize_decl): Fix indentation.
2006-05-29  Diego Novillo  
2006-05-29  Diego Novillo  
        PR 26242
        PR 26242
        * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
        * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
        pass_fre, pass_store_ccp, pass_copy_prop,
        pass_fre, pass_store_ccp, pass_copy_prop,
        pass_store_copy_prop, pass_merge_phi, pass_nrv,
        pass_store_copy_prop, pass_merge_phi, pass_nrv,
        pass_return_slot, pass_object_size, pass_lim,
        pass_return_slot, pass_object_size, pass_lim,
        pass_linear_transform, pass_empty_loop, pass_complete_unroll,
        pass_linear_transform, pass_empty_loop, pass_complete_unroll,
        pass_loop_prefetch and pass_stdarg.
        pass_loop_prefetch and pass_stdarg.
2005-05-29  Bernd Schmidt  
2005-05-29  Bernd Schmidt  
        * config/bfin/bfin.opt (mfdpic): New option.
        * config/bfin/bfin.opt (mfdpic): New option.
        * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
        * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
        (EXTRA_MULTILIB_PARTS): Likewise.
        (EXTRA_MULTILIB_PARTS): Likewise.
        (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
        (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
        (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
        (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
        multilib.
        multilib.
        * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
        * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
        (CRT_CALL_STATIC_FUNCTION): New.
        (CRT_CALL_STATIC_FUNCTION): New.
        * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
        * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
        -shared.
        -shared.
        (CRT_CALL_STATIC_FUNCTION): New.
        (CRT_CALL_STATIC_FUNCTION): New.
        * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
        * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
        FD-PIC moves.
        FD-PIC moves.
        (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
        (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
        (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
        (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
        (initialize_trampoline): Changed to handle FD-PIC code generation.
        (initialize_trampoline): Changed to handle FD-PIC code generation.
        (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
        (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
        (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
        (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
        (override_options): Disallow -mid-shared-library -mfdpic combination.
        (override_options): Disallow -mid-shared-library -mfdpic combination.
        Can't do unaligned ops if FD-PIC.
        Can't do unaligned ops if FD-PIC.
        Turn off flag_pic if trying to generate non-id-shared-library
        Turn off flag_pic if trying to generate non-id-shared-library
        non-fdpic code, since it's not supported.
        non-fdpic code, since it's not supported.
        (bfin_assemble_integer): New function.
        (bfin_assemble_integer): New function.
        (TARGET_ASM_INTEGER): Define.
        (TARGET_ASM_INTEGER): Define.
        * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
        * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
        __BFIN_FDPIC__.
        __BFIN_FDPIC__.
        * config/bfin/crtn.s: Restore them.
        * config/bfin/crtn.s: Restore them.
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
        if TARGET_FDPIC.
        if TARGET_FDPIC.
        (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
        (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
        LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
        LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
        (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
        (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
        (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
        (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
        (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
        (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
        call-used.
        call-used.
        (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
        (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
        FDPIC_REGS and FDPIC_FPTR_REGS.
        FDPIC_REGS and FDPIC_FPTR_REGS.
        (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
        (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
        * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
        * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
        UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
        UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
        (load_funcdescsi): New pattern.
        (load_funcdescsi): New pattern.
        (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
        (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
        sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
        sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
        call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
        call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
2006-05-29  Kazu Hirata  
2006-05-29  Kazu Hirata  
        * gcse.c, rtlanal.c: Remove obsolete comments associated with
        * gcse.c, rtlanal.c: Remove obsolete comments associated with
        loop.c.
        loop.c.
        * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
        * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
        * tree-flow.h: Remove the prototype for add_type_alias.
        * tree-flow.h: Remove the prototype for add_type_alias.
        * tree-ssa-alias.c (add_type_alias): Remove.
        * tree-ssa-alias.c (add_type_alias): Remove.
2006-05-28  Kazu Hirata  
2006-05-28  Kazu Hirata  
        * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
        * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
        config/fr30/fr30.md, config/i386/i386-interix.h,
        config/fr30/fr30.md, config/i386/i386-interix.h,
        config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
        config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
        config/sh/superh64.h, config/v850/v850.c, df-core.c,
        config/sh/superh64.h, config/v850/v850.c, df-core.c,
        df-problems.c, df.h, except.c, final.c, haifa-sched.c,
        df-problems.c, df.h, except.c, final.c, haifa-sched.c,
        lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
        lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
        reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
        reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
        tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
        tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
        Follow spelling conventions.
        Follow spelling conventions.
        * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
        * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
        Follow spelling conventions.
        Follow spelling conventions.
2006-05-27  Richard Guenther  
2006-05-27  Richard Guenther  
        PR middle-end/27773
        PR middle-end/27773
        * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
        * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
        to produce a constant of value 1 of generic type.
        to produce a constant of value 1 of generic type.
2006-05-27  Dirk Mueller  
2006-05-27  Dirk Mueller  
        * cgraphunit.c (decide_is_function_needed): Fix wrong
        * cgraphunit.c (decide_is_function_needed): Fix wrong
        PR reference.
        PR reference.
2006-05-26  Ulrich Weigand  
2006-05-26  Ulrich Weigand  
        PR rtl-optimization/27661
        PR rtl-optimization/27661
        * reload.c (find_reloads): When reloading a VOIDmode constant
        * reload.c (find_reloads): When reloading a VOIDmode constant
        as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
        as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
        use Pmode as mode of the reload register.
        use Pmode as mode of the reload register.
2006-05-26  Eric Botcazou  
2006-05-26  Eric Botcazou  
        * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
        * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
        is enabled at -O and above.
        is enabled at -O and above.
2006-05-26  Steven Bosscher  
2006-05-26  Steven Bosscher  
        PR target/27571
        PR target/27571
        * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
        * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
        table data.
        table data.
2006-05-25  Mark Mitchell  
2006-05-25  Mark Mitchell  
        PR c++/20103
        PR c++/20103
        * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
        * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
        for anonymous variables explicitly declared by front ends.
        for anonymous variables explicitly declared by front ends.
2006-05-25  Eric Botcazou  
2006-05-25  Eric Botcazou  
        * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
        * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
        (struct alias_info): Add new field ref_all_symbol_mem_tag.
        (struct alias_info): Add new field ref_all_symbol_mem_tag.
        * tree-ssa-alias.c (compute_may_aliases): If the program contains
        * tree-ssa-alias.c (compute_may_aliases): If the program contains
        ref-all pointers, run a finalization pass for them.
        ref-all pointers, run a finalization pass for them.
        (compute_flow_insensitive_aliasing): Skip ref-all pointers.
        (compute_flow_insensitive_aliasing): Skip ref-all pointers.
        (finalize_ref_all_pointers): New function.
        (finalize_ref_all_pointers): New function.
        (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
        (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
        regular pointer type to a ref-all pointer type.
        regular pointer type to a ref-all pointer type.
        (get_tmt_for): Return the special memory tag for ref-all pointers.
        (get_tmt_for): Return the special memory tag for ref-all pointers.
2006-05-25  Richard Guenther  
2006-05-25  Richard Guenther  
        PR middle-end/27743
        PR middle-end/27743
        * fold-const.c (fold_binary): Do not look at the stripped
        * fold-const.c (fold_binary): Do not look at the stripped
        op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
        op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
2006-05-25  Eric Botcazou  
2006-05-25  Eric Botcazou  
        * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
        * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
        for LT and GT if the computed range is effectively empty.
        for LT and GT if the computed range is effectively empty.
2006-05-24  John David Anglin  
2006-05-24  John David Anglin  
        PR target/27627
        PR target/27627
        * pa/pa-modes.def: Use mips_single_format, mips_double_format and
        * pa/pa-modes.def: Use mips_single_format, mips_double_format and
        mips_quad_format formats instead of ieee_single_format,
        mips_quad_format formats instead of ieee_single_format,
        ieee_double_format and ieee_quad_format formats, respectively.
        ieee_double_format and ieee_quad_format formats, respectively.
2006-05-24  Zdenek Dvorak 
2006-05-24  Zdenek Dvorak 
        PR tree-optimization/27639
        PR tree-optimization/27639
        PR tree-optimization/26719
        PR tree-optimization/26719
        * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
        * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
        call to scev_probably_wraps_p.
        call to scev_probably_wraps_p.
        * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
        * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
        used_in_pointer_arithmetic_p, convert_step): Removed.
        used_in_pointer_arithmetic_p, convert_step): Removed.
        (nowrap_type_p): New function.
        (nowrap_type_p): New function.
        (scev_probably_wraps_p): Rewritten.
        (scev_probably_wraps_p): Rewritten.
        * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
        * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
        chrec_convert if chrec_convert_aggressive might have been used.
        chrec_convert if chrec_convert_aggressive might have been used.
        * tree-chrec.c (convert_affine_scev, chrec_convert_1,
        * tree-chrec.c (convert_affine_scev, chrec_convert_1,
        scev_direction): New functions.
        scev_direction): New functions.
        (chrec_convert): Changed to a wrapper over chrec_convert_1.
        (chrec_convert): Changed to a wrapper over chrec_convert_1.
        * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
        * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
        instead of convert_step.
        instead of convert_step.
        * tree-flow.h (scev_probably_wraps_p): Declaration changed.
        * tree-flow.h (scev_probably_wraps_p): Declaration changed.
        (convert_step): Declaration removed.
        (convert_step): Declaration removed.
        (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
        (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
2006-05-23  Kenneth Zadeck 
2006-05-23  Kenneth Zadeck 
        * df-core.c: Added to header comments.
        * df-core.c: Added to header comments.
        * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
        * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
        df_ur_bb_info, df_urec_bb_info): Added comments.
        df_ur_bb_info, df_urec_bb_info): Added comments.
        * df-problems (df_ref_bitmap, ru, rd, lr, ur,
        * df-problems (df_ref_bitmap, ru, rd, lr, ur,
        urec, ri problems): Fixed header comments.
        urec, ri problems): Fixed header comments.
        (df_ru_transfer_function): Fixed in-out set dyslexia when copying
        (df_ru_transfer_function): Fixed in-out set dyslexia when copying
        code from df_rd_transfer_function.
        code from df_rd_transfer_function.
2006-05-23  Richard Sandiford  
2006-05-23  Richard Sandiford  
        * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
        * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
        (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
        (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
        MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
        MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
2006-05-23  Joseph Myers  
2006-05-23  Joseph Myers  
        * expr.c (undefined_operand_subword_p): New.
        * expr.c (undefined_operand_subword_p): New.
        (emit_move_multi_word): Do not generate move from undefined bits
        (emit_move_multi_word): Do not generate move from undefined bits
        of a paradoxical subreg.
        of a paradoxical subreg.
2006-05-23  Richard Sandiford  
2006-05-23  Richard Sandiford  
        PR rtl-optimization/27736
        PR rtl-optimization/27736
        * combine.c (replaced_rhs_value): New variable.
        * combine.c (replaced_rhs_value): New variable.
        (combine_instructions): Set it.
        (combine_instructions): Set it.
        (distribute_notes): When distributing a note in replaced_rhs_insn,
        (distribute_notes): When distributing a note in replaced_rhs_insn,
        check whether the value was used in replaced_rhs_value.
        check whether the value was used in replaced_rhs_value.
2006-05-23  Andrew MacLeod  
2006-05-23  Andrew MacLeod  
        PR c++/26757
        PR c++/26757
        * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
        * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
        add_referenced_var instead of add_referenced_tmp_var.
        add_referenced_var instead of add_referenced_tmp_var.
        * tree-complex.c (create_one_component_var): Use add_referenced_var.
        * tree-complex.c (create_one_component_var): Use add_referenced_var.
        * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
        * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
        add_referenced_var.
        add_referenced_var.
        * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
        * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
        tree_optimize_tail_calls_1): Use add_referenced_var.
        tree_optimize_tail_calls_1): Use add_referenced_var.
        * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
        * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
        * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
        * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
        Use add_referenced_var.
        Use add_referenced_var.
        * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
        * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
        * gimplify.c (force_gimple_operand): Use add_referenced_var.
        * gimplify.c (force_gimple_operand): Use add_referenced_var.
        * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
        * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
        Use add_referenced_var.
        Use add_referenced_var.
        * tree-dfa.c (struct walk_state): Remove.
        * tree-dfa.c (struct walk_state): Remove.
        (find_referenced_vars): Remove walk state and vars_found hash table.
        (find_referenced_vars): Remove walk state and vars_found hash table.
        (make_rename_temp): Use add_referenced_var.
        (make_rename_temp): Use add_referenced_var.
        (find_vars_r): Pass less parameters to add_referenced_var.
        (find_vars_r): Pass less parameters to add_referenced_var.
        (referenced_var_p): New.  Is var in referenced_var hash table.
        (referenced_var_p): New.  Is var in referenced_var hash table.
        (referenced_var_insert): Assert var isn't already in hash table.
        (referenced_var_insert): Assert var isn't already in hash table.
        (add_referenced_var): Don't need walk_state parameter.  Add var if it
        (add_referenced_var): Don't need walk_state parameter.  Add var if it
        isn't already in the hash table.
        isn't already in the hash table.
        (add_referenced_tmp_var): Remove.
        (add_referenced_tmp_var): Remove.
        (find_new_referenced_vars_1): Use add_referenced_var.
        (find_new_referenced_vars_1): Use add_referenced_var.
        * tree-ssa-pre.c (create_expression_by_pieces,
        * tree-ssa-pre.c (create_expression_by_pieces,
        insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
        insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
        Use add_referenced_var.
        Use add_referenced_var.
        * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
        * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
        * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
        * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
        lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
        lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
        add_referenced_var.
        add_referenced_var.
        * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
        * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
        vect_create_data_ref_ptr, vect_create_destination_var,
        vect_create_data_ref_ptr, vect_create_destination_var,
        vect_init_vector, vect_build_loop_niters,
        vect_init_vector, vect_build_loop_niters,
        vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
        vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
        vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
        vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
        Use add_referenced_var.
        Use add_referenced_var.
        * tree-outof-ssa.c (create_temp): Use add_referenced_var.
        * tree-outof-ssa.c (create_temp): Use add_referenced_var.
        * tree-flow.h (add_referenced_tmp_var): Remove prototype
        * tree-flow.h (add_referenced_tmp_var): Remove prototype
        (add_referenced_var): Add prototype.
        (add_referenced_var): Add prototype.
        * tree-ssa-structalias.c (get_constraint_for,
        * tree-ssa-structalias.c (get_constraint_for,
        intra_create_variable_infos): Use add_referenced_var.
        intra_create_variable_infos): Use add_referenced_var.
2006-05-23  Alexandre Oliva  
2006-05-23  Alexandre Oliva  
        * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
        * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
        big-endian paradoxical subregs.
        big-endian paradoxical subregs.
        * var-tracking.c (struct micro_operation_def): Document that,
        * var-tracking.c (struct micro_operation_def): Document that,
        for modify micro operations, insn is the subsequent instruction.
        for modify micro operations, insn is the subsequent instruction.
        (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
        (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
        (var_reg_set, var_mem_set): ... new functions.
        (var_reg_set, var_mem_set): ... new functions.
        (add_stores): Record subsequent insn.
        (add_stores): Record subsequent insn.
        (compute_bb_dataflow): Use new functions for MO_USE.
        (compute_bb_dataflow): Use new functions for MO_USE.
        (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
        (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
        notes after the insn, and modify notes before the insn known
        notes after the insn, and modify notes before the insn known
        to be the subsequent one.
        to be the subsequent one.
        (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
        (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
2006-05-23  Kazu Hirata  
2006-05-23  Kazu Hirata  
        PR target/27696
        PR target/27696
        * config/i386/i386.c (ix86_expand_builtin): Use
        * config/i386/i386.c (ix86_expand_builtin): Use
        gen_sse3_monitor64 for TARGET_64BIT.
        gen_sse3_monitor64 for TARGET_64BIT.
2006-05-22  Kenneth Zadeck 
2006-05-22  Kenneth Zadeck 
        PR rtl-optimization/26375
        PR rtl-optimization/26375
        PR rtl-optimization/26855
        PR rtl-optimization/26855
        * df-problems (df_ru_bb_local_compute_process_def): Removed update
        * df-problems (df_ru_bb_local_compute_process_def): Removed update
        to gen set.
        to gen set.
        (df_ru_bb_local_compute): Reversed statements and removed bogus
        (df_ru_bb_local_compute): Reversed statements and removed bogus
        comment explaining why they should be in wrong order.
        comment explaining why they should be in wrong order.
        (df_ru_dump, df_rd_dump): Enhanced debug info.
        (df_ru_dump, df_rd_dump): Enhanced debug info.
        * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
        * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
        debug info.
        debug info.
        * ddg.c (add_deps_for_def): Converted use of reaching defs to
        * ddg.c (add_deps_for_def): Converted use of reaching defs to
        reaching uses and fixed space problem.
        reaching uses and fixed space problem.
2006-05-23  Jan Hubicka  
2006-05-23  Jan Hubicka  
        * cgraphunit.c (decide_is_function_needed): Also nested functions
        * cgraphunit.c (decide_is_function_needed): Also nested functions
        and functions declared inline can be optimized out at -O0.
        and functions declared inline can be optimized out at -O0.
2006-05-22  Gerald Pfeifer  
2006-05-22  Gerald Pfeifer  
        * doc/install.texi (Configuration): Remove reference to CrossGCC
        * doc/install.texi (Configuration): Remove reference to CrossGCC
        FAQ which was gone.
        FAQ which was gone.
        (Building): Ditto.
        (Building): Ditto.
2006-05-22  Kazu Hirata  
2006-05-22  Kazu Hirata  
        PR target/27266
        PR target/27266
        * config/i386/i386.c (ix86_expand_branch): Jump to simple if
        * config/i386/i386.c (ix86_expand_branch): Jump to simple if
        ix86_compare_emitted is non-NULL.
        ix86_compare_emitted is non-NULL.
2006-05-22  Volker Reichelt  
2006-05-22  Volker Reichelt  
        PR c++/27451
        PR c++/27451
        * stmt.c (expand_asm_operands): Skip asm statement with erroneous
        * stmt.c (expand_asm_operands): Skip asm statement with erroneous
        clobbers.
        clobbers.
2006-05-22  Richard Sandiford  
2006-05-22  Richard Sandiford  
        PR rtl-optimization/25514
        PR rtl-optimization/25514
        * combine.c (replaced_rhs_insn): New variable.
        * combine.c (replaced_rhs_insn): New variable.
        (combine_instructions): Set replaced_rhs_insn when trying to replace
        (combine_instructions): Set replaced_rhs_insn when trying to replace
        a SET_SRC with a REG_EQUAL note.
        a SET_SRC with a REG_EQUAL note.
        (distribute_notes): Use replaced_rhs_insn when determining the live
        (distribute_notes): Use replaced_rhs_insn when determining the live
        range of a REG_DEAD register.
        range of a REG_DEAD register.
2006-18-05  Joerg Wunsch 
2006-18-05  Joerg Wunsch 
            Anatoly Sokolov 
            Anatoly Sokolov 
        * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
        * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
        attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
        attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
        attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
        attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
        atmega164p, atmega324p, atmega644p, atmega644, atmega329,
        atmega164p, atmega324p, atmega644p, atmega644, atmega329,
        atmega3290, atmega649, atmega6490, atmega406, atmega640,
        atmega3290, atmega649, atmega6490, atmega406, atmega640,
        atmega1280, atmega1281, at90can32, at90can64, at90usb646,
        atmega1280, atmega1281, at90can32, at90can64, at90usb646,
        at90usb647, at90usb1286 and at90usb1287 devices.
        at90usb647, at90usb1286 and at90usb1287 devices.
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
        * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
        * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2006-05-22  Richard Sandiford  
2006-05-22  Richard Sandiford  
        * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
        * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
2006-05-22  Richard Guenther  
2006-05-22  Richard Guenther  
        Revert
        Revert
        2006-01-31  Richard Guenther  
        2006-01-31  Richard Guenther  
        Paolo Bonzini  
        Paolo Bonzini  
        * doc/install.texi (--disable-libgcc-math): Document.
        * doc/install.texi (--disable-libgcc-math): Document.
2006-05-22  Richard Guenther  
2006-05-22  Richard Guenther  
        Revert
        Revert
        2006-01-31  Richard Guenther  
        2006-01-31  Richard Guenther  
        * doc/invoke.texi (-msselibm): Document.
        * doc/invoke.texi (-msselibm): Document.
        * target.h (expand_library_builtin): New target hook.
        * target.h (expand_library_builtin): New target hook.
        * builtins.c (expand_builtin): Use expand_library_builtin.
        * builtins.c (expand_builtin): Use expand_library_builtin.
        (default_expand_library_builtin): New function.
        (default_expand_library_builtin): New function.
        * gcc.c (LINK_GCC_MATH_SPEC): Define.
        * gcc.c (LINK_GCC_MATH_SPEC): Define.
        (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
        (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
        (link_gcc_math_spec): Declare.
        (link_gcc_math_spec): Declare.
        (static_specs): Add link_gcc_math_spec.
        (static_specs): Add link_gcc_math_spec.
        * expr.h (default_expand_library_builtin): Declare.
        * expr.h (default_expand_library_builtin): Declare.
        * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
        (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
        * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
        * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
        * config/i386/i386.opt (msselibm): New target option.
        * config/i386/i386.opt (msselibm): New target option.
        * config/i386/i386.c (ix86_builtin_function_variants): New array.
        * config/i386/i386.c (ix86_builtin_function_variants): New array.
        (ix86_init_sse_abi_builtins): New function.
        (ix86_init_sse_abi_builtins): New function.
        (ix86_expand_library_builtin): Likewise.
        (ix86_expand_library_builtin): Likewise.
        (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (override_options): Handle error conditions wrt -msselibm.
        (override_options): Handle error conditions wrt -msselibm.
        (ix86_builtins): Add function codes for SSE2 ABI builtins.
        (ix86_builtins): Add function codes for SSE2 ABI builtins.
        (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
        (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
        * doc/extend.texi (__builtin_sse2_*): Document new target specific
        * doc/extend.texi (__builtin_sse2_*): Document new target specific
        builtins.
        builtins.
2006-05-22  Volker Reichelt  
2006-05-22  Volker Reichelt  
        PR c/27420
        PR c/27420
        * c-common.c (self_promoting_args_p): Skip erroneous args.
        * c-common.c (self_promoting_args_p): Skip erroneous args.
        PR c/26818
        PR c/26818
        * c-decl.c (finish_struct): Skip erroneous fields.
        * c-decl.c (finish_struct): Skip erroneous fields.
2006-05-22  Nick Clifton  
2006-05-22  Nick Clifton  
        * config/cris/cris.opt (march): Remove VarExists attribute.
        * config/cris/cris.opt (march): Remove VarExists attribute.
        (max-stackframe=): Likewise.
        (max-stackframe=): Likewise.
2006-05-22  Kazu Hirata  
2006-05-22  Kazu Hirata  
        * doc/rtl.texi: Fix a typo.
        * doc/rtl.texi: Fix a typo.
        * see.c: Fix comment typos.
        * see.c: Fix comment typos.
        * tree-ssa-structalias.h (alias_info): Remove num_references.
        * tree-ssa-structalias.h (alias_info): Remove num_references.
2006-05-21  Mike Stump  
2006-05-21  Mike Stump  
        * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
        * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
        (BAD2): Add.
        (BAD2): Add.
        (darwin_pragma_options): Use BAD instead.
        (darwin_pragma_options): Use BAD instead.
        (darwin_pragma_unused): Likewise.
        (darwin_pragma_unused): Likewise.
        (darwin_pragma_ms_struct): Likewise.
        (darwin_pragma_ms_struct): Likewise.
2006-05-21  David Edelsohn  
2006-05-21  David Edelsohn  
        * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
        * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
2006-05-21  Kazu Hirata  
2006-05-21  Kazu Hirata  
        PR rtl-optimization/27671
        PR rtl-optimization/27671
        * simplify-rtx.c (simplify_relational_operation_1): Fix
        * simplify-rtx.c (simplify_relational_operation_1): Fix
        simplifications of (eq/ne (xor x y) y) and
        simplifications of (eq/ne (xor x y) y) and
        (eq/ne (xor x y) x).
        (eq/ne (xor x y) x).
        PR tree-optimization/26622.
        PR tree-optimization/26622.
        * fold-const.c (fold_ternary) : Call fold_convert
        * fold-const.c (fold_ternary) : Call fold_convert
        on arg1.
        on arg1.
2006-05-21  Bernhard Fischer  
2006-05-21  Bernhard Fischer  
        * tree-cfg.c: Prune whitespace.
        * tree-cfg.c: Prune whitespace.
        (debug_tree_cfg): Point to correct header containing the
        (debug_tree_cfg): Point to correct header containing the
        TDF_* defines.
        TDF_* defines.
2006-05-21  Bernhard Fischer  
2006-05-21  Bernhard Fischer  
        PR middle-end/25776
        PR middle-end/25776
        * cgraphunit.c (verify_cgraph_node): Typo in error message.
        * cgraphunit.c (verify_cgraph_node): Typo in error message.
2006-05-20  Andrew Pinski  
2006-05-20  Andrew Pinski  
        PR middle-end/25776
        PR middle-end/25776
        * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
        * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
        or sorry count is non zero.
        or sorry count is non zero.
2006-05-20  Andreas Schwab  
2006-05-20  Andreas Schwab  
        * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
        * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
2006-05-19  Daniel Berlin  
2006-05-19  Daniel Berlin  
            Kenneth Zadeck 
            Kenneth Zadeck 
        PR rtl-optimization/26855
        PR rtl-optimization/26855
        * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
        * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
        multiword refs.
        multiword refs.
        (df_scan_alloc): Added code to properly handle multiword hard
        (df_scan_alloc): Added code to properly handle multiword hard
        registers and add all_blocks parameter.
        registers and add all_blocks parameter.
        (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
        (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
        code to properly handle multiword hard registers.
        code to properly handle multiword hard registers.
        (df_rescan_blocks): Added code to remove deleted blocks from
        (df_rescan_blocks): Added code to remove deleted blocks from
        bitmap.
        bitmap.
        (df_ref_create_structure, df_ref_record): Added code to properly
        (df_ref_create_structure, df_ref_record): Added code to properly
        handle subregs.
        handle subregs.
        (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
        (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
        and set DF_REF_PARTIAL.
        and set DF_REF_PARTIAL.
        (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
        (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
        (df_uses_record): Added DF_REF_PARTIAL for subreg.
        (df_uses_record): Added DF_REF_PARTIAL for subreg.
        (df_scan_add_problem): Added flags parameter.
        (df_scan_add_problem): Added flags parameter.
        (df_ref_create_structure): Changed switching structure.
        (df_ref_create_structure): Changed switching structure.
        (df_bb_refs_record): Fixed case where duplicate artificial refs
        (df_bb_refs_record): Fixed case where duplicate artificial refs
        were created.  Changed location of flags.
        were created.  Changed location of flags.
        (df_record_entry_block_defs): Added code to make stack pointer
        (df_record_entry_block_defs): Added code to make stack pointer
        live in entry block.  Refined cases where frame pointer is needed.
        live in entry block.  Refined cases where frame pointer is needed.
        Changed location of flags.
        Changed location of flags.
        (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
        (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
        (df_set_state): Removed function.
        (df_set_state): Removed function.
        (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
        (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
        df_insn_create_insn_record, df_insn_refs_delete,
        df_insn_create_insn_record, df_insn_refs_delete,
        df_ref_create_structure): Formatting changes.
        df_ref_create_structure): Formatting changes.
        * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
        * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
        df_delete_basic_block): New function.
        df_delete_basic_block): New function.
        (df_init): Changed location of flags.
        (df_init): Changed location of flags.
        (df_add_problem): Added flags parameter and the way flags are
        (df_add_problem): Added flags parameter and the way flags are
        processed.
        processed.
        (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
        (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
        debug_df_chain): Improved debugging output.
        debug_df_chain): Improved debugging output.
        (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
        (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
        (df_refs_chain_dump): Removed df parameter.
        (df_refs_chain_dump): Removed df parameter.
        (df_iterative_dataflow): Added consistency check.
        (df_iterative_dataflow): Added consistency check.
        (df_prune_to_subcfg): Made public.
        (df_prune_to_subcfg): Made public.
        (df_analyze_problem): Added blocks_to_init parameter and made
        (df_analyze_problem): Added blocks_to_init parameter and made
        public.
        public.
        (df_ref_record, df_bb_refs_record, df_mark_reg,
        (df_ref_record, df_bb_refs_record, df_mark_reg,
         df_record_exit_block_uses): Whitespace changes.
         df_record_exit_block_uses): Whitespace changes.
        (df_dump): Whitespace changes.
        (df_dump): Whitespace changes.
        * df.h: Some reordering to remove forward references.
        * df.h: Some reordering to remove forward references.
        (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
        (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
        DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
        DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
        (df_ref_flags.DF_REF_CLOBBER): Deleted field.
        (df_ref_flags.DF_REF_CLOBBER): Deleted field.
        (dataflow.flags): New field.
        (dataflow.flags): New field.
        (df.flag): Deleted field.
        (df.flag): Deleted field.
        (df_alloc_function): Added additional bitmap parameter.
        (df_alloc_function): Added additional bitmap parameter.
        (df_dependent_problem_function): New type.
        (df_dependent_problem_function): New type.
        (df_problem.changeable_flags): New field.
        (df_problem.changeable_flags): New field.
        (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
        (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
        DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
        DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
        (df_mw_hardreg): New struct.
        (df_mw_hardreg): New struct.
        (DF_INSN_UID_MWS): New macro.
        (DF_INSN_UID_MWS): New macro.
        (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
        (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
        parameter.
        parameter.
        (df_add_problem, df_ru_add_problem, df_rd_add_problem,
        (df_add_problem, df_ru_add_problem, df_rd_add_problem,
        df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
        df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
        df_ri_add_problem, df_scan_add_problem): Added flags parameter.
        df_ri_add_problem, df_scan_add_problem): Added flags parameter.
        (df_set_state): Removed function.
        (df_set_state): Removed function.
        (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
        (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
        * df-problems.c (df_chain_dump): Removed df parameter.
        * df-problems.c (df_chain_dump): Removed df parameter.
        (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
        (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
        df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
        df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
        parameter.
        parameter.
        (df_ru_alloc, df_rd_alloc): Now resets all blocks.
        (df_ru_alloc, df_rd_alloc): Now resets all blocks.
        (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
        (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
        df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
        df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
        Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
        Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
        DF_REF_MUST_CLOBBER cases.
        DF_REF_MUST_CLOBBER cases.
        (df_ru_bb_local_compute_process_def,
        (df_ru_bb_local_compute_process_def,
        df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
        df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
        df_lr_bb_local_compute, df_ur_bb_local_compute,
        df_lr_bb_local_compute, df_ur_bb_local_compute,
        df_chain_create_bb): Made subreg aware.
        df_chain_create_bb): Made subreg aware.
        (df_ru_bb_local_compute, df_rd_bb_local_compute,
        (df_ru_bb_local_compute, df_rd_bb_local_compute,
        df_lr_bb_local_compute, df_lr_bb_local_compute,
        df_lr_bb_local_compute, df_lr_bb_local_compute,
        df_chain_create_bb): Cleanup to use proper macros.
        df_chain_create_bb): Cleanup to use proper macros.
        (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
        (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
        code to fixup bitvectors.
        code to fixup bitvectors.
        (df_ri_alloc): Cleared lifetime.
        (df_ri_alloc): Cleared lifetime.
        (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
        (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
        df_create_unused_note): New function.
        df_create_unused_note): New function.
        (df_ri_bb_compute, df_ri_compute): Added code to create/update
        (df_ri_bb_compute, df_ri_compute): Added code to create/update
        REG_DEAD and REG_UNUSED notes as well as register information.
        REG_DEAD and REG_UNUSED notes as well as register information.
        (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
        (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
        df_chains_dump): Fixed crash if problem was never run.
        df_chains_dump): Fixed crash if problem was never run.
        (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
        (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
        df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
        df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
        df_ri_add_problem): Processes flags in uniform manner.
        df_ri_add_problem): Processes flags in uniform manner.
        (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
        (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
        df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
        df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
        df_rd_dump, df_urec_free_bb_info): Formatting changes.
        df_rd_dump, df_urec_free_bb_info): Formatting changes.
        (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
        (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
        df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
        df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
        df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
        df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
        df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
        df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
        df_ur_dump, df_urec_free_bb_info, df_urec_dump,
        df_ur_dump, df_urec_free_bb_info, df_urec_dump,
        df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
        df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
        * modulo-sched.c (sms_schedule): Added flag parameter to calls.
        * modulo-sched.c (sms_schedule): Added flag parameter to calls.
        * see.c (see_initialize_data): Ditto.
        * see.c (see_initialize_data): Ditto.
        * final.c (rest_of_clean_state) Added regstack_completed.
        * final.c (rest_of_clean_state) Added regstack_completed.
        * rtl.h (regstack_completed): Ditto.
        * rtl.h (regstack_completed): Ditto.
        * reg-stack.c (regstack_completed): Ditto.
        * reg-stack.c (regstack_completed): Ditto.
2006-05-19  Mike Stump  
2006-05-19  Mike Stump  
        * c-tree.h (default_conversion): Remove.
        * c-tree.h (default_conversion): Remove.
        * c-common.h (default_conversion): Add.
        * c-common.h (default_conversion): Add.
2006-05-19  Zdenek Dvorak 
2006-05-19  Zdenek Dvorak 
        * tree-vrp.c (valid_value_p): New function.
        * tree-vrp.c (valid_value_p): New function.
        (adjust_range_with_scev): Fail if the value of bound is not
        (adjust_range_with_scev): Fail if the value of bound is not
        simple.
        simple.
2006-05-19  Richard Sandiford  
2006-05-19  Richard Sandiford  
        * config/mips/linux-unwind.h: Include 
        * config/mips/linux-unwind.h: Include 
        (mips_fallback_frame_state): Use syscall numbers to determine
        (mips_fallback_frame_state): Use syscall numbers to determine
        the appropriate li instruction for the current ABI.  Only use
        the appropriate li instruction for the current ABI.  Only use
        __NR_sigreturn for o32.
        __NR_sigreturn for o32.
2006-05-19  Nicolas Setton  
2006-05-19  Nicolas Setton  
        * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
        * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
        * langhooks.c (lhd_dwarf_name): New function.
        * langhooks.c (lhd_dwarf_name): New function.
        * langhooks-def.h (lhd_dwarf_name): Declare.
        * langhooks-def.h (lhd_dwarf_name): Declare.
        (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
        (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
        * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
        * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
2006-05-19  Richard Sandiford  
2006-05-19  Richard Sandiford  
        * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
        * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
        libgcc2.h.
        libgcc2.h.
        (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
        (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
        MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
        MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
        LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
        LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
        * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
        * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
        Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
        Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
        determine the size of Wtype, etc.
        determine the size of Wtype, etc.
        * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
        * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
        (swfloatfuncs): New variable.
        (swfloatfuncs): New variable.
        (dwfloatfuncs): Likewise.
        (dwfloatfuncs): Likewise.
        (lib2funcs): Remove floating-point conversion functions from
        (lib2funcs): Remove floating-point conversion functions from
        initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
        initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
        the set of conversion routines needed.  Allow entries to specify
        the set of conversion routines needed.  Allow entries to specify
        an object name, filename and word size.  Update users accordingly.
        an object name, filename and word size.  Update users accordingly.
        * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
        * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
        * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
        * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
        Revert:
        Revert:
        2006-02-08  Roger Sayle  
        2006-02-08  Roger Sayle  
        PR target/22209
        PR target/22209
        * config/fixtfdi.c: New libgcc source file.
        * config/fixtfdi.c: New libgcc source file.
        * config/fixunstfdi.c: New source file.
        * config/fixunstfdi.c: New source file.
        * config/floatditf.c: New source file.
        * config/floatditf.c: New source file.
        * config/floatunditf.c: New souce file.
        * config/floatunditf.c: New souce file.
        * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
        * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
        files above instead of config/mips/_tilib.c.
        files above instead of config/mips/_tilib.c.
        * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
        * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2006-05-18  John David Anglin  
2006-05-18  John David Anglin  
        * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
        * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
        * pa/pa-hpux11.h (LIB_SPEC): Update comment.
        * pa/pa-hpux11.h (LIB_SPEC): Update comment.
2006-05-18  Mike Stump  
2006-05-18  Mike Stump  
        Fix up vla, vm and [*] sematics.
        Fix up vla, vm and [*] sematics.
        PR c/18740
        PR c/18740
        PR c/7948
        PR c/7948
        PR c/25802
        PR c/25802
        PR c/27673
        PR c/27673
        * c-tree.h (struct c_arg_info): Add had_vla_unspec.
        * c-tree.h (struct c_arg_info): Add had_vla_unspec.
        (c_vla_unspec_p): Add.
        (c_vla_unspec_p): Add.
        (c_vla_type_p): Add.
        (c_vla_type_p): Add.
        * c-decl.c (struct c_scope): Add had_vla_unspec.
        * c-decl.c (struct c_scope): Add had_vla_unspec.
        (build_array_declarator): Add support for [*].
        (build_array_declarator): Add support for [*].
        (grokdeclarator): Likewise.
        (grokdeclarator): Likewise.
        (grokparms): Likewise.
        (grokparms): Likewise.
        (get_parm_info): Likewise.
        (get_parm_info): Likewise.
        * c-objc-common.c (c_vla_unspec_p): Likewise.
        * c-objc-common.c (c_vla_unspec_p): Likewise.
        * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
        * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
        * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
        * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
        typeof when argument is a variably modified type not inside sizeof or alignof.
        typeof when argument is a variably modified type not inside sizeof or alignof.
        (c_parser_direct_declarator_inner): Propagate errors.
        (c_parser_direct_declarator_inner): Propagate errors.
        (c_parser_sizeof_expression): Add support for [*].
        (c_parser_sizeof_expression): Add support for [*].
        (c_parser_parms_declarator): Initialize had_vla_unspec.
        (c_parser_parms_declarator): Initialize had_vla_unspec.
        (c_parser_parms_list_declarator): Likewise.
        (c_parser_parms_list_declarator): Likewise.
        * c-typeck.c (c_vla_type_p): Add.
        * c-typeck.c (c_vla_type_p): Add.
        (composite_type): Add support for vla compositing.
        (composite_type): Add support for vla compositing.
        (comptypes_internal): Add support for vla compatibility.
        (comptypes_internal): Add support for vla compatibility.
        (c_expr_sizeof_expr): Evaluate vla arguments.
        (c_expr_sizeof_expr): Evaluate vla arguments.
        * tree.c (variably_modified_type_p): Update comment for [*].
        * tree.c (variably_modified_type_p): Update comment for [*].
2006-05-18  Michael Matz  
2006-05-18  Michael Matz  
        PR target/27599
        PR target/27599
        * config.host: Make assignments to host_xmake_file cumulative.
        * config.host: Make assignments to host_xmake_file cumulative.
        * config.host (*-darwin*): Test $host, not $target.
        * config.host (*-darwin*): Test $host, not $target.
2006-05-12  Stuart Hastings  
2006-05-12  Stuart Hastings  
        * config/i386/i386.opt (-mstackrealign): New flag.
        * config/i386/i386.opt (-mstackrealign): New flag.
        * config/i386/i386.c (force_align_arg_pointer): New attribute.
        * config/i386/i386.c (force_align_arg_pointer): New attribute.
        (ix86_handle_cconv_attribute): Emit error when
        (ix86_handle_cconv_attribute): Emit error when
        force_align_arg_pointer attribute collides with too many regparms.
        force_align_arg_pointer attribute collides with too many regparms.
        (ix86_function_regparm): Limit regparms when used with
        (ix86_function_regparm): Limit regparms when used with
        force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
        force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
        Support stack-realigning prologue in non-main functions.  Emit
        Support stack-realigning prologue in non-main functions.  Emit
        warning for nested functions under -mstackrealign, emit error for
        warning for nested functions under -mstackrealign, emit error for
        nested functions with force_align_arg_pointer attribute.
        nested functions with force_align_arg_pointer attribute.
        * doc/extend.texi (force_align_arg_pointer): Document it.
        * doc/extend.texi (force_align_arg_pointer): Document it.
        * doc/invoke.texi (-mstackrealign): Document it.
        * doc/invoke.texi (-mstackrealign): Document it.
2006-05-17  Kazu Hirata  
2006-05-17  Kazu Hirata  
        PR rtl-optimization/27477
        PR rtl-optimization/27477
        * combine.c (try_combine): Don't split a parallel consisting
        * combine.c (try_combine): Don't split a parallel consisting
        of two sets into two individual sets if both sets reference
        of two sets into two individual sets if both sets reference
        cc0.
        cc0.
2006-05-17  H.J. Lu  
2006-05-17  H.J. Lu  
        * config/arm/arm.opt (target_fpe_name): Remove VarExists.
        * config/arm/arm.opt (target_fpe_name): Remove VarExists.
        * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
        * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
        * doc/options.texi (VarExists): Updated.
        * doc/options.texi (VarExists): Updated.
2006-05-17  John David Anglin  
2006-05-17  John David Anglin  
        * unwind-dw2.c: Add declarations for uw_update_context and
        * unwind-dw2.c: Add declarations for uw_update_context and
        uw_frame_state_for.
        uw_frame_state_for.
        * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
        * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
        detected, advance frame state and context once to skip over stub.
        detected, advance frame state and context once to skip over stub.
2006-05-17  Sebastian Pop  
2006-05-17  Sebastian Pop  
        PR middle-end/20256
        PR middle-end/20256
        PR middle-end/26435
        PR middle-end/26435
        * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
        * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
        Call rewrite_into_loop_closed_ssa only when something changed.
        Call rewrite_into_loop_closed_ssa only when something changed.
        * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
        * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
        * lambda-code.c (can_convert_to_perfect_nest): Declared.
        * lambda-code.c (can_convert_to_perfect_nest): Declared.
        (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
        (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
        Test for perfect_nest_p here.  Fix formating.
        Test for perfect_nest_p here.  Fix formating.
        (replace_uses_equiv_to_x_with_y): Fix formating.
        (replace_uses_equiv_to_x_with_y): Fix formating.
        (stmt_uses_op): Removed.
        (stmt_uses_op): Removed.
        (can_convert_to_perfect_nest): Removed loopivs parameter.
        (can_convert_to_perfect_nest): Removed loopivs parameter.
        Complete the test by checking the scalar dependences.
        Complete the test by checking the scalar dependences.
        (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
        (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
        Fix formating.
        Fix formating.
2005-05-17  Bernd Schmidt  
2005-05-17  Bernd Schmidt  
        PR bootstrap/22541
        PR bootstrap/22541
        From Dan Kegel :
        From Dan Kegel :
        * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
        * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
2006-05-17  Eric Botcazou  
2006-05-17  Eric Botcazou  
        * tree.c (variably_modified_type_p) : Return true
        * tree.c (variably_modified_type_p) : Return true
        if the element type is variably modified without recursing.
        if the element type is variably modified without recursing.
2006-05-17  Sebastian Pop  
2006-05-17  Sebastian Pop  
        PR middle-end/27332
        PR middle-end/27332
        * tree-loop-linear.c (try_interchange_loops): Test for
        * tree-loop-linear.c (try_interchange_loops): Test for
        no data dependences.
        no data dependences.
2006-05-17  Zdenek Dvorak 
2006-05-17  Zdenek Dvorak 
        PR tree-optimization/27548
        PR tree-optimization/27548
        * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
        * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
        range of ssa names that appear on abnormal edges.
        range of ssa names that appear on abnormal edges.
        * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
        * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
        * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
        * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
2005-05-17  Bernd Schmidt  
2005-05-17  Bernd Schmidt  
        PR middle-end/27620
        PR middle-end/27620
        * expr.c (safe_from_p): Handle CONSTRUCTOR again.
        * expr.c (safe_from_p): Handle CONSTRUCTOR again.
2006-05-17  Jakub Jelinek  
2006-05-17  Jakub Jelinek  
        PR middle-end/27415
        PR middle-end/27415
        * tree.h (OMP_PARALLEL_COMBINED): Define.
        * tree.h (OMP_PARALLEL_COMBINED): Define.
        * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
        * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
        (new_omp_context): Add is_combined_parallel argument.
        (new_omp_context): Add is_combined_parallel argument.
        (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
        (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
        new_omp_context caller.
        new_omp_context caller.
        (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
        (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
        Adjust gimplify_scan_omp_clauses callers.
        Adjust gimplify_scan_omp_clauses callers.
        (omp_is_private): Issue errors if iteration variable is firstprivate
        (omp_is_private): Issue errors if iteration variable is firstprivate
        or reduction in the current context.
        or reduction in the current context.
        * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
        * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
        on combined parallel workshare constructs.
        on combined parallel workshare constructs.
2006-05-16  H.J. Lu  
2006-05-16  H.J. Lu  
        * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
        * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
        (gcc-options.o): New rule.
        (gcc-options.o): New rule.
        * optc-gen.awk: Protect variables for gcc-options.o with
        * optc-gen.awk: Protect variables for gcc-options.o with
        #ifdef GCC_DRIVER/#endif.
        #ifdef GCC_DRIVER/#endif.
2006-05-16  Daniel Berlin 
2006-05-16  Daniel Berlin 
        Fix PR tree-optimization/27373
        Fix PR tree-optimization/27373
        * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
        * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
         (forward_propagate_addr_expr): Update call.
         (forward_propagate_addr_expr): Update call.
2006-05-16  H.J. Lu  
2006-05-16  H.J. Lu  
        * doc/options.texi: Move the Negative option.
        * doc/options.texi: Move the Negative option.
2006-05-16  Richard Guenther  
2006-05-16  Richard Guenther  
        PR tree-optimization/22303
        PR tree-optimization/22303
        * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
        * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
        from STRING_CSTs.
        from STRING_CSTs.
        (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
        (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
        ccp_fold did not simplify the statement.
        ccp_fold did not simplify the statement.
2006-05-16  H.J. Lu  
2006-05-16  H.J. Lu  
        PR driver/26885
        PR driver/26885
        * Makefile.in (GCC_OBJS): New.
        * Makefile.in (GCC_OBJS): New.
        (OBJS-common): Add opts-common.o.
        (OBJS-common): Add opts-common.o.
        (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
        (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
        (cpp$(exeext)): Likewise.
        (cpp$(exeext)): Likewise.
        (gcc.o): Also depend on opts.h.
        (gcc.o): Also depend on opts.h.
        (opts-common.o): New.
        (opts-common.o): New.
        * common.opt (gcoff): Add Negative(gdwarf-2).
        * common.opt (gcoff): Add Negative(gdwarf-2).
        (gdwarf-2): Add Negative(gstabs).
        (gdwarf-2): Add Negative(gstabs).
        (gstabs): Add Negative(gstabs+).
        (gstabs): Add Negative(gstabs+).
        (gstabs+): Add Negative(gvms).
        (gstabs+): Add Negative(gvms).
        (gvms): Add Negative(gxcoff).
        (gvms): Add Negative(gxcoff).
        (gxcoff): Add Negative(gxcoff+).
        (gxcoff): Add Negative(gxcoff+).
        (gxcoff+): Add Negative(gcoff).
        (gxcoff+): Add Negative(gcoff).
        * config/i386/i386.opt (m32): Add Negative(m64).
        * config/i386/i386.opt (m32): Add Negative(m64).
        (m64): Add Negative(m32).
        (m64): Add Negative(m32).
        * doc/options.texi: Document the Negative option.
        * doc/options.texi: Document the Negative option.
        * gcc.c: Include "opts.h".
        * gcc.c: Include "opts.h".
        (main): Call prune_options after expandargv.
        (main): Call prune_options after expandargv.
        * optc-gen.awk: Generate common declarations for all flag
        * optc-gen.awk: Generate common declarations for all flag
        variables in options.c. Output the neg_index field.
        variables in options.c. Output the neg_index field.
        * opts.c (find_opt): Moved to ...
        * opts.c (find_opt): Moved to ...
        * opts-common.c: Here. New file.
        * opts-common.c: Here. New file.
        * opts.h (cl_option): Add a neg_index field.
        * opts.h (cl_option): Add a neg_index field.
        (find_opt): New.
        (find_opt): New.
        (prune_options): Likewise.
        (prune_options): Likewise.
2006-05-16  Jakub Jelinek  
2006-05-16  Jakub Jelinek  
        PR middle-end/27573
        PR middle-end/27573
        * omp-low.c (expand_omp_parallel): Don't assert
        * omp-low.c (expand_omp_parallel): Don't assert
        .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
        .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
        instead search for it.
        instead search for it.
        PR c/27499
        PR c/27499
        * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
        * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
        is signed.
        is signed.
2006-05-16  Andreas Schwab  
2006-05-16  Andreas Schwab  
        * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
        * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
        defmac.
        defmac.
2006-05-15  Roger Sayle  
2006-05-15  Roger Sayle  
        PR target/26600
        PR target/26600
        * config/i386/i386.c (legitimate_constant_p) : TImode
        * config/i386/i386.c (legitimate_constant_p) : TImode
        integer constants other than zero are only legitimate on TARGET_64BIT.
        integer constants other than zero are only legitimate on TARGET_64BIT.
         Only zero vectors are legitimate.
         Only zero vectors are legitimate.
        (ix86_cannot_force_const_mem): Integral and vector constants can
        (ix86_cannot_force_const_mem): Integral and vector constants can
        always be put in the constant pool.
        always be put in the constant pool.
2006-05-16  DJ Delorie  
2006-05-16  DJ Delorie  
        * crtstuff.c (__dso_handle): Set section from
        * crtstuff.c (__dso_handle): Set section from
        TARGET_LBIGCC_SDATA_SECTION if defined.
        TARGET_LBIGCC_SDATA_SECTION if defined.
        * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
        * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
        * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
        * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
2006-05-16  Danny Smith  
2006-05-16  Danny Smith  
        PR target/27599
        PR target/27599
        * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
        * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
        host_xmake_file.
        host_xmake_file.
2006-05-16  Ben Elliston  
2006-05-16  Ben Elliston  
        * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
        * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
2006-05-15  Per Bothner  
2006-05-15  Per Bothner  
        * tree.c: (last_annotated_node): Use source_locus typedef.
        * tree.c: (last_annotated_node): Use source_locus typedef.
        This permits bootstrapping with --enable-mapped-location.
        This permits bootstrapping with --enable-mapped-location.
2006-05-15  Zdenek Dvorak 
2006-05-15  Zdenek Dvorak 
        PR tree-optimization/26830
        PR tree-optimization/26830
        * tree-into-ssa.c (struct ssa_name_info): Add age field.
        * tree-into-ssa.c (struct ssa_name_info): Add age field.
        (info_for_ssa_name, current_info_for_ssa_name_age,
        (info_for_ssa_name, current_info_for_ssa_name_age,
        blocks_to_update): New variables.
        blocks_to_update): New variables.
        (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
        (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
        (clear_ssa_name_info, initialize_flags_in_bb,
        (clear_ssa_name_info, initialize_flags_in_bb,
        mark_block_for_update): New functions.
        mark_block_for_update): New functions.
        (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
        (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
        (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
        (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
        prepare_def_site_for): Use mark_block_for_update.
        prepare_def_site_for): Use mark_block_for_update.
        (mark_def_interesting): Assert that the processed block is marked in
        (mark_def_interesting): Assert that the processed block is marked in
        blocks_to_update.  Do not take blocks argument.
        blocks_to_update.  Do not take blocks argument.
        (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
        (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
        argument.
        argument.
        (rewrite_update_init_block, rewrite_update_stmt): Only process
        (rewrite_update_init_block, rewrite_update_stmt): Only process
        blocks with statements to rewrite.
        blocks with statements to rewrite.
        (delete_update_ssa): Do not clear SSA_NAME_AUX.
        (delete_update_ssa): Do not clear SSA_NAME_AUX.
        (update_ssa): Initialize and free blocks_to_update.  Do not
        (update_ssa): Initialize and free blocks_to_update.  Do not
        clear flags on statements.  Do not use blocks bitmap.
        clear flags on statements.  Do not use blocks bitmap.
        * tree.h (SSA_NAME_AUX): Removed.
        * tree.h (SSA_NAME_AUX): Removed.
        (struct tree_ssa_name): Removed aux field.
        (struct tree_ssa_name): Removed aux field.
        * print-tree.c (print_node): Do not print SSA_NAME_AUX.
        * print-tree.c (print_node): Do not print SSA_NAME_AUX.
2006-05-15  Richard Guenther  
2006-05-15  Richard Guenther  
        PR tree-optimization/27603
        PR tree-optimization/27603
        * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
        * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
        Do computations in original type.
        Do computations in original type.
2006-05-15  Mircea Namolaru  
2006-05-15  Mircea Namolaru  
        * see.c: Code style changes such as redundant paranthesis,
        * see.c: Code style changes such as redundant paranthesis,
        redundant intialization of local variables etc.
        redundant intialization of local variables etc.
        (see_main): Declared now as static.
        (see_main): Declared now as static.
        * doc/invoke.texi: Update that -fsee is not enabled by
        * doc/invoke.texi: Update that -fsee is not enabled by
        default at -O3.
        default at -O3.
2006-05-15  Jakub Jelinek  
2006-05-15  Jakub Jelinek  
        * omp-low.c (check_omp_nesting_restrictions): New function.
        * omp-low.c (check_omp_nesting_restrictions): New function.
        (scan_omp_1): Call it.
        (scan_omp_1): Call it.
        PR middle-end/27416
        PR middle-end/27416
        * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
        * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
        construct, return *VAR.
        construct, return *VAR.
2006-05-14  Kaz Kojima  
2006-05-14  Kaz Kojima  
        PR rtl-optimization/27406
        PR rtl-optimization/27406
        * bt-load.c (migrate_btr_def): Skip the block having abnormal
        * bt-load.c (migrate_btr_def): Skip the block having abnormal
        edges.
        edges.
2006-05-14  Roger Sayle  
2006-05-14  Roger Sayle  
        PR rtl-optimization/27538
        PR rtl-optimization/27538
        * combine.c (expand_compound_operation): Call gen_lowpart
        * combine.c (expand_compound_operation): Call gen_lowpart
        before calling simplify_shift_const.
        before calling simplify_shift_const.
2006-05-14  Roger Sayle  
2006-05-14  Roger Sayle  
        PR rtl-optimization/22563
        PR rtl-optimization/22563
        * expmed.c (store_fixed_bit_field): When using AND and IOR to store
        * expmed.c (store_fixed_bit_field): When using AND and IOR to store
        a fixed width bitfield, always force the intermediates into psuedos.
        a fixed width bitfield, always force the intermediates into psuedos.
2006-05-14  Bernhard Fischer  
2006-05-14  Bernhard Fischer  
        PR 27501
        PR 27501
        * mkconfig.sh: Use operator = instead of == for test.
        * mkconfig.sh: Use operator = instead of == for test.
2006-05-13  Nick Clifton  
2006-05-13  Nick Clifton  
        * dwarf2out.c (dbx_reg_number): Check return value from
        * dwarf2out.c (dbx_reg_number): Check return value from
        LEAF_REG_REMAP and only use it if it is valid.
        LEAF_REG_REMAP and only use it if it is valid.
        (multiple_reg_loc_descriptor): Likewise.
        (multiple_reg_loc_descriptor): Likewise.
2006-05-13  Richard Guenther  
2006-05-13  Richard Guenther  
        * config.host : Append i386/x-cygwin to
        * config.host : Append i386/x-cygwin to
        host_xmake_file.
        host_xmake_file.
2006-05-13  Steven Bosscher  
2006-05-13  Steven Bosscher  
        * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
        * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
        information attached to non-INSNs such as NOTEs.
        information attached to non-INSNs such as NOTEs.
        (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
        (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
2006-05-12  Andreas Krebbel  
2006-05-12  Andreas Krebbel  
        * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
        * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
        On contraint.
        On contraint.
        * config/s390/s390.md: Adjust comment describing On constraint.
        * config/s390/s390.md: Adjust comment describing On constraint.
2006-05-11  Jan Hubicka  
2006-05-11  Jan Hubicka  
        * cgraphunit.c (decide_is_function_needed): Don't force always_inline
        * cgraphunit.c (decide_is_function_needed): Don't force always_inline
        to be output at -O0.
        to be output at -O0.
2006-05-11  Volker Reichelt  
2006-05-11  Volker Reichelt  
        PR middle-end/27384
        PR middle-end/27384
        * fold-const.c (size_binop): Move sanity check for arguments to
        * fold-const.c (size_binop): Move sanity check for arguments to
        the beginning of the function.
        the beginning of the function.
        PR middle-end/27488
        PR middle-end/27488
        * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
        * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
        expression.
        expression.
2006-05-11  Richard Guenther  
2006-05-11  Richard Guenther  
        PR middle-end/27529
        PR middle-end/27529
        * fold-const.c (fold_unary): Handle intermediate conversion
        * fold-const.c (fold_unary): Handle intermediate conversion
        to a pointer type like intermediate conversion to an integer
        to a pointer type like intermediate conversion to an integer
        type in folding of (T1)(T2)var to var.
        type in folding of (T1)(T2)var to var.
        Match the code to the comment in the final conversion for
        Match the code to the comment in the final conversion for
        (T1)(T2)var to (T1)var regarding to type precision.  Rather
        (T1)(T2)var to (T1)var regarding to type precision.  Rather
        than disallow T1 being of pointer type, assert that both T1
        than disallow T1 being of pointer type, assert that both T1
        and var are of pointer type or not.  Make sure not to fall
        and var are of pointer type or not.  Make sure not to fall
        over the frontends lazyness wrt array to pointer decay though.
        over the frontends lazyness wrt array to pointer decay though.
2006-05-10  Richard Earnshaw  
2006-05-10  Richard Earnshaw  
        * arm.c (arm_struct_value_rtx): Delete.
        * arm.c (arm_struct_value_rtx): Delete.
        (TARGET_STRUCT_VALUE_RTX): Use the default definition.
        (TARGET_STRUCT_VALUE_RTX): Use the default definition.
        (arm_init_cumulative_args): Always initialize nregs to zero.
        (arm_init_cumulative_args): Always initialize nregs to zero.
2006-05-10  Richard Guenther  
2006-05-10  Richard Guenther  
        PR tree-optimization/27532
        PR tree-optimization/27532
        * tree-object-size.c (plus_expr_object_size): Fix typo.
        * tree-object-size.c (plus_expr_object_size): Fix typo.
2006-05-10  Kazu Hirata  
2006-05-10  Kazu Hirata  
        PR target/24949
        PR target/24949
        * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
        * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
        ashrdi_const, ashrdi3): Use a scratch register.
        ashrdi_const, ashrdi3): Use a scratch register.
2006-05-10  Richard Guenther  
2006-05-10  Richard Guenther  
        PR tree-optimization/27302
        PR tree-optimization/27302
        * fold-const.c (operand_equal_p): For two comparisons,
        * fold-const.c (operand_equal_p): For two comparisons,
        try comparison of one comparison code swapped if that yields
        try comparison of one comparison code swapped if that yields
        the same code.
        the same code.
2006-05-10  Ben Elliston  
2006-05-10  Ben Elliston  
        * tree-pretty-print.c (pretty_print_string): No need to handle
        * tree-pretty-print.c (pretty_print_string): No need to handle
        '\0' as a special character.
        '\0' as a special character.
        * tree.h: Include "hashtab.h".
        * tree.h: Include "hashtab.h".
        (iterative_hash_expr): Use hashval_t in its prototype.
        (iterative_hash_expr): Use hashval_t in its prototype.
        * Makefile.in (TREE_H): Add $(HASHTAB_H).
        * Makefile.in (TREE_H): Add $(HASHTAB_H).
2006-05-09  Steve Ellcey  
2006-05-09  Steve Ellcey  
        PR bootstrap/26872
        PR bootstrap/26872
        * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
        * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
        (hppa*64*-*-hpux11*): Ditto.
        (hppa*64*-*-hpux11*): Ditto.
        (hppa[12]*-*-hpux11*): Ditto.
        (hppa[12]*-*-hpux11*): Ditto.
2006-05-09  David Edelsohn  
2006-05-09  David Edelsohn  
        PR target/26545
        PR target/26545
        * config/rs6000/aix41.h (TARGET_64BIT): Define.
        * config/rs6000/aix41.h (TARGET_64BIT): Define.
2006-05-09  Michael Matz  
2006-05-09  Michael Matz  
        * config.host (): Set
        * config.host (): Set
        host_extra_gcc_objs and host_xmake_file.
        host_extra_gcc_objs and host_xmake_file.
        (<*-*-linux*>): Don't overwrite host_xmake_file.
        (<*-*-linux*>): Don't overwrite host_xmake_file.
        * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
        * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
        * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
        * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
        (host_detect_local_cpu): Declare.
        (host_detect_local_cpu): Declare.
        (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
        (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
        * config/i386/i386.c (override_options): Handle -mtune=native
        * config/i386/i386.c (override_options): Handle -mtune=native
        as -mtune=generic.
        as -mtune=generic.
        * config/i386/x-i386: New file.
        * config/i386/x-i386: New file.
        * config/i386/driver-i386.c: New file.
        * config/i386/driver-i386.c: New file.
        * doc/invoke.texi (): Describe
        * doc/invoke.texi (): Describe
        cpu-type "native".
        cpu-type "native".
2006-05-09  Dirk Mueller  
2006-05-09  Dirk Mueller  
        Richard Guenther  
        Richard Guenther  
        PR middle-end/27498
        PR middle-end/27498
        * fold-const.c (fold_read_from_constant_string): Relax check
        * fold-const.c (fold_read_from_constant_string): Relax check
        for matching types to matching modes.
        for matching types to matching modes.
2006-05-09  Zdenek Dvorak 
2006-05-09  Zdenek Dvorak 
        PR rtl-optimization/27335
        PR rtl-optimization/27335
        * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
        * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
        loops.
        loops.
2006-05-08  Chao-ying Fu  
2006-05-08  Chao-ying Fu  
            Richard Sandiford  
            Richard Sandiford  
        * config/mips/mips-ps-3d.md (scc_ps, s_ps): New patterns.
        * config/mips/mips-ps-3d.md (scc_ps, s_ps): New patterns.
        (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
        (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
        * config/mips/mips.md (UNSPEC_SCC): New constant.
        * config/mips/mips.md (UNSPEC_SCC): New constant.
        * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
        * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
        * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
        * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
        (mips_emit_compare): Use it.
        (mips_emit_compare): Use it.
        (mips_expand_vcondv2sf): New function.
        (mips_expand_vcondv2sf): New function.
2006-05-08  Daniel Berlin  
2006-05-08  Daniel Berlin  
        Fix PR tree-optimization/27093
        Fix PR tree-optimization/27093
        * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
        * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
        renaming when they become not-used_alone.
        renaming when they become not-used_alone.
2006-05-08  John David Anglin  
2006-05-08  John David Anglin  
        * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
        * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
        relocation and relocation stubs.
        relocation and relocation stubs.
2006-05-08  Eric Christopher  
2006-05-08  Eric Christopher  
        * unwind-dw2-fde-darwin.c (examine_objects): Only check data
        * unwind-dw2-fde-darwin.c (examine_objects): Only check data
        section for ppc.
        section for ppc.
2006-05-08  Jan Hubicka  
2006-05-08  Jan Hubicka  
        PR middle-end/24561
        PR middle-end/24561
        * cgraphunit.c (decide_is_function_needed): When not optimizing even
        * cgraphunit.c (decide_is_function_needed): When not optimizing even
        unused static functions are needed.
        unused static functions are needed.
2006-05-08  Roger Sayle  
2006-05-08  Roger Sayle  
        PR target/27158
        PR target/27158
        * reload.c (find_reloads_toplev): Only return the simplified SUBREG
        * reload.c (find_reloads_toplev): Only return the simplified SUBREG
        of a reg_equiv_constant if the result is a legitimate constant.
        of a reg_equiv_constant if the result is a legitimate constant.
2006-05-08  Uros Bizjak  
2006-05-08  Uros Bizjak  
        PR target/27277
        PR target/27277
        * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
        * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
        standard 80387 constants, raise the cost to prevent
        standard 80387 constants, raise the cost to prevent
        compress_float_constant() to generate load from memory.
        compress_float_constant() to generate load from memory.
2006-05-08  Kazu Hirata  
2006-05-08  Kazu Hirata  
        * config/arm/constraints.md (c): Fix a typo.
        * config/arm/constraints.md (c): Fix a typo.
        * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
        * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
        typos.
        typos.
2006-05-07  H.J. Lu  
2006-05-07  H.J. Lu  
        PR target/24879
        PR target/24879
        * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
        * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
        inline function.
        inline function.
        (_mm_mwait): Likewise.
        (_mm_mwait): Likewise.
        * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
        * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
        "mwait".
        "mwait".
        (sse3_monitor): Make it 32bit only.
        (sse3_monitor): Make it 32bit only.
        (sse3_monitor64): New. 64bit monitor.
        (sse3_monitor64): New. 64bit monitor.
2006-05-07  Volker Reichelt  
2006-05-07  Volker Reichelt  
        PR target/27421
        PR target/27421
        * config/i386/i386.c (classify_argument): Skip fields with invalid
        * config/i386/i386.c (classify_argument): Skip fields with invalid
        types.
        types.
2006-05-07  Richard Guenther  
2006-05-07  Richard Guenther  
        PR tree-optimization/27409
        PR tree-optimization/27409
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        Do not try to find zero-sized subvars.
        Do not try to find zero-sized subvars.
2006-05-07  Richard Guenther  
2006-05-07  Richard Guenther  
        PR tree-optimization/27136
        PR tree-optimization/27136
        * tree-ssa-loop-niter.c (get_val_for): Correct function
        * tree-ssa-loop-niter.c (get_val_for): Correct function
        comment, assert requirements.
        comment, assert requirements.
        (loop_niter_by_eval): Stop processing if the iterated
        (loop_niter_by_eval): Stop processing if the iterated
        value did not simplify.
        value did not simplify.
2006-05-07  Mircea Namolaru  
2006-05-07  Mircea Namolaru  
        * opts.c (flag_see): remove its setting at -O3.
        * opts.c (flag_see): remove its setting at -O3.
2006-05-07  Richard Earnshaw  
2006-05-07  Richard Earnshaw  
        * genpeep.c (main): Make insn-peep.c depend on flags.h.
        * genpeep.c (main): Make insn-peep.c depend on flags.h.
        * arm/constraints.md: New file.
        * arm/constraints.md: New file.
        * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
        * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
        (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
        (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
        (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
        (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
        (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
        (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
        (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
        (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
        (EXTRA_MEMORY_CONSTRAINT): Likewise.
        (EXTRA_MEMORY_CONSTRAINT): Likewise.
        * arm.md: Include constraints.md.
        * arm.md: Include constraints.md.
        (thumb_movsi_insn): Use satisfies_constraint_J.
        (thumb_movsi_insn): Use satisfies_constraint_J.
        (movhi, movqi): Use satisfies_constraint_I.
        (movhi, movqi): Use satisfies_constraint_I.
2006-04-29 Anatoly Sokolov 
2006-04-29 Anatoly Sokolov 
        * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
        * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
        for atmeg a645 device.
        for atmeg a645 device.
2006-05-06   Richard Guenther  
2006-05-06   Richard Guenther  
        PR tree-optimization/27151
        PR tree-optimization/27151
        * tree-vect-transform.c (vectorizable_condition): Punt on
        * tree-vect-transform.c (vectorizable_condition): Punt on
        values that have a different type than the condition.
        values that have a different type than the condition.
2006-05-03  Aldy Hernandez  
2006-05-03  Aldy Hernandez  
        PR/21391
        PR/21391
        * c-parser.c (c_parser_cast_expression): Only insert casts into
        * c-parser.c (c_parser_cast_expression): Only insert casts into
        hash table if pointer.
        hash table if pointer.
        * function.c (used_types_insert_helper): Rename from
        * function.c (used_types_insert_helper): Rename from
        used_types_insert.
        used_types_insert.
        (used_types_insert): Call used_types_insert_helper.
        (used_types_insert): Call used_types_insert_helper.
        * function.h (used_types_insert): Accept only one argument.
        * function.h (used_types_insert): Accept only one argument.
2006-05-05  David Edelsohn  
2006-05-05  David Edelsohn  
        * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
        * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
        scratch with output modifier.
        scratch with output modifier.
2006-05-04  David Edelsohn  
2006-05-04  David Edelsohn  
        PR target/26481
        PR target/26481
        * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
        * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
        with output modifier.
        with output modifier.
2006-05-04  Richard Sandiford  
2006-05-04  Richard Sandiford  
        PR target/26765
        PR target/26765
        * config/mips/mips.c (mips_symbolic_address_p): Return true
        * config/mips/mips.c (mips_symbolic_address_p): Return true
        for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
        for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
        SYMBOL_GOTTPREL, and SYMBOL_TLS.
        SYMBOL_GOTTPREL, and SYMBOL_TLS.
2006-05-04  Richard Guenther  
2006-05-04  Richard Guenther  
        PR tree-optimization/14287
        PR tree-optimization/14287
        PR tree-optimization/14844
        PR tree-optimization/14844
        PR tree-optimization/19792
        PR tree-optimization/19792
        PR tree-optimization/21608
        PR tree-optimization/21608
        PR tree-optimization/27090
        PR tree-optimization/27090
        * tree-ssa-pre.c (try_combine_conversion): New function.
        * tree-ssa-pre.c (try_combine_conversion): New function.
        (compute_avail): After constructing the value-handle
        (compute_avail): After constructing the value-handle
        expression, use try_combine_conversion to combine NOP_EXPRs
        expression, use try_combine_conversion to combine NOP_EXPRs
        with previous value-handle expressions and use the result if it
        with previous value-handle expressions and use the result if it
        is available.
        is available.
2006-05-04  Joseph S. Myers  
2006-05-04  Joseph S. Myers  
        * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
        * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
2006-05-04  Jan Hubicka  
2006-05-04  Jan Hubicka  
        PR middle-end/25962
        PR middle-end/25962
        * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
        * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
2006-05-04  Bernd Schmidt  
2006-05-04  Bernd Schmidt  
        * config/bfin/predicates.md (const01_rtx): Tell generator programs
        * config/bfin/predicates.md (const01_rtx): Tell generator programs
        that this only matches CONST_INTs.  All users changed to VOIDmode
        that this only matches CONST_INTs.  All users changed to VOIDmode
        operands.
        operands.
        * config/bfin/bfin.c: Include "optabs.h".
        * config/bfin/bfin.c: Include "optabs.h".
        (bfin_rtx_costs): Some costs for vector operations, to allow combine
        (bfin_rtx_costs): Some costs for vector operations, to allow combine
        to do more work.
        to do more work.
        (enum bfin_builtins): Add a number of fractional and vector builtins.
        (enum bfin_builtins): Add a number of fractional and vector builtins.
        (bfin_init_builtins): Likewise.
        (bfin_init_builtins): Likewise.
        (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
        (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
        (safe_vector_operand, bfin_expand_binop_builtin,
        (safe_vector_operand, bfin_expand_binop_builtin,
        bfin_expand_unop_builtin): New functions.
        bfin_expand_unop_builtin): New functions.
        (bfin_expand_builtin): Handle the new builtins.
        (bfin_expand_builtin): Handle the new builtins.
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
        __ADSPBLACKFIN__.
        __ADSPBLACKFIN__.
2006-05-04  Leehod Baruch  
2006-05-04  Leehod Baruch  
        * see.c: New file.
        * see.c: New file.
        * Makefile.in (OBJS-common): Add see.o.
        * Makefile.in (OBJS-common): Add see.o.
        (see.o): Add dependencies.
        (see.o): Add dependencies.
        * common.opt (fsee): New flag for the see optimization was added.
        * common.opt (fsee): New flag for the see optimization was added.
        * opts.c (flag_see): Initialized.
        * opts.c (flag_see): Initialized.
        * passes.c (init_optimization_passes, pass_see): New pass.
        * passes.c (init_optimization_passes, pass_see): New pass.
        * rtl.h (see_main): Declaration as extern.
        * rtl.h (see_main): Declaration as extern.
        * timevar.def (TV_SEE): New.
        * timevar.def (TV_SEE): New.
        * tree-pass.h (pass_see): Declaration as extern.
        * tree-pass.h (pass_see): Declaration as extern.
        * invoke.texi (-fsee): Document.
        * invoke.texi (-fsee): Document.
        * recog.c (validate_simplify_insn): New function.
        * recog.c (validate_simplify_insn): New function.
        * recog.h (validate_simplify_insn): Declaration as extern.
        * recog.h (validate_simplify_insn): Declaration as extern.
        * df-problems.c (df_chain_dump): Check for NULL.
        * df-problems.c (df_chain_dump): Check for NULL.
2006-05-04  Kenneth Zadeck 
2006-05-04  Kenneth Zadeck 
            Daniel Berlin  
            Daniel Berlin  
        * cfgrtl.c (insert_insn_bb_end_new): New function.
        * cfgrtl.c (insert_insn_bb_end_new): New function.
        * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
        * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
2006-05-04  Leehod Baruch  
2006-05-04  Leehod Baruch  
        * df.h (struct web_entry): Moved from web.c.
        * df.h (struct web_entry): Moved from web.c.
        (union_defs): Declaration as extern.
        (union_defs): Declaration as extern.
        (unionfind_root): Likewise.
        (unionfind_root): Likewise.
        (unionfind_union): Likewise.
        (unionfind_union): Likewise.
        * web.c (struct web_entry): Moved to df.h.
        * web.c (struct web_entry): Moved to df.h.
        (unionfind_root): Remove static declaration.
        (unionfind_root): Remove static declaration.
        (unionfind_union): Likewise.
        (unionfind_union): Likewise.
        (union_defs): Likewise and generalize to use callback function.
        (union_defs): Likewise and generalize to use callback function.
        (web_main): Update arguments for union_defs function call.
        (web_main): Update arguments for union_defs function call.
2006-05-04  Richard Guenther  
2006-05-04  Richard Guenther  
        PR tree-optimization/26447
        PR tree-optimization/26447
        * tree-ssa-pre.c (realify_fake_stores): For necessary loads
        * tree-ssa-pre.c (realify_fake_stores): For necessary loads
        produce SSA_NAME copies before the store stmt to avoid
        produce SSA_NAME copies before the store stmt to avoid
        breaking exception handling.
        breaking exception handling.
2006-05-04  Jakub Jelinek  
2006-05-04  Jakub Jelinek  
        PR middle-end/27388
        PR middle-end/27388
        * gimplify.c (omp_is_private): If var is shared in some outer context,
        * gimplify.c (omp_is_private): If var is shared in some outer context,
        return false instead of true.  Stop searching on parallel context
        return false instead of true.  Stop searching on parallel context
        boundary.
        boundary.
2006-05-03  Alexandre Oliva  
2006-05-03  Alexandre Oliva  
        PR java/8260
        PR java/8260
        * coverage.c: Use get_gcov_unsigned_t() instead of
        * coverage.c: Use get_gcov_unsigned_t() instead of
        unsigned_type_node all over.
        unsigned_type_node all over.
2006-05-02  Andrew MacLeod  
2006-05-02  Andrew MacLeod  
        PR tree-optimization/27381
        PR tree-optimization/27381
        * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
        * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
        maintain the same immediate_use links.
        maintain the same immediate_use links.
        * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
        * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
        node rather than segfaulting.
        node rather than segfaulting.
2006-05-03  Jakub Jelinek  
2006-05-03  Jakub Jelinek  
        PR fortran/27395
        PR fortran/27395
        * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
        * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
        rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
        rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
        bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
        bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
2006-05-02  Daniel Berlin  
2006-05-02  Daniel Berlin  
        Fix PR tree-optimization/26626
        Fix PR tree-optimization/26626
        * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
        * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
        always.
        always.
        * tree-ssa-operands.c (access_can_touch_variable): Allow
        * tree-ssa-operands.c (access_can_touch_variable): Allow
        typecasting through union pointers.
        typecasting through union pointers.
2006-05-02  Jakub Jelinek  
2006-05-02  Jakub Jelinek  
        PR c++/26943
        PR c++/26943
        * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
        * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
        (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
        (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
        to find if var will be a global variable even in the nested context.
        to find if var will be a global variable even in the nested context.
        (omp_copy_decl): Only check for global variable at the end, it might
        (omp_copy_decl): Only check for global variable at the end, it might
        be overridden in outer contexts.
        be overridden in outer contexts.
        (scan_sharing_clauses): For global variables don't create a field.
        (scan_sharing_clauses): For global variables don't create a field.
        (lower_rec_input_clauses): Do nothing for global shared variables.
        (lower_rec_input_clauses): Do nothing for global shared variables.
        Emit a barrier at the end of ILIST if there were any decls in both
        Emit a barrier at the end of ILIST if there were any decls in both
        firstprivate and lastprivate clauses.
        firstprivate and lastprivate clauses.
        (lower_send_clauses): Do nothing for global variables except for
        (lower_send_clauses): Do nothing for global variables except for
        COPYIN.
        COPYIN.
2006-05-02  Zdenek Dvorak 
2006-05-02  Zdenek Dvorak 
        * tree.c (unsigned_type_for, signed_type_for): Make sure a type
        * tree.c (unsigned_type_for, signed_type_for): Make sure a type
        of the correct signedness is returned.
        of the correct signedness is returned.
2006-05-02  Jeff Law  
2006-05-02  Jeff Law  
        PR tree-optimization/27364
        PR tree-optimization/27364
        * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
        * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
        multiply expressions.
        multiply expressions.
2006-05-02  Tom Tromey  
2006-05-02  Tom Tromey  
        * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
        * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
2006-05-02  Kazu Hirata  
2006-05-02  Kazu Hirata  
        PR target/27387
        PR target/27387
        * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
        * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
        -mthumb -fPIC are used.
        -mthumb -fPIC are used.
2006-05-02  Stanislaw Skowronek  
2006-05-02  Stanislaw Skowronek  
            Joshua Kinard  
            Joshua Kinard  
        PR target/25871
        PR target/25871
        * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
        * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
        with 64-bit pointers.
        with 64-bit pointers.
2006-05-02  Paul Brook  
2006-05-02  Paul Brook  
        * config/arm/arm.c (add_minipool_forward_ref): Check if insn
        * config/arm/arm.c (add_minipool_forward_ref): Check if insn
        and pool overlap.
        and pool overlap.
        (create_fix_barrier): Check that a suitable barrier location is
        (create_fix_barrier): Check that a suitable barrier location is
        found.
        found.
        (arm_reorg): Include ftmp->address in allowable range of addresses.
        (arm_reorg): Include ftmp->address in allowable range of addresses.
2006-05-02  David Billinghurst 
2006-05-02  David Billinghurst 
        PR ada/27366
        PR ada/27366
        * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
        * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
        on Cygwin.
        on Cygwin.
2006-05-02  Jakub Jelinek  
2006-05-02  Jakub Jelinek  
        PR middle-end/27337
        PR middle-end/27337
        * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
        * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
        around RESULT_DECL for result passed by reference.
        around RESULT_DECL for result passed by reference.
        (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
        (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
        * omp-low.c (use_pointer_for_field): Don't look at
        * omp-low.c (use_pointer_for_field): Don't look at
        DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
        DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
        (scan_omp_1): Call remap_decl on RESULT_DECLs.
        (scan_omp_1): Call remap_decl on RESULT_DECLs.
        (lower_rec_input_clauses): Don't allocate VLA memory for the second
        (lower_rec_input_clauses): Don't allocate VLA memory for the second
        time or var for passing by reference for
        time or var for passing by reference for
        OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
        OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
        TREE_ADDRESSABLE variables when passing by reference.
        TREE_ADDRESSABLE variables when passing by reference.
        * omp-low.c (dump_omp_region): Fix output formatting.
        * omp-low.c (dump_omp_region): Fix output formatting.
        PR middle-end/27328
        PR middle-end/27328
        * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
        * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
        (expand_omp_parallel): Likewise.
        (expand_omp_parallel): Likewise.
        * tree-cfg.c (move_sese_region_to_fn): Likewise.
        * tree-cfg.c (move_sese_region_to_fn): Likewise.
        PR middle-end/27325
        PR middle-end/27325
        * omp-low.c (lower_omp_sections): Call maybe_catch_exception
        * omp-low.c (lower_omp_sections): Call maybe_catch_exception
        on statement list containing also constructors and destructors.
        on statement list containing also constructors and destructors.
        (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
        (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
        PR middle-end/27310
        PR middle-end/27310
        * except.c (duplicate_eh_regions): Fix clearing of
        * except.c (duplicate_eh_regions): Fix clearing of
        cfun->eh->region_array entries.
        cfun->eh->region_array entries.
2006-05-01  DJ Delorie  
2006-05-01  DJ Delorie  
        * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
        * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
        build!=host.
        build!=host.
        (gcc_cv_objdump): Likewise.
        (gcc_cv_objdump): Likewise.
        * configure: Regenerated.
        * configure: Regenerated.
2006-05-01  Kazu Hirata  
2006-05-01  Kazu Hirata  
        PR target/27374
        PR target/27374
        * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
        * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
        templates for case 3 and 4.
        templates for case 3 and 4.
2006-05-01  DJ Delorie  
2006-05-01  DJ Delorie  
        * vec.c: Include bconfig.h when appropriate.
        * vec.c: Include bconfig.h when appropriate.
        * Makefile.in (build/vec.o): Adjust dependencies.
        * Makefile.in (build/vec.o): Adjust dependencies.
        * mkconfig.sh: Make sure config.h isn't used for build machine
        * mkconfig.sh: Make sure config.h isn't used for build machine
        compiles.
        compiles.
2006-05-01  Zdenek Dvorak 
2006-05-01  Zdenek Dvorak 
        * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
        * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
        variables.
        variables.
        (mark_phi_for_rewrite): New function.
        (mark_phi_for_rewrite): New function.
        (insert_phi_nodes_for, mark_use_interesting): Call
        (insert_phi_nodes_for, mark_use_interesting): Call
        mark_phi_for_rewrite.
        mark_phi_for_rewrite.
        (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
        (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
        (update_ssa): Initialize and free phis_to_rewrite.
        (update_ssa): Initialize and free phis_to_rewrite.
2006-05-01  Zdenek Dvorak 
2006-05-01  Zdenek Dvorak 
        PR rtl-optimization/27291
        PR rtl-optimization/27291
        * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
        * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
        folded to a constant.
        folded to a constant.
2006-05-01  Zdenek Dvorak 
2006-05-01  Zdenek Dvorak 
        PR tree-optimization/27283
        PR tree-optimization/27283
        * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
        * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
        not whole # of iteration descriptions.
        not whole # of iteration descriptions.
        (niter_for_exit): Return just # of iterations.  Fail if # of iterations
        (niter_for_exit): Return just # of iterations.  Fail if # of iterations
        uses abnormal ssa name.
        uses abnormal ssa name.
        (niter_for_single_dom_exit): Ditto.
        (niter_for_single_dom_exit): Ditto.
        (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
        (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
        return just the number of iterations.
        return just the number of iterations.
2006-05-01  Zdenek Dvorak 
2006-05-01  Zdenek Dvorak 
        PR tree-optimization/27144
        PR tree-optimization/27144
        * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
        * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
        (record_estimate): Only record constant upper bound.
        (record_estimate): Only record constant upper bound.
        (infer_loop_bounds_from_undefined): Call
        (infer_loop_bounds_from_undefined): Call
        compute_estimated_nb_iterations just once.
        compute_estimated_nb_iterations just once.
        (proved_non_wrapping_p): Renamed to ...
        (proved_non_wrapping_p): Renamed to ...
        (n_of_executions_at_most): ... this.  Expect bound to be a constant.
        (n_of_executions_at_most): ... this.  Expect bound to be a constant.
        (convert_step_widening, scev_probably_wraps_p): Call
        (convert_step_widening, scev_probably_wraps_p): Call
        n_of_executions_at_most instead of proved_non_wrapping_p.
        n_of_executions_at_most instead of proved_non_wrapping_p.
        (substitute_in_loop_info): Do not replace values in bounds.
        (substitute_in_loop_info): Do not replace values in bounds.
        * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
        * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
        comments.
        comments.
2006-05-01  Richard Henderson  
2006-05-01  Richard Henderson  
        PR c/27358
        PR c/27358
        * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
        * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
        c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
        c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
        CPP_PRAGMA.
        CPP_PRAGMA.
2006-05-01  Roger Sayle  
2006-05-01  Roger Sayle  
        * c-typeck.c (parser_build_binary_op): Don't call the function
        * c-typeck.c (parser_build_binary_op): Don't call the function
        unsigned_conversion_warning to spot operand/result type overflow.
        unsigned_conversion_warning to spot operand/result type overflow.
        (build_binary_op): Instead, call convert_and_check instead of
        (build_binary_op): Instead, call convert_and_check instead of
        convert to report the problem when the operands are promoted.
        convert to report the problem when the operands are promoted.
        * c-common.c (unsigned_conversion_warning): Make static.
        * c-common.c (unsigned_conversion_warning): Make static.
        * c-common.h (unsigned_conversion_warning): Delete prototype.
        * c-common.h (unsigned_conversion_warning): Delete prototype.
2006-05-01  Richard Guenther  
2006-05-01  Richard Guenther  
        PR tree-optimization/26726
        PR tree-optimization/26726
        * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
        * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
        problem ...
        problem ...
        (find_interesting_uses_address): ... we work around here
        (find_interesting_uses_address): ... we work around here
        by folding INDIRECT_REFs in the substituted base.
        by folding INDIRECT_REFs in the substituted base.
2006-05-01  Diego Novillo  
2006-05-01  Diego Novillo  
        * omp-low.c (dump_omp_region): Add newlines.
        * omp-low.c (dump_omp_region): Add newlines.
2006-04-30  Roger Sayle  
2006-04-30  Roger Sayle  
        * common.opt (Woverflow): New command line option.
        * common.opt (Woverflow): New command line option.
        * c-common.c (constant_expression_warning): Check warn_overflow.
        * c-common.c (constant_expression_warning): Check warn_overflow.
        (overflow_waring): Pass OPT_Woverflow to warning.
        (overflow_waring): Pass OPT_Woverflow to warning.
        (unsigned_conversion_warning): Likewise.
        (unsigned_conversion_warning): Likewise.
        (convert_and_check): Likewise.
        (convert_and_check): Likewise.
        * doc/invoke.texi: Document new command line option.
        * doc/invoke.texi: Document new command line option.
2006-04-30  David Edelsohn  
2006-04-30  David Edelsohn  
        * config/rs6000/rs6000.c (rs6000_override_options): Enable
        * config/rs6000/rs6000.c (rs6000_override_options): Enable
        TARGET_NO_FP_IN_TOC for section anchors.
        TARGET_NO_FP_IN_TOC for section anchors.
        (optimization_options): Enable section anchors for all
        (optimization_options): Enable section anchors for all
        non-"Objective" languages.
        non-"Objective" languages.
2006-04-28  Eric Christopher  
2006-04-28  Eric Christopher  
        * config/darwin-c.c (darwin_ms_struct): Move this
        * config/darwin-c.c (darwin_ms_struct): Move this
        (darwin_set_default_type_attributes): and this...
        (darwin_set_default_type_attributes): and this...
        * config/darwin.c: ... here.
        * config/darwin.c: ... here.
        * config/darwin.h (darwin_ms_struct): Declare.
        * config/darwin.h (darwin_ms_struct): Declare.
2006-04-28  Andrew MacLeod  
2006-04-28  Andrew MacLeod  
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
2006-04-28  Roger Sayle  
2006-04-28  Roger Sayle  
        PR c/25309
        PR c/25309
        * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
        * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
        (push_array_bounds): Delete prototype.  Change BOUNDS argument to
        (push_array_bounds): Delete prototype.  Change BOUNDS argument to
        an unsigned HOST_WIDE_INT.
        an unsigned HOST_WIDE_INT.
        (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
        (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
        array index.
        array index.
        (really_start_incremental_init): No need to call convert because
        (really_start_incremental_init): No need to call convert because
        bitsize_zero_node is already of type bitsizetype.
        bitsize_zero_node is already of type bitsizetype.
        (push_init_level): Extract the value of constructor_index as an
        (push_init_level): Extract the value of constructor_index as an
        unsigned HOST_WIDE_INT quantity, using tree_low_cst.
        unsigned HOST_WIDE_INT quantity, using tree_low_cst.
        (process_init_element): Likewise.
        (process_init_element): Likewise.
2006-04-28  Joseph S. Myers  
2006-04-28  Joseph S. Myers  
        * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
        * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
        value before passing to make_relative_prefix.
        value before passing to make_relative_prefix.
2006-04-28  Alan Modra  
2006-04-28  Alan Modra  
        PR middle-end/27260
        PR middle-end/27260
        * builtins.c (expand_builtin_memset): Expand val in original mode.
        * builtins.c (expand_builtin_memset): Expand val in original mode.
2006-04-27  Eric Christopher  
2006-04-27  Eric Christopher  
        * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
        * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
        with #ifndef/#endif.
        with #ifndef/#endif.
        * config/darwin-c.c (darwin_ms_struct): New.
        * config/darwin-c.c (darwin_ms_struct): New.
        (darwin_pragma_ms_struct): Ditto.
        (darwin_pragma_ms_struct): Ditto.
        (darwin_set_default_type_attributes): Ditto.
        (darwin_set_default_type_attributes): Ditto.
        * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
        * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
        * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
        * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
        Register ms_struct pragma.
        Register ms_struct pragma.
        * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
        * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
        (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
        (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
        * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
        * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
        darwin_set_default_type_attributes if TARGET_MACHO.
        darwin_set_default_type_attributes if TARGET_MACHO.
2006-04-27  Andrew MacLeod  
2006-04-27  Andrew MacLeod  
        PR tree-optimization/26854
        PR tree-optimization/26854
        * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
        * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
        * doc/tree-ssa.texi: Update immuse iterator documentation.
        * doc/tree-ssa.texi: Update immuse iterator documentation.
        * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
        * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
        * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
        * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
        first_safe_imm_use, next_safe_imm_use): Remove.
        first_safe_imm_use, next_safe_imm_use): Remove.
        (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
        (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
        (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
        (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
        (move_use_after_head): New.  Helper function to sort immuses in a stmt.
        (move_use_after_head): New.  Helper function to sort immuses in a stmt.
        (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
        (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
        (first_imm_use_stmt): New.  Get first stmt in an immuse list.
        (first_imm_use_stmt): New.  Get first stmt in an immuse list.
        (next_imm_use_stmt): New.  Get next stmt in an immuse list.
        (next_imm_use_stmt): New.  Get next stmt in an immuse list.
        (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
        (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
        (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
        (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
        (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
        (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
        * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
        * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
        * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
        (perfect_nestify): Use new iterator.
        (perfect_nestify): Use new iterator.
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
        iterator.
        iterator.
        * tree-flow.h (struct immediate_use_iterator_d): Add comments.
        * tree-flow.h (struct immediate_use_iterator_d): Add comments.
        (next_imm_name): New field in struct immediate_use_iterator_d.
        (next_imm_name): New field in struct immediate_use_iterator_d.
        (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
        (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
        (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
        (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
        FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
        FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
        * tree-cfg.c (replace_uses_by): Use new iterator.
        * tree-cfg.c (replace_uses_by): Use new iterator.
        * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
        * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
        * tree-ssa-operands.c (correct_use_link): Remove.
        * tree-ssa-operands.c (correct_use_link): Remove.
        (finalize_ssa_use_ops): No longer call correct_use_link.
        (finalize_ssa_use_ops): No longer call correct_use_link.
2006-04-27  Stuart Hastings  
2006-04-27  Stuart Hastings  
        * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
        * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
        * config/t-darwin (crt3.o): Use it.
        * config/t-darwin (crt3.o): Use it.
        * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
        * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
        'pmode', use Pmode instead of SImode for SYMBOL_REF.
        'pmode', use Pmode instead of SImode for SYMBOL_REF.
        * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
        * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
        call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
        call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
        call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
        call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
        support.
        support.
2006-04-27  Roger Sayle  
2006-04-27  Roger Sayle  
        * expmed.c (store_fixed_bit_field): If we're not optimizing for
        * expmed.c (store_fixed_bit_field): If we're not optimizing for
        size, force the intermediate into a new pseudo rather instead of
        size, force the intermediate into a new pseudo rather instead of
        performing both a bitwise AND and a bitwise IOR in memory.
        performing both a bitwise AND and a bitwise IOR in memory.
2006-04-27  Richard Guenther  
2006-04-27  Richard Guenther  
        PR rtl-optimization/26685
        PR rtl-optimization/26685
        * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
        * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
        this one "max-flow-memory-locations".
        this one "max-flow-memory-locations".
2006-04-27  Richard Guenther  
2006-04-27  Richard Guenther  
        PR tree-optimization/25148
        PR tree-optimization/25148
        * tree-vrp.c (compare_values): Remove code dealing with
        * tree-vrp.c (compare_values): Remove code dealing with
        comparisons against type min/max value.  Honour overflow
        comparisons against type min/max value.  Honour overflow
        and negative constants in code dealing with comparisons
        and negative constants in code dealing with comparisons
        of plus and minus expressions.
        of plus and minus expressions.
        (value_inside_range): Use fold_binary with LE_EXPR and
        (value_inside_range): Use fold_binary with LE_EXPR and
        GE_EXPR rather than compare_values.
        GE_EXPR rather than compare_values.
2006-04-27  Dirk Mueller  
2006-04-27  Dirk Mueller  
        * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
        * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
        prototype for SSE.
        prototype for SSE.
2006-04-26  Kenneth Zadeck 
2006-04-26  Kenneth Zadeck 
        * basic-block.h (safe_insert_insn_on_edge): Removed.
        * basic-block.h (safe_insert_insn_on_edge): Removed.
        * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
        * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
2006-04-26  David Edelsohn  
2006-04-26  David Edelsohn  
            Paolo Bonzini  
            Paolo Bonzini  
        PR middle-end/27282
        PR middle-end/27282
        * combine.c (simplify_and_const_int_1): Use gen_int_mode.
        * combine.c (simplify_and_const_int_1): Use gen_int_mode.
        (simplify_and_const_int): Same.
        (simplify_and_const_int): Same.
2006-04-26  Aldy Hernandez  
2006-04-26  Aldy Hernandez  
        * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
        * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
2006-04-26  Jakub Jelinek  
2006-04-26  Jakub Jelinek  
        PR c/26171
        PR c/26171
        * cgraph.c (cgraph_varpool_finalize_decl): Don't call
        * cgraph.c (cgraph_varpool_finalize_decl): Don't call
        cgraph_varpool_assemble_pending_decls if -fopenmp, unless
        cgraph_varpool_assemble_pending_decls if -fopenmp, unless
        cgraph_global_info_ready.
        cgraph_global_info_ready.
        PR middle-end/26913
        PR middle-end/26913
        * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
        * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
        PR c/25996
        PR c/25996
        * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
        * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
        either decl or init is error_mark_node.
        either decl or init is error_mark_node.
        PR middle-end/25989
        PR middle-end/25989
        * tree-flow.h (struct omp_region): Add sched_kind.
        * tree-flow.h (struct omp_region): Add sched_kind.
        * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
        * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
        instead of extracting omp for data.
        instead of extracting omp for data.
        (expand_omp_for): Save extracted sched_kind.
        (expand_omp_for): Save extracted sched_kind.
2006-04-25  Roger Sayle  
2006-04-25  Roger Sayle  
        * expmed.c (store_bit_field): Also check whether the bitsize is
        * expmed.c (store_bit_field): Also check whether the bitsize is
        valid for the machine's "insv" instruction before moving the
        valid for the machine's "insv" instruction before moving the
        target into a pseudo for use with the insv.
        target into a pseudo for use with the insv.
        * config/i386/predicates.md (const8_operand): New predicate.
        * config/i386/predicates.md (const8_operand): New predicate.
        * config/i386/i386.md (extv, extzv, insv): Use the new
        * config/i386/i386.md (extv, extzv, insv): Use the new
        const8_operand predicate where appropriate.
        const8_operand predicate where appropriate.
2006-04-25  DJ Delorie  
2006-04-25  DJ Delorie  
        * doc/install.texi (Specific): Clarify that this is not a list of
        * doc/install.texi (Specific): Clarify that this is not a list of
        supported hosts or targets.
        supported hosts or targets.
2006-04-25  Richard Sandiford  
2006-04-25  Richard Sandiford  
        PR rtl-optimization/26725
        PR rtl-optimization/26725
        * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
        * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
        block's BB_DIRTY flag.
        block's BB_DIRTY flag.
2006-04-25  Geoffrey Keating  
2006-04-25  Geoffrey Keating  
        * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
        * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
        are no branches.
        are no branches.
        * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
        * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
        to print an integer.
        to print an integer.
2006-04-25  David Edelsohn  
2006-04-25  David Edelsohn  
        * varasm.c (align_variable): New function.
        * varasm.c (align_variable): New function.
        (get_block_for_decl): Apply align_variable to DECL before
        (get_block_for_decl): Apply align_variable to DECL before
        calculating section information.
        calculating section information.
        (assemble_variable): Split out alignment computation.
        (assemble_variable): Split out alignment computation.
2006-04-25  Andreas Krebbel  
2006-04-25  Andreas Krebbel  
        * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
        * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
        machines.
        machines.
2006-04-25  Bernd Schmidt  
2006-04-25  Bernd Schmidt  
        * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
        * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
        MODE_PARTIAL_INT mode.
        MODE_PARTIAL_INT mode.
        * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
        * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
        * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
        * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
        for CONST_INTs.
        for CONST_INTs.
        (hard_regno_mode_ok): V2PDImode is ok for accumulators.
        (hard_regno_mode_ok): V2PDImode is ok for accumulators.
        * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
        * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
        V2PDImode.
        V2PDImode.
        * config/bfin/predicates.md (const01_operand, vec_shift_operand):
        * config/bfin/predicates.md (const01_operand, vec_shift_operand):
        New predicates.
        New predicates.
        * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
        * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
        New constants.
        New constants.
        (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
        (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
        MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
        MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
        MACFLAG_IH): Likewise.
        MACFLAG_IH): Likewise.
        (movstricthi_1): Renamed from "*movstricthi".
        (movstricthi_1): Renamed from "*movstricthi".
        (load_accumulator, load_accumulator_pair, movsi_insv, insv,
        (load_accumulator, load_accumulator_pair, movsi_insv, insv,
        ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
        ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
        abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
        abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
        movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
        movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
        movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
        movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
        movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
        movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
        addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
        addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
        sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
        sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
        addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
        addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
        mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
        mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
        ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
        ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
        flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
        flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
        flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
        flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
        flag_macv2hi_parts, flag_macv2hi_parts_acconly,
        flag_macv2hi_parts, flag_macv2hi_parts_acconly,
        flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
        flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
        * doc/rtl.texi (ss_ashift): Improve wording.
        * doc/rtl.texi (ss_ashift): Improve wording.
2006-04-24  Geoffrey Keating  
2006-04-24  Geoffrey Keating  
        * dwarf2out.c (verify_marks_clear): New.
        * dwarf2out.c (verify_marks_clear): New.
        (prune_unused_types): Call verify_marks_clear initially, not
        (prune_unused_types): Call verify_marks_clear initially, not
        prune_unmark_dies.
        prune_unmark_dies.
2006-04-24  Bernd Schmidt  
2006-04-24  Bernd Schmidt  
        * rtl.def (SS_ASHIFT, SS_NEG): New codes.
        * rtl.def (SS_ASHIFT, SS_NEG): New codes.
        * doc/rtl.texi: Document them.
        * doc/rtl.texi: Document them.
        * simplify-rtx.c (simplify_unary_operation,
        * simplify-rtx.c (simplify_unary_operation,
        simplify_binary_operation_1): Don't abort when we see them.
        simplify_binary_operation_1): Don't abort when we see them.
2006-04-24  Mark Mitchell  
2006-04-24  Mark Mitchell  
        Revert:
        Revert:
        2006-04-23  Mark Mitchell  
        2006-04-23  Mark Mitchell  
        * configure.ac: Completely disregard languages that are not
        * configure.ac: Completely disregard languages that are not
        enabled.
        enabled.
        * configure: Regenerated.
        * configure: Regenerated.
2006-04-24  Andrew Pinski  
2006-04-24  Andrew Pinski  
        Richard Guenther  
        Richard Guenther  
        PR tree-optimization/27236
        PR tree-optimization/27236
        * tree-inline.c (copy_body_r): Make sure to copy
        * tree-inline.c (copy_body_r): Make sure to copy
        TREE_THIS_VOLATILE flag.
        TREE_THIS_VOLATILE flag.
2006-04-24  Richard Guenther  
2006-04-24  Richard Guenther  
        PR middle-end/26869
        PR middle-end/26869
        * tree-complex.c (update_parameter_components): Don't handle
        * tree-complex.c (update_parameter_components): Don't handle
        unused parameters which have no default def.
        unused parameters which have no default def.
2006-04-24  Andrew Pinski  
2006-04-24  Andrew Pinski  
        Richard Guenther  
        Richard Guenther  
        PR tree-optimization/27218
        PR tree-optimization/27218
        * tree-inline.c (expand_call_inline): Strip useless type
        * tree-inline.c (expand_call_inline): Strip useless type
        conversions for the return slot address.
        conversions for the return slot address.
2006-04-24  Richard Guenther  
2006-04-24  Richard Guenther  
        * cfgloop.h (struct loops): Remove unused field array.  Reorder
        * cfgloop.h (struct loops): Remove unused field array.  Reorder
        state after num.
        state after num.
        (LOOP_PREFETCH): Remove.
        (LOOP_PREFETCH): Remove.
2006-04-24  Richard Guenther  
2006-04-24  Richard Guenther  
        PR tree-optimization/22525
        PR tree-optimization/22525
        * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
        * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
        variable, adjust types of generated expressions.
        variable, adjust types of generated expressions.
2006-04-23  H.J. Lu  
2006-04-23  H.J. Lu  
        * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
        * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
        (tree-vect-patterns.o): Likewise.
        (tree-vect-patterns.o): Likewise.
        (jump.o): Likewise.
        (jump.o): Likewise.
        (cselib.o): Likewise.
        (cselib.o): Likewise.
        (loop-doloop.o): Likewise.
        (loop-doloop.o): Likewise.
        (regclass.o): Likewise.
        (regclass.o): Likewise.
        (reload1.o): Likewise.
        (reload1.o): Likewise.
        (explow.o): Replace target.h with $(TARGET_H).
        (explow.o): Replace target.h with $(TARGET_H).
        (ipa-prop.o): Likewise.
        (ipa-prop.o): Likewise.
        (ipa-cp.o): Likewise.
        (ipa-cp.o): Likewise.
        (ipa-inline.o): Likewise.
        (ipa-inline.o): Likewise.
        (reorg.o): Likewise.
        (reorg.o): Likewise.
        (reg-stack.o): Likewise.
        (reg-stack.o): Likewise.
2006-04-23  Eric Botcazou  
2006-04-23  Eric Botcazou  
        * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
        * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
2006-04-23  Mark Mitchell  
2006-04-23  Mark Mitchell  
        * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
        * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
        * configure.ac: Completely disregard languages that are not
        * configure.ac: Completely disregard languages that are not
        enabled.
        enabled.
        * configure: Regenerated.
        * configure: Regenerated.
        PR c++/26534
        PR c++/26534
        * c-common.h (c_build_bitfield_integer_type): Declare.
        * c-common.h (c_build_bitfield_integer_type): Declare.
        * c-decl.c (c_build_bitfield_integer_type): Move to ...
        * c-decl.c (c_build_bitfield_integer_type): Move to ...
        * c-common.c (c_build_bitfield_integer_type): ... here.
        * c-common.c (c_build_bitfield_integer_type): ... here.
2006-04-23  Roger Sayle  
2006-04-23  Roger Sayle  
        PR target/21283
        PR target/21283
        * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
        * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
        a SImode SUBREG of a floating point register after no_new_pseudos.
        a SImode SUBREG of a floating point register after no_new_pseudos.
2006-04-23  Roger Sayle  
2006-04-23  Roger Sayle  
        * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
        * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
        identify potentially eliminable registers to additionally catch
        identify potentially eliminable registers to additionally catch
        VIRTUAL_INCOMING_ARGS_REGNUM.
        VIRTUAL_INCOMING_ARGS_REGNUM.
        (addsi3): Update the conditions on when to use addsi_small_int.
        (addsi3): Update the conditions on when to use addsi_small_int.
2006-04-23  Roger Sayle  
2006-04-23  Roger Sayle  
        PR target/16641
        PR target/16641
        * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
        * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
        STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
        STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
        rtx to stack_pointer_rtx or frame_pointer_rtx directly.
        rtx to stack_pointer_rtx or frame_pointer_rtx directly.
2006-04-23  Eric Botcazou  
2006-04-23  Eric Botcazou  
        * fold-const.c (range_predecessor): Use operand_equal_p
        * fold-const.c (range_predecessor): Use operand_equal_p
        as the predicate for equality.
        as the predicate for equality.
        (range_successor): Likewise.
        (range_successor): Likewise.
2006-04-22  Kazu Hirata  
2006-04-22  Kazu Hirata  
        Revert:
        Revert:
        * config/soft-fp/op-common.h: Fix a typo.
        * config/soft-fp/op-common.h: Fix a typo.
2006-04-22  Frank Ch. Eigler  
2006-04-22  Frank Ch. Eigler  
        PR libmudflap/26864
        PR libmudflap/26864
        * common.opt (flag_mudflap_threads): Overload flag_mudflap.
        * common.opt (flag_mudflap_threads): Overload flag_mudflap.
        * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
        * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
2006-04-22  Kazu Hirata  
2006-04-22  Kazu Hirata  
        * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
        * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
        Fix comment typos.
        Fix comment typos.
        * doc/tm.texi: Fix a typo.
        * doc/tm.texi: Fix a typo.
2006-04-21  Geoffrey Keating  
2006-04-21  Geoffrey Keating  
        * dwarf2out.c (struct die_struct): Document that die_sib makes
        * dwarf2out.c (struct die_struct): Document that die_sib makes
        a circular linked list.
        a circular linked list.
        (FOR_EACH_CHILD): New.
        (FOR_EACH_CHILD): New.
        (reverse_die_lists): Delete.
        (reverse_die_lists): Delete.
        (reverse_all_dies): Delete.
        (reverse_all_dies): Delete.
        (add_dwarf_attr): Correct documentation.
        (add_dwarf_attr): Correct documentation.
        (remove_child_with_prev): New.
        (remove_child_with_prev): New.
        (remove_child_TAG): Update for change to die_struct, use
        (remove_child_TAG): Update for change to die_struct, use
        remove_child_with_prev.
        remove_child_with_prev.
        (add_child_die): Update for change to die_struct.
        (add_child_die): Update for change to die_struct.
        (splice_child_die): Use remove_child_with_prev and add_child_die.
        (splice_child_die): Use remove_child_with_prev and add_child_die.
        (print_die): Use FOR_EACH_CHILD.
        (print_die): Use FOR_EACH_CHILD.
        (die_checksum): Likewise.
        (die_checksum): Likewise.
        (assign_symbol_names): Likewise.
        (assign_symbol_names): Likewise.
        (output_location_lists): Likewise.
        (output_location_lists): Likewise.
        (build_abbrev_table): Likewise.
        (build_abbrev_table): Likewise.
        (calc_die_sizes): Likewise.
        (calc_die_sizes): Likewise.
        (mark_dies): Likewise.
        (mark_dies): Likewise.
        (unmark_dies): Likewise.
        (unmark_dies): Likewise.
        (unmark_all_dies): Likewise.
        (unmark_all_dies): Likewise.
        (output_die): Likewise.
        (output_die): Likewise.
        (prune_unused_types_mark): Likewise.
        (prune_unused_types_mark): Likewise.
        (prune_unused_types_walk): Likewise.
        (prune_unused_types_walk): Likewise.
        (same_die_p): Update for change to die_struct.
        (same_die_p): Update for change to die_struct.
        (break_out_includes): Likewise.
        (break_out_includes): Likewise.
        (prune_unused_types_prune): Likewise.
        (prune_unused_types_prune): Likewise.
        (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
        (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
        (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
        (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
        it's already clear.
        it's already clear.
        (dwarf2out_finish): Don't call reverse_all_dies.
        (dwarf2out_finish): Don't call reverse_all_dies.
2006-04-21  Eric Christopher  
2006-04-21  Eric Christopher  
        * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
        * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
        in comments and function names.
        in comments and function names.
2006-04-21  Volker Reichelt  
2006-04-21  Volker Reichelt  
        PR c/25875
        PR c/25875
        * c-typeck.c (digest_init): Robustify.
        * c-typeck.c (digest_init): Robustify.
        * c-typeck.c (pop_init_level): Simplify.
        * c-typeck.c (pop_init_level): Simplify.
2006-04-21  Steve Ellcey  
2006-04-21  Steve Ellcey  
        * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
        * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
2006-04-21  Paul Brook  
2006-04-21  Paul Brook  
        * config/arm/arm.c (arm_override_options): Error on iWMMXt and
        * config/arm/arm.c (arm_override_options): Error on iWMMXt and
        hardware floating point.
        hardware floating point.
2006-04-21  David Edelsohn  
2006-04-21  David Edelsohn  
        * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
        * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
        NON_FLOAT_REGS.
        NON_FLOAT_REGS.
2006-04-21  Nick Clifton  
2006-04-21  Nick Clifton  
        * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
        * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
        OPT_EXTRA_PARTS.
        OPT_EXTRA_PARTS.
2006-04-21  Alan Modra  
2006-04-21  Alan Modra  
        PR target/27230
        PR target/27230
        * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
        * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
        C++ lang type in traceback table for Objective-C++.
        C++ lang type in traceback table for Objective-C++.
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
2006-04-20  H.J. Lu  
2006-04-20  H.J. Lu  
        * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
        * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
2006-04-20  Volker Reichelt  
2006-04-20  Volker Reichelt  
        PR mudflap/26789
        PR mudflap/26789
        * tree-mudflap.c (mudflap_finish_file): Skip function when there
        * tree-mudflap.c (mudflap_finish_file): Skip function when there
        were errors.  Remove check for erroneous objects.
        were errors.  Remove check for erroneous objects.
2006-04-20  Jeff Law  
2006-04-20  Jeff Law  
        PR tree-optimization/26854
        PR tree-optimization/26854
        * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
        * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
        checking for zero or one use.
        checking for zero or one use.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
        * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
        * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
        * tree-ssa-reassoc.c (negate_value): Similarly.
        * tree-ssa-reassoc.c (negate_value): Similarly.
        (reassociate_bb): Similarly.
        (reassociate_bb): Similarly.
2006-04-20  Jakub Jelinek  
2006-04-20  Jakub Jelinek  
        * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
        * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
        TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
        TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
        than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
        than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
2006-04-20  Alan Modra  
2006-04-20  Alan Modra  
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
        * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
        fp regs if the last fp arg doesn't fit in regs.
        fp regs if the last fp arg doesn't fit in regs.
2006-04-20  Kaz Kojima  
2006-04-20  Kaz Kojima  
        PR target/27182
        PR target/27182
        * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
        * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
        that the last insn has the REG_INC note.
        that the last insn has the REG_INC note.
2006-04-19  Carlos O'Donell  
2006-04-19  Carlos O'Donell  
            Nathan Sidwell  
            Nathan Sidwell  
        PR c/26774
        PR c/26774
        * stor-layout.c (update_alignment_for_field): Do not align
        * stor-layout.c (update_alignment_for_field): Do not align
        ERROR_MARK nodes.
        ERROR_MARK nodes.
        (place_union_field): Place union field at the start of the union.
        (place_union_field): Place union field at the start of the union.
        (place_field): Move ERROR_MARK check later, and use the current
        (place_field): Move ERROR_MARK check later, and use the current
        allocation position to maintain monotonicity.
        allocation position to maintain monotonicity.
2006-04-19  Zdenek Dvorak 
2006-04-19  Zdenek Dvorak 
        * dominance.c: Include timevar.h.
        * dominance.c: Include timevar.h.
        (calculate_dominance_info): Use TV_DOMINANCE.
        (calculate_dominance_info): Use TV_DOMINANCE.
        * timevar.def (TV_DOMINANCE): New timevar.
        * timevar.def (TV_DOMINANCE): New timevar.
        * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
        * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
2006-04-19  Andreas Krebbel  
2006-04-19  Andreas Krebbel  
        PR rtl-optimization/14261
        PR rtl-optimization/14261
        * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
        * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
        move would be an INSV insn.
        move would be an INSV insn.
        (noce_process_if_block): Don't optimize if the destination is a
        (noce_process_if_block): Don't optimize if the destination is a
        ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
        ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
2006-04-19  Andreas Krebbel  
2006-04-19  Andreas Krebbel  
        * config/s390/s390.md: Add comments with the instructions emitted
        * config/s390/s390.md: Add comments with the instructions emitted
        by an insn pattern if macros are used.
        by an insn pattern if macros are used.
2006-04-19  Alan Modra  
2006-04-19  Alan Modra  
        PR rtl-optimization/26026
        PR rtl-optimization/26026
        * fold-const.c (fold_binary): Optimize div and mod where the divisor
        * fold-const.c (fold_binary): Optimize div and mod where the divisor
        is a known power of two shifted left a variable amount.
        is a known power of two shifted left a variable amount.
2006-04-18  Geoffrey Keating  
2006-04-18  Geoffrey Keating  
        * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
        * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
        to hash table twice when the debug_str section has SECTION_MERGE.
        to hash table twice when the debug_str section has SECTION_MERGE.
2006-04-18  Joseph S. Myers  
2006-04-18  Joseph S. Myers  
        * config/soft-fp: New directory.  From glibc.
        * config/soft-fp: New directory.  From glibc.
        * config/soft-fp/t-softfp: New.
        * config/soft-fp/t-softfp: New.
        * config/soft-fp/README: New.
        * config/soft-fp/README: New.
        * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
        * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
        * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
        * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
        (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
        (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
        (LIBGCC_DEPS): Add $(SFP_MACHINE).
        (LIBGCC_DEPS): Add $(SFP_MACHINE).
        * config.gcc: Use rs6000/t-fprules-fpbit or
        * config.gcc: Use rs6000/t-fprules-fpbit or
        rs6000/t-fprules-softfp and soft-fp/t-softfp together with
        rs6000/t-fprules-softfp and soft-fp/t-softfp together with
        rs6000/t-fprules.
        rs6000/t-fprules.
        * config/rs6000/sfp-machine.h: New.  Based on glibc.
        * config/rs6000/sfp-machine.h: New.  Based on glibc.
        * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
        * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
        New.
        New.
        * config/rs6000/t-fprules: Remove fp-bit rules.
        * config/rs6000/t-fprules: Remove fp-bit rules.
        * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
        * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
        * config/rs6000/t-linux64: Likewise.  Remove duplicates from
        * config/rs6000/t-linux64: Likewise.  Remove duplicates from
        LIB2FUNCS_EXTRA.  Remove fp-bit rules.
        LIB2FUNCS_EXTRA.  Remove fp-bit rules.
        (softfp_wrap_start, softfp_wrap_end): New.
        (softfp_wrap_start, softfp_wrap_end): New.
2006-04-18  DJ Delorie  
2006-04-18  DJ Delorie  
        * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
        * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
2006-04-18  Devang Patel  
2006-04-18  Devang Patel  
        * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
        * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
2006-04-18  Nick Clifton  
2006-04-18  Nick Clifton  
        * config/sh/t-symbian: Add rule to build sh-c.o
        * config/sh/t-symbian: Add rule to build sh-c.o
        * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
        * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
        of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
        of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
        (sh_symbian_encode_section_info): Likewise.
        (sh_symbian_encode_section_info): Likewise.
2006-04-18  Andreas Krebbel  
2006-04-18  Andreas Krebbel  
        * builtins.c (expand_builtin_strcmp): Cover label definition of
        * builtins.c (expand_builtin_strcmp): Cover label definition of
        do_libcall with HAVE_cmpstrnsi.
        do_libcall with HAVE_cmpstrnsi.
2006-04-18  Kazu Hirata  
2006-04-18  Kazu Hirata  
        * function.c (temp_slots_at_level, max_slot_level): Use VEC
        * function.c (temp_slots_at_level, max_slot_level): Use VEC
        instead of VARRAY.
        instead of VARRAY.
        * function.h (temp_slot_p): New.
        * function.h (temp_slot_p): New.
        (function): Change the type of x_used_temp_slots to
        (function): Change the type of x_used_temp_slots to
        VEC(temp_slot_p,gc) *.
        VEC(temp_slot_p,gc) *.
2006-04-18  Nick Clifton  
2006-04-18  Nick Clifton  
        * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
        * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
        flag_strength_reduce.
        flag_strength_reduce.
        * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
        * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
2006-04-18  Paolo Bonzini  
2006-04-18  Paolo Bonzini  
        PR target/27117
        PR target/27117
        Partial revert of revision 112637
        Partial revert of revision 112637
        2006-04-03  Paolo Bonzini  
        2006-04-03  Paolo Bonzini  
                    Dale Johannesen  
                    Dale Johannesen  
        PR target/19653
        PR target/19653
        * regclass.c (struct reg_pref): Update documentation.
        * regclass.c (struct reg_pref): Update documentation.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
2006-04-18  Paolo Bonzini  
2006-04-18  Paolo Bonzini  
        PR tree-optimization/26821
        PR tree-optimization/26821
        * tree-ssa-math-opts.c (get_constant_one): New.
        * tree-ssa-math-opts.c (get_constant_one): New.
        (insert_reciprocals): Use it.
        (insert_reciprocals): Use it.
2006-04-17  Geoffrey Keating  
2006-04-17  Geoffrey Keating  
        * dwarf2out.c (free_AT): Delete.
        * dwarf2out.c (free_AT): Delete.
        (remove_AT): Update string ref counts.
        (remove_AT): Update string ref counts.
        (remove_child_TAG): Don't call free_die.
        (remove_child_TAG): Don't call free_die.
        (free_die): Delete.
        (free_die): Delete.
        (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
        (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
        or DW_TAG_GNU_EINCL.
        or DW_TAG_GNU_EINCL.
        (prune_unused_types_walk_attribs): Reset string refcounts.
        (prune_unused_types_walk_attribs): Reset string refcounts.
        (prune_unused_types_update_strings): New.
        (prune_unused_types_update_strings): New.
        (prune_unused_types_prune): Don't make unnecessary stores.  Don't
        (prune_unused_types_prune): Don't make unnecessary stores.  Don't
        call free_die.  Do call prune_unused_types_update_strings.
        call free_die.  Do call prune_unused_types_update_strings.
        (prune_unused_types): Empty debug_str_hash.
        (prune_unused_types): Empty debug_str_hash.
2006-04-17  Roger Sayle  
2006-04-17  Roger Sayle  
        * expr.c (expand_assignment): Optimize away no-op moves where the
        * expr.c (expand_assignment): Optimize away no-op moves where the
        source and destination are equal and have no side-effects.
        source and destination are equal and have no side-effects.
2006-04-17  Richard Guenther  
2006-04-17  Richard Guenther  
        PR target/26826
        PR target/26826
        * reload.c (push_reload): Guard calls to get_secondary_mem
        * reload.c (push_reload): Guard calls to get_secondary_mem
        for memory subregs.
        for memory subregs.
2006-04-16  Kazu Hirata  
2006-04-16  Kazu Hirata  
        * alias.c (reg_base_value, old_reg_base_value): Change the
        * alias.c (reg_base_value, old_reg_base_value): Change the
        type to VEC(rtx,gc) *.
        type to VEC(rtx,gc) *.
        (REG_BASE_VALUE, find_base_value, record_set,
        (REG_BASE_VALUE, find_base_value, record_set,
        init_alias_analysis): Use VEC instead of VARRAY.
        init_alias_analysis): Use VEC instead of VARRAY.
        * alias.c (alias_sets): Change the type to
        * alias.c (alias_sets): Change the type to
        VEC(alias_set_entry,gc) *.
        VEC(alias_set_entry,gc) *.
        (get_alias_set_entry, new_alias_set, record_alias_subset): Use
        (get_alias_set_entry, new_alias_set, record_alias_subset): Use
        VEC instead of VARRAY.
        VEC instead of VARRAY.
        (last_alias_set): Remove.
        (last_alias_set): Remove.
        * cgraph.h (cgraph_edge_p): New.
        * cgraph.h (cgraph_edge_p): New.
        Update the prototype of cgraph_function_versioning.
        Update the prototype of cgraph_function_versioning.
        * cgraphunit.c (cgraph_copy_node_for_versioning,
        * cgraphunit.c (cgraph_copy_node_for_versioning,
        cgraph_function_versioning): Use VEC instead of VARRAY.
        cgraph_function_versioning): Use VEC instead of VARRAY.
        * ipa-cp.c (ipcp_insert_stage): Likewise.
        * ipa-cp.c (ipcp_insert_stage): Likewise.
2006-04-16  Roger Sayle  
2006-04-16  Roger Sayle  
        PR target/26961
        PR target/26961
        * fold-const.c (fold_ternary): When converting "A ? B : C" into either
        * fold-const.c (fold_ternary): When converting "A ? B : C" into either
        "A op B" or "A op C", we may need to convert A to the type of B and C.
        "A op B" or "A op C", we may need to convert A to the type of B and C.
2006-04-16  Adam Nemet  
2006-04-16  Adam Nemet  
        * target.h (struct gcc_target): Add mode_rep_extended.
        * target.h (struct gcc_target): Add mode_rep_extended.
        * rtlanal.c (num_sign_bit_copies_in_rep): New global.
        * rtlanal.c (num_sign_bit_copies_in_rep): New global.
        (init_num_sign_bit_copies_in_rep): Initialize it using
        (init_num_sign_bit_copies_in_rep): Initialize it using
        mode_rep_extended.
        mode_rep_extended.
        (truncate_to_mode): Use it.
        (truncate_to_mode): Use it.
        (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
        (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
        * targhooks.h (default_mode_rep_extended): Declare it.
        * targhooks.h (default_mode_rep_extended): Declare it.
        * targhooks.c (default_mode_rep_extended): Define it.
        * targhooks.c (default_mode_rep_extended): Define it.
        * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
        * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
        default_mode_rep_extended.
        default_mode_rep_extended.
        (TARGET_INITIALIZER): Include it.
        (TARGET_INITIALIZER): Include it.
        * doc/tm.texi (Misc): Document it.
        * doc/tm.texi (Misc): Document it.
        * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
        * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
        (mips_truncated_to_mode): New function.
        (mips_truncated_to_mode): New function.
2006-04-16  Roger Sayle  
2006-04-16  Roger Sayle  
        PR middle-end/25474
        PR middle-end/25474
        * expr.c (compress_float_constant): Copy the narrow constant into
        * expr.c (compress_float_constant): Copy the narrow constant into
        a new pseudo before extending it to its final width.
        a new pseudo before extending it to its final width.
2006-04-16  Roger Sayle  
2006-04-16  Roger Sayle  
            Andrew Pinski  
            Andrew Pinski  
            Dale Johannesen  
            Dale Johannesen  
        PR target/24076
        PR target/24076
        * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
        * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
        special case code to implement V8HImode and V16QImode with SSE2.
        special case code to implement V8HImode and V16QImode with SSE2.
2006-04-15  Roger Sayle  
2006-04-15  Roger Sayle  
        * config/i386/i386.c (ix86_va_start): Ensure all integer constant
        * config/i386/i386.c (ix86_va_start): Ensure all integer constant
        trees are constructed with a suitable tree type.
        trees are constructed with a suitable tree type.
2006-04-15  Roger Sayle  
2006-04-15  Roger Sayle  
        * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
        * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
        (integer_onep): Likewise.
        (integer_onep): Likewise.
        (integer_all_onesp): Likewise.
        (integer_all_onesp): Likewise.
        (integer_pow2p): Likewise.
        (integer_pow2p): Likewise.
        (integer_nonzerop): Likewise.
        (integer_nonzerop): Likewise.
        (real_zerop): Likewise.
        (real_zerop): Likewise.
        (real_onep): Likewise.
        (real_onep): Likewise.
        (real_twop): Likewise.
        (real_twop): Likewise.
        (real_minus_onep): Likewise.
        (real_minus_onep): Likewise.
        (int_size_in_bytes): Likewise.
        (int_size_in_bytes): Likewise.
        (host_integerp): Likewise.
        (host_integerp): Likewise.
2006-04-15  Kazu Hirata  
2006-04-15  Kazu Hirata  
        * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
        * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
        jump.c, mips-tfile.c, omp-low.c, sched-int.h,
        jump.c, mips-tfile.c, omp-low.c, sched-int.h,
        tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
        tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
        * tree-ssa-structalias.h (alias_info): Remove num_references.
        * tree-ssa-structalias.h (alias_info): Remove num_references.
2006-04-15  John David Anglin  
2006-04-15  John David Anglin  
        * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
        * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
        (output_bvb patterns): Likewise.
        (output_bvb patterns): Likewise.
        * pa.c (output_bb): Use 'bb' insn for long branch case.
        * pa.c (output_bb): Use 'bb' insn for long branch case.
        (output_bvb): Likewise use '{bvb|bb}' for long branch case.
        (output_bvb): Likewise use '{bvb|bb}' for long branch case.
        (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
        (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
        1.  Correct length operand for alternatives 1 and 2.
        1.  Correct length operand for alternatives 1 and 2.
        (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
        (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
        1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
        1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
2006-04-14  Roger Sayle  
2006-04-14  Roger Sayle  
        * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
        * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
        is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
        is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
        were accidentally reverted by r112959.
        were accidentally reverted by r112959.
2006-04-15  Jakub Jelinek  
2006-04-15  Jakub Jelinek  
        PR middle-end/26823
        PR middle-end/26823
        * except.h (eh_region_outermost): New prototype.
        * except.h (eh_region_outermost): New prototype.
        * except.c (eh_region_outermost): New function.
        * except.c (eh_region_outermost): New function.
        * tree-cfg.c (find_outermost_region_in_block): Use it.
        * tree-cfg.c (find_outermost_region_in_block): Use it.
2006-04-14  Kazu Hirata  
2006-04-14  Kazu Hirata  
        * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
        * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
        of VARRAY.
        of VARRAY.
        * reload1.c (reg_equiv_memory_loc_varray): Rename to
        * reload1.c (reg_equiv_memory_loc_varray): Rename to
        reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
        reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
        (init_reload, reload): Use VEC instead of VARRAY.
        (init_reload, reload): Use VEC instead of VARRAY.
        * reload.h: Update the prototype for
        * reload.h: Update the prototype for
        reg_equiv_memory_loc_varray.
        reg_equiv_memory_loc_varray.
2006-04-14  Alexey Starovoytov  
2006-04-14  Alexey Starovoytov  
            Eric Botcazou  
            Eric Botcazou  
        * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
        * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
        register save area.
        register save area.
2005-04-13  Uros Bizjak  
2005-04-13  Uros Bizjak  
        PR middle-end/27134
        PR middle-end/27134
        * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
        * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
        to expand fallback builtin function call.
        to expand fallback builtin function call.
2006-04-14  Alan Modra  
2006-04-14  Alan Modra  
        PR middle-end/27095
        PR middle-end/27095
        * builtins.c: (expand_builtin_memset): Stabilize args before expansion
        * builtins.c: (expand_builtin_memset): Stabilize args before expansion
        and emit libcall here in case the builtin fails.
        and emit libcall here in case the builtin fails.
        (expand_builtin_strcmp): Always emit the libcall here on failure.
        (expand_builtin_strcmp): Always emit the libcall here on failure.
2006-04-14  Kazu Hirata  
2006-04-14  Kazu Hirata  
        * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
        * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
        * flow.c (reg_n_info): Change the type to
        * flow.c (reg_n_info): Change the type to
        VEC(reg_info_p,heap) *.
        VEC(reg_info_p,heap) *.
        * regclass.c (allocate_reg_info, free_reg_info): Use VEC
        * regclass.c (allocate_reg_info, free_reg_info): Use VEC
        instead of VARRAY.
        instead of VARRAY.
        * regs.h (reg_info_p): New.
        * regs.h (reg_info_p): New.
        (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
        (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
        REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
        REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
        REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
        REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
        instead of VARRAY.
        instead of VARRAY.
2006-04-13  Eric Botcazou  
2006-04-13  Eric Botcazou  
        * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
        * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
        defaulting to 100.
        defaulting to 100.
        * params.h (MAX_SCHED_READY_INSNS): New macro.
        * params.h (MAX_SCHED_READY_INSNS): New macro.
        * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
        * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
        past MAX_SCHED_READY_INSNS during the first scheduling pass.
        past MAX_SCHED_READY_INSNS during the first scheduling pass.
        (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
        (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
        the ready list for 1 cycle during the first scheduling pass.
        the ready list for 1 cycle during the first scheduling pass.
        * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
        * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
2006-04-13  Richard Henderson  
2006-04-13  Richard Henderson  
        PR libgomp/26651
        PR libgomp/26651
        * gimple-low.c (lower_omp_directive): Remove dead code.
        * gimple-low.c (lower_omp_directive): Remove dead code.
        (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
        (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
        * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
        * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
        * omp-low.c (struct omp_region): Move to tree-flow.h.
        * omp-low.c (struct omp_region): Move to tree-flow.h.
        (root_omp_region): Export.
        (root_omp_region): Export.
        (omp_regions, lookup_omp_region): Remove.
        (omp_regions, lookup_omp_region): Remove.
        (determine_parallel_type): Update for struct omp_region changes.
        (determine_parallel_type): Update for struct omp_region changes.
        (dump_omp_region): Dump regions with block numbers.
        (dump_omp_region): Dump regions with block numbers.
        (new_omp_region): Take type and block instead of stmt; malloc
        (new_omp_region): Take type and block instead of stmt; malloc
        instead of ggc.
        instead of ggc.
        (free_omp_region_1, free_omp_regions): New.
        (free_omp_region_1, free_omp_regions): New.
        (expand_parallel_call): Take entry_stmt as argument; update for
        (expand_parallel_call): Take entry_stmt as argument; update for
        changes to omp_region.
        changes to omp_region.
        (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
        (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
        (remove_exit_barriers): New.
        (remove_exit_barriers): New.
        (expand_omp_parallel): Update for struct omp_region changes.
        (expand_omp_parallel): Update for struct omp_region changes.
        (expand_omp_synch): Likewise.
        (expand_omp_synch): Likewise.
        (expand_omp): Likewise.
        (expand_omp): Likewise.
        (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
        (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
        (expand_omp_for_static_chunk): Likewise.
        (expand_omp_for_static_chunk): Likewise.
        (expand_omp_for): Likewise.
        (expand_omp_for): Likewise.
        (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
        (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
        (expand_omp_sections): Similarly, with GOMP_sections_end.
        (expand_omp_sections): Similarly, with GOMP_sections_end.
        (expand_omp_single): New.
        (expand_omp_single): New.
        (build_omp_regions_1): Update for OMP_CONTINUE.
        (build_omp_regions_1): Update for OMP_CONTINUE.
        (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
        (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
        (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
        (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
        OMP_SECTIONS_SECTIONS.
        OMP_SECTIONS_SECTIONS.
        (lower_omp_single_simple): Don't emit barrier here.
        (lower_omp_single_simple): Don't emit barrier here.
        (lower_omp_single_copy): Likewise.
        (lower_omp_single_copy): Likewise.
        (lower_omp_single): Fix bindings, and lower to straightline now.
        (lower_omp_single): Fix bindings, and lower to straightline now.
        (lower_omp_master, lower_omp_ordered): Likewise.
        (lower_omp_master, lower_omp_ordered): Likewise.
        (lower_omp_critical): Likewise.
        (lower_omp_critical): Likewise.
        (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
        (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
        * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
        * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
        omp edges, free it afterward.
        omp edges, free it afterward.
        (make_omp_sections_edges): Remove.
        (make_omp_sections_edges): Remove.
        (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
        (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
        (move_stmt_r): Handle OMP_CONTINUE.
        (move_stmt_r): Handle OMP_CONTINUE.
        * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
        * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
        statement pointers to basic blocks.  Add type member.
        statement pointers to basic blocks.  Add type member.
        (root_omp_region, new_omp_region, free_omp_regions): Declare.
        (root_omp_region, new_omp_region, free_omp_regions): Declare.
        * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
        * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
        * tree-inline.c (estimate_num_insns_1): Likewise.
        * tree-inline.c (estimate_num_insns_1): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        * tree-ssa-operands.c (get_expr_operands): Likewise.
        * tree-ssa-operands.c (get_expr_operands): Likewise.
        * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
        * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
        (OMP_RETURN): Rename from OMP_RETURN_EXPR.
        (OMP_RETURN): Rename from OMP_RETURN_EXPR.
        (OMP_CONTINUE): New.
        (OMP_CONTINUE): New.
        * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
        * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
        (OMP_SECTIONS_SECTIONS): Remove.
        (OMP_SECTIONS_SECTIONS): Remove.
        (OMP_SECTION_LAST): New.
        (OMP_SECTION_LAST): New.
        (OMP_RETURN_NOWAIT): New.
        (OMP_RETURN_NOWAIT): New.
2006-04-13  Roger Sayle  
2006-04-13  Roger Sayle  
        * fold-const.c (native_encode_vector, native_interpret_real):
        * fold-const.c (native_encode_vector, native_interpret_real):
        Correct obvious mistakes in the previous check-in.
        Correct obvious mistakes in the previous check-in.
2006-04-13  Roger Sayle  
2006-04-13  Roger Sayle  
        * fold-const.c (native_encode_expr): New function to encode
        * fold-const.c (native_encode_expr): New function to encode
        the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
        the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
        or VECTOR_CST into a specified buffer.
        or VECTOR_CST into a specified buffer.
        (native_encode_int): New function.
        (native_encode_int): New function.
        (native_encode_real): New function.
        (native_encode_real): New function.
        (native_encode_complex): New function.
        (native_encode_complex): New function.
        (native_encode_vector): New function.
        (native_encode_vector): New function.
        (native_interpret_expr): Inverse of native_encode_expr to convert
        (native_interpret_expr): Inverse of native_encode_expr to convert
        a target representation into an INTEGER_CST, REAL_CST etc...
        a target representation into an INTEGER_CST, REAL_CST etc...
        (native_interpret_int): New function.
        (native_interpret_int): New function.
        (native_interpret_real): New function.
        (native_interpret_real): New function.
        (native_interpret_complex): New function.
        (native_interpret_complex): New function.
        (native_interpret_vector): New function.
        (native_interpret_vector): New function.
        (fold_view_convert_expr): New function to constant fold/evaluate
        (fold_view_convert_expr): New function to constant fold/evaluate
        a VIEW_CONVERT_EXPR of a suitable constant expression.
        a VIEW_CONVERT_EXPR of a suitable constant expression.
        (fold_unary) : Call fold_view_convert_expr.
        (fold_unary) : Call fold_view_convert_expr.
        Change call of build1 to fold_build1 when constructing a
        Change call of build1 to fold_build1 when constructing a
        VIEW_CONVERT_EXPR.
        VIEW_CONVERT_EXPR.
2006-04-13  Paolo Bonzini  
2006-04-13  Paolo Bonzini  
            Ulrich Weigand  
            Ulrich Weigand  
        PR target/27006
        PR target/27006
        * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
        * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
        to be even.
        to be even.
2006-04-13  Alan Modra  
2006-04-13  Alan Modra  
        PR target/26459
        PR target/26459
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
        * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
        optimize to lo_sum for DFmode if !TARGET_FPRS.
        optimize to lo_sum for DFmode if !TARGET_FPRS.
2006-04-12  Kazu Hirata  
2006-04-12  Kazu Hirata  
        * tree-ssa-alias.c (set_initial_properties, init_alias_info,
        * tree-ssa-alias.c (set_initial_properties, init_alias_info,
        delete_alias_info, compute_flow_sensitive_aliasing,
        delete_alias_info, compute_flow_sensitive_aliasing,
        group_aliases): Use VEC instead of VARRAY.
        group_aliases): Use VEC instead of VARRAY.
        * tree-ssa-structalias.c (update_alias_info): Likewise.
        * tree-ssa-structalias.c (update_alias_info): Likewise.
        * tree-ssa-structalias.h (alias_info): Change the type of
        * tree-ssa-structalias.h (alias_info): Change the type of
        processed_ptrs to VEC(tree,heap) *.
        processed_ptrs to VEC(tree,heap) *.
2006-04-12  J"orn Rennecke 
2006-04-12  J"orn Rennecke 
        PR target/27060
        PR target/27060
        * config/sh/lib1funcs.h: New file, broken out of:
        * config/sh/lib1funcs.h: New file, broken out of:
        * config/sh/lib1funcs.asm.
        * config/sh/lib1funcs.asm.
        * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
        * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
        New macros.
        New macros.
        * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
        * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
        * config/sh/lib1funcs-Os-4-200.asm: New file.
        * config/sh/lib1funcs-Os-4-200.asm: New file.
        * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
        * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
        * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
        * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
        (EXTRA_MULTILIB_PARTS): Include it.
        (EXTRA_MULTILIB_PARTS): Include it.
        ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
        ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
        ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
        ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
        * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
        * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
        * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
        * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
        TARGET_SH2.
        TARGET_SH2.
2006-04-12  Kazu Hirata  
2006-04-12  Kazu Hirata  
        * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
        * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
        * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
        * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
        tpa_compact, root_var_init, type_var_init): Use VEC instead of
        tpa_compact, root_var_init, type_var_init): Use VEC instead of
        VARRAY.
        VARRAY.
        * tree-ssa-live.h: Include vecprim.h.
        * tree-ssa-live.h: Include vecprim.h.
        (tree_partition_associator_d): Change the type of
        (tree_partition_associator_d): Change the type of
        first_partition to VEC(int,heap) *.
        first_partition to VEC(int,heap) *.
        (tpa_first_partition): Use VEC instead of VARRAY.
        (tpa_first_partition): Use VEC instead of VARRAY.
        * Makefile.in (GTFILES): Move functions.h after tree.h.
        * Makefile.in (GTFILES): Move functions.h after tree.h.
        * function.c (reset_block_changes, record_block_change,
        * function.c (reset_block_changes, record_block_change,
        check_block_change, free_block_changes): Use VEC instead of
        check_block_change, free_block_changes): Use VEC instead of
        VARRAY.
        VARRAY.
        * function.h (function): Change the type of
        * function.h (function): Change the type of
        ib_boundaries_block to VEC(tree,gc) *.
        ib_boundaries_block to VEC(tree,gc) *.
        * tree-inline.c (copy_cfg_body): Initialize
        * tree-inline.c (copy_cfg_body): Initialize
        ib_boundaries_block to NULL instead of (varray_type) 0.
        ib_boundaries_block to NULL instead of (varray_type) 0.
2006-04-12  Roger Sayle  
2006-04-12  Roger Sayle  
        * expr.c (emit_group_store): Correct operand order in call to
        * expr.c (emit_group_store): Correct operand order in call to
        subreg_lowpart_offset.  Always create paradoxical SUBREGs with
        subreg_lowpart_offset.  Always create paradoxical SUBREGs with
        a SUBREG_BYTE of zero.
        a SUBREG_BYTE of zero.
2006-04-12  Richard Guenther  
2006-04-12  Richard Guenther  
        * profile.c (compute_branch_probabilities): Remove code
        * profile.c (compute_branch_probabilities): Remove code
        encapsulated in !ir_type (), which are remanents of the
        encapsulated in !ir_type (), which are remanents of the
        removed RTL profiling code.
        removed RTL profiling code.
        * rtl-profile.c: Remove.
        * rtl-profile.c: Remove.
2006-04-12  Alan Modra  
2006-04-12  Alan Modra  
        * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
        * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
        magic NULL_RTX comment.
        magic NULL_RTX comment.
        (function_arg): Store entire fp arg to mem if any part should go
        (function_arg): Store entire fp arg to mem if any part should go
        on stack.
        on stack.
        (rs6000_arg_partial_bytes): Adjust for above change.
        (rs6000_arg_partial_bytes): Adjust for above change.
2006-04-11  Roger Sayle  
2006-04-11  Roger Sayle  
        * dwarf2out.c (output_call_frame_info): Create debug_frame_section
        * dwarf2out.c (output_call_frame_info): Create debug_frame_section
        if it hasn't been initialized by dwarf2out_init.
        if it hasn't been initialized by dwarf2out_init.
2006-04-11  John David Anglin  
2006-04-11  John David Anglin  
        * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
        * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
        symbolic constants in branch patterns.
        symbolic constants in branch patterns.
2006-04-11  Roger Sayle  
2006-04-11  Roger Sayle  
        * caller-save.c: #include "addresses.h" after #include "tm_p.h".
        * caller-save.c: #include "addresses.h" after #include "tm_p.h".
2006-04-11  Richard Sandiford  
2006-04-11  Richard Sandiford  
        PR rtl-optimization/27073
        PR rtl-optimization/27073
        * gcse.c (try_replace_reg): Revert last change.  Continue to search
        * gcse.c (try_replace_reg): Revert last change.  Continue to search
        for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
        for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
        on the former.
        on the former.
2006-04-11  Eric Botcazou  
2006-04-11  Eric Botcazou  
        * config/sparc/sparc.c (function_arg_slotno) : Handle
        * config/sparc/sparc.c (function_arg_slotno) : Handle
        aggregate types other than record and union types.
        aggregate types other than record and union types.
        (function_arg): Likewise.
        (function_arg): Likewise.
        (function_arg_pass_by_reference): In 64-bit mode, return 0 for
        (function_arg_pass_by_reference): In 64-bit mode, return 0 for
        small arrays.
        small arrays.
        (function_value): In 64-bit mode, return objects that require it
        (function_value): In 64-bit mode, return objects that require it
        in FP registers.
        in FP registers.
2006-04-11  Roger Sayle  
2006-04-11  Roger Sayle  
        * dwarf2out.c (premark_used_types): Remove problematic prototype.
        * dwarf2out.c (premark_used_types): Remove problematic prototype.
2006-04-11  Jakub Jelinek  
2006-04-11  Jakub Jelinek  
        * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
        * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
2006-04-03  Jeff Law  
2006-04-03  Jeff Law  
        PR/27087
        PR/27087
        * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
        * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
        alias information too.
        alias information too.
2006-04-10  Mike Frysinger  
2006-04-10  Mike Frysinger  
        * Makefile.in (gcc-cross): Add $(exeext) to target name.
        * Makefile.in (gcc-cross): Add $(exeext) to target name.
2006-04-10  Aldy Hernandez  
2006-04-10  Aldy Hernandez  
        PR/21391
        PR/21391
        * dwarf2out.c (struct die_struct): Add die_perennial_p field.
        * dwarf2out.c (struct die_struct): Add die_perennial_p field.
        (premark_used_types_helper): New.
        (premark_used_types_helper): New.
        (premark_used_types): New.
        (premark_used_types): New.
        (gen_subprogram_die): Call premark_used_types.
        (gen_subprogram_die): Call premark_used_types.
        (prune_unused_types_walk): Do not prune perennial dies.
        (prune_unused_types_walk): Do not prune perennial dies.
        * function.c (used_types_insert): New.
        * function.c (used_types_insert): New.
        * function.h (struct function): Add used_types_hash field.
        * function.h (struct function): Add used_types_hash field.
        (used_types_insert): Add prototype.
        (used_types_insert): Add prototype.
        * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
        * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
        * c-parser.c (c_parser_cast_expression): Save casted types in used
        * c-parser.c (c_parser_cast_expression): Save casted types in used
        types hash table.
        types hash table.
2006-04-11  Mark Mitchell  
2006-04-11  Mark Mitchell  
        PR target/26459
        PR target/26459
        * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
        * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
        rs6000_explicit_options.float_gprs.
        rs6000_explicit_options.float_gprs.
2006-04-10  Roger Sayle  
2006-04-10  Roger Sayle  
        * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
        * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
        from ix86_expand_vector_init_low_nonzero.  Take an additional
        from ix86_expand_vector_init_low_nonzero.  Take an additional
        one_var argument indicating which element is non-zero.  Support
        one_var argument indicating which element is non-zero.  Support
        one_var != 0 for V4SFmode and V4SImode by permuting the result.
        one_var != 0 for V4SFmode and V4SImode by permuting the result.
        (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
        (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
        with one_var instead of ix86_expand_vector_init_low_nonzero.
        with one_var instead of ix86_expand_vector_init_low_nonzero.
2006-04-10  Kazu Hirata  
2006-04-10  Kazu Hirata  
        * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
        * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
        tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
        tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
        global.o, cfglayout.o, lambda-code.o, reg-stack.o,
        global.o, cfglayout.o, lambda-code.o, reg-stack.o,
        build/genextract.o): Depend on vecprim.h.
        build/genextract.o): Depend on vecprim.h.
        * cfglayout.c, df-problems.c, function.c, genextract.c,
        * cfglayout.c, df-problems.c, function.c, genextract.c,
        global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
        global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
        tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
        tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
        vecprim.h.
        vecprim.h.
        * vecprim.h: New.
        * vecprim.h: New.
2006-04-10  Geoffrey Keating  
2006-04-10  Geoffrey Keating  
        * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
        * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
        Declare VECs of this type.
        Declare VECs of this type.
        (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
        (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
        (remove_children): Delete.
        (remove_children): Delete.
        (add_dwarf_attr): Use VEC routines.
        (add_dwarf_attr): Use VEC routines.
        (add_AT_flag): Update for changes to add_dwarf_attr.
        (add_AT_flag): Update for changes to add_dwarf_attr.
        (add_AT_int): Likewise.
        (add_AT_int): Likewise.
        (add_AT_unsigned): Likewise.
        (add_AT_unsigned): Likewise.
        (add_AT_long_long): Likewise.
        (add_AT_long_long): Likewise.
        (add_AT_vec): Likewise.
        (add_AT_vec): Likewise.
        (add_AT_string): Likewise.
        (add_AT_string): Likewise.
        (add_AT_die_ref): Likewise.
        (add_AT_die_ref): Likewise.
        (add_AT_fde_ref): Likewise.
        (add_AT_fde_ref): Likewise.
        (add_AT_loc): Likewise.
        (add_AT_loc): Likewise.
        (add_AT_loc_list): Likewise.
        (add_AT_loc_list): Likewise.
        (add_AT_addr): Likewise.
        (add_AT_addr): Likewise.
        (add_AT_lbl_id): Likewise.
        (add_AT_lbl_id): Likewise.
        (add_AT_lineptr): Likewise.
        (add_AT_lineptr): Likewise.
        (add_AT_macptr): Likewise.
        (add_AT_macptr): Likewise.
        (add_AT_offset): Likewise.
        (add_AT_offset): Likewise.
        (add_AT_range_list): Likewise.
        (add_AT_range_list): Likewise.
        (get_AT): Use VEC_iterate.
        (get_AT): Use VEC_iterate.
        (remove_AT): Use VEC_ordered_remove.
        (remove_AT): Use VEC_ordered_remove.
        (free_die): Fold remove_children into here; have it use VEC_iterate.
        (free_die): Fold remove_children into here; have it use VEC_iterate.
        (print_die): Use VEC_iterate on attrs.
        (print_die): Use VEC_iterate on attrs.
        (reverse_die_lists): Don't reverse attr lists.
        (reverse_die_lists): Don't reverse attr lists.
        (die_checksum): Use VEC_iterate on attrs.
        (die_checksum): Use VEC_iterate on attrs.
        (same_die_p): Likewise.
        (same_die_p): Likewise.
        (output_location_lists): Likewise.
        (output_location_lists): Likewise.
        (build_abbrev_table): Likewise.
        (build_abbrev_table): Likewise.
        (size_of_die): Likewise.
        (size_of_die): Likewise.
        (unmark_all_dies): Likewise.
        (unmark_all_dies): Likewise.
        (output_abbrev_section): Likewise.
        (output_abbrev_section): Likewise.
        (output_die): Likewise.
        (output_die): Likewise.
        (prune_unused_types_walk_attribs): Likewise.
        (prune_unused_types_walk_attribs): Likewise.
2006-04-10  Eric Botcazou  
2006-04-10  Eric Botcazou  
        * doc/install.texi (*-*-solaris2*): Point to the configure page.
        * doc/install.texi (*-*-solaris2*): Point to the configure page.
2006-04-10  Jakub Jelinek  
2006-04-10  Jakub Jelinek  
        PR debug/27057
        PR debug/27057
        * dwarf2out.c (is_symbol_die): Return true also for namespaces.
        * dwarf2out.c (is_symbol_die): Return true also for namespaces.
2006-04-09  Roger Sayle  
2006-04-09  Roger Sayle  
        * expr.c (store_constructor): Don't bother clearing target if
        * expr.c (store_constructor): Don't bother clearing target if
        we're about to assign a vector to it using vec_init_optab.
        we're about to assign a vector to it using vec_init_optab.
2006-04-10 Daniel Berlin  
2006-04-10 Daniel Berlin  
        * tree-ssa-alias.c (lhs_may_store_to): New function.
        * tree-ssa-alias.c (lhs_may_store_to): New function.
        (recalculate_used_alone): Handle LHS of calls.
        (recalculate_used_alone): Handle LHS of calls.
2006-04-09  John David Anglin  
2006-04-09  John David Anglin  
        PR target/27034
        PR target/27034
        PR target/26508
        PR target/26508
        * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
        * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
        * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
        * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
        (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
        (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
        (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
        (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
        (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
        (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
        (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
        (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
        section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
        section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
        stubs.  Add ".align 8" directives before all ".dword" directives.
        stubs.  Add ".align 8" directives before all ".dword" directives.
        (GTHREAD_USE_WEAK): Revise comment.
        (GTHREAD_USE_WEAK): Revise comment.
        (TARGET_ATTRIBUTE_WEAK): Define.
        (TARGET_ATTRIBUTE_WEAK): Define.
        * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
        * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
        dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
        dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
        * stublib.c: New file.
        * stublib.c: New file.
        PR target/26743
        PR target/26743
        PR target/11254
        PR target/11254
        PR target/10274
        PR target/10274
        * pa.md (cbranch patterns): Revise arguments used in calls to
        * pa.md (cbranch patterns): Revise arguments used in calls to
        output_cbranch, output_bb and output_bvd.  Add long branch length
        output_cbranch, output_bb and output_bvd.  Add long branch length
        attributes.
        attributes.
        (fbranch patterns): Handle long branches.
        (fbranch patterns): Handle long branches.
        (jump): Revise length check.  Revise arguments for output_lbranch call.
        (jump): Revise length check.  Revise arguments for output_lbranch call.
        Add long branch length attributes.
        Add long branch length attributes.
        (decrement_and_branch_until_zero): Add long branch length attributes.
        (decrement_and_branch_until_zero): Add long branch length attributes.
        (output_movb, output_parallel_addb and output_parallel_movb patterns):
        (output_movb, output_parallel_addb and output_parallel_movb patterns):
        Likewise.  Revise arguments for output_parallel_addb and
        Likewise.  Revise arguments for output_parallel_addb and
        output_parallel_movb calls.
        output_parallel_movb calls.
        * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
        * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
        output_parallel_movb and output_parallel_addb): Update prototypes.
        output_parallel_movb and output_parallel_addb): Update prototypes.
        * pa.c (output_cbranch): Revise arguments.  Correct handling of
        * pa.c (output_cbranch): Revise arguments.  Correct handling of
        nullification in long branches.
        nullification in long branches.
        (output_lbranch): Add new argument to control extraction of delay
        (output_lbranch): Add new argument to control extraction of delay
        instruction.
        instruction.
        (output_bb): Handle long branches.
        (output_bb): Handle long branches.
        (output_bvb, output_dbra, output_movb, output_parallel_movb,
        (output_bvb, output_dbra, output_movb, output_parallel_movb,
        output_parallel_addb): Likewise.
        output_parallel_addb): Likewise.
2006-04-09  Richard Sandiford  
2006-04-09  Richard Sandiford  
        PR rtl-optimization/27073
        PR rtl-optimization/27073
        * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
        * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
        not REG_EQUIVs.
        not REG_EQUIVs.
2006-04-08  Daniel Berlin  
2006-04-08  Daniel Berlin  
        * tree.h (tree_memory_tag): Add old_used_alone.
        * tree.h (tree_memory_tag): Add old_used_alone.
        (SMT_OLD_USED_ALONE): New macro.
        (SMT_OLD_USED_ALONE): New macro.
        * tree-ssa-alias.c (recalculate_used_alone): Stop
        * tree-ssa-alias.c (recalculate_used_alone): Stop
        marking things for renaming unnecessarily.
        marking things for renaming unnecessarily.
2006-04-08  Kazu Hirata  
2006-04-08  Kazu Hirata  
        * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
        * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
        config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
        config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
        config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
        config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
        haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
        haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
        sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
        sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
        tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
        tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
        tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
        tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
        spelling convensions.
        spelling convensions.
        * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
        * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
        doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
        doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
        typos.  Follow spelling conventions.
        typos.  Follow spelling conventions.
2006-04-07  DJ Delorie  
2006-04-07  DJ Delorie  
        * config/m32c/m32c.c (m32c_function_arg): Structures are always
        * config/m32c/m32c.c (m32c_function_arg): Structures are always
        passed on the stack.
        passed on the stack.
        (m32c_init_cumulative_args): When a function returns a structure,
        (m32c_init_cumulative_args): When a function returns a structure,
        always pass the pointer to that return area on the stack.
        always pass the pointer to that return area on the stack.
        (m32c_function_arg_advance): Don't increment the parameter number
        (m32c_function_arg_advance): Don't increment the parameter number
        if we're processing the returned structure pointer.
        if we're processing the returned structure pointer.
        (pushm_info): Reverse order of registers.
        (pushm_info): Reverse order of registers.
2006-04-07  Sebastian Pop  
2006-04-07  Sebastian Pop  
        * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
        * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
        assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
        assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
        number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
        number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
        estimate_numbers_of_iterations_loop): Use build_int_cst instead of
        estimate_numbers_of_iterations_loop): Use build_int_cst instead of
        build_int_cst_type.
        build_int_cst_type.
        * tree-chrec.c (chrec_fold_multiply_poly_poly,
        * tree-chrec.c (chrec_fold_multiply_poly_poly,
        chrec_fold_multiply): Same.
        chrec_fold_multiply): Same.
        * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
        * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
        force_expr_to_var_cost): Same.
        force_expr_to_var_cost): Same.
        * tree-mudflap.c (mf_xform_derefs_1): Same.
        * tree-mudflap.c (mf_xform_derefs_1): Same.
        * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
        * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
2006-04-07  David Edelsohn  
2006-04-07  David Edelsohn  
        * config/rs6000/rs6000.c (rs6000_rtx_costs) : Do not
        * config/rs6000/rs6000.c (rs6000_rtx_costs) : Do not
        treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
        treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
        insn.
        insn.
2006-04-07  Jan Hubicka  
2006-04-07  Jan Hubicka  
        * ipa-inline.c (cgraph_early_inlining): Collect garbage.
        * ipa-inline.c (cgraph_early_inlining): Collect garbage.
2006-04-07  Richard Guenther  
2006-04-07  Richard Guenther  
        PR tree-optimization/26135
        PR tree-optimization/26135
        * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
        * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
        loads for store copy-prop.
        loads for store copy-prop.
        (copy_prop_visit_stmt): Likewise.
        (copy_prop_visit_stmt): Likewise.
2006-04-05  Robert Millan  
2006-04-05  Robert Millan  
        * config/i386/linux.h: Add a comment to mark macros that are
        * config/i386/linux.h: Add a comment to mark macros that are
        being overriden in config/k*bsd-gnu.h.
        being overriden in config/k*bsd-gnu.h.
        * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
        * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
        DYNAMIC_LINKER.
        DYNAMIC_LINKER.
        * config/knetbsd-gnu.h: Ditto.
        * config/knetbsd-gnu.h: Ditto.
2006-04-06  Jan Hubicka  
2006-04-06  Jan Hubicka  
        PR profile/20815
        PR profile/20815
        PR profile/26399
        PR profile/26399
        * coverage.c (coverage_checksum_string): Reorganize loop to not read
        * coverage.c (coverage_checksum_string): Reorganize loop to not read
        after buffer.
        after buffer.
2006-04-06  Mike Stump  
2006-04-06  Mike Stump  
        * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
        * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
        for HAVE_nonlocal_goto to be consistent.
        for HAVE_nonlocal_goto to be consistent.
        (expand_builtin_nonlocal_goto): Likewise.
        (expand_builtin_nonlocal_goto): Likewise.
        (expand_builtin_strcmp): Use #ifdef instead of #if
        (expand_builtin_strcmp): Use #ifdef instead of #if
        for HAVE_cmpstrnsi to be consistent.
        for HAVE_cmpstrnsi to be consistent.
2006-04-05  DJ Delorie  
2006-04-05  DJ Delorie  
        * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
        * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
        vs m32c.
        vs m32c.
2006-04-05  Bernd Schmidt  
2006-04-05  Bernd Schmidt  
        * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
        * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
        got-relative addressing for anything but SImode.
        got-relative addressing for anything but SImode.
        * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
        * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
        even if the calling function doesn't modify them.
        even if the calling function doesn't modify them.
2006-04-05  Richard Guenther  
2006-04-05  Richard Guenther  
        PR tree-optimization/26919
        PR tree-optimization/26919
        * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
        * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
        to cgraph_estimate_size_after_inlining.
        to cgraph_estimate_size_after_inlining.
2006-04-05  Alan Modra  
2006-04-05  Alan Modra  
        * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
        * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
2006-04-05  Sebastian Pop  
2006-04-05  Sebastian Pop  
        PR tree-optimization/26996
        PR tree-optimization/26996
        * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
        * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
        VECTOR_TYPE variables.
        VECTOR_TYPE variables.
2006-04-05  Richard Guenther  
2006-04-05  Richard Guenther  
        PR tree-optimization/26763
        PR tree-optimization/26763
        * fold-const.c (fold_comparison): Move folding of
        * fold-const.c (fold_comparison): Move folding of
        PTR + CST CMP PTR + CST ...
        PTR + CST CMP PTR + CST ...
        (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
        (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
2006-04-05  Gerald Pfeifer  
2006-04-05  Gerald Pfeifer  
        * doc/install.texi (Prerequisites): Refine some wording on
        * doc/install.texi (Prerequisites): Refine some wording on
        bootstrapping and ksh.
        bootstrapping and ksh.
        Move the version numbers of DejaGnu here from the testing section
        Move the version numbers of DejaGnu here from the testing section
        and fix casing of names.
        and fix casing of names.
        Fix markup and clarify wording for autogen requirements.
        Fix markup and clarify wording for autogen requirements.
        Refer to GCJ instead of just java.
        Refer to GCJ instead of just java.
        Refer to SVN instead of CVS.
        Refer to SVN instead of CVS.
        Describe diffutils as useful instead of necessary.
        Describe diffutils as useful instead of necessary.
        (Downloading the source): Refer to SVN instead of CVS.
        (Downloading the source): Refer to SVN instead of CVS.
        Adjust a link to our web site accordingly.
        Adjust a link to our web site accordingly.
        (Configuration): Fix casing of Bison.
        (Configuration): Fix casing of Bison.
        (Building): Refer to SVN instead of CVS.
        (Building): Refer to SVN instead of CVS.
        Fix a sentence on the use of Bison and remove duplicate (and
        Fix a sentence on the use of Bison and remove duplicate (and
        incorrect) version number of Bison requirement.
        incorrect) version number of Bison requirement.
        Remove one redundant list of packages needed for building.
        Remove one redundant list of packages needed for building.
        (Specific): Avoid reference to CVS.
        (Specific): Avoid reference to CVS.
2006-04-04  Eric Christopher  
2006-04-04  Eric Christopher  
        * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
        * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
        (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
        (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
        (rs6000_handle_struct_attribute): New.
        (rs6000_handle_struct_attribute): New.
        (rs6000_ms_bitfield_layout_p): Ditto.
        (rs6000_ms_bitfield_layout_p): Ditto.
2006-04-04  Geoffrey Keating  
2006-04-04  Geoffrey Keating  
        * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
        * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
        NULL for dso parameter to atexit_common.
        NULL for dso parameter to atexit_common.
2006-04-04  Eric Christopher  
2006-04-04  Eric Christopher  
        * config/i386/i386.c (machopic_output_stub): Output \t
        * config/i386/i386.c (machopic_output_stub): Output \t
        between instructions and operands.
        between instructions and operands.
2006-04-04  David Edelsohn  
2006-04-04  David Edelsohn  
        * config/rs6000/rs6000.c (num_insns_constant_wide): Change
        * config/rs6000/rs6000.c (num_insns_constant_wide): Change
        satisfies_constraint_[IL] to explicit tests on value.
        satisfies_constraint_[IL] to explicit tests on value.
2006-04-04  Sebastian Pop  
2006-04-04  Sebastian Pop  
        * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
        * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
        set_nb_iterations_in_loop): Use build_int_cst instead of
        set_nb_iterations_in_loop): Use build_int_cst instead of
        build_int_cst_type.
        build_int_cst_type.
        * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
        * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
        build_int_cst instead of convert.
        build_int_cst instead of convert.
2006-04-04  Carlos O'Donell  
2006-04-04  Carlos O'Donell  
        * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
        * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
        new value 2 for incoming.
        new value 2 for incoming.
        * function.c (expand_function_start): Call struct_value_rtx
        * function.c (expand_function_start): Call struct_value_rtx
        with incoming as 2.
        with incoming as 2.
        * config/sparc/sparc.md: Comment updated_return.
        * config/sparc/sparc.md: Comment updated_return.
        * config/sparc/sparc.opt: Add -mstd-struct-return option.
        * config/sparc/sparc.opt: Add -mstd-struct-return option.
        * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
        * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
        struct return if sparc_std_struct_return and incoming is 2.
        struct return if sparc_std_struct_return and incoming is 2.
        (print_operand): Do not adjust return if
        (print_operand): Do not adjust return if
        sparc_std_struct_return.
        sparc_std_struct_return.
2006-04-04  Roger Sayle  
2006-04-04  Roger Sayle  
        * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
        * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
        convert in the middle-end.
        convert in the middle-end.
        * expr.c (store_expr, store_constructor, get_inner_reference,
        * expr.c (store_expr, store_constructor, get_inner_reference,
        expand_expr_real_1, string_constant, try_casesi, try_tablejump):
        expand_expr_real_1, string_constant, try_casesi, try_tablejump):
        Likewise.
        Likewise.
        * tree.c (build_range_type): Likewise.
        * tree.c (build_range_type): Likewise.
2006-04-04  Tom Tromey  
2006-04-04  Tom Tromey  
        * doc/install.texi (Prerequisites): Mention jar.
        * doc/install.texi (Prerequisites): Mention jar.
2006-04-04  Daniel Berlin  
2006-04-04  Daniel Berlin  
        * doc/tree-ssa.texi (Preserving the virtual ssa form): New
        * doc/tree-ssa.texi (Preserving the virtual ssa form): New
        subsection.
        subsection.
2006-04-04  Matthias Klose  
2006-04-04  Matthias Klose  
        * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
        * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
        PR bootstrap/26764
        PR bootstrap/26764
        PR bootstrap/27334
        PR bootstrap/27334
        * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
        * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
        strings.
        strings.
2006-04-03  Geoffrey Keating  
2006-04-03  Geoffrey Keating  
        * doc/extend.texi (Function Attributes): Rewrite visibility
        * doc/extend.texi (Function Attributes): Rewrite visibility
        attribute documentation.
        attribute documentation.
        * doc/invoke.texi (C++ Dialect Options): Rewrite
        * doc/invoke.texi (C++ Dialect Options): Rewrite
        -fvisibility-inlines-hidden documentation to describe something
        -fvisibility-inlines-hidden documentation to describe something
        entirely different, although in practise compatible.
        entirely different, although in practise compatible.
        (Code Gen Options): Warn about system headers in -fvisibility=
        (Code Gen Options): Warn about system headers in -fvisibility=
        documentation.
        documentation.
        * doc/extend.texi (Other Builtins): Document that
        * doc/extend.texi (Other Builtins): Document that
        __builtin_nan is a compile-time constant only when its argument
        __builtin_nan is a compile-time constant only when its argument
        is valid.
        is valid.
2006-04-03  Adam Nemet  
2006-04-03  Adam Nemet  
        * simplify-rtx.c (simplify_unary_operation_1) : When
        * simplify-rtx.c (simplify_unary_operation_1) : When
        trying to remove TRUNCATE check if all bits outside the new mode
        trying to remove TRUNCATE check if all bits outside the new mode
        are identical to the sign bit.
        are identical to the sign bit.
2006-04-03  Jeff Law  
2006-04-03  Jeff Law  
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
        and operand scanning in some common cases.
        and operand scanning in some common cases.
2006-04-03  Paolo Bonzini  
2006-04-03  Paolo Bonzini  
            Dale Johannesen  
            Dale Johannesen  
        PR target/19653
        PR target/19653
        * regclass.c (struct reg_pref): Update documentation.
        * regclass.c (struct reg_pref): Update documentation.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (regclass): Set prefclass to NO_REGS if memory is the best option.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
        (record_reg_classes): Cope with a prefclass set to NO_REGS.
        * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
        * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
        into account.  For non-registers, equate an empty preferred
        into account.  For non-registers, equate an empty preferred
        reload class to a `!' in the constraint; move the if clause to
        reload class to a `!' in the constraint; move the if clause to
        do so after those that reject the insn.
        do so after those that reject the insn.
        (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
        (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
        return NO_REGS.
        return NO_REGS.
        (find_dummy_reload): Likewise.
        (find_dummy_reload): Likewise.
        * doc/tm.texi (Register Classes): Document what it means
        * doc/tm.texi (Register Classes): Document what it means
        if PREFERRED_*_RELOAD_CLASS return NO_REGS.
        if PREFERRED_*_RELOAD_CLASS return NO_REGS.
        * config/i386/i386.c (ix86_preferred_reload_class): Force
        * config/i386/i386.c (ix86_preferred_reload_class): Force
        using SSE registers (and return NO_REGS for floating-point
        using SSE registers (and return NO_REGS for floating-point
        constants) if math is done with SSE.
        constants) if math is done with SSE.
        (ix86_preferred_output_reload_class): New.
        (ix86_preferred_output_reload_class): New.
        * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
        * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
        * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
        * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
        * config/i386/i386.md: Remove # register preferences.
        * config/i386/i386.md: Remove # register preferences.
2006-04-02  Sebastian Pop  
2006-04-02  Sebastian Pop  
        PR bootstrap/26992
        PR bootstrap/26992
        * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
        * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
        chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
        chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
        the type of nb_iter.
        the type of nb_iter.
        (instantiate_parameters_1): Convert the operands before calling
        (instantiate_parameters_1): Convert the operands before calling
        chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
        chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
        * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
        * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
2006-04-02  Roger Sayle  
2006-04-02  Roger Sayle  
        * builtins.c (dummy_object): Use build_int_cst instead of convert.
        * builtins.c (dummy_object): Use build_int_cst instead of convert.
        * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
        * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
        instead of convert.
        instead of convert.
        * dojump.c (do_jump): Likewise.
        * dojump.c (do_jump): Likewise.
        * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
        * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
        * gimplify.c (gimple_boolify, gimplify_init_constructor,
        * gimplify.c (gimple_boolify, gimplify_init_constructor,
        gimplify_boolean_expr): Likewise.
        gimplify_boolean_expr): Likewise.
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
        * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
        * varasm.c (array_size_for_constructor): Likewise.
        * varasm.c (array_size_for_constructor): Likewise.
        * tree-object-size.c (compute_object_offset): Likewise.
        * tree-object-size.c (compute_object_offset): Likewise.
2006-04-02  Roger Sayle  
2006-04-02  Roger Sayle  
        PR middle-end/26977
        PR middle-end/26977
        * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
        * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
        NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
        NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
2006-04-02  Sebastian Pop  
2006-04-02  Sebastian Pop  
        PR tree-optimization/26939
        PR tree-optimization/26939
        * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
        * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
2006-04-02  Sebastian Pop  
2006-04-02  Sebastian Pop  
        * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
        * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
        at_stmt.  Convert the type of operands before calling
        at_stmt.  Convert the type of operands before calling
        build_polynomial_chrec.
        build_polynomial_chrec.
        (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
        (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
        add_to_evolution_1.
        add_to_evolution_1.
        (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
        (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
        (instantiate_parameters_1): Convert the type of operands before calling
        (instantiate_parameters_1): Convert the type of operands before calling
        build_polynomial_chrec.
        build_polynomial_chrec.
        * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
        * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
        chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
        chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
        reset_evolution_in_loop): Insert asserts to check the types of the
        reset_evolution_in_loop): Insert asserts to check the types of the
        operands.
        operands.
        (chrec_type): Moved...
        (chrec_type): Moved...
        (eq_evolutions_p): Use operand_equal_p.
        (eq_evolutions_p): Use operand_equal_p.
        * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
        * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
        the types of the operands.
        the types of the operands.
        (chrec_type): ...here.
        (chrec_type): ...here.
        * tree-data-ref.c (create_data_ref): Convert the operands before
        * tree-data-ref.c (create_data_ref): Convert the operands before
        calling chrec_replace_initial_condition.
        calling chrec_replace_initial_condition.
        (same_access_functions, analyze_subscript_affine_affine,
        (same_access_functions, analyze_subscript_affine_affine,
        analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
        analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
        (compute_subscript_distance, analyze_ziv_subscript,
        (compute_subscript_distance, analyze_ziv_subscript,
        analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
        analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
        analyze_miv_subscript): Convert the operands before calling
        analyze_miv_subscript): Convert the operands before calling
        chrec_fold_minus or chrec_fold_plus.
        chrec_fold_minus or chrec_fold_plus.
2006-04-02  Sebastian Pop  
2006-04-02  Sebastian Pop  
        * tree-data-ref.c (compute_all_dependences): Use a pointer to
        * tree-data-ref.c (compute_all_dependences): Use a pointer to
        the dependence_relations vector.
        the dependence_relations vector.
        (compute_data_dependences_for_loop): Adjust call to
        (compute_data_dependences_for_loop): Adjust call to
        compute_all_dependences.
        compute_all_dependences.
2006-04-01  Roger Sayle  
2006-04-01  Roger Sayle  
            Richard Henderson  
            Richard Henderson  
        * gimplify.c (gimplify_scan_omp_clauses) : Call
        * gimplify.c (gimplify_scan_omp_clauses) : Call
        gimple_boolify on the condition before calling gimplify_expr.
        gimple_boolify on the condition before calling gimplify_expr.
2006-03-31  Bob Wilson  
2006-03-31  Bob Wilson  
        * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
        * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
        to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
        to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
        the frame size.  Update to use the new macros.
        the frame size.  Update to use the new macros.
        * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
        * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
        * config/xtensa/ieee754-df.S: Likewise.
        * config/xtensa/ieee754-df.S: Likewise.
2006-03-31  Richard Henderson  
2006-03-31  Richard Henderson  
        * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
        * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
        (make_edges): ... here.  Control fallthru creation with a local
        (make_edges): ... here.  Control fallthru creation with a local
        variable.  Do not play with fake edges.
        variable.  Do not play with fake edges.
        (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
        (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
        (make_goto_expr_edges): Don't play with fake edges.  Make for_call
        (make_goto_expr_edges): Don't play with fake edges.  Make for_call
        a boolean.
        a boolean.
2006-04-01  Joseph S. Myers  
2006-04-01  Joseph S. Myers  
        * dwarf2.h (DW64_CIE_ID): Define.
        * dwarf2.h (DW64_CIE_ID): Define.
        * dwarf2out.c (DWARF_CIE_ID): Define.
        * dwarf2out.c (DWARF_CIE_ID): Define.
        (output_call_frame_info): Output 0xffffffff before standard 8-byte
        (output_call_frame_info): Output 0xffffffff before standard 8-byte
        length header.  Use DWARF_CIE_ID.
        length header.  Use DWARF_CIE_ID.
        (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
        (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
        dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
        dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
2006-03-31  Kaz Kojima  
2006-03-31  Kaz Kojima  
        * config/sh/linux-atomic.asm: New file.
        * config/sh/linux-atomic.asm: New file.
        * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
        * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
2006-03-31  DJ Delorie  
2006-03-31  DJ Delorie  
        * config/m32c/cond.md: Set condition flags properly throughout.
        * config/m32c/cond.md: Set condition flags properly throughout.
        * config/m32c/minmax.md: Likewise.
        * config/m32c/minmax.md: Likewise.
        * config/m32c/prologue.md: Likewise.
        * config/m32c/prologue.md: Likewise.
        * config/m32c/bitops.md: Likewise.
        * config/m32c/bitops.md: Likewise.
        * config/m32c/muldiv.md: Likewise.
        * config/m32c/muldiv.md: Likewise.
        * config/m32c/mov.md: Likewise.
        * config/m32c/mov.md: Likewise.
        * config/m32c/addsub.md: Likewise.
        * config/m32c/addsub.md: Likewise.
        * config/m32c/m32c.md: Likewise.
        * config/m32c/m32c.md: Likewise.
        * config/m32c/jump.md: Likewise.
        * config/m32c/jump.md: Likewise.
        * config/m32c/shift.md: Likewise.
        * config/m32c/shift.md: Likewise.
        * config/m32c/cond.md (cmp): Call m32c_output_compare to
        * config/m32c/cond.md (cmp): Call m32c_output_compare to
        conditionally output the pattern for this.
        conditionally output the pattern for this.
        * config/m32c/m32c.c (flags_needed_for_conditional): New.
        * config/m32c/m32c.c (flags_needed_for_conditional): New.
        (m32c_compare_redundant): New.
        (m32c_compare_redundant): New.
        (m32c_output_compare): New.
        (m32c_output_compare): New.
        * config/m32c/m32c-protos.h (m32c_output_compare): New.
        * config/m32c/m32c-protos.h (m32c_output_compare): New.
        * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
        * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
        dest, not src.  Allow other 4-byte modes.
        dest, not src.  Allow other 4-byte modes.
2006-03-30  Denis Chertykov  
2006-03-30  Denis Chertykov  
        * doc/md.texi: Refer to avr/constraints.md instead of
        * doc/md.texi: Refer to avr/constraints.md instead of
        avr/avr.h.
        avr/avr.h.
2006-03-30  Roger Sayle  
2006-03-30  Roger Sayle  
        * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
        * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
        signed vs. unsigned comparison failures on some hosts.
        signed vs. unsigned comparison failures on some hosts.
2006-03-31  Alan Modra  
2006-03-31  Alan Modra  
        PR target/26459
        PR target/26459
        * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
        * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
        change to FLOAT_REGS.
        change to FLOAT_REGS.
        * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
        * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
        (rs6000_override_options): Use it.
        (rs6000_override_options): Use it.
        (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
        (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
        only for -mabi=spe/no-spe and -mabi=altivec.
        only for -mabi=spe/no-spe and -mabi=altivec.
2006-03-30  Geoffrey Keating  
2006-03-30  Geoffrey Keating  
        * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
        * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
        !Zdynamiclib.
        !Zdynamiclib.
2006-03-30  Carlos O'Donell  
2006-03-30  Carlos O'Donell  
        * Makefile.in: Rename docdir to gcc_docdir.
        * Makefile.in: Rename docdir to gcc_docdir.
2006-03-30  Roger Sayle  
2006-03-30  Roger Sayle  
        PR target/17959
        PR target/17959
        * expr.c (emit_group_store): Optimize group stores into a pseudo
        * expr.c (emit_group_store): Optimize group stores into a pseudo
        register by using a paradoxical subreg to initialize the destination
        register by using a paradoxical subreg to initialize the destination
        if the first or last member of the group specifies a "low part".
        if the first or last member of the group specifies a "low part".
2006-03-30  Maxim Kuvyrkov  
2006-03-30  Maxim Kuvyrkov  
        PR target/26734
        PR target/26734
        * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
        * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
        * target.h (struct gcc_target.speculate_insn): Change type of the
        * target.h (struct gcc_target.speculate_insn): Change type of the
        second parameter to 'int'.
        second parameter to 'int'.
        * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
        * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
        the second operand of the DEPS_LIST.
        the second operand of the DEPS_LIST.
        (copy_DEPS_LIST_list): Update reference to the second operand of the
        (copy_DEPS_LIST_list): Update reference to the second operand of the
        DEPS_LIST.
        DEPS_LIST.
        * rtl.h (alloc_DEPS_LIST): Update signature.
        * rtl.h (alloc_DEPS_LIST): Update signature.
        * sched-int.h (ds_t): Change typedef to 'int'.
        * sched-int.h (ds_t): Change typedef to 'int'.
        (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
        (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2006-03-30  Maxim Kuvyrkov  
2006-03-30  Maxim Kuvyrkov  
        * haifa-sched.c (try_ready): Change condition to restore
        * haifa-sched.c (try_ready): Change condition to restore
        non-speculative pattern of the instruction.
        non-speculative pattern of the instruction.
        (process_insn_depend_be_in_spec): Code to keep probability of the
        (process_insn_depend_be_in_spec): Code to keep probability of the
        speculative dependence non-decreasing.
        speculative dependence non-decreasing.
2006-03-30  Jie Zhang  
2006-03-30  Jie Zhang  
        * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
        * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
        (single_move_for_movmem): ... this. Also change all uses.
        (single_move_for_movmem): ... this. Also change all uses.
        (bfin_expand_strmov): Renamed to...
        (bfin_expand_strmov): Renamed to...
        (bfin_expand_movmem): ... this. Also change all uses.
        (bfin_expand_movmem): ... this. Also change all uses.
        * config/bfin/bfin.md (movstrsi): Renamed to...
        * config/bfin/bfin.md (movstrsi): Renamed to...
        (movstrsi): ...this.
        (movstrsi): ...this.
2006-03-30  Paolo Bonzini  
2006-03-30  Paolo Bonzini  
        PR tree-optimization/26830
        PR tree-optimization/26830
        * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
        * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
        (copy_prop_visit_stmt): Remove write-only variable ann.
        (copy_prop_visit_stmt): Remove write-only variable ann.
        (init_copy_prop): Check variable loop depth here.  Do not simulate
        (init_copy_prop): Check variable loop depth here.  Do not simulate
        memory-tag and virtual operand PHIs except for store copy prop.
        memory-tag and virtual operand PHIs except for store copy prop.
2006-03-30  Richard Guenther  
2006-03-30  Richard Guenther  
        * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
        * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
        variants with double arguments.
        variants with double arguments.
2006-03-29  David Edelsohn  
2006-03-29  David Edelsohn  
        * genpreds.c (write_tm_constrs_h): Delete variable p.
        * genpreds.c (write_tm_constrs_h): Delete variable p.
        * genconditions.c (write_header): Add tm-constrs.h to included
        * genconditions.c (write_header): Add tm-constrs.h to included
        headers.
        headers.
        * genpeep.c (main): Add toplev.h to included headers.
        * genpeep.c (main): Add toplev.h to included headers.
        * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
        * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
        (build/genpeep.o): Add toplev.h dependency.
        (build/genpeep.o): Add toplev.h dependency.
        * config/rs6000/constraints.md: Add "W" constraint.
        * config/rs6000/constraints.md: Add "W" constraint.
2006-03-29  Roger Sayle  
2006-03-29  Roger Sayle  
        * stor-layout.c (mode_for_size_tree): Remove restiction on type
        * stor-layout.c (mode_for_size_tree): Remove restiction on type
        sizes by correctly testing whether the size fits a host integer.
        sizes by correctly testing whether the size fits a host integer.
        (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
        (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
        to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
        to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
        SImode range for the default sizetype and bitsizetype.
        SImode range for the default sizetype and bitsizetype.
2006-03-29  Roger Sayle  
2006-03-29  Roger Sayle  
        * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
        * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
        and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
        and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
        quickly if the argument is already of the correct type.
        quickly if the argument is already of the correct type.
        Call fold_build1 instead of build1.  Tidy up blank lines.
        Call fold_build1 instead of build1.  Tidy up blank lines.
2006-03-29  David Edelsohn  
2006-03-29  David Edelsohn  
        * genemit.c (main): Add tm-constrs.h to included headers.
        * genemit.c (main): Add tm-constrs.h to included headers.
        * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
        * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
        * genpeep.c (main): Add tm-constrs.h to included headers.
        * genpeep.c (main): Add tm-constrs.h to included headers.
        * genpreds.c (write_satisfies_constraint_fns): Rename to ...
        * genpreds.c (write_satisfies_constraint_fns): Rename to ...
        (write_tm_constrs_h): this and write complete file.
        (write_tm_constrs_h): this and write complete file.
        (write_tm_preds_h): Do not emit satisfies_constraint fns.
        (write_tm_preds_h): Do not emit satisfies_constraint fns.
        (write_insn_preds_c): Add tm-constrs.h to included headers.
        (write_insn_preds_c): Add tm-constrs.h to included headers.
        (gen_constrs): New variable.
        (gen_constrs): New variable.
        (parse_option): Parse "-c".
        (parse_option): Parse "-c".
        (main): Invoke write_tm_constrs_h.
        (main): Invoke write_tm_constrs_h.
        * genrecog.c (write_header): Add tm-constrs.h to included headers.
        * genrecog.c (write_header): Add tm-constrs.h to included headers.
        * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
        * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
        (object_out_file): Add tm-constrs.h dependency.
        (object_out_file): Add tm-constrs.h dependency.
        (insn-emit.o): Same.
        (insn-emit.o): Same.
        (insn-output.o): Same.
        (insn-output.o): Same.
        (insn-peep.o): Same.
        (insn-peep.o): Same.
        (insn-preds.o): Same.
        (insn-preds.o): Same.
        (insn-recog.o): Same.
        (insn-recog.o): Same.
        (tm-constsr.h): New target.
        (tm-constsr.h): New target.
        (s-constrs-h): New target.
        (s-constrs-h): New target.
        * config/rs6000/constraints.md: New file.
        * config/rs6000/constraints.md: New file.
        * config/rs6000/rs6000.c: Include tm-constrs.h.
        * config/rs6000/rs6000.c: Include tm-constrs.h.
        (num_insn_constant_wide): Convert to satisfies_constraint.
        (num_insn_constant_wide): Convert to satisfies_constraint.
        (rs6000_rtx_costs): Convert to satisfies_constraint.
        (rs6000_rtx_costs): Convert to satisfies_constraint.
        * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
        * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (EXTRA_CONSTRAINT): Delete.
        (EXTRA_CONSTRAINT): Delete.
        (EXTRA_MEMORY_CONSTRAINT): Delete.
        (EXTRA_MEMORY_CONSTRAINT): Delete.
        (EXTRA_ADDRESS_CONSTRAINT): Delete.
        (EXTRA_ADDRESS_CONSTRAINT): Delete.
        * config/rs6000/predicates.md: Convert to satisfies_constraint.
        * config/rs6000/predicates.md: Convert to satisfies_constraint.
        * config/rs6000/rs6000.md: Include constraints.md.  Convert to
        * config/rs6000/rs6000.md: Include constraints.md.  Convert to
        satisfies_constraint.
        satisfies_constraint.
        * config/i386/i386.c: Include tm-constrs.h.
        * config/i386/i386.c: Include tm-constrs.h.
2006-03-29  Sebastian Pop  
2006-03-29  Sebastian Pop  
        * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
        * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
        * tree-data-ref.c (find_data_references_in_loop,
        * tree-data-ref.c (find_data_references_in_loop,
        compute_data_dependences_for_loop): Use pointers to VEC.
        compute_data_dependences_for_loop): Use pointers to VEC.
        (analyze_all_data_dependences): Adjust calls.
        (analyze_all_data_dependences): Adjust calls.
        * tree-data-ref.h (find_data_references_in_loop,
        * tree-data-ref.h (find_data_references_in_loop,
        compute_data_dependences_for_loop): Adjust declarations.
        compute_data_dependences_for_loop): Adjust declarations.
        * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
        * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
        compute_data_dependences_for_loop.
        compute_data_dependences_for_loop.
2006-03-29  Paul Brook  
2006-03-29  Paul Brook  
        * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
        * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
        (movdf_vfp): Ditto.
        (movdf_vfp): Ditto.
2006-03-29  Sebastian Pop  
2006-03-29  Sebastian Pop  
        PR tree-optimization/26859
        PR tree-optimization/26859
        * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
        * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
        division by zero.
        division by zero.
        (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
        (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
        for the step after fold_convert.
        for the step after fold_convert.
2006-03-29  Paul Brook  
2006-03-29  Paul Brook  
        * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
        * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
        (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
        (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2006-03-29  Paul Brook  
2006-03-29  Paul Brook  
        PR middle-end/23623
        PR middle-end/23623
        * targhooks.c (default_narrow_bitfield): New fuction.
        * targhooks.c (default_narrow_bitfield): New fuction.
        * targhooks.h (default_narrow_bitfield): add prototype.
        * targhooks.h (default_narrow_bitfield): add prototype.
        * target.h (gcc_target): Add narrow_volatile_bitfield.
        * target.h (gcc_target): Add narrow_volatile_bitfield.
        * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
        * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
        * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
        * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
        * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
        * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
        * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
        * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2006-03-29  Andreas Krebbel  
2006-03-29  Andreas Krebbel  
        * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
        * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
        tmake_file.
        tmake_file.
        * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
        * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
        (NR_C_MODES): Add TDmode, DDmode and SDmode.
        (NR_C_MODES): Add TDmode, DDmode and SDmode.
        (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
        (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
        (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
        (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
        (s390_function_arg_float): Allow SDmode and DDmode values to be
        (s390_function_arg_float): Allow SDmode and DDmode values to be
        passed in floating point registers.
        passed in floating point registers.
        (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
        (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
        check with SCALAR_FLOAT_MODE_P.
        check with SCALAR_FLOAT_MODE_P.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2006-03-28  Zdenek Dvorak 
2006-03-28  Zdenek Dvorak 
        PR tree-optimization/25985
        PR tree-optimization/25985
        * tree-ssa-loop-niter.c (number_of_iterations_le,
        * tree-ssa-loop-niter.c (number_of_iterations_le,
        number_of_iterations_ne): Make comments more precise.
        number_of_iterations_ne): Make comments more precise.
        (number_of_iterations_cond): Add only_exit argument.  Use the
        (number_of_iterations_cond): Add only_exit argument.  Use the
        fact that signed variables do not overflow only when only_exit
        fact that signed variables do not overflow only when only_exit
        is true.
        is true.
        (loop_only_exit_p): New.
        (loop_only_exit_p): New.
        (number_of_iterations_exit): Pass result of loop_only_exit_p to
        (number_of_iterations_exit): Pass result of loop_only_exit_p to
        number_of_iterations_cond.
        number_of_iterations_cond.
2006-03-28  Zdenek Dvorak 
2006-03-28  Zdenek Dvorak 
        PR tree-optimization/26643
        PR tree-optimization/26643
        * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
        * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
        bit_field_refs.
        bit_field_refs.
2006-03-28  Kaz Kojima  
2006-03-28  Kaz Kojima  
        * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
        * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
        (divsi3_i4_int): Likewise.
        (divsi3_i4_int): Likewise.
2006-03-28  Roger Sayle  
2006-03-28  Roger Sayle  
        * expr.c (emit_group_store): Only create a new pseudo reg if the
        * expr.c (emit_group_store): Only create a new pseudo reg if the
        quantity it needs to hold isn't already a suitable pseudo.
        quantity it needs to hold isn't already a suitable pseudo.
2006-03-28  Jeff Law  
2006-03-28  Jeff Law  
        * timevar.def (TV_TREE_PHI_CPROP): New timevar.
        * timevar.def (TV_TREE_PHI_CPROP): New timevar.
        * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
        * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2006-03-28  Roger Sayle  
2006-03-28  Roger Sayle  
        * fold-const.c (fold_binary) : Fold (X & Y) ^ Y as
        * fold-const.c (fold_binary) : Fold (X & Y) ^ Y as
        the equivalent ~X & Y, and the symmetry related transformations.
        the equivalent ~X & Y, and the symmetry related transformations.
        (fold_binary) : Similarly, fold (X ^ Y) & Y as
        (fold_binary) : Similarly, fold (X ^ Y) & Y as
        ~X & Y, and symmetry related transforms.
        ~X & Y, and symmetry related transforms.
2006-03-28  Maxim Kuvyrkov  
2006-03-28  Maxim Kuvyrkov  
        Revert my 2006-03-27 patches.
        Revert my 2006-03-27 patches.
2006-03-28  Roger Sayle  
2006-03-28  Roger Sayle  
        * fold-const.c (fold_unary) : Fold (T1)(~(T2)X) as
        * fold-const.c (fold_unary) : Fold (T1)(~(T2)X) as
        ~(T1)X, when T1 and T2 are integer types of the same precision
        ~(T1)X, when T1 and T2 are integer types of the same precision
        and (T2)X isn't an extension.
        and (T2)X isn't an extension.
2006-03-28  Jeff Law  
2006-03-28  Jeff Law  
        PR tree-optimization/26796
        PR tree-optimization/26796
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
        need EH edge cleanups rather than purging them immediately.
        need EH edge cleanups rather than purging them immediately.
        (eliminate_degenerate_phis): Handle queued EH cleanups.
        (eliminate_degenerate_phis): Handle queued EH cleanups.
2006-03-28  Daniel Berlin  
2006-03-28  Daniel Berlin  
        * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
        * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
        from parent_var.
        from parent_var.
2006-03-27  Roger Sayle  
2006-03-27  Roger Sayle  
        PR middle-end/22524
        PR middle-end/22524
        * fold-const.c (fold_binary) : Call fold_convert to
        * fold-const.c (fold_binary) : Call fold_convert to
        cast BIT_NOT_EXPR operand to the correct type.
        cast BIT_NOT_EXPR operand to the correct type.
2006-03-27  Sebastian Pop  
2006-03-27  Sebastian Pop  
        * tree-loop-linear.c: Don't include varray.h.
        * tree-loop-linear.c: Don't include varray.h.
        (gather_interchange_stats, try_interchange_loops,
        (gather_interchange_stats, try_interchange_loops,
        linear_transform_loops): Use VEC instead of VARRAY.
        linear_transform_loops): Use VEC instead of VARRAY.
        * lambda-mat.c: Don't include varray.h.
        * lambda-mat.c: Don't include varray.h.
        * tree-chrec.c: Same.
        * tree-chrec.c: Same.
        * lambda-trans.c: Same.
        * lambda-trans.c: Same.
        * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
        * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
        VEC instead of VARRAY.
        VEC instead of VARRAY.
        * tree-vectorizer.h: Idem.
        * tree-vectorizer.h: Idem.
        * tree-data-ref.c (dump_data_references,
        * tree-data-ref.c (dump_data_references,
        dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
        dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
        initialize_data_dependence_relation, finalize_ddr_dependent,
        initialize_data_dependence_relation, finalize_ddr_dependent,
        compute_all_dependences, find_data_references_in_loop,
        compute_all_dependences, find_data_references_in_loop,
        compute_data_dependences_for_loop, analyze_all_data_dependences,
        compute_data_dependences_for_loop, analyze_all_data_dependences,
        free_dependence_relation, free_dependence_relations,
        free_dependence_relation, free_dependence_relations,
        free_data_refs): Idem.
        free_data_refs): Idem.
        * tree-data-ref.h (data_reference_p, subscript_p): New.
        * tree-data-ref.h (data_reference_p, subscript_p): New.
        (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
        (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
        VEC instead of VARRAY.
        VEC instead of VARRAY.
        (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
        (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
        (find_data_references_in_loop, compute_data_dependences_for_loop,
        (find_data_references_in_loop, compute_data_dependences_for_loop,
        dump_ddrs, dump_dist_dir_vectors, dump_data_references,
        dump_ddrs, dump_dist_dir_vectors, dump_data_references,
        dump_data_dependence_relations, free_dependence_relations,
        dump_data_dependence_relations, free_dependence_relations,
        free_data_refs): Adjust declaration.
        free_data_refs): Adjust declaration.
        (lambda_transform_legal_p): Move declaration here...
        (lambda_transform_legal_p): Move declaration here...
        * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
        * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
        vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
        vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
        vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
        vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
        vect_analyze_data_refs): Use VEC instead of VARRAY.
        vect_analyze_data_refs): Use VEC instead of VARRAY.
        * lambda.h (lambda_transform_legal_p): ...from here.
        * lambda.h (lambda_transform_legal_p): ...from here.
        * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
        * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
        * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
        * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
        * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
        * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
        tree-chrec.o): Don't depend on VARRAY_H.
        tree-chrec.o): Don't depend on VARRAY_H.
2006-03-27  Maxim Kuvyrkov  
2006-03-27  Maxim Kuvyrkov  
        * rtl.def (Copyright): Update date.
        * rtl.def (Copyright): Update date.
        (DEPS_LIST): Change type of the second operand to 'int'.
        (DEPS_LIST): Change type of the second operand to 'int'.
        * target.h (Copyright): Update date.
        * target.h (Copyright): Update date.
        (struct gcc_target.speculate_insn): Change type of the second parameter
        (struct gcc_target.speculate_insn): Change type of the second parameter
        to 'int'.
        to 'int'.
        * lists.c (Copyright): Update date.
        * lists.c (Copyright): Update date.
        (alloc_DEPS_LIST): Change signature.  Update reference to the second
        (alloc_DEPS_LIST): Change signature.  Update reference to the second
        operand of the DEPS_LIST.
        operand of the DEPS_LIST.
        (copy_DEPS_LIST_list): Update reference to the second operand of the
        (copy_DEPS_LIST_list): Update reference to the second operand of the
        DEPS_LIST.
        DEPS_LIST.
        * rtl.h (Copyright): Update date.
        * rtl.h (Copyright): Update date.
        (alloc_DEPS_LIST): Update signature.
        (alloc_DEPS_LIST): Update signature.
        * sched-int.h (Copyright): Update date.
        * sched-int.h (Copyright): Update date.
        (ds_t): Change typedef to 'int'.
        (ds_t): Change typedef to 'int'.
        (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
        (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2006-03-27  Maxim Kuvyrkov  
2006-03-27  Maxim Kuvyrkov  
        * haifa-sched.c (Copyright): Update date.
        * haifa-sched.c (Copyright): Update date.
        (try_ready): Change condition to restore non-speculative pattern
        (try_ready): Change condition to restore non-speculative pattern
        of the instruction.
        of the instruction.
        (process_insn_depend_be_in_spec): Code to keep probability of the
        (process_insn_depend_be_in_spec): Code to keep probability of the
        speculative dependence non-decreasing.
        speculative dependence non-decreasing.
2006-03-27  Bernd Schmidt  
2006-03-27  Bernd Schmidt  
        * regrename.c (replace_oldest_value_addr): Initialize a variable to
        * regrename.c (replace_oldest_value_addr): Initialize a variable to
        shut up the compiler.
        shut up the compiler.
2006-03-27  J"orn Rennecke 
2006-03-27  J"orn Rennecke 
        * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
        * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
        to use lib prefix for target.
        to use lib prefix for target.
        ($(T)libic_invalidate_array_4-200.a): Likewise.
        ($(T)libic_invalidate_array_4-200.a): Likewise.
        ($(T)libic_invalidate_array_4a.a): Likewise.
        ($(T)libic_invalidate_array_4a.a): Likewise.
2006-03-27  Andrew Stubbs 
2006-03-27  Andrew Stubbs 
            J"orn Rennecke 
            J"orn Rennecke 
        * superh.opt: New file.
        * superh.opt: New file.
        * sh.c (boardtype, osruntime): Remove.
        * sh.c (boardtype, osruntime): Remove.
        * superh.h (SUBTARGET_OPTIONS): Remove.
        * superh.h (SUBTARGET_OPTIONS): Remove.
        * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
        * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
        * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
        * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
        arguments with ^ and/or [].
        arguments with ^ and/or [].
        * config.gcc (sh-*-*): Add quoting to account for quirk of
        * config.gcc (sh-*-*): Add quoting to account for quirk of
        Solaris /bin/sh.
        Solaris /bin/sh.
        Replace == with = in enable_incomplete_targets test.
        Replace == with = in enable_incomplete_targets test.
        * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
        * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
        with MASK_LITTLE_ENDIAN.
        with MASK_LITTLE_ENDIAN.
        * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
        * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
        * config/sh/sh.opt: Added to some comments.
        * config/sh/sh.opt: Added to some comments.
        * config/sh/superh.h: Removed some chaff.
        * config/sh/superh.h: Removed some chaff.
        * config/sh/sh.opt: Add m4-[1234]00* options.
        * config/sh/sh.opt: Add m4-[1234]00* options.
        * config/sh/sh.c (sh_handle_option): Likewise.
        * config/sh/sh.c (sh_handle_option): Likewise.
        * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
        * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
        (ic_invalidate_array_4-100.o): New rule.
        (ic_invalidate_array_4-100.o): New rule.
        ($(T)libic_invalidate_array_4-100.a): Likewise.
        ($(T)libic_invalidate_array_4-100.a): Likewise.
        (ic_invalidate_array_4-200.o): Likewise.
        (ic_invalidate_array_4-200.o): Likewise.
        ($(T)libic_invalidate_array_4-200.a): Likewise.
        ($(T)libic_invalidate_array_4-200.a): Likewise.
        (ic_invalidate_array_4a.o): Likewise.
        (ic_invalidate_array_4a.o): Likewise.
        ($(T)libic_invalidate_array_4a.a): Likewise.
        ($(T)libic_invalidate_array_4a.a): Likewise.
        * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
        * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
        * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
        * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
        m4-200*, and m4a*.
        m4-200*, and m4a*.
        * config/sh/crt1.asm: Merged in profiling code.
        * config/sh/crt1.asm: Merged in profiling code.
        * config/sh/superh.h (STARTFILE_SPEC): Override.
        * config/sh/superh.h (STARTFILE_SPEC): Override.
        * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
        * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
        Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
        Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
        * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
        * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
        * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
        * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
        * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
        * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
        MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
        MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
        * sh.opt (mpretend-cmove): New option.
        * sh.opt (mpretend-cmove): New option.
        * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
        * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
        * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
        * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
        (movsicc): Add TARGET_PRETEND_CMOVE code.
        (movsicc): Add TARGET_PRETEND_CMOVE code.
2006-03-27  Andreas Krebbel  
2006-03-27  Andreas Krebbel  
        * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
        * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
        s390_class_max_nregs): New function prototypes.
        s390_class_max_nregs): New function prototypes.
        * config/s390/s390.c (REGNO_PAIR_OK): New macro.
        * config/s390/s390.c (REGNO_PAIR_OK): New macro.
        (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
        (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
        * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
        * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
        CLASS_MAX_NREGS): Macro bodies replaced by function calls.
        CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2006-03-26  Geoffrey Keating  
2006-03-26  Geoffrey Keating  
        * dwarf2out.c (add_location_or_const_value_attribute): Call
        * dwarf2out.c (add_location_or_const_value_attribute): Call
        tree_add_const_value_attribute if nothing else works.
        tree_add_const_value_attribute if nothing else works.
        (reference_to_unused): New.
        (reference_to_unused): New.
        (rtl_for_decl_init): Use reference_to_unused to decide whether
        (rtl_for_decl_init): Use reference_to_unused to decide whether
        to output an initializer.
        to output an initializer.
2006-03-27  Alan Modra  
2006-03-27  Alan Modra  
        PR target/26459
        PR target/26459
        * config/rs6000/rs6000.md (DF reg move peephole): Prevent
        * config/rs6000/rs6000.md (DF reg move peephole): Prevent
        peephole removing spe frob_di_df_2.
        peephole removing spe frob_di_df_2.
2006-03-26  Sebastian Pop  
2006-03-26  Sebastian Pop  
        * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
        * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
        (subscript_dependence_tester_1): Declared.
        (subscript_dependence_tester_1): Declared.
        (print_dir_vectors, print_dist_vectors): New.
        (print_dir_vectors, print_dist_vectors): New.
        (debug_data_dependence_relation): New.
        (debug_data_dependence_relation): New.
        (dump_data_dependence_relation): Print more details.
        (dump_data_dependence_relation): Print more details.
        (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
        (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
        (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
        (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
        (save_dist_v, save_dir_v, add_outer_distances,
        (save_dist_v, save_dir_v, add_outer_distances,
        build_classic_dist_vector_1): New.
        build_classic_dist_vector_1): New.
        (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
        (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
        Don't test for lambda_vector_lexico_pos.
        Don't test for lambda_vector_lexico_pos.
        (same_access_functions, add_multivariate_self_dist,
        (same_access_functions, add_multivariate_self_dist,
        add_other_self_distances, dir_from_dist): New.
        add_other_self_distances, dir_from_dist): New.
        (build_classic_dir_vector): Replace implementation almost identical to
        (build_classic_dir_vector): Replace implementation almost identical to
        build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
        build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
        dir_from_dist.
        dir_from_dist.
        (subscript_dependence_tester_1): New.
        (subscript_dependence_tester_1): New.
        (subscript_dependence_tester): Handle the lexicographically negative
        (subscript_dependence_tester): Handle the lexicographically negative
        distance vectors by recomputing the dependence relation.
        distance vectors by recomputing the dependence relation.
        (compute_affine_dependence): Remove parameter loop_nest_depth.
        (compute_affine_dependence): Remove parameter loop_nest_depth.
        (compute_self_dependence): Don't call compute_subscript_distance.
        (compute_self_dependence): Don't call compute_subscript_distance.
        (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
        (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
        Add a parameter for the loop_nest.
        Add a parameter for the loop_nest.
        (find_loop_nest_1, find_loop_nest): New.
        (find_loop_nest_1, find_loop_nest): New.
        (compute_data_dependences_for_loop): Compute the loop nest, and give
        (compute_data_dependences_for_loop): Compute the loop nest, and give
        up if the nest is not well formed.
        up if the nest is not well formed.
        * tree-data-ref.h (loop_p): New.
        * tree-data-ref.h (loop_p): New.
        (struct data_dependence_relation): Replace size_vect field with
        (struct data_dependence_relation): Replace size_vect field with
        loop_nest, a vec of loops.
        loop_nest, a vec of loops.
        (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
        (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
        (DDR_LOOP_NEST): New.
        (DDR_LOOP_NEST): New.
        (print_dir_vectors, print_dist_vectors,
        (print_dir_vectors, print_dist_vectors,
        debug_data_dependence_relation): Declared.
        debug_data_dependence_relation): Declared.
        (index_in_loop_nest): New.
        (index_in_loop_nest): New.
        * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
        * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
        DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
        DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
        distance.
        distance.
2006-03-25  Adam Nemet  
2006-03-25  Adam Nemet  
        * simplify-rtx.c (simplify_relational_operation): Call
        * simplify-rtx.c (simplify_relational_operation): Call
        simplify_relational_operation_1 even if mode is VOIDmode.
        simplify_relational_operation_1 even if mode is VOIDmode.
2006-03-25  Daniel Berlin  
2006-03-25  Daniel Berlin  
        PR tree-optimization/26804
        PR tree-optimization/26804
        * tree.h (DECL_CALL_CLOBBERED): New macro.
        * tree.h (DECL_CALL_CLOBBERED): New macro.
        (tree_decl_common): Add call_clobbered_flag.
        (tree_decl_common): Add call_clobbered_flag.
        * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
        * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
        (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
        (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
        (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
        (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
        (mark_non_addressable): Ditto.
        (mark_non_addressable): Ditto.
        * tree-ssa.c (verify_call_clobbered): New function.
        * tree-ssa.c (verify_call_clobbered): New function.
        (verify_alias_info): Use it.
        (verify_alias_info): Use it.
        * tree-pass.h (pass_reset_cc_flags): New prototype.
        * tree-pass.h (pass_reset_cc_flags): New prototype.
        * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
        * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
        (reset_cc_flags): New function.
        (reset_cc_flags): New function.
        * passes.c (init_optimization_passes): Call reset_cc_flags after
        * passes.c (init_optimization_passes): Call reset_cc_flags after
        initializing referenced_vars.
        initializing referenced_vars.
2006-03-25  Uros Bizjak  
2006-03-25  Uros Bizjak  
            Roger Sayle  
            Roger Sayle  
        PR middle-end/26717
        PR middle-end/26717
        * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
        * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
        to 1.0 for non-real operands. Implement A / A optimization for
        to 1.0 for non-real operands. Implement A / A optimization for
        complex operands.
        complex operands.
2006-03-25  H.J. Lu  
2006-03-25  H.J. Lu  
        * config/i386/i386.c (size_cost): Correct the comment for
        * config/i386/i386.c (size_cost): Correct the comment for
        cost of storing fp registers.
        cost of storing fp registers.
        (i386_cost): Likewise.
        (i386_cost): Likewise.
        (i486_cost): Likewise.
        (i486_cost): Likewise.
        (pentium_cost): Likewise.
        (pentium_cost): Likewise.
        (pentiumpro_cost): Likewise.
        (pentiumpro_cost): Likewise.
        (k6_cost): Likewise.
        (k6_cost): Likewise.
        (athlon_cost): Likewise.
        (athlon_cost): Likewise.
        (k8_cost): Likewise.
        (k8_cost): Likewise.
        (pentium4_cost): Likewise.
        (pentium4_cost): Likewise.
        (nocona_cost): Likewise.
        (nocona_cost): Likewise.
        (generic64_cost): Likewise.
        (generic64_cost): Likewise.
        (generic32_cost): Likewise.
        (generic32_cost): Likewise.
2006-03-24  Denis Chertykov  
2006-03-24  Denis Chertykov  
        * config/avr/avr-protos.h (extra_constraint): Delete.
        * config/avr/avr-protos.h (extra_constraint): Delete.
        (extra_constraint_Q): New declaration.
        (extra_constraint_Q): New declaration.
        * config/avr/constraints.md: New file.
        * config/avr/constraints.md: New file.
        * config/avr/avr.md: Include it.
        * config/avr/avr.md: Include it.
        (REG_X, REG_Y, REG_Z, REG_W): New constants.
        (REG_X, REG_Y, REG_Z, REG_W): New constants.
        (TMP_REGNO, ZERO_REGNO): Likewise.
        (TMP_REGNO, ZERO_REGNO): Likewise.
        (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
        (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
        * config/avr/avr.c (avr_reg_class_from_letter): Delete.
        * config/avr/avr.c (avr_reg_class_from_letter): Delete.
        (extra_constraint): Delete.
        (extra_constraint): Delete.
        (extra_constraint_Q): Test for memory constraint 'Q'.
        (extra_constraint_Q): Test for memory constraint 'Q'.
        * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
        * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
        (REG_CLASS_FROM_LETTER): Delete.
        (REG_CLASS_FROM_LETTER): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (EXTRA_CONSTRAINT): Delete.
        (EXTRA_CONSTRAINT): Delete.
        (TMP_REGNO): Delete.
        (TMP_REGNO): Delete.
        (ZERO_REGNO): Delete.
        (ZERO_REGNO): Delete.
2006-03-24  Jeff Law  
2006-03-24  Jeff Law  
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
        directly.  Call mark_new_vars_to_rename slightly earlier.
        directly.  Call mark_new_vars_to_rename slightly earlier.
2006-03-24  Geoffrey Keating  
2006-03-24  Geoffrey Keating  
        * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
        * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
        (is_cxx): Likewise.
        (is_cxx): Likewise.
        (gen_compile_unit_die): Use new language types for Objective-C and
        (gen_compile_unit_die): Use new language types for Objective-C and
        Objective-C++.
        Objective-C++.
        (dwarf2out_decl): Use is_cxx rather than testing explicitly against
        (dwarf2out_decl): Use is_cxx rather than testing explicitly against
        DW_LANG_C_plus_plus.
        DW_LANG_C_plus_plus.
        PR 26793
        PR 26793
        * config/t-darwin (crt3.o): Work around bug 26840.
        * config/t-darwin (crt3.o): Work around bug 26840.
        * config/darwin-crt3.c: Rewrite.
        * config/darwin-crt3.c: Rewrite.
        * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
        * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2006-03-24  Carlos O'Donell  
2006-03-24  Carlos O'Donell  
        * doc/invoke.texi: Document -femit-class-debug-always
        * doc/invoke.texi: Document -femit-class-debug-always
        * common.opt: Add -femit-class-debug-always.
        * common.opt: Add -femit-class-debug-always.
2006-03-24  Andreas Krebbel  
2006-03-24  Andreas Krebbel  
        * config/s390/s390.c (s390_decompose_address): Allow SImode for
        * config/s390/s390.c (s390_decompose_address): Allow SImode for
        index and base register.
        index and base register.
        (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
        (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
        print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
        print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
        with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
        with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
        REGNO_OK_FOR_INDEX_P.
        REGNO_OK_FOR_INDEX_P.
        * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
        * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
        ADDR_REGNO_P.
        ADDR_REGNO_P.
        (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
        (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
        REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
        REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
        REG_OK_FOR_BASE_P): Definitions removed.
        REG_OK_FOR_BASE_P): Definitions removed.
2006-03-24  Jakub Jelinek  
2006-03-24  Jakub Jelinek  
        PR middle-end/26611
        PR middle-end/26611
        * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
        * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
        non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
        non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
        set yet or weren't marked as local yet.
        set yet or weren't marked as local yet.
2006-03-24  Bernd Schmidt  
2006-03-24  Bernd Schmidt  
        * regrename.c (scan_rtx_address): Initialize a variable to shut up
        * regrename.c (scan_rtx_address): Initialize a variable to shut up
        the compiler.
        the compiler.
2006-03-24  Eric Botcazou  
2006-03-24  Eric Botcazou  
        * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
        * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
        (rs6000_legitimate_small_data_p): Delete.
        (rs6000_legitimate_small_data_p): Delete.
        * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
        * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
        (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
        (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
        and make static.  Add forward declaration.  Update uses.
        and make static.  Add forward declaration.  Update uses.
        (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
        (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
        of offsettable_memref_p.
        of offsettable_memref_p.
        * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
        * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
        Use rs6000_offsettable_memref_p instead of a less accurate predicate.
        Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2006-03-24  Jeff Law  
2006-03-24  Jeff Law  
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
        * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
        around bug in immediate-use iterator.
        around bug in immediate-use iterator.
2006-03-24  Alan Modra  
2006-03-24  Alan Modra  
        PR target/26607
        PR target/26607
        * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
        * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
        or __LITTLE_ENDIAN__.
        or __LITTLE_ENDIAN__.
2006-03-23  J"orn Rennecke 
2006-03-23  J"orn Rennecke 
        * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
        * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
        * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
        * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
        * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
        * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
        * config/sh/sh.opt (mdiv=): Amend description.
        * config/sh/sh.opt (mdiv=): Amend description.
        * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
        * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
        (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
        (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
        (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
        (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
        SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
        SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
        (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
        (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
        Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
        Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
        * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
        * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
        (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
        (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
        TARGET_DIVIDE_CALL_FP.
        TARGET_DIVIDE_CALL_FP.
2006-03-23  Maxim Kuvyrkov  
2006-03-23  Maxim Kuvyrkov  
        * haifa-sched.c (choose_ready): Fix type of the local variable.
        * haifa-sched.c (choose_ready): Fix type of the local variable.
        Move local variables.  Add comment.
        Move local variables.  Add comment.
        (check_reg_live): Change signature.  Make callable from debugger.
        (check_reg_live): Change signature.  Make callable from debugger.
        * sched-int.h (check_reg_live): Update signature.
        * sched-int.h (check_reg_live): Update signature.
        * sched-ebb.c (check_reg_live): Update parameters.
        * sched-ebb.c (check_reg_live): Update parameters.
        * sched-rgn.c (check_reg_live): Ditto.
        * sched-rgn.c (check_reg_live): Ditto.
        (region_head_or_leaf_p): Check pointer before dereferencing.
        (region_head_or_leaf_p): Check pointer before dereferencing.
        * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
        * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
        before reload on optimization levels below 1.
        before reload on optimization levels below 1.
2006-03-23  Richard Henderson  
2006-03-23  Richard Henderson  
        * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
        * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
        tls symbols.
        tls symbols.
        PR target/26347
        PR target/26347
        * config/alpha/predicates.md (local_symbolic_operand): Reject
        * config/alpha/predicates.md (local_symbolic_operand): Reject
        weak symbols.
        weak symbols.
2006-03-23  Andrew Pinski  
2006-03-23  Andrew Pinski  
        PR tree-opt/26795
        PR tree-opt/26795
        * tree-ssa-pre.c (create_value_expr_from): Don't reject
        * tree-ssa-pre.c (create_value_expr_from): Don't reject
        expressions which have overflowed constants.
        expressions which have overflowed constants.
2006-03-23  Zdenek Dvorak 
2006-03-23  Zdenek Dvorak 
        * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
        * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
2006-03-23  Zdenek Dvorak 
2006-03-23  Zdenek Dvorak 
        * cfgloopmanip.c (create_loop_notes): Removed.
        * cfgloopmanip.c (create_loop_notes): Removed.
        * final.c (final_scan_insn): Do not handle loop notes.
        * final.c (final_scan_insn): Do not handle loop notes.
        * jump.c (squeeze_notes): Ditto.
        * jump.c (squeeze_notes): Ditto.
        * cfglayout.c (skip_insns_after_block,
        * cfglayout.c (skip_insns_after_block,
        duplicate_insn_chain): Ditto.
        duplicate_insn_chain): Ditto.
        * cfgcleanup.c (rest_of_handle_jump2): Do not call
        * cfgcleanup.c (rest_of_handle_jump2): Do not call
        create_loop_notes.
        create_loop_notes.
        * cfgloop.h (create_loop_notes): Declaration removed.
        * cfgloop.h (create_loop_notes): Declaration removed.
2006-03-23  Richard Sandiford  
2006-03-23  Richard Sandiford  
        * varasm.c (output_constant_pool): Restore fnname and fndecl
        * varasm.c (output_constant_pool): Restore fnname and fndecl
        arguments.
        arguments.
        (assemble_start_function): Adjust call accordingly.
        (assemble_start_function): Adjust call accordingly.
        (assemble_end_function): Likewise.
        (assemble_end_function): Likewise.
2006-03-22  Volker Reichelt  
2006-03-22  Volker Reichelt  
        PR mudflap/26789
        PR mudflap/26789
        * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
        * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
        PR mudflap/26790
        PR mudflap/26790
        * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
        * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2006-03-22  Volker Reichelt  
2006-03-22  Volker Reichelt  
        PR driver/22600
        PR driver/22600
        * system.h (ICE_EXIT_CODE): New macro.
        * system.h (ICE_EXIT_CODE): New macro.
        * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
        * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
        (diagnostic_action_after_output): Likewise.
        (diagnostic_action_after_output): Likewise.
        * gcc.c (fatal_ice): New function.
        * gcc.c (fatal_ice): New function.
        (execute): Use it instead of fatal.
        (execute): Use it instead of fatal.
        (fancy_abort): Likewise.
        (fancy_abort): Likewise.
        * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
        * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2006-03-22  Jeff Law  
2006-03-22  Jeff Law  
        * loop-unroll.c (analyze_iv_to_split_insn): Handle
        * loop-unroll.c (analyze_iv_to_split_insn): Handle
        iv_analyze_result returning false.
        iv_analyze_result returning false.
2006-03-22  Jie Zhang  
2006-03-22  Jie Zhang  
        * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
        * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2006-03-22  Richard Henderson  
2006-03-22  Richard Henderson  
        PR middle-end/26084
        PR middle-end/26084
        * except.c (duplicate_eh_regions_0): New.
        * except.c (duplicate_eh_regions_0): New.
        (duplicate_eh_region_1): Duplicate the children of the node as
        (duplicate_eh_region_1): Duplicate the children of the node as
        well as the node itself.  Link them up properly.
        well as the node itself.  Link them up properly.
        (duplicate_eh_region_2): Merge into ...
        (duplicate_eh_region_2): Merge into ...
        (duplicate_eh_regions): ... here.  Take copy_region argument, and
        (duplicate_eh_regions): ... here.  Take copy_region argument, and
        copy only a sub-tree if asked.  Simplify copying and fixup.
        copy only a sub-tree if asked.  Simplify copying and fixup.
        (eh_region_outer_p): New.
        (eh_region_outer_p): New.
        * except.h (duplicate_eh_regions): Update decl.
        * except.h (duplicate_eh_regions): Update decl.
        (eh_region_outer_p): Declare.
        (eh_region_outer_p): Declare.
        * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
        * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
        (lower_omp_master): Likewise.
        (lower_omp_master): Likewise.
        (lower_omp_ordered): Likewise.
        (lower_omp_ordered): Likewise.
        * tree-cfg.c (struct move_stmt_d): Add new_label_map.
        * tree-cfg.c (struct move_stmt_d): Add new_label_map.
        (move_stmt_r): Use it to remap labels.  Handle recursion vs
        (move_stmt_r): Use it to remap labels.  Handle recursion vs
        remap_decls_p properly.
        remap_decls_p properly.
        (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
        (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
        (find_outermost_region_in_block): New.
        (find_outermost_region_in_block): New.
        (new_label_mapper): New.
        (new_label_mapper): New.
        (move_sese_region_to_fn): Copy eh information to the new function
        (move_sese_region_to_fn): Copy eh information to the new function
        properly.
        properly.
        * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
        * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
        argument.
        argument.
        * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
        * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
        number.
        number.
2006-03-22  Richard Sandiford  
2006-03-22  Richard Sandiford  
        * doc/md.texi (-mshared): Mention that -mshared code can be linked
        * doc/md.texi (-mshared): Mention that -mshared code can be linked
        into shared libraries.
        into shared libraries.
2006-03-22  Richard Sandiford  
2006-03-22  Richard Sandiford  
        * doc/md.texi: Refer to i386/constraints.md instead of
        * doc/md.texi: Refer to i386/constraints.md instead of
        i386/predicates.md.
        i386/predicates.md.
        * config/i386/constraints.md: New file, extracted from...
        * config/i386/constraints.md: New file, extracted from...
        * config/i386/predicates.md: ...here.
        * config/i386/predicates.md: ...here.
        * config/i386/i386.md: Include constraints.md.
        * config/i386/i386.md: Include constraints.md.
2006-03-21  Jason Merrill  
2006-03-21  Jason Merrill  
        * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
        * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
        PR middle-end/20297
        PR middle-end/20297
        * expr.c (init_block_move_fn): Force default visibility.
        * expr.c (init_block_move_fn): Force default visibility.
        (init_block_clear_fn): Likewise.
        (init_block_clear_fn): Likewise.
        * builtins.c (expand_builtin_fork_or_exec): Likewise.
        * builtins.c (expand_builtin_fork_or_exec): Likewise.
        * targhooks.c (default_external_stack_protect_fail): Likewise.
        * targhooks.c (default_external_stack_protect_fail): Likewise.
2006-03-21  Richard Sandiford  
2006-03-21  Richard Sandiford  
        * config/mips/predicates.md (const_call_insn_operand): Allow direct
        * config/mips/predicates.md (const_call_insn_operand): Allow direct
        calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
        calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
        * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
        * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
        Use TARGET_OLDABI instead of !TARGET_NEWABI.
        Use TARGET_OLDABI instead of !TARGET_NEWABI.
        (loadgp): Use mips_current_loadgp_style.
        (loadgp): Use mips_current_loadgp_style.
        (loadgp_noshared): New pattern.
        (loadgp_noshared): New pattern.
        (sibcall_internal): Use MIPS_CALL.
        (sibcall_internal): Use MIPS_CALL.
        (sibcall_value_internal): Likewise.
        (sibcall_value_internal): Likewise.
        (sibcall_value_multiple_internal): Likewise.
        (sibcall_value_multiple_internal): Likewise.
        (call_internal): Likewise.
        (call_internal): Likewise.
        (call_value_internal): Likewise.
        (call_value_internal): Likewise.
        (call_value_multiple_internal): Likewise.
        (call_value_multiple_internal): Likewise.
        (call_split): Use MIPS_CALL and add an 'S' constraint.
        (call_split): Use MIPS_CALL and add an 'S' constraint.
        (call_value_split): Likewise.
        (call_value_split): Likewise.
        (call_value_multiple_split): Likewise.
        (call_value_multiple_split): Likewise.
        * config/mips/mips.opt (-mabicalls): Tweak docstring.
        * config/mips/mips.opt (-mabicalls): Tweak docstring.
        (-mshared): New option.
        (-mshared): New option.
        * config/mips/mips-protos.h (mips_loadgp_style): New enum.
        * config/mips/mips-protos.h (mips_loadgp_style): New enum.
        (mips_current_loadgp_style): Declare.
        (mips_current_loadgp_style): Declare.
        * config/mips/mips.c (mips_classify_symbol): Avoid using
        * config/mips/mips.c (mips_classify_symbol): Avoid using
        SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
        SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
        rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
        rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
        TARGET_ABSOLUTE_ABICALLS.
        TARGET_ABSOLUTE_ABICALLS.
        (override_options): Adjust comments.  Improve the warning that is
        (override_options): Adjust comments.  Improve the warning that is
        issued when -mabicalls and -G are used together.
        issued when -mabicalls and -G are used together.
        (mips_file_start): Remove comment.
        (mips_file_start): Remove comment.
        (mips_current_loadgp_style): New function.
        (mips_current_loadgp_style): New function.
        (mips_gnu_local_gp): New variable.
        (mips_gnu_local_gp): New variable.
        (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
        (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
        LOADGP_ABSOLUTE.
        LOADGP_ABSOLUTE.
        (mips_output_function_prologue): Use mips_current_laodgp_style.
        (mips_output_function_prologue): Use mips_current_laodgp_style.
        (mips_expand_prologue): Call mips_emit_loadgp before emitting
        (mips_expand_prologue): Call mips_emit_loadgp before emitting
        the cprestore instruction.
        the cprestore instruction.
        (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
        (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
        live for TARGET_ABSOLUTE_ABICALLS.
        live for TARGET_ABSOLUTE_ABICALLS.
        * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
        * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
        (ASM_SPEC): Pass down -mshared and -mno-shared.
        (ASM_SPEC): Pass down -mshared and -mno-shared.
        (MIPS_CALL): New macro.
        (MIPS_CALL): New macro.
        * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
        * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
        definition.
        definition.
        * doc/invoke.texi (-mabicalls): Update documentation.
        * doc/invoke.texi (-mabicalls): Update documentation.
        (-mshared): Document.
        (-mshared): Document.
2006-03-21  Steve Ellcey  
2006-03-21  Steve Ellcey  
        * config/ia64/unwind-hpux.c: New file.
        * config/ia64/unwind-hpux.c: New file.
        * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
        * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2006-03-21  Steve Ellcey  
2006-03-21  Steve Ellcey  
        PR libgomp/26384
        PR libgomp/26384
        * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
        * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2006-03-21  Jeff Law  
2006-03-21  Jeff Law  
        * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
        * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
        type conversions of a VR_VARYING source to a wider type.
        type conversions of a VR_VARYING source to a wider type.
2006-03-21  Eric Botcazou  
2006-03-21  Eric Botcazou  
        * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
        * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
        tm_file on Solaris 10 and later.
        tm_file on Solaris 10 and later.
        (sparc64-*-solaris2*): Likewise.
        (sparc64-*-solaris2*): Likewise.
        (sparc-*-solaris2*): Likewise.
        (sparc-*-solaris2*): Likewise.
        * config/sol26.h: Rename to config/sol2-6.h.
        * config/sol26.h: Rename to config/sol2-6.h.
        * config/sol2-10.h: New file.
        * config/sol2-10.h: New file.
2006-03-21  Andrew Pinski  
2006-03-21  Andrew Pinski  
        PR tree-opt/26781
        PR tree-opt/26781
        * tree-ssa-pre.c (create_component_ref_by_pieces):
        * tree-ssa-pre.c (create_component_ref_by_pieces):
        Handle STRING_CST.
        Handle STRING_CST.
2006-03-21  Jakub Jelinek  
2006-03-21  Jakub Jelinek  
        PR c++/26690
        PR c++/26690
        * tree.c (get_callee_fndecl): If CALL is error_mark_node,
        * tree.c (get_callee_fndecl): If CALL is error_mark_node,
        return it immediately.
        return it immediately.
2006-03-21  Michael Matz  
2006-03-21  Michael Matz  
        * genautomata.c (, num_out_arcs, presence_signature):
        * genautomata.c (, num_out_arcs, presence_signature):
        New members.
        New members.
        (remove_arc, add_arc): Update num_out_arcs member.
        (remove_arc, add_arc): Update num_out_arcs member.
        (set_out_arc_insns_equiv_num): Returns nothing instead of number
        (set_out_arc_insns_equiv_num): Returns nothing instead of number
        of out arcs.
        of out arcs.
        (cache_presence): New function.
        (cache_presence): New function.
        (compare_states_for_equiv): New function.
        (compare_states_for_equiv): New function.
        (state_is_differed): Don't take number of outargs, adjust callers.
        (state_is_differed): Don't take number of outargs, adjust callers.
        Use new invariant for speeding up.
        Use new invariant for speeding up.
        (init_equiv_class): Create initial classes based on sorted
        (init_equiv_class): Create initial classes based on sorted
        input.
        input.
        (partition_equiv_class): Don't track out_arcs_num.
        (partition_equiv_class): Don't track out_arcs_num.
        (evaluate_equiv_classes): Call cache_presence on all states and
        (evaluate_equiv_classes): Call cache_presence on all states and
        sort them.
        sort them.
2006-03-21  Bernd Schmidt  
2006-03-21  Bernd Schmidt  
        * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
        * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
        * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
        * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
        (bfin_valid_reg_p): Test for pseudos explicitly and use only
        (bfin_valid_reg_p): Test for pseudos explicitly and use only
        REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
        REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
        callers changed.
        callers changed.
        * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
        * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
        (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
        (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
        (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
        (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
        (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
        (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
        REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
        REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
        macros.
        macros.
        (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
        (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
        REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
        REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
        (REGNO_REG_CLASS): ARGP is in PREGS.
        (REGNO_REG_CLASS): ARGP is in PREGS.
        * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
        * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
        IREGS.
        IREGS.
        (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
        (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
        to deal with those addresses.
        to deal with those addresses.
        * addresses.h: New file.
        * addresses.h: New file.
        * caller-save.c: Include "addresses.h".
        * caller-save.c: Include "addresses.h".
        (init_caller_save): Use new base_reg_class function.
        (init_caller_save): Use new base_reg_class function.
        * rtl-factoring.c: Include "addresses.h".
        * rtl-factoring.c: Include "addresses.h".
        (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
        (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
        * recog.c: Include "addresses.h".
        * recog.c: Include "addresses.h".
        (preprocess_constraints): Use new base_reg_class function.
        (preprocess_constraints): Use new base_reg_class function.
        * regrename.c: Include "addresses.h".
        * regrename.c: Include "addresses.h".
        (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
        (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
        functions.  Keep track of a new var INDEX_CODE to compute valid
        functions.  Keep track of a new var INDEX_CODE to compute valid
        classes.
        classes.
        (replace_oldest_value_addr): Likewise.
        (replace_oldest_value_addr): Likewise.
        (replace_oldest_value_mem): Use base_reg_class.
        (replace_oldest_value_mem): Use base_reg_class.
        * reload.c: Include "addresses.h".
        * reload.c: Include "addresses.h".
        (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
        (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
        (find_reloads): Use new base_reg_class function.
        (find_reloads): Use new base_reg_class function.
        (find_reloads_address): Likewise; also use regno_ok_for_base_p.
        (find_reloads_address): Likewise; also use regno_ok_for_base_p.
        (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
        (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
        all callers and prototype changed.
        all callers and prototype changed.
        * reload1.c: Include "addresses.h".
        * reload1.c: Include "addresses.h".
        (maybe_fix_stack_asms): Use base_reg_class.
        (maybe_fix_stack_asms): Use base_reg_class.
        * regclass.c: Include "addresses.h".
        * regclass.c: Include "addresses.h".
        (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
        (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
        (init_reg_autoinc): Use new base_reg_class function.
        (init_reg_autoinc): Use new base_reg_class function.
        (record_reg_classes): Likewise.
        (record_reg_classes): Likewise.
        (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
        (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
        OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
        OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
        Use new args to compute necessary class.
        Use new args to compute necessary class.
        * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
        * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
        regrename.o, rtl-factoring.o): Update dependencies.
        regrename.o, rtl-factoring.o): Update dependencies.
        * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
        * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
        (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
        (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
        (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
        (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
        REG_OK_FOR_INDEX_P): Delete documentation.
        REG_OK_FOR_INDEX_P): Delete documentation.
2006-03-21  Alexey Starovoytov  
2006-03-21  Alexey Starovoytov  
        * config.gcc (sparc-*-solaris2*): Change the default CPU setting
        * config.gcc (sparc-*-solaris2*): Change the default CPU setting
        from V7 to V9 for Solaris 7 and above.
        from V7 to V9 for Solaris 7 and above.
2006-03-21  Toon Moene  
2006-03-21  Toon Moene  
        * doc/invoke.texi: Document new flag -fargument-noalias-anything.
        * doc/invoke.texi: Document new flag -fargument-noalias-anything.
        * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
        * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
        argument pointers may not alias any other storage.
        argument pointers may not alias any other storage.
        * common.opt: Define option -fargument-noalias-anything.
        * common.opt: Define option -fargument-noalias-anything.
        * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
        * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
        alias semantics is specified by flag_argument_noalias > 2.
        alias semantics is specified by flag_argument_noalias > 2.
2006-03-20  Jeff Law  
2006-03-20  Jeff Law  
        * tree-pass.h (pass_phi_only_copy_prop): Delete.
        * tree-pass.h (pass_phi_only_copy_prop): Delete.
        (pass_phi_only_cprop): Declare.
        (pass_phi_only_cprop): Declare.
        * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
        * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
        with phi_only_cprop
        with phi_only_cprop
        * tree-ssa-dom.c (degenerate_phi_result): New function.
        * tree-ssa-dom.c (degenerate_phi_result): New function.
        (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
        (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
        (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
        (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
        (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
        (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
        (eliminate_degenerate_phis): Likewise.
        (eliminate_degenerate_phis): Likewise.
        (pass_phi_only_cprop): New pass descriptor.
        (pass_phi_only_cprop): New pass descriptor.
        * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
        * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
        support code.  Callers updated.
        support code.  Callers updated.
        (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
        (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
        (store_copy_prop): Likewise.
        (store_copy_prop): Likewise.
        (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
        (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2006-03-20  Jason Merrill  
2006-03-20  Jason Merrill  
        PR c++/21764
        PR c++/21764
        * c-pragma.c (visstack): Move out of handle_pragma_visibility.
        * c-pragma.c (visstack): Move out of handle_pragma_visibility.
        (push_visibility, pop_visibility): Likewise.
        (push_visibility, pop_visibility): Likewise.
        * c-pragma.h: Declare them.
        * c-pragma.h: Declare them.
2006-03-20  Kaz Kojima  
2006-03-20  Kaz Kojima  
        * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
        * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
        * config/sh/sh.c (find_regmode_weight): Change the type of the first
        * config/sh/sh.c (find_regmode_weight): Change the type of the first
        parameter and use get_ebb_head_tail.
        parameter and use get_ebb_head_tail.
        (sh_md_init_global): Adjust uses of find_regmode_weight.
        (sh_md_init_global): Adjust uses of find_regmode_weight.
2006-03-20  Steven Bosscher  
2006-03-20  Steven Bosscher  
        * function.h (struct function) :
        * function.h (struct function) :
        Rename to x_stack_check_probe_note.
        Rename to x_stack_check_probe_note.
        (tail_recursion_reentry): Rename to stack_check_probe_note.
        (tail_recursion_reentry): Rename to stack_check_probe_note.
        * function.c: Replace tail_recursion_reentry with
        * function.c: Replace tail_recursion_reentry with
        stack_check_probe_note everywhere.
        stack_check_probe_note everywhere.
        (expand_function_start): Only emit a note for
        (expand_function_start): Only emit a note for
        stack_check_probe_note with -fstack-protect.
        stack_check_probe_note with -fstack-protect.
        * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
        * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
        * emit-rtl.c (remove_unnecessary_notes): Remove.
        * emit-rtl.c (remove_unnecessary_notes): Remove.
        (pass_remove_unnecessary_notes): Remove.
        (pass_remove_unnecessary_notes): Remove.
        * rtl.h (remove_unnecessary_notes): Remove prototype.
        * rtl.h (remove_unnecessary_notes): Remove prototype.
        * final.c (final_start_function): Don't call remove_unnecessary_notes.
        * final.c (final_start_function): Don't call remove_unnecessary_notes.
        * tree-pass.h (pass_remove_unnecessary_notes): Remove.
        * tree-pass.h (pass_remove_unnecessary_notes): Remove.
        * passes.c (pass_remove_unnecessary_notes): Don't run it.
        * passes.c (pass_remove_unnecessary_notes): Don't run it.
2006-03-20  Andrew Pinski  
2006-03-20  Andrew Pinski  
        PR tree-opt/26629
        PR tree-opt/26629
        * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
        * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
        (valid_in_set): Handle ARRAY_REF.
        (valid_in_set): Handle ARRAY_REF.
        Change "if min_variant or VH" to asserts.
        Change "if min_variant or VH" to asserts.
        (create_component_ref_by_pieces): Handle ARRAY_REF.
        (create_component_ref_by_pieces): Handle ARRAY_REF.
        (create_expression_by_pieces): Likewise.
        (create_expression_by_pieces): Likewise.
        (can_PRE_operation): ARRAY_REFs can now be PRE'd.
        (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2006-03-20  David Edelsohn  
2006-03-20  David Edelsohn  
        * genpreds.c (write_insn_extra_address_constraint): Argument `c'
        * genpreds.c (write_insn_extra_address_constraint): Argument `c'
        is operand of switch, not str[0].
        is operand of switch, not str[0].
2006-03-20  Alan Modra  
2006-03-20  Alan Modra  
        * config/rs6000/rs6000.c (rs6000_handle_option): Use
        * config/rs6000/rs6000.c (rs6000_handle_option): Use
        TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
        TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2006-03-19  David Edelsohn  
2006-03-19  David Edelsohn  
        * genpreds.c (write_tm_preds_h): Add semicolon and newline at
        * genpreds.c (write_tm_preds_h): Add semicolon and newline at
        end of insn_extra_address_constraint declaration.
        end of insn_extra_address_constraint declaration.
2006-03-19  David Edelsohn  
2006-03-19  David Edelsohn  
        * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
        * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
        (no-sum-in-toc): Same.
        (no-sum-in-toc): Same.
        * config/rs6000/rs6000.c (rs6000_handle_option): Use new
        * config/rs6000/rs6000.c (rs6000_handle_option): Use new
        variables.
        variables.
        * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
        * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
        NO_FP_IN_TOC for -fPIC instead of mask.
        NO_FP_IN_TOC for -fPIC instead of mask.
        * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
        * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
        (BOOT_LDFLAGS): Delete.
        (BOOT_LDFLAGS): Delete.
        (LDFLAGS): Delete.
        (LDFLAGS): Delete.
        * config/rs6000/t-aix52: Same.
        * config/rs6000/t-aix52: Same.
        * config/rs6000/rs6000.md (store_multiple_power): Delete.
        * config/rs6000/rs6000.md (store_multiple_power): Delete.
        (stmsi[345678]_power): New.
        (stmsi[345678]_power): New.
2006-03-17  Steve Ellcey  
2006-03-17  Steve Ellcey  
        * config/ia64/ia64.opt: Add empty line to end of file.
        * config/ia64/ia64.opt: Add empty line to end of file.
2006-03-17  Richard Guenther  
2006-03-17  Richard Guenther  
        PR middle-end/26721
        PR middle-end/26721
        * builtins.c (get_pointer_alignment): For component style references
        * builtins.c (get_pointer_alignment): For component style references
        adjust alignment to the component type alignment.  Make sure
        adjust alignment to the component type alignment.  Make sure
        to adjust alignment for component access of constants.
        to adjust alignment for component access of constants.
2006-03-17  David Edelsohn  
2006-03-17  David Edelsohn  
        * config/rs6000/rs6000.md (strlensi): Emit barrier after
        * config/rs6000/rs6000.md (strlensi): Emit barrier after
        unconditional jump.
        unconditional jump.
2006-03-17  Paul Brook  
2006-03-17  Paul Brook  
        * doc/install.texi: Docuemnt --with-mode.
        * doc/install.texi: Docuemnt --with-mode.
        * config.gcc: Add --with-mode for arm*-*-*.
        * config.gcc: Add --with-mode for arm*-*-*.
        * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
        * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2006-03-17  J"orn Rennecke 
2006-03-17  J"orn Rennecke 
        * sh.c (max_labelno_before_reorg): New variable.
        * sh.c (max_labelno_before_reorg): New variable.
        (sh_reorg): Initialize it.
        (sh_reorg): Initialize it.
        (find_barrier): Check max_labelno_before_reorg before using
        (find_barrier): Check max_labelno_before_reorg before using
        label_to_alignment.  Take length of explicit alignment insns
        label_to_alignment.  Take length of explicit alignment insns
        into account.  When seeing a UNSPECV_CONST_END, return it.
        into account.  When seeing a UNSPECV_CONST_END, return it.
        * sh.c (fixup_mova): Set mode of affected label to QImode.
        * sh.c (fixup_mova): Set mode of affected label to QImode.
        (untangle_mova): New function.
        (untangle_mova): New function.
        (find_barrier): Use it.  Check mode of label before decrementing
        (find_barrier): Use it.  Check mode of label before decrementing
        num_mova.
        num_mova.
        (sh_reorg): Likewise.
        (sh_reorg): Likewise.
        Set mode of all insns back to VOIDmode.
        Set mode of all insns back to VOIDmode.
        * sh.c (MOVA_LABELREF): New macro.
        * sh.c (MOVA_LABELREF): New macro.
        (mova_p, fixup_mova, sh_reorg): Use it.
        (mova_p, fixup_mova, sh_reorg): Use it.
        (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
        (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
        ADDR_DIFF_VEC matches mova.
        ADDR_DIFF_VEC matches mova.
2006-03-17  Steven Bosscher  
2006-03-17  Steven Bosscher  
        * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
        * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
        with ATTRIBUTE_UNUSED.
        with ATTRIBUTE_UNUSED.
2006-03-17  Alexandre Oliva  
2006-03-17  Alexandre Oliva  
        * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
        * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
        pointer, instead of assuming it is possible to derive the
        pointer, instead of assuming it is possible to derive the
        correct args size from a call insn.
        correct args size from a call insn.
2006-03-16  Jan-Benedict Glaw  
2006-03-16  Jan-Benedict Glaw  
        * rtl.h (CONST_INT_P): Define.
        * rtl.h (CONST_INT_P): Define.
        * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
        * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
        instead of GET_CODE(x) == CONST_INT.
        instead of GET_CODE(x) == CONST_INT.
        (vax_rtx_costs): Likewise.
        (vax_rtx_costs): Likewise.
        (vax_output_int_move): Likewise.
        (vax_output_int_move): Likewise.
        (vax_output_int_add): Likewise.
        (vax_output_int_add): Likewise.
        (legitimate_constant_address_p): Likewise.
        (legitimate_constant_address_p): Likewise.
        (index_term_p): Likewise.
        (index_term_p): Likewise.
        * config/vax/vax.h (PRINT_OPERAND): Likewise.
        * config/vax/vax.h (PRINT_OPERAND): Likewise.
        * config/vax/vax.md (and3): Likewise.
        * config/vax/vax.md (and3): Likewise.
        (ashrsi3): Likewise.
        (ashrsi3): Likewise.
        (extv): Likewise.
        (extv): Likewise.
        (movstricthi): Likewise.
        (movstricthi): Likewise.
        (movstrictqi): Likewise.
        (movstrictqi): Likewise.
        (rotrsi3): Likewise.
        (rotrsi3): Likewise.
        (five unnamed insns): Likewise.
        (five unnamed insns): Likewise.
2006-03-16  Geoffrey Keating  
2006-03-16  Geoffrey Keating  
        * doc/tm.texi (SDB and DWARF): Add extra parameter to
        * doc/tm.texi (SDB and DWARF): Add extra parameter to
        ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
        ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
        * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
        * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
        * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
        * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
        Pass to ASM_OUTPUT_DWARF_OFFSET.
        Pass to ASM_OUTPUT_DWARF_OFFSET.
        * dwarf2out.c (debug_frame_section): New.
        * dwarf2out.c (debug_frame_section): New.
        (output_call_frame_info): Use debug_frame_section.  Pass it to
        (output_call_frame_info): Use debug_frame_section.  Pass it to
        dw2_asm_output_offset.
        dw2_asm_output_offset.
        (output_die): Pass appropriate section to dw2_asm_output_offset.
        (output_die): Pass appropriate section to dw2_asm_output_offset.
        (output_compilation_unit_header): Likewise.
        (output_compilation_unit_header): Likewise.
        (output_pubnames): Likewise.
        (output_pubnames): Likewise.
        (output_aranges): Likewise.
        (output_aranges): Likewise.
        (enum dw_val_class): Break dw_val_class_lbl_offset into
        (enum dw_val_class): Break dw_val_class_lbl_offset into
        dw_val_class_lineptr and dw_val_class_macptr.
        dw_val_class_lineptr and dw_val_class_macptr.
        (add_AT_lbl_offset): Delete.
        (add_AT_lbl_offset): Delete.
        (add_AT_lineptr): New.
        (add_AT_lineptr): New.
        (add_AT_macptr): New.
        (add_AT_macptr): New.
        (AT_lbl): Expect a lineptr or macptr.
        (AT_lbl): Expect a lineptr or macptr.
        (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
        (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
        (attr_checksum): Likewise.
        (attr_checksum): Likewise.
        (same_dw_val_p): Likewise.
        (same_dw_val_p): Likewise.
        (size_of_die): Likewise.
        (size_of_die): Likewise.
        (value_format): Likewise.
        (value_format): Likewise.
        (output_die): Likewise.
        (output_die): Likewise.
        (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
        (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
        add_AT_lbl_offset.
        add_AT_lbl_offset.
        * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
        * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
        * config/i386/i386.c (x86_file_start): Call darwin_file_start.
        * config/i386/i386.c (x86_file_start): Call darwin_file_start.
        * config/darwin-protos.h (darwin_file_start): New.
        * config/darwin-protos.h (darwin_file_start): New.
        (darwin_asm_output_dwarf_offset): New.
        (darwin_asm_output_dwarf_offset): New.
        * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
        * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
        * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
        * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
        darwin_file_start.
        darwin_file_start.
        * config/darwin.c (darwin_emit_unwind_label): Don't output label
        * config/darwin.c (darwin_emit_unwind_label): Don't output label
        if not EH section; simplify.
        if not EH section; simplify.
        (darwin_file_start): New.
        (darwin_file_start): New.
        (darwin_asm_output_dwarf_offset): New.
        (darwin_asm_output_dwarf_offset): New.
        * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
        * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
        mark as 'debug'.
        mark as 'debug'.
        (DEBUG_INFO_SECTION): Likewise.
        (DEBUG_INFO_SECTION): Likewise.
        (DEBUG_ABBREV_SECTION): Likewise.
        (DEBUG_ABBREV_SECTION): Likewise.
        (DEBUG_ARANGES_SECTION): Likewise.
        (DEBUG_ARANGES_SECTION): Likewise.
        (DEBUG_MACINFO_SECTION): Likewise.
        (DEBUG_MACINFO_SECTION): Likewise.
        (DEBUG_LINE_SECTION): Likewise.
        (DEBUG_LINE_SECTION): Likewise.
        (DEBUG_LOC_SECTION): Likewise.
        (DEBUG_LOC_SECTION): Likewise.
        (DEBUG_PUBNAMES_SECTION): Likewise.
        (DEBUG_PUBNAMES_SECTION): Likewise.
        (DEBUG_STR_SECTION): Likewise.
        (DEBUG_STR_SECTION): Likewise.
        (DEBUG_RANGES_SECTION): Likewise.
        (DEBUG_RANGES_SECTION): Likewise.
        (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
        (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
        (ASM_OUTPUT_DWARF_OFFSET): New.
        (ASM_OUTPUT_DWARF_OFFSET): New.
2006-03-16  Joseph S. Myers  
2006-03-16  Joseph S. Myers  
        * config.gcc (tm_defines): Always add to previous value rather
        * config.gcc (tm_defines): Always add to previous value rather
        than replacing it.
        than replacing it.
2006-03-16  Richard Sandiford  
2006-03-16  Richard Sandiford  
        * config/mips/predicates.md (splittable_const_int_operand): New,
        * config/mips/predicates.md (splittable_const_int_operand): New,
        split from move_operand.
        split from move_operand.
        (splittable_symbolic_operand): New.
        (splittable_symbolic_operand): New.
        (move_operand): Add commentary.  Use splittable_const_int_operand.
        (move_operand): Add commentary.  Use splittable_const_int_operand.
        Inline mips_atomic_symbolic_constant_p.
        Inline mips_atomic_symbolic_constant_p.
        * config/mips/mips.md: Add combine splitters for handling moves
        * config/mips/mips.md: Add combine splitters for handling moves
        of splittable_const_int_operands and splittable_symbolic_operands.
        of splittable_const_int_operands and splittable_symbolic_operands.
        * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
        * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
        (mips_split_symbol): Declare.
        (mips_split_symbol): Declare.
        (mips_move_integer): Declare.
        (mips_move_integer): Declare.
        * config/mips/mips.c (mips_split_p): Make global.
        * config/mips/mips.c (mips_split_p): Make global.
        (TARGET_MIN_ANCHOR_OFFSET): Override default.
        (TARGET_MIN_ANCHOR_OFFSET): Override default.
        (TARGET_MAX_ANCHOR_OFFSET): Likewise.
        (TARGET_MAX_ANCHOR_OFFSET): Likewise.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
        (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
        (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
        (mips_offset_within_object_p): Handle block symbols.
        (mips_offset_within_object_p): Handle block symbols.
        (mips_atomic_symbolic_constant_p): Delete.
        (mips_atomic_symbolic_constant_p): Delete.
        (mips_cannot_force_const_mem): Return false for constants that
        (mips_cannot_force_const_mem): Return false for constants that
        mips_legitimize_move can handle.
        mips_legitimize_move can handle.
        (mips_use_blocks_for_constant_p): New function.
        (mips_use_blocks_for_constant_p): New function.
        (mips_split_symbol): Make global.
        (mips_split_symbol): Make global.
        (mips_move_integer): Likewise.  Add a temporary register argument.
        (mips_move_integer): Likewise.  Add a temporary register argument.
        (mips_legitimize_const_move): Use splittable_const_int_operand and
        (mips_legitimize_const_move): Use splittable_const_int_operand and
        splittable_symbolic_operand.
        splittable_symbolic_operand.
        (mips_use_anchors_for_symbol_p): New function.
        (mips_use_anchors_for_symbol_p): New function.
        * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
        * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
        (mips_split_p): Declare.
        (mips_split_p): Declare.
2006-03-16  Richard Sandiford  
2006-03-16  Richard Sandiford  
        * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
        * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
        (mips*-*-linux*): Likewise.
        (mips*-*-linux*): Likewise.
2006-03-16  Roger Sayle  
2006-03-16  Roger Sayle  
            Daniel Speyer  
            Daniel Speyer  
        PR middle-end/18259
        PR middle-end/18259
        * tree-dump.c (dump_real): New function.
        * tree-dump.c (dump_real): New function.
        (dequeue_and_dump) : Use it to dump FP constants.
        (dequeue_and_dump) : Use it to dump FP constants.
        * Makefile.in (REAL_H): New macro for dependencies on real.h.
        * Makefile.in (REAL_H): New macro for dependencies on real.h.
        (tree-dump.o): Add $(REAL_H) to the dependencies.
        (tree-dump.o): Add $(REAL_H) to the dependencies.
2006-03-16  Roger Sayle  
2006-03-16  Roger Sayle  
        PR middle-end/21781
        PR middle-end/21781
        * real.c (real_from_string): If the mantissa is zero, don't bother
        * real.c (real_from_string): If the mantissa is zero, don't bother
        parsing the exponent as the result should always be zero.
        parsing the exponent as the result should always be zero.
2006-03-16  Andreas Krebbel  
2006-03-16  Andreas Krebbel  
        * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
        * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2006-03-16  Maxim Kuvyrkov 
2006-03-16  Maxim Kuvyrkov 
        * config/ia64/ia64.c (stops_p): Added explicit initialization.
        * config/ia64/ia64.c (stops_p): Added explicit initialization.
        (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
        (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
        ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
        ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
        ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
        ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
        ia64_sched_finish_global): New static functions to implement
        ia64_sched_finish_global): New static functions to implement
        hooks from gcc_target.sched.
        hooks from gcc_target.sched.
        (spec_check_no, max_uid, pending_data_specs): New static variables.
        (spec_check_no, max_uid, pending_data_specs): New static variables.
        (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
        (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
        ia64_spec_check_src_p): New static functions.
        ia64_spec_check_src_p): New static functions.
        (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
        (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
        (TARGET_SCHED_ADJUST_COST): Removed.
        (TARGET_SCHED_ADJUST_COST): Removed.
        (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
        (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
        TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
        TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_SET_SCHED_FLAGS): New macros.
        TARGET_SCHED_SET_SCHED_FLAGS): New macros.
        (update_set_flags, group_barrier_needed, set_src_needs_barrier):
        (update_set_flags, group_barrier_needed, set_src_needs_barrier):
        Fixed to handle speculation checks.
        Fixed to handle speculation checks.
        (rtx_needs_barrier): Fixed to handle speculative loads and
        (rtx_needs_barrier): Fixed to handle speculative loads and
        their checks.
        their checks.
        (ia64_variable_issue): Added code to count speculative loads and their
        (ia64_variable_issue): Added code to count speculative loads and their
        checks.
        checks.
        (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
        (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
        speculative loads.
        speculative loads.
        (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
        (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
        New enumerations.
        New enumerations.
        (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
        (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
        New constants.
        New constants.
        (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
        (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
        (ia64_reorg): Reset stops_p to NULL after it is freed.
        (ia64_reorg): Reset stops_p to NULL after it is freed.
        * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
        * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
        UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
        UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
        (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
        (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
        chk_a.
        chk_a.
        (data_speculative, control_speculative, check_load): New attributes.
        (data_speculative, control_speculative, check_load): New attributes.
        (mov_advanced, mov_speculative,
        (mov_advanced, mov_speculative,
        mov_speculative_advanced, zero_extenddi2_advanced,
        mov_speculative_advanced, zero_extenddi2_advanced,
        zero_extenddi2_speculative,
        zero_extenddi2_speculative,
        zero_extenddi2_speculative_advanced): New patterns for
        zero_extenddi2_speculative_advanced): New patterns for
        data and control speculative loads.
        data and control speculative loads.
        (mov_clr, zero_extenddi2_clr): New patterns for
        (mov_clr, zero_extenddi2_clr): New patterns for
        check loads.
        check loads.
        (advanced_load_check_clr_, speculation_check_):
        (advanced_load_check_clr_, speculation_check_):
        New pattern for data and control speculation checks.
        New pattern for data and control speculation checks.
        (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
        (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
        ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
        ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
        reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
        reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
        Auxiliary definitions for the patterns.
        Auxiliary definitions for the patterns.
        * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
        * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
        1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
        1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
        constraints.
        constraints.
        (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
        (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
        for speculation.
        for speculation.
        (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
        (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
        * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
        * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
        2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
        2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
        New resource constraints.
        New resource constraints.
        (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
        (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
        for speculation.
        for speculation.
        (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
        (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
        * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
        * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
        msched-in-control-spec, msched-ldc, msched-control-ldc,
        msched-in-control-spec, msched-ldc, msched-control-ldc,
        msched-spec-verbose, msched-prefer-non-data-spec-insns,
        msched-spec-verbose, msched-prefer-non-data-spec-insns,
        msched-prefer-non-control-spec-insns,
        msched-prefer-non-control-spec-insns,
        msched-count-spec-in-critical-path): New flags to tune speculative
        msched-count-spec-in-critical-path): New flags to tune speculative
        scheduling.
        scheduling.
        * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
        * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
        msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
        msched-in-control-spec, msched-ldc, msched-control-ldc,
        msched-in-control-spec, msched-ldc, msched-control-ldc,
        msched-spec-verbose, msched-prefer-non-data-spec-insns,
        msched-spec-verbose, msched-prefer-non-data-spec-insns,
        msched-prefer-non-control-spec-insns,
        msched-prefer-non-control-spec-insns,
        msched-count-spec-in-critical-path): Document new flags.
        msched-count-spec-in-critical-path): Document new flags.
2006-03-16  Maxim Kuvyrkov 
2006-03-16  Maxim Kuvyrkov 
        * target.h (struct spec_info_def): New opaque declaration.
        * target.h (struct spec_info_def): New opaque declaration.
        (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
        (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
        speculate_insn, needs_block_p, gen_check,
        speculate_insn, needs_block_p, gen_check,
        first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
        first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
        * target-def.h (TARGET_SCHED_ADJUST_COST_2,
        * target-def.h (TARGET_SCHED_ADJUST_COST_2,
        TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
        TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
        TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
        TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
        gcc_target.sched.
        gcc_target.sched.
        (TARGET_SCHED): Use new macros.
        (TARGET_SCHED): Use new macros.
        * rtl.h (copy_DEPS_LIST_list): New prototype.
        * rtl.h (copy_DEPS_LIST_list): New prototype.
        * sched-int.h (struct sched_info): Change signature of new_ready field,
        * sched-int.h (struct sched_info): Change signature of new_ready field,
        adjust all initializations. New fields: add_remove_insn,
        adjust all initializations. New fields: add_remove_insn,
        begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
        begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
        region_head_or_leaf_p.
        region_head_or_leaf_p.
        (struct spec_info_def): New structure declaration.
        (struct spec_info_def): New structure declaration.
        (spec_info_t): New typedef.
        (spec_info_t): New typedef.
        (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
        (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
        recovery_block, orig_pat.
        recovery_block, orig_pat.
        (glat_start, glat_end): New variables declaraions.
        (glat_start, glat_end): New variables declaraions.
        (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
        (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
        New access macros.
        New access macros.
        (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
        (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
        DETACH_LIFE_INFO, USE_GLAT.
        DETACH_LIFE_INFO, USE_GLAT.
        (enum SPEC_SCHED_FLAGS): New enumeration.
        (enum SPEC_SCHED_FLAGS): New enumeration.
        (NOTE_NOTE_BB_P): New macro.
        (NOTE_NOTE_BB_P): New macro.
        (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
        (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
        attach_life_info, debug_spec_status, check_reg_live): New functions.
        attach_life_info, debug_spec_status, check_reg_live): New functions.
        (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
        (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
        all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
        all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
        sched-ebb.c
        sched-ebb.c
        (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
        (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
        * ddg.c (get_block_head_tail): Adjust all uses.
        * ddg.c (get_block_head_tail): Adjust all uses.
        * modulo-sched.c (get_block_head_tail): Adjust all uses.
        * modulo-sched.c (get_block_head_tail): Adjust all uses.
        (sms_sched_info): Initialize new fields.
        (sms_sched_info): Initialize new fields.
        (contributes_to_priority): Removed.
        (contributes_to_priority): Removed.
        * haifa-sched.c (params.h): New include.
        * haifa-sched.c (params.h): New include.
        (get_block_head_tail): Adjust all uses.
        (get_block_head_tail): Adjust all uses.
        (ISSUE_POINTS): New macro.
        (ISSUE_POINTS): New macro.
        (glat_start, glat_end): New global variables.
        (glat_start, glat_end): New global variables.
        (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
        (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
        nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
        nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
        old_last_basic_block, before_recovery, current_sched_info_var,
        old_last_basic_block, before_recovery, current_sched_info_var,
        rgn_n_insns, luid): New static variables.
        rgn_n_insns, luid): New static variables.
        (insn_cost1): New function.  Move logic from insn_cost to here.
        (insn_cost1): New function.  Move logic from insn_cost to here.
        (find_insn_reg_weight1): New function.  Move logic from
        (find_insn_reg_weight1): New function.  Move logic from
        find_insn_reg_weight to here.
        find_insn_reg_weight to here.
        (reemit_notes, move_insn, max_issue): Change signature.
        (reemit_notes, move_insn, max_issue): Change signature.
        (move_insn1): Removed.
        (move_insn1): Removed.
        (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
        (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
        extend_bb): New static functions to support extension of scheduler's
        extend_bb): New static functions to support extension of scheduler's
        data structures.
        data structures.
        (generate_recovery_code, process_insn_depend_be_in_spec,
        (generate_recovery_code, process_insn_depend_be_in_spec,
        begin_speculative_block, add_to_speculative_block,
        begin_speculative_block, add_to_speculative_block,
        init_before_recovery, create_recovery_block, create_check_block_twin,
        init_before_recovery, create_recovery_block, create_check_block_twin,
        fix_recovery_deps): New static functions to support
        fix_recovery_deps): New static functions to support
        generation of recovery code.
        generation of recovery code.
        (fix_jump_move, find_fallthru_edge, dump_new_block_header,
        (fix_jump_move, find_fallthru_edge, dump_new_block_header,
        restore_bb_notes, move_block_after_check, move_succs): New static
        restore_bb_notes, move_block_after_check, move_succs): New static
        functions to support ebb scheduling.
        functions to support ebb scheduling.
        (init_glat, init_glat1, attach_life_info1, free_glat): New static
        (init_glat, init_glat1, attach_life_info1, free_glat): New static
        functions to support handling of register live information.
        functions to support handling of register live information.
        (associate_line_notes_with_blocks, change_pattern, speculate_insn,
        (associate_line_notes_with_blocks, change_pattern, speculate_insn,
        sched_remove_insn, clear_priorities, calc_priorities, bb_note,
        sched_remove_insn, clear_priorities, calc_priorities, bb_note,
        add_jump_dependencies): New static functions.
        add_jump_dependencies): New static functions.
        (check_cfg, has_edge_p, check_sched_flags): New static functions for
        (check_cfg, has_edge_p, check_sched_flags): New static functions for
        consistancy checking.
        consistancy checking.
        (debug_spec_status): New function to call from debugger.
        (debug_spec_status): New function to call from debugger.
        (priority): Added code to handle speculation checks.
        (priority): Added code to handle speculation checks.
        (rank_for_schedule): Added code to distinguish speculative instructions.
        (rank_for_schedule): Added code to distinguish speculative instructions.
        (schedule_insn): Added code to handle speculation checks.
        (schedule_insn): Added code to handle speculation checks.
        (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
        (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
        Fixed to handle ebbs.
        Fixed to handle ebbs.
        (move_insn): Added code to handle ebb scheduling.
        (move_insn): Added code to handle ebb scheduling.
        (max_issue): Added code to use ISSUE_POINTS of instructions.
        (max_issue): Added code to use ISSUE_POINTS of instructions.
        (choose_ready): Added code to choose between speculative and
        (choose_ready): Added code to choose between speculative and
        non-speculative instructions.
        non-speculative instructions.
        (schedule_block): Added code to handle ebb scheduling and scheduling of
        (schedule_block): Added code to handle ebb scheduling and scheduling of
        speculative instructions.
        speculative instructions.
        (sched_init): Initialize new variables.
        (sched_init): Initialize new variables.
        (sched_finish): Free new variables.  Print statistics.
        (sched_finish): Free new variables.  Print statistics.
        (try_ready): Added code to handle speculative instructions.
        (try_ready): Added code to handle speculative instructions.
        * lists.c (copy_DEPS_LIST_list): New function.
        * lists.c (copy_DEPS_LIST_list): New function.
        * sched-deps.c (extend_dependency_caches): New function.  Move logic
        * sched-deps.c (extend_dependency_caches): New function.  Move logic
        from create_dependency_caches to here.
        from create_dependency_caches to here.
        (get_dep_weak, ds_merge): Make global.
        (get_dep_weak, ds_merge): Make global.
        * genattr.c (main): Code to output prototype for
        * genattr.c (main): Code to output prototype for
        dfa_clear_single_insn_cache.
        dfa_clear_single_insn_cache.
        * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
        * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
        (output_dfa_clean_insn_cache_func): Code to output
        (output_dfa_clean_insn_cache_func): Code to output
        dfa_clear_single_insn_cache function.
        dfa_clear_single_insn_cache function.
        * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
        * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
        n_insns.
        n_insns.
        (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
        (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
        Removed.
        Removed.
        (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
        (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
        New static variables.
        New static variables.
        (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
        (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
        fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
        fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
        struct sched_info.
        struct sched_info.
        (ebb_sched_info): Initialize new fields.
        (ebb_sched_info): Initialize new fields.
        (get_block_head_tail): Adjust all uses.
        (get_block_head_tail): Adjust all uses.
        (compute_jump_reg_dependencies): Fixed to use glat_start.
        (compute_jump_reg_dependencies): Fixed to use glat_start.
        (schedule_ebb): Code to remove unreachable last block.
        (schedule_ebb): Code to remove unreachable last block.
        (schedule_ebbs): Added code to update register live information.
        (schedule_ebbs): Added code to update register live information.
        * sched-rgn.c (region_sched_info): Initialize new fields.
        * sched-rgn.c (region_sched_info): Initialize new fields.
        (get_block_head_tail): Adjust all uses.
        (get_block_head_tail): Adjust all uses.
        (last_was_jump): Removed.  Adjust users.
        (last_was_jump): Removed.  Adjust users.
        (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
        (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
        add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
        add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
        Implement new hooks.
        Implement new hooks.
        (check_dead_notes1): New static function.
        (check_dead_notes1): New static function.
        (struct region): New fields: dont_calc_deps, has_real_ebb.
        (struct region): New fields: dont_calc_deps, has_real_ebb.
        (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
        (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
        (BB_TO_BLOCK): Fixed to handle EBBs.
        (BB_TO_BLOCK): Fixed to handle EBBs.
        (EBB_FIRST_BB, EBB_LAST_BB): New macros.
        (EBB_FIRST_BB, EBB_LAST_BB): New macros.
        (ebb_head): New static variable.
        (ebb_head): New static variable.
        (debug_regions, contributes_to_priority): Fixed to handle EBBs.
        (debug_regions, contributes_to_priority): Fixed to handle EBBs.
        (find_single_block_regions, find_rgns, find_more_rgns): Initialize
        (find_single_block_regions, find_rgns, find_more_rgns): Initialize
        new fields.
        new fields.
        (compute_dom_prob_ps): New assertion.
        (compute_dom_prob_ps): New assertion.
        (check_live_1, update_live_1): Fixed to work with glat_start instead of
        (check_live_1, update_live_1): Fixed to work with glat_start instead of
        global_live_at_start.
        global_live_at_start.
        (init_ready_list): New assertions.
        (init_ready_list): New assertions.
        (can_schedule_ready_p): Split update code to begin_schedule_ready.
        (can_schedule_ready_p): Split update code to begin_schedule_ready.
        (new_ready): Add support for BEGIN_CONTROL speculation.
        (new_ready): Add support for BEGIN_CONTROL speculation.
        (schedule_insns): Fixed code that updates register live information
        (schedule_insns): Fixed code that updates register live information
        to handle EBBs.
        to handle EBBs.
        (schedule_region): Fixed to handle EBBs.
        (schedule_region): Fixed to handle EBBs.
        (init_regions): Use extend_regions and check_dead_notes1.
        (init_regions): Use extend_regions and check_dead_notes1.
        * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
        * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
        PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
        PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
        * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
        * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_GEN_CHECK,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
        TARGET_SCHED_SET_SCHED_FLAGS): Document.
        TARGET_SCHED_SET_SCHED_FLAGS): Document.
        * doc/invoke.texi (max-sched-insn-conflict-delay,
        * doc/invoke.texi (max-sched-insn-conflict-delay,
        sched-spec-prob-cutoff): Document.
        sched-spec-prob-cutoff): Document.
2006-03-16  Maxim Kuvyrkov 
2006-03-16  Maxim Kuvyrkov 
        * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
        * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
        inter_tick, queue_index.
        inter_tick, queue_index.
        (struct sched_info): Change signature of init_ready_list field.
        (struct sched_info): Change signature of init_ready_list field.
        Adjust all initializations.
        Adjust all initializations.
        (RESOLVED_DEPS): New access macro.
        (RESOLVED_DEPS): New access macro.
        (ready_add): Remove prototype.
        (ready_add): Remove prototype.
        (try_ready): Add prototype.
        (try_ready): Add prototype.
        * sched-rgn.c (init_ready_list): Use try_ready.
        * sched-rgn.c (init_ready_list): Use try_ready.
        (schedule_region): Initialize
        (schedule_region): Initialize
        current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
        current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
        * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
        * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
        (init_ready_list): Use try_ready.
        (init_ready_list): Use try_ready.
        (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
        (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
        * lists.c (remove_list_elem): Remove `static'.
        * lists.c (remove_list_elem): Remove `static'.
        (remove_free_INSN_LIST_elem): New function.
        (remove_free_INSN_LIST_elem): New function.
        * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
        * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
        * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
        * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
        (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
        (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
        New constants.
        New constants.
        (readyp): New variable.
        (readyp): New variable.
        (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
        (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
        change_queue_index, resolve_dep): New static functions.
        change_queue_index, resolve_dep): New static functions.
        (try_ready): New function.  Adjust callers in sched-rgn.c and
        (try_ready): New function.  Adjust callers in sched-rgn.c and
        sched-ebb.c to use it instead of ready_add.
        sched-ebb.c to use it instead of ready_add.
        (clock_var): Move at the begining of file.
        (clock_var): Move at the begining of file.
        (rank_for_schedule): Fix typo.
        (rank_for_schedule): Fix typo.
        (queue_insn): Add assertion.  Handle QUEUE_INDEX.
        (queue_insn): Add assertion.  Handle QUEUE_INDEX.
        (ready_lastpos): Enforce assertion.
        (ready_lastpos): Enforce assertion.
        (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
        (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
        update all callers.
        update all callers.
        (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
        (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
        (schedule_insn): Rewrite to use try_ready and resolve_dep.
        (schedule_insn): Rewrite to use try_ready and resolve_dep.
        (queue_to_ready): Use free_INSN_LIST_list.
        (queue_to_ready): Use free_INSN_LIST_list.
        (early_queue_to_ready): Fix typo.
        (early_queue_to_ready): Fix typo.
        (schedule_block): Init readyp.  Move init_ready_list call after the
        (schedule_block): Init readyp.  Move init_ready_list call after the
        initialization of clock_var.  Fix error in rejecting insn by
        initialization of clock_var.  Fix error in rejecting insn by
        targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
        targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
        that previously corrected INSN_TICKs.  Add code for handling
        that previously corrected INSN_TICKs.  Add code for handling
        QUEUE_INDEX.
        QUEUE_INDEX.
        (set_priorities): Fix typo.
        (set_priorities): Fix typo.
        (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
        (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
        Clarify comment and code that keeps current_sched_info->next_tail
        Clarify comment and code that keeps current_sched_info->next_tail
        non-null.
        non-null.
2006-03-16  Maxim Kuvyrkov 
2006-03-16  Maxim Kuvyrkov 
        * sched-rgn.c (extend_rgns): New static function.
        * sched-rgn.c (extend_rgns): New static function.
        (find_rgns): Use it.
        (find_rgns): Use it.
        (gather_region_statistics, print_region_statistics): New static
        (gather_region_statistics, print_region_statistics): New static
        functions.
        functions.
        * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
        * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
        * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2006-03-16  Maxim Kuvyrkov 
2006-03-16  Maxim Kuvyrkov 
            Andrey Belevantsev 
            Andrey Belevantsev 
        * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
        * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
        * lists.c (unused_deps_list): New variable.
        * lists.c (unused_deps_list): New variable.
        (free_list): Add assertions to verify the proper distinguishing
        (free_list): Add assertions to verify the proper distinguishing
        between INSN_LISTs and DEPS_LISTs.
        between INSN_LISTs and DEPS_LISTs.
        (find_list_elem, remove_list_elem, remove_list_node): New static
        (find_list_elem, remove_list_elem, remove_list_node): New static
        functions.
        functions.
        (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
        (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
        remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
        remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
        remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
        remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
        (alloc_INSN_LIST): Assert that the list we're working on is indeed
        (alloc_INSN_LIST): Assert that the list we're working on is indeed
        an INSN_LIST.
        an INSN_LIST.
        (free_INSN_LIST_node): Likewise.
        (free_INSN_LIST_node): Likewise.
        * modulo-sched.c (current_sched_info): Initialize flags field.
        * modulo-sched.c (current_sched_info): Initialize flags field.
        * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
        * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
        * rtl.def (DEPS_LIST): Define.
        * rtl.def (DEPS_LIST): Define.
        * rtl.h: Declare new functions from lists.c.
        * rtl.h: Declare new functions from lists.c.
        * sched-deps.c (spec_dependency_cache): New static variable.
        * sched-deps.c (spec_dependency_cache): New static variable.
        (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
        (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
        (add_dependence): Change return type to void.  Move the logic to ...
        (add_dependence): Change return type to void.  Move the logic to ...
        (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
        (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
        (delete_all_dependences): Add comment about forward_dependency_cache.
        (delete_all_dependences): Add comment about forward_dependency_cache.
        Handle spec_dependency_cache.  Handle DEPS_LISTs.
        Handle spec_dependency_cache.  Handle DEPS_LISTs.
        (fixup_sched_groups): Clarify the change of priority of output
        (fixup_sched_groups): Clarify the change of priority of output
        and anti dependencies.
        and anti dependencies.
        (sched_analyze_2): Adjust add_dependence calls to create data
        (sched_analyze_2): Adjust add_dependence calls to create data
        speculative dependence.
        speculative dependence.
        (add_forward_dependence): Renamed to add_forw_dep, change prototype.
        (add_forward_dependence): Renamed to add_forw_dep, change prototype.
        Adjust all callers.  Handle DEPS_LISTS.
        Adjust all callers.  Handle DEPS_LISTS.
        (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
        (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
        presence of speculation.
        presence of speculation.
        (init_dependency_caches, free_dependency_caches):
        (init_dependency_caches, free_dependency_caches):
        Handle spec_dependency_cache.
        Handle spec_dependency_cache.
        (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
        (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
        estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
        estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
        New static functions.
        New static functions.
        (add_or_update_back_dep, add_or_update_back_forw_dep,
        (add_or_update_back_dep, add_or_update_back_forw_dep,
        add_back_forw_dep, delete_back_forw_dep): New functions.
        add_back_forw_dep, delete_back_forw_dep): New functions.
        * sched-int.h (ds_t, dw_t): New typedefs.
        * sched-int.h (ds_t, dw_t): New typedefs.
        (struct sched_info): Add new field flags.
        (struct sched_info): Add new field flags.
        (struct haifa_insn_data): Add new bitfield has_internal_dep.
        (struct haifa_insn_data): Add new bitfield has_internal_dep.
        Prototype new sched-deps.c functions.
        Prototype new sched-deps.c functions.
        (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
        (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
        (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
        (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
        MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
        MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
        BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
        BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
        SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
        SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
        SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
        SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
        New constants.
        New constants.
        (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
        (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
        New enums.
        New enums.
        * sched-rgn.c (current_sched_info): Initialize flags field.
        * sched-rgn.c (current_sched_info): Initialize flags field.
        (schedule_insns): Initialize current_sched_info before the sched_init
        (schedule_insns): Initialize current_sched_info before the sched_init
        call.
        call.
        * sched-ebb.c (current_sched_info): Initialize flags field.
        * sched-ebb.c (current_sched_info): Initialize flags field.
        (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
        (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
        Call add_or_update_back_dep instead of add_dependence.
        Call add_or_update_back_dep instead of add_dependence.
        Create control speculative dependencies.
        Create control speculative dependencies.
        (schedule_insns): Initialize current_sched_info before the sched_init
        (schedule_insns): Initialize current_sched_info before the sched_init
        call.
        call.
2006-03-16  Kaz Kojima  
2006-03-16  Kaz Kojima  
        * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
        * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
        fs->signal_frame.
        fs->signal_frame.
        (sh_fallback_frame_state): Likewise.
        (sh_fallback_frame_state): Likewise.
2006-03-15  Geoffrey Keating  
2006-03-15  Geoffrey Keating  
        * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
        * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
        Do switch on default_use_cxa_atexit.
        Do switch on default_use_cxa_atexit.
        (powerpc*-*-darwin*): Build crt2.o on powerpc.
        (powerpc*-*-darwin*): Build crt2.o on powerpc.
        * config/darwin-crt3.o: New.
        * config/darwin-crt3.o: New.
        * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
        * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
        to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
        to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
        (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
        (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
        OS version.
        OS version.
        * config/rs6000/t-darwin: Move crt2.o building to here.
        * config/rs6000/t-darwin: Move crt2.o building to here.
        * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
        * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
        Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
        Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
        of __cxa_atexit.
        of __cxa_atexit.
2006-03-15  Jan-Benedict Glaw  
2006-03-15  Jan-Benedict Glaw  
        * config/vax/vax.c (nonindexed_address_p): Change logical negation
        * config/vax/vax.c (nonindexed_address_p): Change logical negation
        from '! xxx' to '!xxx' for coding-style conformance.
        from '! xxx' to '!xxx' for coding-style conformance.
        * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
        * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
        (EXTRA_CONSTRAINT): Likewise.
        (EXTRA_CONSTRAINT): Likewise.
        * config/vax/vax.md (four unnamed insns): Likewise.
        * config/vax/vax.md (four unnamed insns): Likewise.
2006-03-15  Paul Brook  
2006-03-15  Paul Brook  
        * config/arm/arm.c (minipool_pad): New.
        * config/arm/arm.c (minipool_pad): New.
        (add_minipool_forward_ref): Include pool alignment padding in address
        (add_minipool_forward_ref): Include pool alignment padding in address
        calculation.
        calculation.
        (push_minipool_fix): Set minipool_pad.
        (push_minipool_fix): Set minipool_pad.
        (minipool_pad): Ditto.
        (minipool_pad): Ditto.
2006-03-15  Jan-Benedict Glaw  
2006-03-15  Jan-Benedict Glaw  
        * config/vax/vax.c (split_quadword_operands): Use MEM_P()
        * config/vax/vax.c (split_quadword_operands): Use MEM_P()
        instead of GET_CODE() == MEM and REG_P() instead of
        instead of GET_CODE() == MEM and REG_P() instead of
        GET_CODE() == REG.
        GET_CODE() == REG.
        (print_operand_address): Likewise.
        (print_operand_address): Likewise.
        (vax_address_cost): Likewise.
        (vax_address_cost): Likewise.
        (vax_rtx_costs): Likewise.
        (vax_rtx_costs): Likewise.
        (vax_notice_update_cc): Likewise.
        (vax_notice_update_cc): Likewise.
        (vax_output_int_add): Likewise.
        (vax_output_int_add): Likewise.
        (INDEX_REGISTER_P): Likewise.
        (INDEX_REGISTER_P): Likewise.
        (BASE_REGISTER_P): Likewise.
        (BASE_REGISTER_P): Likewise.
        (nonindexed_address_p): Likewise.
        (nonindexed_address_p): Likewise.
        (vax_mode_dependent_address_p): Likewise.
        (vax_mode_dependent_address_p): Likewise.
        * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
        * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
        (PRINT_OPERAND): Likewise.
        (PRINT_OPERAND): Likewise.
        * config/vax/vax.md (ashlsi3): Likewise.
        * config/vax/vax.md (ashlsi3): Likewise.
        (ashlsi3): Likewise.
        (ashlsi3): Likewise.
        (some more unnamed insns): Likewise.
        (some more unnamed insns): Likewise.
2006-03-15  Kazu Hirata  
2006-03-15  Kazu Hirata  
        * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
        * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
        iterator-style macro.
        iterator-style macro.
        (mark_control_dependent_edges_necessary): Update the use of
        (mark_control_dependent_edges_necessary): Update the use of
        EXECUTE_IF_CONTROL_DEPENDENT.
        EXECUTE_IF_CONTROL_DEPENDENT.
2006-03-15  J"orn Rennecke 
2006-03-15  J"orn Rennecke 
        * config/sh/predicates.md (cache_address_operand): Special.
        * config/sh/predicates.md (cache_address_operand): Special.
        (ua_address_operand): Likewise.
        (ua_address_operand): Likewise.
2006-03-15  Zdenek Dvorak 
2006-03-15  Zdenek Dvorak 
        * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
        * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
        loop notes.
        loop notes.
        * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
        * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2006-03-15  Andreas Schwab  
2006-03-15  Andreas Schwab  
        * gensupport.c (identify_predicable_attribute): Don't free p_false
        * gensupport.c (identify_predicable_attribute): Don't free p_false
        when it is still in use.
        when it is still in use.
2006-03-15  Eric Botcazou  
2006-03-15  Eric Botcazou  
        * config.gcc (default with_cpu setting) : Do not modify
        * config.gcc (default with_cpu setting) : Do not modify
        the default setting here.
        the default setting here.
2006-03-14  Steven Bosscher  
2006-03-14  Steven Bosscher  
        * tree-pass.h (pass_cfg): Remove.
        * tree-pass.h (pass_cfg): Remove.
        * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
        * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
        * passes.c (pass_cfg): Don't run it.
        * passes.c (pass_cfg): Don't run it.
2006-03-14  Kazu Hirata  
2006-03-14  Kazu Hirata  
        * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
        * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
        * reg-stack.c (stack_regs_mentioned_data): Change the type to
        * reg-stack.c (stack_regs_mentioned_data): Change the type to
        VEC(char,heap) *.
        VEC(char,heap) *.
        (stack_regs_mentioned): Update the uses of
        (stack_regs_mentioned): Update the uses of
        stack_regs_mentioned_data.  Don't access the array beyond its
        stack_regs_mentioned_data.  Don't access the array beyond its
        end.
        end.
        (reg_to_stack): Update the uses of stack_regs_mentioned_data.
        (reg_to_stack): Update the uses of stack_regs_mentioned_data.
        Don't include gt-reg-stack.h.
        Don't include gt-reg-stack.h.
        * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
        * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
        * system.h (UNALIGNED_WORD_ASM_OP): Poison.
        * system.h (UNALIGNED_WORD_ASM_OP): Poison.
        * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
        * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
        PR middle-end/26684
        PR middle-end/26684
        * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
        * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
        STACK_REGS.
        STACK_REGS.
2006-03-14  John David Anglin  
2006-03-14  John David Anglin  
        * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
        * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2006-03-14  Richard Guenther  
2006-03-14  Richard Guenther  
        PR tree-optimization/26672
        PR tree-optimization/26672
        * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
        * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
        SSA form.
        SSA form.
2006-03-14  Richard Guenther  
2006-03-14  Richard Guenther  
        PR tree-optimization/26667
        PR tree-optimization/26667
        * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
        * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
        node for the callees.  Always allow inlining if it will shrink
        node for the callees.  Always allow inlining if it will shrink
        the function size.
        the function size.
2006-03-14  Richard Guenther  
2006-03-14  Richard Guenther  
        PR middle-end/26659
        PR middle-end/26659
        * builtins.c (get_pointer_alignment): Prefer alignment
        * builtins.c (get_pointer_alignment): Prefer alignment
        information from decls over that from types.
        information from decls over that from types.
2006-03-14  Andrew Pinski  
2006-03-14  Andrew Pinski  
        PR target/26657
        PR target/26657
        * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
        * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2006-03-14  Joseph S. Myers  
2006-03-14  Joseph S. Myers  
        * config/rs6000/rs6000.opt (mdlmzb): New option.
        * config/rs6000/rs6000.opt (mdlmzb): New option.
        (msched-prolog, msched-epilog): Use Var not Mask.
        (msched-prolog, msched-epilog): Use Var not Mask.
        * doc/invoke.texi (-mdlmzb): Document.
        * doc/invoke.texi (-mdlmzb): Document.
        * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
        * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
        MASK_SCHED_PROLOG.
        MASK_SCHED_PROLOG.
        (rs6000_override_options): Enable -mdlmzb for 405 and 440.
        (rs6000_override_options): Enable -mdlmzb for 405 and 440.
        * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
        * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2006-03-13  Uttam Pawar  
2006-03-13  Uttam Pawar  
        PR rtl-optimization/25739
        PR rtl-optimization/25739
        * bt-load.c (augment_live_range): Free tos pointer.
        * bt-load.c (augment_live_range): Free tos pointer.
        * gensupport.c (identify_predicable_attribute): Free
        * gensupport.c (identify_predicable_attribute): Free
        p_false pointer.
        p_false pointer.
        * gcov.c (create_file_names): Free name pointer.
        * gcov.c (create_file_names): Free name pointer.
2006-03-13  Roger Sayle  
2006-03-13  Roger Sayle  
        PR middle-end/26557
        PR middle-end/26557
        * stmt.c (emit_case_nodes): Handle the case where the index is a
        * stmt.c (emit_case_nodes): Handle the case where the index is a
        CONST_INT, where the comparison mode is specified by the index type.
        CONST_INT, where the comparison mode is specified by the index type.
2006-03-13  John David Anglin  
2006-03-13  John David Anglin  
        * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
        * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
        is defined.
        is defined.
2006-03-13  Richard Sandiford  
2006-03-13  Richard Sandiford  
        * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
        * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
        (*branch_fp_inverted): Likewise.
        (*branch_fp_inverted): Likewise.
2006-03-13  Jakub Jelinek  
2006-03-13  Jakub Jelinek  
        PR middle-end/25989
        PR middle-end/25989
        * omp-low.c (expand_omp_for_generic): Mark istart0
        * omp-low.c (expand_omp_for_generic): Mark istart0
        and iend0 as addressable.
        and iend0 as addressable.
2006-03-13  Jie Zhang  
2006-03-13  Jie Zhang  
        * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
        * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
2006-03-13  Jeff Law  
2006-03-13  Jeff Law  
        * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
        * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
        virtual operands are interesting.
        virtual operands are interesting.
        (vrp_visit_stmt): Corresponding changes.
        (vrp_visit_stmt): Corresponding changes.
2006-03-13  Bernd Schmidt  
2006-03-13  Bernd Schmidt  
        * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
        * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
        of RETS.
        of RETS.
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
        TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
        TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
        * config/bfin/crti.S: Use it instead of __PIC__.
        * config/bfin/crti.S: Use it instead of __PIC__.
        * config/bfin/crtn.S: Likewise.
        * config/bfin/crtn.S: Likewise.
        * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
        * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
        call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
        call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
        not if flag_pic.
        not if flag_pic.
        Lose 'G' modifier for call operand.
        Lose 'G' modifier for call operand.
        * config/bfin/bfin.c (print_operand) : Don't
        * config/bfin/bfin.c (print_operand) : Don't
        recognize 'G' modifier.
        recognize 'G' modifier.
2006-03-13  Eric Botcazou  
2006-03-13  Eric Botcazou  
        PR middle-end/18859
        PR middle-end/18859
        * gimplify.c (gimplify_switch_expr): Discard empty ranges.
        * gimplify.c (gimplify_switch_expr): Discard empty ranges.
        * stmt.c (expand_case): Likewise.
        * stmt.c (expand_case): Likewise.
2006-03-13  Zdenek Dvorak 
2006-03-13  Zdenek Dvorak 
        PR rtl-optimization/26254
        PR rtl-optimization/26254
        * loop-invariant.c (seq_insns_valid_p): New function.
        * loop-invariant.c (seq_insns_valid_p): New function.
        (move_invariant_reg): Only emit new code if it is valid.
        (move_invariant_reg): Only emit new code if it is valid.
2006-03-13  Zdenek Dvorak 
2006-03-13  Zdenek Dvorak 
        * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
        * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
        Removed.
        Removed.
        (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
        (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
        (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
        (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
        (commit_one_edge_insertion): Do not look for loop notes.
        (commit_one_edge_insertion): Do not look for loop notes.
2006-03-13  Zdenek Dvorak 
2006-03-13  Zdenek Dvorak 
        * jump.c (follow_jumps): Do not check for loop notes.  Move check for
        * jump.c (follow_jumps): Do not check for loop notes.  Move check for
        flag_test_coverage out of loop.
        flag_test_coverage out of loop.
2006-03-13  Zdenek Dvorak 
2006-03-13  Zdenek Dvorak 
        * final.c (shorten_branches): Remove outdated comment, and turn
        * final.c (shorten_branches): Remove outdated comment, and turn
        the if branch that guards it to continue.
        the if branch that guards it to continue.
2006-03-13  Zdenek Dvorak 
2006-03-13  Zdenek Dvorak 
        * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
        * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
        * cfgloop.h (struct loop): Remove unused fields.
        * cfgloop.h (struct loop): Remove unused fields.
2006-03-13  Kazu Hirata  
2006-03-13  Kazu Hirata  
        * doc/invoke.texi (-fdump-rtl-loop): Remove.
        * doc/invoke.texi (-fdump-rtl-loop): Remove.
        (-dL, -fdump-rtl-loop2): Update the dump file names
        (-dL, -fdump-rtl-loop2): Update the dump file names
        * doc/invoke.texi: Update dump file names.
        * doc/invoke.texi: Update dump file names.
2006-03-12  Steven Bosscher  
2006-03-12  Steven Bosscher  
        * predict.c (estimate_probability): Remove.
        * predict.c (estimate_probability): Remove.
        * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
        * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
        * basic-block.h (estimate_probability): Remove prototype.
        * basic-block.h (estimate_probability): Remove prototype.
        * passes.c (finish_optimization_passes): Dump branch prediction or
        * passes.c (finish_optimization_passes): Dump branch prediction or
        profiling heuristics to the .profile tree dump.
        profiling heuristics to the .profile tree dump.
        (init_optimization_passes): Unqueue pass_branch_prob.
        (init_optimization_passes): Unqueue pass_branch_prob.
        * doc/invoke.texi (-fdump-rtl-bp): Remove.
        * doc/invoke.texi (-fdump-rtl-bp): Remove.
2006-03-11  Steven Bosscher  
2006-03-11  Steven Bosscher  
        * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
        * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
        * rtl.h (LABEL_NEXTREF): Remove field accessor.
        * rtl.h (LABEL_NEXTREF): Remove field accessor.
2006-03-11  Eric Botcazou  
2006-03-11  Eric Botcazou  
        * function.h (frame_offset_overflow): Declare.
        * function.h (frame_offset_overflow): Declare.
        * function.c (frame_offset_overflow): New function.
        * function.c (frame_offset_overflow): New function.
        (assign_stack_local_1): Call it to detect that the offset overflows.
        (assign_stack_local_1): Call it to detect that the offset overflows.
        * cfgexpand.c (alloc_stack_frame_space): Likewise.
        * cfgexpand.c (alloc_stack_frame_space): Likewise.
2006-03-11  Steven Bosscher  
2006-03-11  Steven Bosscher  
        * config/sh/sh.c: Include alloc-pool.h.
        * config/sh/sh.c: Include alloc-pool.h.
        (label_ref_list_pool): New alloc pool.
        (label_ref_list_pool): New alloc pool.
        (label_ref_list_t): New type for lists of labels.
        (label_ref_list_t): New type for lists of labels.
        (struct pool_node): Make wend a label_ref_list_t.
        (struct pool_node): Make wend a label_ref_list_t.
        (add_constant): Use the new type, eradicate LABEL_NEXTREF
        (add_constant): Use the new type, eradicate LABEL_NEXTREF
        references.
        references.
        (dump_table): Likewise.
        (dump_table): Likewise.
        (sh_reorg): Set up the alloc pool before using add_constant and
        (sh_reorg): Set up the alloc pool before using add_constant and
        dump_table, and destroy it when finishing.
        dump_table, and destroy it when finishing.
2006-03-11  Richard Sandiford  
2006-03-11  Richard Sandiford  
        * config/mips/mips.c: Remove redundant comment.
        * config/mips/mips.c: Remove redundant comment.
2006-03-10  Jason Merrill  
2006-03-10  Jason Merrill  
        PR c/26004
        PR c/26004
        * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
        * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
        the target was declared 'register'.
        the target was declared 'register'.
2006-03-10  Adam Nemet  
2006-03-10  Adam Nemet  
        * genpreds.c (write_insn_constraint_len): Change definition of
        * genpreds.c (write_insn_constraint_len): Change definition of
        insn_constraint_len to return size_t to match the declaration.
        insn_constraint_len to return size_t to match the declaration.
2006-03-10  DJ Delorie  
2006-03-10  DJ Delorie  
        * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
        * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
        start at zero.
        start at zero.
        (m32c_expand_insv): Fix test for an AND mask.
        (m32c_expand_insv): Fix test for an AND mask.
2006-03-10  Richard Guenther  
2006-03-10  Richard Guenther  
        PR middle-end/26565
        PR middle-end/26565
        * builtins.c (get_pointer_alignment): Handle component
        * builtins.c (get_pointer_alignment): Handle component
        references for field alignment.
        references for field alignment.
2006-03-10  J"orn Rennecke 
2006-03-10  J"orn Rennecke 
        * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
        * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
        when building with libgloss.
        when building with libgloss.
        (sh*elf): Implement --without-fp option.
        (sh*elf): Implement --without-fp option.
        (sh64-superh-linux*): Don't multilib.
        (sh64-superh-linux*): Don't multilib.
2006-03-10  J"orn Rennecke 
2006-03-10  J"orn Rennecke 
        * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
        * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
2006-03-09  Andrew Pinski  
2006-03-09  Andrew Pinski  
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
        Set it when one of the replacement functions returned true.
        Set it when one of the replacement functions returned true.
        Return TODO_cleanup_cfg if cfgchanged is true.
        Return TODO_cleanup_cfg if cfgchanged is true.
        (pass_phiopt) : Remove TODO_cleanup_cfg.
        (pass_phiopt) : Remove TODO_cleanup_cfg.
2006-03-09  Adam Nemet  
2006-03-09  Adam Nemet  
        * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
        * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
        instead of gen_lowpart.
        instead of gen_lowpart.
2006-03-09  Richard Sandiford  
2006-03-09  Richard Sandiford  
        * config/mips/mips-protos.h (mips_output_conditional_branch): Change
        * config/mips/mips-protos.h (mips_output_conditional_branch): Change
        interface.
        interface.
        (mips_output_order_conditional_branch): Declare.
        (mips_output_order_conditional_branch): Declare.
        * config/mips/mips.h (MIPS_BRANCH): New macro.
        * config/mips/mips.h (MIPS_BRANCH): New macro.
        * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
        * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
        for the comparison.  Use gen_condjump.
        for the comparison.  Use gen_condjump.
        (mips_output_conditional_branch): Rework interface to take the
        (mips_output_conditional_branch): Rework interface to take the
        asm templates for a direct branch and the inverse of a direct branch.
        asm templates for a direct branch and the inverse of a direct branch.
        (mips_output_order_conditional_branch): New function.
        (mips_output_order_conditional_branch): New function.
        (mips_builtin_branch_and_move): New function.
        (mips_builtin_branch_and_move): New function.
        (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
        (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
        branch condition.  Use gen_single_cc as the condition for
        branch condition.  Use gen_single_cc as the condition for
        __builtin_mips_upper_* or __builtin_mips_lower_*.
        __builtin_mips_upper_* or __builtin_mips_lower_*.
        (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
        (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
        Use VOIDmode for the branch condition.
        Use VOIDmode for the branch condition.
        * config/mips/predicates.md (order_operator): New predicate.
        * config/mips/predicates.md (order_operator): New predicate.
        * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
        * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
        (branch_fp): Rename to...
        (branch_fp): Rename to...
        (*branch_fp): ...this.  Remove mode from comparison operator.
        (*branch_fp): ...this.  Remove mode from comparison operator.
        Use new mips_output_conditional_branch interface.
        Use new mips_output_conditional_branch interface.
        (branch_fp_inverted): Rename to...
        (branch_fp_inverted): Rename to...
        (*branch_fp_inverted): ...this and update as for *branch_fp.
        (*branch_fp_inverted): ...this and update as for *branch_fp.
        (*branch_zero): Rename to...
        (*branch_zero): Rename to...
        (*branch_order): ...this.  Remove mode from comparison operator.
        (*branch_order): ...this.  Remove mode from comparison operator.
        Use mips_output_order_conditional_branch.  Only accept ordered
        Use mips_output_order_conditional_branch.  Only accept ordered
        comparisons.
        comparisons.
        (*branch_zero_inverted): Rename to...
        (*branch_zero_inverted): Rename to...
        (*branch_order_inverted): ...this and update as for
        (*branch_order_inverted): ...this and update as for
        *branch_order.
        *branch_order.
        (*branch_equality): Accept zero as the second operand to
        (*branch_equality): Accept zero as the second operand to
        the equality operator.  Use the new mips_output_conditional_branch
        the equality operator.  Use the new mips_output_conditional_branch
        interface.
        interface.
        (*branch_equality_inverted): Likewise.
        (*branch_equality_inverted): Likewise.
        (condjump): New expander.
        (condjump): New expander.
        * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
        * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
        operator.
        operator.
        * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
        * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
        (bc1any2t, bc1any2f): Likewise.
        (bc1any2t, bc1any2f): Likewise.
        (single_cc): New expander.
        (single_cc): New expander.
        (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
        (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2006-03-09  Richard Sandiford  
2006-03-09  Richard Sandiford  
        * doc/md.texi: Update documentation of MIPS constraints.
        * doc/md.texi: Update documentation of MIPS constraints.
        * config/mips/constraints.md: New file.
        * config/mips/constraints.md: New file.
        * config/mips/mips.md: Include it.
        * config/mips/mips.md: Include it.
        * config/mips/mips.c (mips_char_to_class): Delete.
        * config/mips/mips.c (mips_char_to_class): Delete.
        (override_options): Don't initialize mips_char_to_class.
        (override_options): Don't initialize mips_char_to_class.
        * config/mips/mips.h (mips_char_to_class): Delete.
        * config/mips/mips.h (mips_char_to_class): Delete.
        (REG_CLASS_FROM_LETTER): Delete.
        (REG_CLASS_FROM_LETTER): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
        (EXTRA_CONSTRAINT_Y): Delete.
        (EXTRA_CONSTRAINT_Y): Delete.
        (EXTRA_CONSTRAINT_STR): Delete.
        (EXTRA_CONSTRAINT_STR): Delete.
        (CONSTRAINT_LEN): Delete.
        (CONSTRAINT_LEN): Delete.
        (EXTRA_MEMORY_CONSTRAINT): Delete.
        (EXTRA_MEMORY_CONSTRAINT): Delete.
2006-03-09  Diego Novillo  
2006-03-09  Diego Novillo  
        * tree-cfg.c (move_block_to_fn): Remove the statements from the
        * tree-cfg.c (move_block_to_fn): Remove the statements from the
        original fn's eh regions.
        original fn's eh regions.
2006-03-09  Eric Botcazou  
2006-03-09  Eric Botcazou  
        * fold-const.c (build_range_check): Make sure to use a valid type to
        * fold-const.c (build_range_check): Make sure to use a valid type to
        apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
        apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
        transformation.
        transformation.
        (range_predecessor): New static function.
        (range_predecessor): New static function.
        (range_successor): Likewise.
        (range_successor): Likewise.
        (merge_ranges): Use them to compute predecessors and successors of
        (merge_ranges): Use them to compute predecessors and successors of
        range bounds.
        range bounds.
2006-03-09  Roger Sayle  
2006-03-09  Roger Sayle  
        PR middle-end/26561
        PR middle-end/26561
        * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
        * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
        X op C3, consider whether C3 overflows towards +Inf or -Inf.
        X op C3, consider whether C3 overflows towards +Inf or -Inf.
2006-03-08  DJ Delorie  
2006-03-08  DJ Delorie  
        * config/m32c/addsub.md (addqi3): Disparage a0/a1.
        * config/m32c/addsub.md (addqi3): Disparage a0/a1.
        (addpsi3): Expand to include memory operands.  Remove
        (addpsi3): Expand to include memory operands.  Remove
        reload-specific splits.
        reload-specific splits.
        * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
        * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
        (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
        (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
        (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
        (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
        (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
        (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
        (shift1_qi, shift1_hi, insv): New.
        (shift1_qi, shift1_hi, insv): New.
        * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
        * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
        (cbranch4, stzx_16, stzx_24_, stzx_reversed,
        (cbranch4, stzx_16, stzx_24_, stzx_reversed,
        cmp, b, s, s_24, movqicc, movhicc,
        cmp, b, s, s_24, movqicc, movhicc,
        cond_to_int): New.
        cond_to_int): New.
        * config/m32c/m32c-protos.h: Update as needed.
        * config/m32c/m32c-protos.h: Update as needed.
        * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
        * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
        default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
        default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
        Fail for unrecognized R* constraints.
        Fail for unrecognized R* constraints.
        (m32c_cannot_change_mode_class): Be more picky about pseudos.
        (m32c_cannot_change_mode_class): Be more picky about pseudos.
        (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
        (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
        (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
        (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
        Add Sp constraint.
        Add Sp constraint.
        (m32c_init_libfuncs): New.
        (m32c_init_libfuncs): New.
        (m32c_legitimate_address_p): Add debug wrapper.
        (m32c_legitimate_address_p): Add debug wrapper.
        (m32c_rtx_costs): New.
        (m32c_rtx_costs): New.
        (m32c_address_cost): New.
        (m32c_address_cost): New.
        (conversions): Add 'B' prefix.
        (conversions): Add 'B' prefix.
        (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
        (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
        operands, or word regnames for QI operands.  'B' prints bit
        operands, or word regnames for QI operands.  'B' prints bit
        position.
        position.
        (m32c_expand_setmemhi): New.
        (m32c_expand_setmemhi): New.
        (m32c_expand_movmemhi): New.
        (m32c_expand_movmemhi): New.
        (m32c_expand_movstr): New.
        (m32c_expand_movstr): New.
        (m32c_expand_cmpstr): New.
        (m32c_expand_cmpstr): New.
        (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
        (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
        (m32c_expand_neg_mulpsi3): Handle non-ints.
        (m32c_expand_neg_mulpsi3): Handle non-ints.
        (m32c_cmp_flg_0): New.
        (m32c_cmp_flg_0): New.
        (m32c_expand_movcc): New.
        (m32c_expand_movcc): New.
        (m32c_expand_insv): New.
        (m32c_expand_insv): New.
        (m32c_scc_pattern): New.
        (m32c_scc_pattern): New.
        * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
        * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
        a0/a1 out of SIregs.
        a0/a1 out of SIregs.
        (STORE_FLAG_VALUE): New.
        (STORE_FLAG_VALUE): New.
        * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
        * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
        code macros.
        code macros.
        (no_insn): New.
        (no_insn): New.
        * config/m32c/mov.md: Make constraints more liberal.
        * config/m32c/mov.md: Make constraints more liberal.
        (zero_extendqihi2): Optimize r0/r1 case.
        (zero_extendqihi2): Optimize r0/r1 case.
        * config/m32c/muldiv.md (mulpsi3): Check for intvals.
        * config/m32c/muldiv.md (mulpsi3): Check for intvals.
        * config/m32c/predicates.md (m32c_any_operand): New.
        * config/m32c/predicates.md (m32c_any_operand): New.
        (m32c_nonimmediate_operand): New.
        (m32c_nonimmediate_operand): New.
        (m32c_hl_operand): New.
        (m32c_hl_operand): New.
        (m32c_r3_operand): New.
        (m32c_r3_operand): New.
        (ap_operand): New.
        (ap_operand): New.
        (ma_operand): New.
        (ma_operand): New.
        (memsym_operand): New.
        (memsym_operand): New.
        (memimmed_operand): New.
        (memimmed_operand): New.
        (a_qi_operand): New.
        (a_qi_operand): New.
        (m32c_eqne_operator): New.
        (m32c_eqne_operator): New.
        (m32c_1bit8_operand): New.
        (m32c_1bit8_operand): New.
        (m32c_1bit16_operand): New.
        (m32c_1bit16_operand): New.
        (m32c_1mask8_operand): New.
        (m32c_1mask8_operand): New.
        (m32c_1mask16_operand): New.
        (m32c_1mask16_operand): New.
        * config/m32c/blkmov.md: New file.
        * config/m32c/blkmov.md: New file.
        * config/m32c/t-m32c (MD_FILES): Add blkmov.
        * config/m32c/t-m32c (MD_FILES): Add blkmov.
2006-03-08  Andreas Tobler  
2006-03-08  Andreas Tobler  
        * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
        * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
        unsigned to fix signed/unsigned comparison issue in
        unsigned to fix signed/unsigned comparison issue in
        DWARF2_FRAME_REG_OUT.
        DWARF2_FRAME_REG_OUT.
        (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
        (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
        unsigned comparison issue in DWARF2_FRAME_REG_OUT.
        unsigned comparison issue in DWARF2_FRAME_REG_OUT.
        * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
        * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
        of ptr into the ENABLE_CHECKING section.
        of ptr into the ENABLE_CHECKING section.
2006-03-08  Jeff Law  
2006-03-08  Jeff Law  
        * tree-vrp.c (infer_value_range): Only count pointer uses
        * tree-vrp.c (infer_value_range): Only count pointer uses
        and dereferences if -fdelete-null-pointer-checks is enabled.
        and dereferences if -fdelete-null-pointer-checks is enabled.
        * tree-vrp.c (find_assert_locations): Infer value ranges for
        * tree-vrp.c (find_assert_locations): Infer value ranges for
        single use pointers, but do not create ASSERT_EXPRs for them.
        single use pointers, but do not create ASSERT_EXPRs for them.
        When a non-null range is inferred for a pointer, backwards
        When a non-null range is inferred for a pointer, backwards
        propagate that range to other equivalent pointers through the
        propagate that range to other equivalent pointers through the
        use-def chain.
        use-def chain.
2006-03-08  Paolo Bonzini  
2006-03-08  Paolo Bonzini  
        PR bootstrap/26500
        PR bootstrap/26500
        * Makefile.in (dvi, html, install-info): Invoke the corresponding
        * Makefile.in (dvi, html, install-info): Invoke the corresponding
        language hook targets.
        language hook targets.
        * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
        * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
        objcp/Make-lang.in: Create stub rules for dvi, html, install-info
        objcp/Make-lang.in: Create stub rules for dvi, html, install-info
        if language hook targets were missing.
        if language hook targets were missing.
2006-03-07  Zdenek Dvorak 
2006-03-07  Zdenek Dvorak 
        * tree-ssa-opfinalize.h: Removed.
        * tree-ssa-opfinalize.h: Removed.
        * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
        * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
        dependency.
        dependency.
        * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
        * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
        (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
        (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
        INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
        INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
        add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
        add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
        finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
        finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
        finalize_ssa_v_must_def_ops): New.
        finalize_ssa_v_must_def_ops): New.
2006-03-07  Kenneth Zadeck 
2006-03-07  Kenneth Zadeck 
        * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
        * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
        block as parameter.
        block as parameter.
2006-03-07  Geoffrey Keating  
2006-03-07  Geoffrey Keating  
        * varasm.c (assemble_end_function): Say that 'fnname' is unused.
        * varasm.c (assemble_end_function): Say that 'fnname' is unused.
        * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
        * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
        addresses with offsets; reorganize.
        addresses with offsets; reorganize.
        * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
        * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
        (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
        (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
        (expand_builtin_init_dwarf_reg_sizes): Likewise.
        (expand_builtin_init_dwarf_reg_sizes): Likewise.
2006-03-08  David Billinghurst 
2006-03-08  David Billinghurst 
        PR target/26588
        PR target/26588
        * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
        * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2006-03-08  Ben Elliston  
2006-03-08  Ben Elliston  
        * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
        * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2006-03-07  Aldy Hernandez  
2006-03-07  Aldy Hernandez  
        PR gomp/26238
        PR gomp/26238
        * doc/passes.texi (Tree-SSA passes): Document omp lowering and
        * doc/passes.texi (Tree-SSA passes): Document omp lowering and
        expansion.
        expansion.
2006-03-07  Richard Guenther  
2006-03-07  Richard Guenther  
        PR tree-optimization/26587
        PR tree-optimization/26587
        * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
        * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2006-03-07  Richard Sandiford  
2006-03-07  Richard Sandiford  
        * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
        * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2006-03-07  Richard Sandiford  
2006-03-07  Richard Sandiford  
        * hooks.c (hook_bool_mode_rtx_true): New function.
        * hooks.c (hook_bool_mode_rtx_true): New function.
        * hooks.h (hook_bool_mode_rtx_true): Declare.
        * hooks.h (hook_bool_mode_rtx_true): Declare.
        * toplev.c (compile_file): Call output_shared_constant_pool.
        * toplev.c (compile_file): Call output_shared_constant_pool.
        * varasm.c (shared_constant_pool): New variable.
        * varasm.c (shared_constant_pool): New variable.
        (assemble_start_function, assemble_end_function): Remove arguments
        (assemble_start_function, assemble_end_function): Remove arguments
        from call to output_constant_pool.
        from call to output_constant_pool.
        (create_constant_pool): New function, split out from...
        (create_constant_pool): New function, split out from...
        (init_varasm_status): ...here.
        (init_varasm_status): ...here.
        (force_const_mem): Choose between the shared and per-function constant
        (force_const_mem): Choose between the shared and per-function constant
        pools.  Set current_function_uses_const_pool when reusing old entries
        pools.  Set current_function_uses_const_pool when reusing old entries
        as well as when creating new ones.
        as well as when creating new ones.
        (mark_constant): Ignore data argument.
        (mark_constant): Ignore data argument.
        (mark_constants): Remove pool argument.
        (mark_constants): Remove pool argument.
        (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
        (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
        to decide whether the function uses a constant pool.
        to decide whether the function uses a constant pool.
        (output_constant_pool_contents): New function, split out from...
        (output_constant_pool_contents): New function, split out from...
        (output_constant_pool): ...here.
        (output_constant_pool): ...here.
        (output_shared_constant_pool): New function.
        (output_shared_constant_pool): New function.
        (init_varasm_once): Initialize shared_constant_pool.
        (init_varasm_once): Initialize shared_constant_pool.
        * output.h (output_constant_pool): Delete.
        * output.h (output_constant_pool): Delete.
        (output_shared_constant_pool): Declare.
        (output_shared_constant_pool): Declare.
        * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
        * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
        * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
        * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
2006-03-06  Nick Clifton  
2006-03-06  Nick Clifton  
        * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
        * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
        flag_strength_reduce.
        flag_strength_reduce.
2006-03-06  Ben Elliston  
2006-03-06  Ben Elliston  
        * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
        * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
        x86_64-*-linux* configurations.
        x86_64-*-linux* configurations.
        * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
        * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
        (LIBGCC2_WORDS_BIG_ENDIAN): Define.
        (LIBGCC2_WORDS_BIG_ENDIAN): Define.
2006-03-05  Kazu Hirata  
2006-03-05  Kazu Hirata  
        * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
        * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
        Remove.
        Remove.
        * basic-block.h: Remove the extern for
        * basic-block.h: Remove the extern for
        rediscover_loops_after_threading.
        rediscover_loops_after_threading.
        * cfgloop.c (cancel_loop): Make it static.
        * cfgloop.c (cancel_loop): Make it static.
        * cfgloop.h: Remove the prototype for cancel_loop.
        * cfgloop.h: Remove the prototype for cancel_loop.
        * flow.c (recompute_reg_usage): Make it static.
        * flow.c (recompute_reg_usage): Make it static.
        * rtl.h: Remove the prototype for recompute_reg_usage.
        * rtl.h: Remove the prototype for recompute_reg_usage.
        * function.c (use_return_register): Make it static.
        * function.c (use_return_register): Make it static.
        * function.h: Remove the prototype.
        * function.h: Remove the prototype.
2006-03-05  Kazu Hirata  
2006-03-05  Kazu Hirata  
        * recog.c (volatile_mem_p, validate_change_maybe_volatile):
        * recog.c (volatile_mem_p, validate_change_maybe_volatile):
        Remove.
        Remove.
        * recog.h: Remove the prototype for
        * recog.h: Remove the prototype for
        validate_change_maybe_volatile.
        validate_change_maybe_volatile.
2006-03-05  Kazu Hirata  
2006-03-05  Kazu Hirata  
        * rtlanal.c (replace_reg): Remove.
        * rtlanal.c (replace_reg): Remove.
        * rtl.h: Remove the prototype for replace_reg.
        * rtl.h: Remove the prototype for replace_reg.
2006-03-05  Kazu Hirata  
2006-03-05  Kazu Hirata  
        * regclass.c (reg_scan_update): Remove.
        * regclass.c (reg_scan_update): Remove.
        (reg_scan_mark_refs): Remove the last argument.
        (reg_scan_mark_refs): Remove the last argument.
        * rtl.h: Remove the prototype for reg_scan_update.
        * rtl.h: Remove the prototype for reg_scan_update.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
        * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
        combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
        combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
        config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
        config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
        config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
        config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
        df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
        df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
        loop-invariant.c, omp-low.c, opts.c, passes.c,
        loop-invariant.c, omp-low.c, opts.c, passes.c,
        rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
        rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
        tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
        tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
        tree-ssa-structalias.c, tree-ssa-threadedge.c,
        tree-ssa-structalias.c, tree-ssa-threadedge.c,
        tree-ssa-threadupdate.c, tree-vect-patterns.c,
        tree-ssa-threadupdate.c, tree-vect-patterns.c,
        tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
        tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
        unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
        unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
        * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
        * dwarf2out.h: Remove the prototype for
        * dwarf2out.h: Remove the prototype for
        dwarf2out_add_library_unit_info.
        dwarf2out_add_library_unit_info.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * tree.c (add_var_to_bind_expr): Remove.
        * tree.c (add_var_to_bind_expr): Remove.
        * tree.h: Remove the prototype for add_var_to_bind_expr.
        * tree.h: Remove the prototype for add_var_to_bind_expr.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * regclass.c (n_non_fixed_regs): Remove.
        * regclass.c (n_non_fixed_regs): Remove.
        (init_reg_sets_1, globalize_reg): Remove all uses of
        (init_reg_sets_1, globalize_reg): Remove all uses of
        n_non_fixed_regs.
        n_non_fixed_regs.
        * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
        * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * rtlanal.c (insns_safe_to_move_p): Remove.
        * rtlanal.c (insns_safe_to_move_p): Remove.
        * rtl.h: Remove the prototype for insns_safe_to_move_p.
        * rtl.h: Remove the prototype for insns_safe_to_move_p.
2006-03-04  Kazu Hirata  
2006-03-04  Kazu Hirata  
        * expmed.c (expand_mult_add): Remove.
        * expmed.c (expand_mult_add): Remove.
        * expr.h: Remove the prototype for expand_mult_add.
        * expr.h: Remove the prototype for expand_mult_add.
2006-03-04  Jakub Jelinek  
2006-03-04  Jakub Jelinek  
        * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
        * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
        and REG_SAVED_VAL_EXP constants.
        and REG_SAVED_VAL_EXP constants.
        * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
        * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
        (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
        (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
        Handle regs stored by value.
        Handle regs stored by value.
        (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
        (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
        (execute_cfa_program): Handle DW_CFA_val_offset,
        (execute_cfa_program): Handle DW_CFA_val_offset,
        DW_CFA_val_offset_sf and DW_CFA_val_expression.
        DW_CFA_val_offset_sf and DW_CFA_val_expression.
        (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
        (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
        value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
        value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
        (uw_install_context_1): Handle target regs stored by value.
        (uw_install_context_1): Handle target regs stored by value.
2006-03-03  Daniel Berlin  
2006-03-03  Daniel Berlin  
        * tree-sra.c (tree_sra): Return todoflags;
        * tree-sra.c (tree_sra): Return todoflags;
        (generate_one_element): Set TODO_update_smt_usage if needed.
        (generate_one_element): Set TODO_update_smt_usage if needed.
        (pass_sra): Remove TODO_update_smt_usage.
        (pass_sra): Remove TODO_update_smt_usage.
        * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
        * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
        parameter.
        parameter.
        (tree_ssa_forward_propagate_single_use_vars): Return
        (tree_ssa_forward_propagate_single_use_vars): Return
        TODO_update_smt_usage if we need to update SMT usage.
        TODO_update_smt_usage if we need to update SMT usage.
        (pass_forwprop): Remove TODO_update_smt_usage.
        (pass_forwprop): Remove TODO_update_smt_usage.
2006-03-03  Diego Novillo  
2006-03-03  Diego Novillo  
        * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
        * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
        (correct_use_link): Remove reference to get_stmt_operands.
        (correct_use_link): Remove reference to get_stmt_operands.
        (update_stmt_operands): Likewise.
        (update_stmt_operands): Likewise.
        (get_modify_expr_operands): New function factored out of
        (get_modify_expr_operands): New function factored out of
        parse_ssa_operands and get_expr_operands.
        parse_ssa_operands and get_expr_operands.
        Try to create V_MUST_DEFs for LHS by default.
        Try to create V_MUST_DEFs for LHS by default.
        (get_expr_operands) : Call
        (get_expr_operands) : Call
        get_modify_expr_operands.
        get_modify_expr_operands.
        : Handle together with ARRAY_REF.
        : Handle together with ARRAY_REF.
        : Clear opf_kill_def from FLAGS.
        : Clear opf_kill_def from FLAGS.
        (parse_ssa_operands) : Call
        (parse_ssa_operands) : Call
        get_modify_expr_operands.
        get_modify_expr_operands.
2006-03-03  Kazu Hirata  
2006-03-03  Kazu Hirata  
        * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
        * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
        * tree-flow.h: Remove the prototype for
        * tree-flow.h: Remove the prototype for
        referenced_var_lookup_if_exists.
        referenced_var_lookup_if_exists.
2006-03-03  Steve Ellcey  
2006-03-03  Steve Ellcey  
        PR rtl-optimization/26345
        PR rtl-optimization/26345
        PR target/19061
        PR target/19061
        * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
        * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
2006-03-03  Roger Sayle  
2006-03-03  Roger Sayle  
        PR tree-optimization/26524
        PR tree-optimization/26524
        * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
        * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
        fold_convert to create a constant of the appropriate type.
        fold_convert to create a constant of the appropriate type.
2006-03-03  Richard Sandiford  
2006-03-03  Richard Sandiford  
        * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        SYMBOL_REF_IN_BLOCK_P.
        SYMBOL_REF_IN_BLOCK_P.
        * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
        * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
        of SYMBOL_FLAG_IN_BLOCK.
        of SYMBOL_FLAG_IN_BLOCK.
        * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
        * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
        instead of SYMBOL_REF_IN_BLOCK_P.
        instead of SYMBOL_REF_IN_BLOCK_P.
        * explow.c (use_anchored_address): Likewise.
        * explow.c (use_anchored_address): Likewise.
        * rtl.c (rtx_size): Likewise.
        * rtl.c (rtx_size): Likewise.
        * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
        * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
        instead of SYMBOL_FLAG_IN_BLOCK.
        instead of SYMBOL_FLAG_IN_BLOCK.
        (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        SYMBOL_REF_IN_BLOCK_P.
        SYMBOL_REF_IN_BLOCK_P.
        (assemble_variable): Likewise.
        (assemble_variable): Likewise.
        (output_constant_def_contents): Likewise.
        (output_constant_def_contents): Likewise.
        (output_constant_pool): Likewise.
        (output_constant_pool): Likewise.
        (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
        (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
        instead of SYMBOL_FLAG_IN_BLOCK.
        instead of SYMBOL_FLAG_IN_BLOCK.
        * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        SYMBOL_REF_IN_BLOCK_P.
        SYMBOL_REF_IN_BLOCK_P.
        (SYMBOL_REF_BLOCK): Likewise.
        (SYMBOL_REF_BLOCK): Likewise.
        (SYMBOL_REF_OFFSET): Likewise.
        (SYMBOL_REF_OFFSET): Likewise.
        (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
        SYMBOL_REF_IN_BLOCK_P.
        SYMBOL_REF_IN_BLOCK_P.
        (SYMBOL_FLAG_IN_BLOCK): Replace with...
        (SYMBOL_FLAG_IN_BLOCK): Replace with...
        (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
        (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
        (SYMBOL_REF_IN_BLOCK_P): Replace with...
        (SYMBOL_REF_IN_BLOCK_P): Replace with...
        (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
        (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
2006-03-03  Jakub Jelinek  
2006-03-03  Jakub Jelinek  
        * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
        * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
2006-03-02  Roger Sayle  
2006-03-02  Roger Sayle  
        * simplify-rtx.c (simplify_unary_operation): When simplifying
        * simplify-rtx.c (simplify_unary_operation): When simplifying
        (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
        (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
        that we perform the right shift in the appropriate mode, and
        that we perform the right shift in the appropriate mode, and
        then extend or truncate the result to requested mode.
        then extend or truncate the result to requested mode.
2006-03-03  Zdenek Dvorak 
2006-03-03  Zdenek Dvorak 
        * gengtype.c (main): Handle double_int type.
        * gengtype.c (main): Handle double_int type.
        * tree.h (struct tree_int_cst): Make type of int_cst double_int.
        * tree.h (struct tree_int_cst): Make type of int_cst double_int.
        * double-int.c: New file.
        * double-int.c: New file.
        * double-int.h: New file.
        * double-int.h: New file.
        * system.h: Include doubleint.h.
        * system.h: Include doubleint.h.
        * Makefile.in (SYSTEM_H): Include double-int.h.
        * Makefile.in (SYSTEM_H): Include double-int.h.
        (double-int.o): Add.
        (double-int.o): Add.
2006-03-03  Joseph S. Myers  
2006-03-03  Joseph S. Myers  
        PR bootstrap/26478
        PR bootstrap/26478
        * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
        * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
        copying over it.
        copying over it.
2006-03-02  Zdenek Dvorak 
2006-03-02  Zdenek Dvorak 
        * tree-vrp.c (remove_range_assertions): Do not update statements
        * tree-vrp.c (remove_range_assertions): Do not update statements
        unnecessarily.
        unnecessarily.
2006-03-02  Zdenek Dvorak 
2006-03-02  Zdenek Dvorak 
        * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
        * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
        cleanup.
        cleanup.
        * gcse.c (rest_of_handle_gcse): Ditto.
        * gcse.c (rest_of_handle_gcse): Ditto.
        * except.c (gate_handle_eh): Ditto.
        * except.c (gate_handle_eh): Ditto.
        * cfgcleanup.c (rest_of_handle_jump2): Ditto.
        * cfgcleanup.c (rest_of_handle_jump2): Ditto.
        * basic-block.h (CLEANUP_PRE_LOOP): Remove.
        * basic-block.h (CLEANUP_PRE_LOOP): Remove.
2006-03-02  Eric Christopher  
2006-03-02  Eric Christopher  
        * config/i386/i386.c (machopic_output_stub): Add indirection to
        * config/i386/i386.c (machopic_output_stub): Add indirection to
        jump.
        jump.
2006-03-02  Zdenek Dvorak 
2006-03-02  Zdenek Dvorak 
        * loop.c: Removed.
        * loop.c: Removed.
2006-03-02  David S. Miller  
2006-03-02  David S. Miller  
        Sun Niagara specific optimizations.
        Sun Niagara specific optimizations.
        * config.gcc: Recognize niagara as target.
        * config.gcc: Recognize niagara as target.
        * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
        * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
        (TARGET_CPU_niagara): Define.
        (TARGET_CPU_niagara): Define.
        (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
        (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
        (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
        (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
        (CPP_CPU_SPEC): Handle -mcpu=niagara.
        (CPP_CPU_SPEC): Handle -mcpu=niagara.
        (ASM_CPU_SPEC): Likewise.
        (ASM_CPU_SPEC): Likewise.
        (PROCESSOR_NIAGARA): New enum entry.
        (PROCESSOR_NIAGARA): New enum entry.
        (REGISTER_MOVE_COST): Handle Niagara.
        (REGISTER_MOVE_COST): Handle Niagara.
        (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
        (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
        * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
        * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
        (sparc_override_options): Recognize "niagara", set appropriate
        (sparc_override_options): Recognize "niagara", set appropriate
        default MASK_* values for it, and align functions to 32-bytes
        default MASK_* values for it, and align functions to 32-bytes
        by default just like ULTRASPARC/ULTRASPARC3.
        by default just like ULTRASPARC/ULTRASPARC3.
        (sparc_initialize_trampoline): Handle niagara like ultrasparc.
        (sparc_initialize_trampoline): Handle niagara like ultrasparc.
        (sparc64_initialize_trampoline): Likewise.
        (sparc64_initialize_trampoline): Likewise.
        (sparc_use_sched_lookahead): Use zero for niagara.
        (sparc_use_sched_lookahead): Use zero for niagara.
        (sparc_issue_rate): Use one for niagara.
        (sparc_issue_rate): Use one for niagara.
        * config/sparc/niagara.md: New file.
        * config/sparc/niagara.md: New file.
        * config/sparc/sparc.md: Include it.
        * config/sparc/sparc.md: Include it.
        * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
        * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
        ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
        ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
        when default cpu is niagara.
        when default cpu is niagara.
        (CPP_CPU_SPEC): Handle -mcpu=niagara.
        (CPP_CPU_SPEC): Handle -mcpu=niagara.
        (ASM_CPU_SPEC): Likewise.
        (ASM_CPU_SPEC): Likewise.
        * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
        * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
        when default cpu is niagara.
        when default cpu is niagara.
        (ASM_CPU_SPEC): Handle -mcpu=niagara.
        (ASM_CPU_SPEC): Handle -mcpu=niagara.
        * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
        * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
        just like v9/ultrasparc/ultrasparc3.
        just like v9/ultrasparc/ultrasparc3.
        * doc/invoke.texi: Add documentation for "niagara" and improve
        * doc/invoke.texi: Add documentation for "niagara" and improve
        existing documentation for ultrasparc variants.
        existing documentation for ultrasparc variants.
2006-03-02  Diego Novillo  
2006-03-02  Diego Novillo  
        * tree-ssa-operands.c (update_stmt_operands): Update documentation.
        * tree-ssa-operands.c (update_stmt_operands): Update documentation.
2006-03-02  Richard Sandiford  
2006-03-02  Richard Sandiford  
        * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
        * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
        (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
        (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
        and say that only one is needed.
        and say that only one is needed.
        * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
        * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
        * target.h (have_switchable_bss_sections): New hook.
        * target.h (have_switchable_bss_sections): New hook.
        * explow.c (use_anchored_address): Check that the symbol is in a block.
        * explow.c (use_anchored_address): Check that the symbol is in a block.
        * varasm.c (tls_comm_section, comm_section, lcomm_section)
        * varasm.c (tls_comm_section, comm_section, lcomm_section)
        (bss_noswitch_section): New variables.
        (bss_noswitch_section): New variables.
        (get_unnamed_section): Add SECTION_UNNAMED to the flags.
        (get_unnamed_section): Add SECTION_UNNAMED to the flags.
        (get_noswitch_section): New function.
        (get_noswitch_section): New function.
        (get_block_for_section): Allow SECT to be null.
        (get_block_for_section): Allow SECT to be null.
        (unlikely_text_section_p): Use SECTION_STYLE.
        (unlikely_text_section_p): Use SECTION_STYLE.
        (bss_initializer_p): New function.
        (bss_initializer_p): New function.
        (get_variable_section): Move earlier in file.  Take a new argument,
        (get_variable_section): Move earlier in file.  Take a new argument,
        prefer_noswitch_p.  Move bss checks from assemble_variable to here.
        prefer_noswitch_p.  Move bss checks from assemble_variable to here.
        Return one of the new *_sections in such cases.
        Return one of the new *_sections in such cases.
        (get_block_for_decl): New function, extracting some logic from
        (get_block_for_decl): New function, extracting some logic from
        use_blocks_for_decl_p.
        use_blocks_for_decl_p.
        (change_symbol_section): Remove in favor of...
        (change_symbol_section): Remove in favor of...
        (change_symbol_block): ...this new function.
        (change_symbol_block): ...this new function.
        (use_blocks_for_decl_p): Remove checks now performed by
        (use_blocks_for_decl_p): Remove checks now performed by
        get_block_for_decl.
        get_block_for_decl.
        (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
        (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
        (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
        (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
        (emit_local, emit_bss, emit_common): ...these new functions.
        (emit_local, emit_bss, emit_common): ...these new functions.
        Return true if the alignment was honored.
        Return true if the alignment was honored.
        (emit_tls_common): New function.
        (emit_tls_common): New function.
        (asm_emit_uninitialised): Delete.
        (asm_emit_uninitialised): Delete.
        (assemble_variable_noswitch): New function, split out from...
        (assemble_variable_noswitch): New function, split out from...
        (assemble_variable): ...here.  Don't make decisions about common
        (assemble_variable): ...here.  Don't make decisions about common
        variables here.  Globalize all public decls that go into non-common
        variables here.  Globalize all public decls that go into non-common
        sections.  Check whether SYMBOL_REF_BLOCK is null.
        sections.  Check whether SYMBOL_REF_BLOCK is null.
        (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
        (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
        (output_constant_pool): Likewise.
        (output_constant_pool): Likewise.
        (init_varasm_once): Initialize the new section variables.
        (init_varasm_once): Initialize the new section variables.
        (have_global_bss_p): New function.
        (have_global_bss_p): New function.
        (categorize_decl_for_section): Use bss_initializer_p.
        (categorize_decl_for_section): Use bss_initializer_p.
        (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
        (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
        (place_block_symbol): Assert that the symbol must be in a block.
        (place_block_symbol): Assert that the symbol must be in a block.
        * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
        * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
        (TARGET_INITIALIZER): Include it.
        (TARGET_INITIALIZER): Include it.
        * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
        * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
        * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
        * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
        (SECTION_MACH_DEP): Bump by two.
        (SECTION_MACH_DEP): Bump by two.
        (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
        (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
        (unnamed_section): Mention SECTION_UNNAMED in comment.
        (unnamed_section): Mention SECTION_UNNAMED in comment.
        (named_section): Likewise SECTION_NAMED.
        (named_section): Likewise SECTION_NAMED.
        (noswitch_section_callback): New type.
        (noswitch_section_callback): New type.
        (noswitch_section): New structure.
        (noswitch_section): New structure.
        (section): Add a noswitch_section alternative.
        (section): Add a noswitch_section alternative.
        (SECTION_STYLE): New macro.
        (SECTION_STYLE): New macro.
        (tls_comm_section, comm_section, lcomm_section): Declare.
        (tls_comm_section, comm_section, lcomm_section): Declare.
        (bss_noswitch_section, have_global_bss_p): Declare.
        (bss_noswitch_section, have_global_bss_p): Declare.
        * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
        * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
        * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
        * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
        Override.
        Override.
        * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
        * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
        * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
        * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
        Override.
        Override.
2006-03-02  Daniel Berlin 
2006-03-02  Daniel Berlin 
        * tree-vrp.c (execute_vrp): Return value.
        * tree-vrp.c (execute_vrp): Return value.
        * regrename.c (rest_of_handle_regrename): Ditto.
        * regrename.c (rest_of_handle_regrename): Ditto.
        * tree-into-ssa.c (rewrite_into_ssa): Ditto.
        * tree-into-ssa.c (rewrite_into_ssa): Ditto.
        * tree-complex.c (tree_lower_complex): Ditto.
        * tree-complex.c (tree_lower_complex): Ditto.
        (tree_lower_complex_O0): Ditto.
        (tree_lower_complex_O0): Ditto.
        * tracer.c (rest_of_handle_tracer): Ditto.
        * tracer.c (rest_of_handle_tracer): Ditto.
        * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
        * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
        * postreload.c (rest_of_handle_postreload): Ditto.
        * postreload.c (rest_of_handle_postreload): Ditto.
        * tree-tailcall.c (execute_tail_recursion): Ditto.
        * tree-tailcall.c (execute_tail_recursion): Ditto.
        (execute_tail_calls): Ditto.
        (execute_tail_calls): Ditto.
        * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
        * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
        * tree.h (init_function_for_compilation): Ditto.
        * tree.h (init_function_for_compilation): Ditto.
        * ipa-cp.c (ipcp_driver): Ditto.
        * ipa-cp.c (ipcp_driver): Ditto.
        * tree-scalar-evolution.c (scev_const_prop): Ditto.
        * tree-scalar-evolution.c (scev_const_prop): Ditto.
        * tree-scalar-evolution.h (scev_const_prop): Ditto.
        * tree-scalar-evolution.h (scev_const_prop): Ditto.
        * final.c (compute_alignments): Ditto.
        * final.c (compute_alignments): Ditto.
        (rest_of_handle_final): Ditto.
        (rest_of_handle_final): Ditto.
        (rest_of_handle_shorten_branches): Ditto.
        (rest_of_handle_shorten_branches): Ditto.
        (rest_of_clean_state): Ditto.
        (rest_of_clean_state): Ditto.
        * omp-low.c (execute_expand_omp): Ditto.
        * omp-low.c (execute_expand_omp): Ditto.
        (execute_lower_omp): Ditto.
        (execute_lower_omp): Ditto.
        * tree-ssa-dse.c (tree_ssa_dse): Ditto.
        * tree-ssa-dse.c (tree_ssa_dse): Ditto.
        * ipa-reference.c (static_execute): Ditto.
        * ipa-reference.c (static_execute): Ditto.
        * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
        * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
        * reorg.c (rest_of_handle_delay_slots): Ditto.
        * reorg.c (rest_of_handle_delay_slots): Ditto.
        (rest_of_handle_machine_reorg): Ditto.
        (rest_of_handle_machine_reorg): Ditto.
        * cgraphunit.c (rebuild_cgraph_edges): Ditto.
        * cgraphunit.c (rebuild_cgraph_edges): Ditto.
        * flow.c (recompute_reg_usage): Ditto.
        * flow.c (recompute_reg_usage): Ditto.
        (rest_of_handle_remove_death_notes): Ditto.
        (rest_of_handle_remove_death_notes): Ditto.
        (rest_of_handle_life): Ditto.
        (rest_of_handle_life): Ditto.
        (rest_of_handle_flow2): Ditto.
        (rest_of_handle_flow2): Ditto.
        * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
        * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
        * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
        * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
        (do_ssa_store_ccp): Ditto.
        (do_ssa_store_ccp): Ditto.
        (execute_fold_all_builtins): Ditto.
        (execute_fold_all_builtins): Ditto.
        * mode-switching.c (rest_of_handle_mode_switching): Ditto.
        * mode-switching.c (rest_of_handle_mode_switching): Ditto.
        * modulo-sched.c (rest_of_handle_sms): Ditto.
        * modulo-sched.c (rest_of_handle_sms): Ditto.
        * ipa-pure-const.c (static_execute): Ditto.
        * ipa-pure-const.c (static_execute): Ditto.
        * cse.c (rest_of_handle_cse): Ditto.
        * cse.c (rest_of_handle_cse): Ditto.
        (rest_of_handle_cse2): Ditto.
        (rest_of_handle_cse2): Ditto.
        * web.c (rest_of_handle_web): Ditto.
        * web.c (rest_of_handle_web): Ditto.
        * tree-stdarg.c (execute_optimize_stdarg): Ditto.
        * tree-stdarg.c (execute_optimize_stdarg): Ditto.
        * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
        * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
        * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
        * tree-nrv.c (tree_nrv): Ditto.
        * tree-nrv.c (tree_nrv): Ditto.
        (execute_return_slot_opt): Ditto.
        (execute_return_slot_opt): Ditto.
        * tree-ssa-alias.c (compute_may_aliases): Ditto.
        * tree-ssa-alias.c (compute_may_aliases): Ditto.
        (create_structure_vars): Ditto.
        (create_structure_vars): Ditto.
        * loop-init.c (rtl_loop_init): Ditto.
        * loop-init.c (rtl_loop_init): Ditto.
        (rtl_loop_done): Ditto.
        (rtl_loop_done): Ditto.
        (rtl_move_loop_invariants): Ditto.
        (rtl_move_loop_invariants): Ditto.
        (rtl_unswitch): Ditto.
        (rtl_unswitch): Ditto.
        (rtl_unroll_and_peel_loops): Ditto.
        (rtl_unroll_and_peel_loops): Ditto.
        (rtl_doloop): Ditto.
        (rtl_doloop): Ditto.
        * gimple-low.c (lower_function_body): Ditto.
        * gimple-low.c (lower_function_body): Ditto.
        (mark_used_blocks): Ditto.
        (mark_used_blocks): Ditto.
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * ipa-inline.c (cgraph_decide_inlining): Ditto.
        * ipa-inline.c (cgraph_decide_inlining): Ditto.
        (cgraph_early_inlining): Ditto.
        (cgraph_early_inlining): Ditto.
        * global.c (rest_of_handle_global_alloc): Ditto.
        * global.c (rest_of_handle_global_alloc): Ditto.
        * jump.c (cleanup_barriers): Ditto.
        * jump.c (cleanup_barriers): Ditto.
        (purge_line_number_notes): Ditto.
        (purge_line_number_notes): Ditto.
        * ifcvt.c (rest_of_handle_if_conversion): Ditto.
        * ifcvt.c (rest_of_handle_if_conversion): Ditto.
        (rest_of_handle_if_after_reload): Ditto.
        (rest_of_handle_if_after_reload): Ditto.
        * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
        * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
        (tree_ssa_loop_im): Ditto.
        (tree_ssa_loop_im): Ditto.
        (tree_ssa_loop_unswitch): Ditto.
        (tree_ssa_loop_unswitch): Ditto.
        (tree_vectorize): Ditto.
        (tree_vectorize): Ditto.
        (tree_linear_transform): Ditto.
        (tree_linear_transform): Ditto.
        (tree_ssa_loop_ivcanon): Ditto.
        (tree_ssa_loop_ivcanon): Ditto.
        (tree_ssa_empty_loop): Ditto.
        (tree_ssa_empty_loop): Ditto.
        (tree_ssa_loop_bounds): Ditto.
        (tree_ssa_loop_bounds): Ditto.
        (tree_complete_unroll): Ditto.
        (tree_complete_unroll): Ditto.
        (tree_ssa_loop_prefetch): Ditto.
        (tree_ssa_loop_prefetch): Ditto.
        (tree_ssa_loop_ivopts): Ditto.
        (tree_ssa_loop_ivopts): Ditto.
        (tree_ssa_loop_done): Ditto.
        (tree_ssa_loop_done): Ditto.
        * predict.c (tree_estimate_probability): Ditto.
        * predict.c (tree_estimate_probability): Ditto.
        * recog.c (split_all_insns_noflow): Ditto.
        * recog.c (split_all_insns_noflow): Ditto.
        (rest_of_handle_peephole2): Ditto.
        (rest_of_handle_peephole2): Ditto.
        (rest_of_handle_split_all_insns): Ditto.
        (rest_of_handle_split_all_insns): Ditto.
        * tree-eh.c (lower_eh_constructs): Ditto.
        * tree-eh.c (lower_eh_constructs): Ditto.
        * regmove.c (rest_of_handle_regmove): Ditto.
        * regmove.c (rest_of_handle_regmove): Ditto.
        (rest_of_handle_stack_adjustments): Ditto.
        (rest_of_handle_stack_adjustments): Ditto.
        * local-alloc.c (rest_of_handle_local_alloc): Ditto.
        * local-alloc.c (rest_of_handle_local_alloc): Ditto.
        * function.c (instantiate_virtual_regs): Ditto.
        * function.c (instantiate_virtual_regs): Ditto.
        (init_function_for_compilation): Ditto.
        (init_function_for_compilation): Ditto.
        (rest_of_handle_check_leaf_regs): Ditto.
        (rest_of_handle_check_leaf_regs): Ditto.
        * gcse.c (rest_of_handle_jump_bypass): Ditto.
        * gcse.c (rest_of_handle_jump_bypass): Ditto.
        (rest_of_handle_gcse): Ditto.
        (rest_of_handle_gcse): Ditto.
        * ipa-type-escape.c (type_escape_execute): Ditto.
        * ipa-type-escape.c (type_escape_execute): Ditto.
        * alias.c (rest_of_handle_cfg): Ditto.
        * alias.c (rest_of_handle_cfg): Ditto.
        * tree-if-conv.c (main_tree_if_conversion): Ditto.
        * tree-if-conv.c (main_tree_if_conversion): Ditto.
        * profile.c (rest_of_handle_branch_prob): Ditto.
        * profile.c (rest_of_handle_branch_prob): Ditto.
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
        * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
        * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
        * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
        * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
        * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
        * tree-dfa.c (find_referenced_vars): Ditto.
        * tree-dfa.c (find_referenced_vars): Ditto.
        * except.c (set_nothrow_function_flags): Ditto.
        * except.c (set_nothrow_function_flags): Ditto.
        (convert_to_eh_region_ranges): Ditto.
        (convert_to_eh_region_ranges): Ditto.
        (rest_of_handle_eh): Ditto.
        (rest_of_handle_eh): Ditto.
        * emit-rtl.c (unshare_all_rtl): Ditto.
        * emit-rtl.c (unshare_all_rtl): Ditto.
        (remove_unnecessary_notes): Ditto.
        (remove_unnecessary_notes): Ditto.
        * except.h (set_nothrow_function_flags): Ditto.
        * except.h (set_nothrow_function_flags): Ditto.
        (convert_to_eh_region_ranges): Ditto.
        (convert_to_eh_region_ranges): Ditto.
        * cfgexpand.c (tree_expand_cfg): Ditto.
        * cfgexpand.c (tree_expand_cfg): Ditto.
        * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
        * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
        * tree-ssa-pre.c (do_pre): Ditto.
        * tree-ssa-pre.c (do_pre): Ditto.
        (execute_fre): Ditto.
        (execute_fre): Ditto.
        * cfgcleanup.c (rest_of_handle_jump): Ditto.
        * cfgcleanup.c (rest_of_handle_jump): Ditto.
        (rest_of_handle_jump2): Ditto.
        (rest_of_handle_jump2): Ditto.
        * tree-sra.c (tree_sra): Ditto.
        * tree-sra.c (tree_sra): Ditto.
        * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
        * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
        (execute_mudflap_function_decls): Ditto.
        (execute_mudflap_function_decls): Ditto.
        * tree-ssa-copy.c (do_copy_prop): Ditto.
        * tree-ssa-copy.c (do_copy_prop): Ditto.
        (do_store_copy_prop): Ditto.
        (do_store_copy_prop): Ditto.
        * ipa-prop.h (ipcp_driver): Ditto.
        * ipa-prop.h (ipcp_driver): Ditto.
        * cfglayout.c (insn_locators_initialize): Ditto.
        * cfglayout.c (insn_locators_initialize): Ditto.
        * tree-ssa-forwprop.c
        * tree-ssa-forwprop.c
        (tree_ssa_forward_propagate_single_use_vars): Ditto.
        (tree_ssa_forward_propagate_single_use_vars): Ditto.
        * cfglayout.h (insn_locators_initialize): Ditto.
        * cfglayout.h (insn_locators_initialize): Ditto.
        * tree-ssa-dce.c (tree_ssa_dce): Ditto.
        * tree-ssa-dce.c (tree_ssa_dce): Ditto.
        * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
        * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
        (execute_late_warn_uninitialized): Ditto.
        (execute_late_warn_uninitialized): Ditto.
        * rtl.h (cleanup_barriers): Ditto.
        * rtl.h (cleanup_barriers): Ditto.
        (split_all_insns_noflow): Ditto.
        (split_all_insns_noflow): Ditto.
        (purge_line_number_notes): Ditto.
        (purge_line_number_notes): Ditto.
        (unshare_all_rtl): Ditto.
        (unshare_all_rtl): Ditto.
        (remove_unnecessary_notes): Ditto.
        (remove_unnecessary_notes): Ditto.
        (recompute_reg_usage): Ditto.
        (recompute_reg_usage): Ditto.
        (variable_tracking_main): Ditto.
        (variable_tracking_main): Ditto.
        * integrate.c (emit_initial_value_sets): Ditto.
        * integrate.c (emit_initial_value_sets): Ditto.
        * integrate.h (emit_initial_value_sets): Ditto.
        * integrate.h (emit_initial_value_sets): Ditto.
        * tree-optimize.c (execute_free_datastructures): Ditto
        * tree-optimize.c (execute_free_datastructures): Ditto
        (execute_free_cfg_annotations): Ditto.
        (execute_free_cfg_annotations): Ditto.
        (execute_fixup_cfg): Ditto.
        (execute_fixup_cfg): Ditto.
        (execute_cleanup_cfg_pre_ipa): Ditto.
        (execute_cleanup_cfg_pre_ipa): Ditto.
        (execute_cleanup_cfg_post_optimizing): Ditto.
        (execute_cleanup_cfg_post_optimizing): Ditto.
        (execute_init_datastructures): Ditto.
        (execute_init_datastructures): Ditto.
        * tree-object-size.c (compute_object_sizes): Ditto.
        * tree-object-size.c (compute_object_sizes): Ditto.
        * combine.c (rest_of_handle_combine): Ditto.
        * combine.c (rest_of_handle_combine): Ditto.
        * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
        * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
        * bb-reorder.c (duplicate_computed_gotos): Ditto.
        * bb-reorder.c (duplicate_computed_gotos): Ditto.
        (rest_of_handle_reorder_blocks): Ditto.
        (rest_of_handle_reorder_blocks): Ditto.
        (rest_of_handle_partition_blocks): Ditto.
        (rest_of_handle_partition_blocks): Ditto.
        * var-tracking.c (variable_tracking_main): Ditto.
        * var-tracking.c (variable_tracking_main): Ditto.
        * tree-profile.c (tree_profiling): Ditto.
        * tree-profile.c (tree_profiling): Ditto.
        * tree-vect-generic.c (expand_vector_operations): Ditto.
        * tree-vect-generic.c (expand_vector_operations): Ditto.
        * reg-stack.c (rest_of_handle_stack_regs): Ditto.
        * reg-stack.c (rest_of_handle_stack_regs): Ditto.
        * sched-rgn.c (rest_of_handle_sched): Ditto.
        * sched-rgn.c (rest_of_handle_sched): Ditto.
        (rest_of_handle_sched2): Ditto.
        (rest_of_handle_sched2): Ditto.
        * basic-block.h (free_bb_insn): Ditto.
        * basic-block.h (free_bb_insn): Ditto.
        * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
        * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
        * tree-cfg.c (execute_build_cfg): Ditto.
        * tree-cfg.c (execute_build_cfg): Ditto.
        (remove_useless_stmts): Ditto.
        (remove_useless_stmts): Ditto.
        (split_critical_edges): Ditto.
        (split_critical_edges): Ditto.
        (execute_warn_function_return): Ditto.
        (execute_warn_function_return): Ditto.
        (execute_warn_function_noreturn): Ditto.
        (execute_warn_function_noreturn): Ditto.
        * tree-ssa-reassoc.c (execute_reassoc): Ditto.
        * tree-ssa-reassoc.c (execute_reassoc): Ditto.
        * cfgrtl.c (free_bb_for_insn): Ditto.
        * cfgrtl.c (free_bb_for_insn): Ditto.
        * passes.c (execute_one_pass): Run additional
        * passes.c (execute_one_pass): Run additional
        todos returned by execute function.
        todos returned by execute function.
        * tree-pass.h (struct tree_opt_pass): Make execute
        * tree-pass.h (struct tree_opt_pass): Make execute
        return a value.
        return a value.
2006-03-02  Richard Guenther  
2006-03-02  Richard Guenther  
        * tree-ssa-alias.c (find_used_portions): Consider taking
        * tree-ssa-alias.c (find_used_portions): Consider taking
        the address as making the variable not write-only.
        the address as making the variable not write-only.
2006-03-02  Nick Clifton  
2006-03-02  Nick Clifton  
        * config.gcc (default_use_cxa_atexit): Extend the description of
        * config.gcc (default_use_cxa_atexit): Extend the description of
        this configure variable.  Set its default value to "yes" for
        this configure variable.  Set its default value to "yes" for
        Linux, NetBSD and ELF targets on the assumption that they will
        Linux, NetBSD and ELF targets on the assumption that they will
        use C libraries with the __cxa_atexit function.
        use C libraries with the __cxa_atexit function.
2006-03-02  Ben Elliston  
2006-03-02  Ben Elliston  
        * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
        * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
        parameter as unused to suppress a build warning.
        parameter as unused to suppress a build warning.
2006-03-02  Ben Elliston  
2006-03-02  Ben Elliston  
        * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
        * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
        config/dfp-bit.c.
        config/dfp-bit.c.
2006-03-01  Roger Sayle  
2006-03-01  Roger Sayle  
        PR other/26489
        PR other/26489
        * gthr-posix.h (__gthrw2): Define to take three parameters, the
        * gthr-posix.h (__gthrw2): Define to take three parameters, the
        declared name, the weak reference name, and the typeof name.
        declared name, the weak reference name, and the typeof name.
        (__gthrw): Avoid expanding the declared name suffix.
        (__gthrw): Avoid expanding the declared name suffix.
        (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
        (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
2006-03-01  Jakub Jelinek  
2006-03-01  Jakub Jelinek  
        * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
        * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
        from DWARF 3.
        from DWARF 3.
        (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
        (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
        DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
        DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
        DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
        DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
        DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
        DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
        DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
        DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
        (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
        (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
        (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
        (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
        DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
        DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
        (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
        (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
        DW_DS_leading_separate, DW_DS_trailing_separate): New.
        DW_DS_leading_separate, DW_DS_trailing_separate): New.
        (DW_END_default, DW_END_big, DW_END_little): New.
        (DW_END_default, DW_END_big, DW_END_little): New.
        (DW_END_lo_user, DW_END_hi_user): Define.
        (DW_END_lo_user, DW_END_hi_user): Define.
        (DW_LNE_lo_user, DW_LNE_hi_user): Define.
        (DW_LNE_lo_user, DW_LNE_hi_user): Define.
        (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
        (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
        (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
        (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
        DW_LANG_D): New.
        DW_LANG_D): New.
2006-03-01  Diego Novillo  
2006-03-01  Diego Novillo  
        * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
        * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
        Update all users.
        Update all users.
        * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
        * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
        Update all users.
        Update all users.
        (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
        (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
        Update all users.
        Update all users.
        * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
        * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
        Update all users.
        Update all users.
        * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
        * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
        to 'symbol_mem_tag'.
        to 'symbol_mem_tag'.
        Update all users.
        Update all users.
        * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
        * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
        rename.
        rename.
2006-03-01  Roger Sayle  
2006-03-01  Roger Sayle  
        * builtins.c (fold_builtin_copysign): Delete unreachable code.
        * builtins.c (fold_builtin_copysign): Delete unreachable code.
2006-03-01  Andrew Pinski  
2006-03-01  Andrew Pinski  
        PR target/25761
        PR target/25761
        * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
        * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
        MACHO_DYNAMIC_NO_PIC_P.
        MACHO_DYNAMIC_NO_PIC_P.
        (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
        (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
2006-03-01  Andrew Pinski  
2006-03-01  Andrew Pinski  
        PR target/26389
        PR target/26389
        * config/darwin-protos.h (darwin_asm_output_anchor):
        * config/darwin-protos.h (darwin_asm_output_anchor):
        Declare.
        Declare.
        * config/darwin-sections.def (cstring_section):
        * config/darwin-sections.def (cstring_section):
        Add SECTION_MERGE to the flags.
        Add SECTION_MERGE to the flags.
        (literal4_section): Likewise.
        (literal4_section): Likewise.
        (literal8_section): Likewise.
        (literal8_section): Likewise.
        (objc_selector_refs_section): Likewise.
        (objc_selector_refs_section): Likewise.
        (objc_cls_refs_section): Likewise.
        (objc_cls_refs_section): Likewise.
        * config/darwin.c (darwin_asm_output_anchor): New
        * config/darwin.c (darwin_asm_output_anchor): New
        function.
        function.
        * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
        * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
2006-03-01  Daniel Berlin  
2006-03-01  Daniel Berlin  
        Fix PR tree-optimization/26443
        Fix PR tree-optimization/26443
        * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
        * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
        to todo and PROP_tmt_usage to properties_destroyed.
        to todo and PROP_tmt_usage to properties_destroyed.
        * tree-ssa-ccp.c (pass_ccp): Ditto.
        * tree-ssa-ccp.c (pass_ccp): Ditto.
        (pass_store_ccp): Ditto.
        (pass_store_ccp): Ditto.
        * tree-ssa-dom.c (pass_dominator): Ditto.
        * tree-ssa-dom.c (pass_dominator): Ditto.
2006-03-01  Diego Novillo  
2006-03-01  Diego Novillo  
        * tree-ssa-operands.c: Cleanup whitespace.
        * tree-ssa-operands.c: Cleanup whitespace.
        (get_asm_expr_operands): Move before first invocation.
        (get_asm_expr_operands): Move before first invocation.
        (get_indirect_ref_operands): Likewise.
        (get_indirect_ref_operands): Likewise.
        (get_tmr_operands): Likewise.
        (get_tmr_operands): Likewise.
        (get_call_expr_operands): Likewise.
        (get_call_expr_operands): Likewise.
        (append_def): Likewise.
        (append_def): Likewise.
        (append_use): Likewise.
        (append_use): Likewise.
        (append_v_may_def): Likewise.
        (append_v_may_def): Likewise.
        (append_v_must_def): Likewise.
        (append_v_must_def): Likewise.
        (add_call_clobber_ops): Likewise.
        (add_call_clobber_ops): Likewise.
        (add_call_read_ops): Likewise.
        (add_call_read_ops): Likewise.
        (add_stmt_operand): Likewise.
        (add_stmt_operand): Likewise.
        (add_virtual_operand): Likewise.
        (add_virtual_operand): Likewise.
        (build_ssa_operands): Likewise.
        (build_ssa_operands): Likewise.
2006-03-01  Andrew Pinski  
2006-03-01  Andrew Pinski  
        PR middle-end/26022
        PR middle-end/26022
        Revert:
        Revert:
        PR middle-end/24437
        PR middle-end/24437
        * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
        * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
        with a call expr to ...
        with a call expr to ...
        * fold-const.c (fold_ternary) : Here.
        * fold-const.c (fold_ternary) : Here.
2006-03-01  Diego Novillo  
2006-03-01  Diego Novillo  
        * tree-vrp.c (extract_range_from_assert): Remove special
        * tree-vrp.c (extract_range_from_assert): Remove special
        handling for types with super-types.
        handling for types with super-types.
2006-03-01  Ben Elliston  
2006-03-01  Ben Elliston  
        * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
        * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
        and powerpc64-*-linux* configurations.
        and powerpc64-*-linux* configurations.
        * config/t-dfprules: New file.
        * config/t-dfprules: New file.
        * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
        * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
        Compile dfp-bit.c from the source directory using -DWIDTH and
        Compile dfp-bit.c from the source directory using -DWIDTH and
        $DFP_CFLAGS to control the compilation of that file, rather than
        $DFP_CFLAGS to control the compilation of that file, rather than
        generating width-specific versions in the build directory.
        generating width-specific versions in the build directory.
        * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
        * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
        (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
        (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
2006-02-28  Zack Weinberg  
2006-02-28  Zack Weinberg  
        * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
        * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
        continues to work.
        continues to work.
2006-02-28  Eric Christopher  
2006-02-28  Eric Christopher  
        * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
        * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
        Set up IN_LIBGCC definition of TARGET_64BIT.
        Set up IN_LIBGCC definition of TARGET_64BIT.
        * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
        * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
2006-02-28  Roger Sayle  
2006-02-28  Roger Sayle  
        PR middle-end/14752
        PR middle-end/14752
        * c-common.c (c_common_truthvalue_conversion) 
        * c-common.c (c_common_truthvalue_conversion) 
        BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
        BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
        cases via the construction of "expr != 0".
        cases via the construction of "expr != 0".
2006-02-28  Steven Bosscher  
2006-02-28  Steven Bosscher  
        * alias.c (alias_invariant, alias_invariant_size): Remove.
        * alias.c (alias_invariant, alias_invariant_size): Remove.
        (record_base_value): Remove.
        (record_base_value): Remove.
        (memrefs_conflict_p): Don't look at alias_invariant.
        (memrefs_conflict_p): Don't look at alias_invariant.
        (end_alias_analysis): Don't free it.
        (end_alias_analysis): Don't free it.
        * alias.h (record_base_value): Remove prototype.
        * alias.h (record_base_value): Remove prototype.
2006-02-28  Paolo Bonzini  
2006-02-28  Paolo Bonzini  
            Adam Nemet  
            Adam Nemet  
        * rtl.h (truncated_to_mode): Declare it.
        * rtl.h (truncated_to_mode): Declare it.
        (struct rtl_hooks): Add reg_truncated_to_mode hook.
        (struct rtl_hooks): Add reg_truncated_to_mode hook.
        * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
        * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
        (RTL_HOOKS_INITIALIZER): Include it.
        (RTL_HOOKS_INITIALIZER): Include it.
        * rtlhooks.c (reg_truncated_to_mode_general): New function.
        * rtlhooks.c (reg_truncated_to_mode_general): New function.
        * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
        * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
        reg_truncated_to_mode.
        reg_truncated_to_mode.
        * rtlanal.c (truncated_to_mode): Define it.
        * rtlanal.c (truncated_to_mode): Define it.
        * simplify-rtx.c (simplify_unary_operation_1): Use it.
        * simplify-rtx.c (simplify_unary_operation_1): Use it.
2006-02-28  Jeff Law  
2006-02-28  Jeff Law  
        * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
        * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
        conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
        conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
        the range allowed by TYPE_PRECISION.
        the range allowed by TYPE_PRECISION.
        * tree.h (strct phi_arg_d): Remove unused NONZERO field.
        * tree.h (strct phi_arg_d): Remove unused NONZERO field.
2006-02-28  Dorit Nuzman  
2006-02-28  Dorit Nuzman  
        PR tree-optimization/26419
        PR tree-optimization/26419
        * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
        * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
        values of n.
        values of n.
2006-02-27  Zack Weinberg  
2006-02-27  Zack Weinberg  
        * doc/md.texi: Fix typo in previous change.
        * doc/md.texi: Fix typo in previous change.
2006-02-27  Kenneth Zadeck 
2006-02-27  Kenneth Zadeck 
        * df.c: Remove.
        * df.c: Remove.
2006-02-27  Zack Weinberg  
2006-02-27  Zack Weinberg  
        * rtl.def (define_constraint, define_register_constraint)
        * rtl.def (define_constraint, define_register_constraint)
        (define_memory_constraint, define_address_constraint): New MD forms.
        (define_memory_constraint, define_address_constraint): New MD forms.
        * gensupport.c (process_rtx): Put define_constraint etc on the
        * gensupport.c (process_rtx): Put define_constraint etc on the
        predicate queue.
        predicate queue.
        * genpreds.c (process_define_predicate): Adjust comment.  Validate
        * genpreds.c (process_define_predicate): Adjust comment.  Validate
        the name, and call validate_exp to validate the expression.
        the name, and call validate_exp to validate the expression.
        (mark_mode_tests, write_extract_subexp): Can assume correct input.
        (mark_mode_tests, write_extract_subexp): Can assume correct input.
        (write_predicate_expr): Likewise.  NAME argument no longer necessary;
        (write_predicate_expr): Likewise.  NAME argument no longer necessary;
        all callers changed.
        all callers changed.
        (validate_exp, needs_variable, struct constraint_data)
        (validate_exp, needs_variable, struct constraint_data)
        (constraints_by_letter_table, first_constraint, last_constraint_ptr)
        (constraints_by_letter_table, first_constraint, last_constraint_ptr)
        (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
        (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
        (const_dbl_constraints, constraint_max_namelen)
        (const_dbl_constraints, constraint_max_namelen)
        (have_register_constraints, have_memory_constraints)
        (have_register_constraints, have_memory_constraints)
        (have_address_constraints, have_address_constraints)
        (have_address_constraints, have_address_constraints)
        (have_extra_constraints, have_const_int_constraints)
        (have_extra_constraints, have_const_int_constraints)
        (have_const_dbl_constraints, mangle, add_constraint)
        (have_const_dbl_constraints, mangle, add_constraint)
        (process_define_constraint, process_define_register_constraint)
        (process_define_constraint, process_define_register_constraint)
        (write_enum_constraint_num, write_lookup_constraint)
        (write_enum_constraint_num, write_lookup_constraint)
        (write_insn_constraint_len, write_regclass_for_constraint)
        (write_insn_constraint_len, write_regclass_for_constraint)
        (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
        (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
        (write_insn_extra_memory_constraint)
        (write_insn_extra_memory_constraint)
        (write_insn_extra_address_constraint)
        (write_insn_extra_address_constraint)
        (write_satisfies_constraint_fns): New.
        (write_satisfies_constraint_fns): New.
        (write_tm_preds_h): If we have new-style constraint definitions,
        (write_tm_preds_h): If we have new-style constraint definitions,
        prototype the functions generated from them, and define the
        prototype the functions generated from them, and define the
        old constraint interface (still used by generic code) in terms of
        old constraint interface (still used by generic code) in terms of
        those functions.
        those functions.
        (write_insn_preds_c): If we have new-style constraint definitions,
        (write_insn_preds_c): If we have new-style constraint definitions,
        generate all relevant functions from those definitions.
        generate all relevant functions from those definitions.
        (main): Handle define_constraint etc.
        (main): Handle define_constraint etc.
        * genoutput.c (struct constraint_data, indep_constraints)
        * genoutput.c (struct constraint_data, indep_constraints)
        (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
        (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
        (mdep_constraint_len): New data structures and functions, defined
        (mdep_constraint_len): New data structures and functions, defined
        #ifdef USE_MD_CONSTRAINTS.
        #ifdef USE_MD_CONSTRAINTS.
        (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
        (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
        (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
        (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
        use new logic to validate operand constraints against constraint
        use new logic to validate operand constraints against constraint
        definitions.
        definitions.
        (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
        (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
        defined.
        defined.
        * defaults.h: If none of the old-style constraint macros are
        * defaults.h: If none of the old-style constraint macros are
        defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
        defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
        old-style macros; and poison REG_CLASS_FROM_LETTER,
        old-style macros; and poison REG_CLASS_FROM_LETTER,
        CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
        CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
        EXTRA_CONSTRAINT.
        EXTRA_CONSTRAINT.
        * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
        * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
        * doc/md.texi: Document new constraint-definition mechanism and the
        * doc/md.texi: Document new constraint-definition mechanism and the
        C interface it provides.  Remove references to old mechanism
        C interface it provides.  Remove references to old mechanism
        elsewhere in the document.
        elsewhere in the document.
        (Machine Constraints): Use pathnames relative to gcc directory,
        (Machine Constraints): Use pathnames relative to gcc directory,
        i.e. config/ARCH/FILE.  Change i386 section to refer to
        i.e. config/ARCH/FILE.  Change i386 section to refer to
        config/i386/predicates.md; update that section to match docstrings.
        config/i386/predicates.md; update that section to match docstrings.
        * doc/tm.texi: Move all documentation of the old constraint-
        * doc/tm.texi: Move all documentation of the old constraint-
        definition macros to their own section, clearly mark as obsolete.
        definition macros to their own section, clearly mark as obsolete.
        * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
        * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
        (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
        (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
        definitions.
        definitions.
        * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
        * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
        (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
        (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
        * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
        * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
        constraint strings.
        constraint strings.
        (splits and peepholes): Use satisfies_constraint_*.
        (splits and peepholes): Use satisfies_constraint_*.
        * config/i386/i386.c (memory_address_length)
        * config/i386/i386.c (memory_address_length)
        (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
        (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
2006-02-27  Daniel Berlin  
2006-02-27  Daniel Berlin  
        * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
        * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
        scalar operation to be put back into the loop.
        scalar operation to be put back into the loop.
2006-02-27  Jakub Jelinek  
2006-02-27  Jakub Jelinek  
        PR other/26208
        PR other/26208
        * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
        * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
        (extract_cie_info): Handle S flag in augmentation string.
        (extract_cie_info): Handle S flag in augmentation string.
        (execute_cfa_program): If context->signal_frame, execute also
        (execute_cfa_program): If context->signal_frame, execute also
        fs->pc == context->ra instructions.
        fs->pc == context->ra instructions.
        (uw_frame_state_for): If context->signal_frame, don't subtract one
        (uw_frame_state_for): If context->signal_frame, don't subtract one
        from context->ra to find FDE.
        from context->ra to find FDE.
        (uw_update_context_1): Set context->signal_frame to
        (uw_update_context_1): Set context->signal_frame to
        fs->signal_frame.
        fs->signal_frame.
        (_Unwind_GetIPInfo): New function.
        (_Unwind_GetIPInfo): New function.
        * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
        * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
        * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
        * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
        of _Unwind_GetIP.
        of _Unwind_GetIP.
        * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
        * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
        * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
        * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
        * unwind-compat.c (_Unwind_GetIPInfo): New function.
        * unwind-compat.c (_Unwind_GetIPInfo): New function.
        * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
        * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
        * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
        * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
        * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
        * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
        * config/i386/linux-unwind.h (x86_fallback_frame_state,
        * config/i386/linux-unwind.h (x86_fallback_frame_state,
        x86_64_fallback_frame_state): Set fs->signal_frame.
        x86_64_fallback_frame_state): Set fs->signal_frame.
        * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
        * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
        (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
        (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
        (frob_update_context): Likewise.  Workaround missing S flag in
        (frob_update_context): Likewise.  Workaround missing S flag in
        Linux 2.6.12 - 2.6.16 kernel vDSOs.
        Linux 2.6.12 - 2.6.16 kernel vDSOs.
        * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
        * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
        Remove the psw_addr + 1 hack.
        Remove the psw_addr + 1 hack.
2006-02-27  Daniel Berlin  
2006-02-27  Daniel Berlin  
        * tree-ssa-structalias.c (get_constraint_for): Move code to deal
        * tree-ssa-structalias.c (get_constraint_for): Move code to deal
        with aggregates here.
        with aggregates here.
        (find_func_aliases): Remove code for & from here.
        (find_func_aliases): Remove code for & from here.
2006-02-26  Roger Sayle  
2006-02-26  Roger Sayle  
        * fold-const.c (fold_binary) : Fold (~X & C) eq/ne 0 as
        * fold-const.c (fold_binary) : Fold (~X & C) eq/ne 0 as
        (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
        (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
        Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
        Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
        as (X & C) ne/eq 0.
        as (X & C) ne/eq 0.
2006-02-26  Roger Sayle  
2006-02-26  Roger Sayle  
        PR middle-end/19983
        PR middle-end/19983
        * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
        * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
2006-02-26  Zdenek Dvorak 
2006-02-26  Zdenek Dvorak 
        * opts.c (decode_options): Do not handle flag_strength_reduce.
        * opts.c (decode_options): Do not handle flag_strength_reduce.
        (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
        (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
        and OPT_fstrength_reduce.
        and OPT_fstrength_reduce.
        * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
        * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
        flag_prefetch_loop_arrays for being nonzero.
        flag_prefetch_loop_arrays for being nonzero.
        * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
        * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
        no-ops.
        no-ops.
        (fprefetch-loop-arrays-rtl): Removed.
        (fprefetch-loop-arrays-rtl): Removed.
        (flag_prefetch_loop_arrays): Do not specify the value.
        (flag_prefetch_loop_arrays): Do not specify the value.
        * doc/passes.texi: Update documentation of loop optimizer
        * doc/passes.texi: Update documentation of loop optimizer
        passes.
        passes.
        * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
        * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
        -frerun-loop-opt): Remove.
        -frerun-loop-opt): Remove.
2006-02-26  Richard Guenther  
2006-02-26  Richard Guenther  
        PR tree-optimization/26421
        PR tree-optimization/26421
        * tree-ssa-alias.c (find_used_portions): Don't treat parameters
        * tree-ssa-alias.c (find_used_portions): Don't treat parameters
        in function calls that are ADDR_EXPRs as using the whole structure.
        in function calls that are ADDR_EXPRs as using the whole structure.
2006-02-26  Steven Bosscher  
2006-02-26  Steven Bosscher  
        * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
        * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
        * tree-pass.h (pass_loop_optimize): Remove.
        * tree-pass.h (pass_loop_optimize): Remove.
        * passes.c (pass_loop_optimize): Never run it.
        * passes.c (pass_loop_optimize): Never run it.
        * toplev.c (backend_init): Don't call init_loop.
        * toplev.c (backend_init): Don't call init_loop.
        * opts.c (flag_loop_optimize_set): Remove.
        * opts.c (flag_loop_optimize_set): Remove.
        (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
        (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
        (common_handle_option) : Remove.  Don't disable
        (common_handle_option) : Remove.  Don't disable
        the old RTL loop optimizer when profiling enabled.
        the old RTL loop optimizer when profiling enabled.
        * predict.c (tree_estimate_probability): Always strip builtin_expect.
        * predict.c (tree_estimate_probability): Always strip builtin_expect.
        * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
        * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
        pre-headers for the sake of the old RTL loop optimizer.
        pre-headers for the sake of the old RTL loop optimizer.
        * Makefile.in: Remove all references to loop.o.
        * Makefile.in: Remove all references to loop.o.
        * doc/invoke.texi: Remove all references to -floop-optimize
        * doc/invoke.texi: Remove all references to -floop-optimize
        and -frerun-loop-opt.
        and -frerun-loop-opt.
2006-02-26  Zack Weinberg  
2006-02-26  Zack Weinberg  
        * doc/md.texi (Machine Constraints): Refer to all files with paths
        * doc/md.texi (Machine Constraints): Refer to all files with paths
        relative to gcc directory (i.e. config/CPU/file).  Add missing
        relative to gcc directory (i.e. config/CPU/file).  Add missing
        @table @code ... @end table to M32C subsection.
        @table @code ... @end table to M32C subsection.
2006-02-26  Roger Sayle  
2006-02-26  Roger Sayle  
        * fold-const.c (fold_binary) : Fold (X & 1) ^ 1 as
        * fold-const.c (fold_binary) : Fold (X & 1) ^ 1 as
        (X & 1) == 0.
        (X & 1) == 0.
        : Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
        : Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
2006-02-26  Roger Sayle  
2006-02-26  Roger Sayle  
            James A. Morrison  
            James A. Morrison  
        PR middle-end/21137
        PR middle-end/21137
        * fold-const.c (fold_binary) : Fold ((X>>C1)&C2) eq/ne 0,
        * fold-const.c (fold_binary) : Fold ((X>>C1)&C2) eq/ne 0,
        when C2 is a power of two, as either (X&(C2<
        when C2 is a power of two, as either (X&(C2<
        new constant C2<
        new constant C2<
        signedness of the shift operation.
        signedness of the shift operation.
2006-02-26  Dorit Nuzman  
2006-02-26  Dorit Nuzman  
        PR tree-optimization/26359
        PR tree-optimization/26359
        * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
        * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
2006-02-25  Roger Sayle  
2006-02-25  Roger Sayle  
        * simplify-rtx.c (simplify_relational_operation_1): Simplify
        * simplify-rtx.c (simplify_relational_operation_1): Simplify
        (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
        (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
        as X == 0, and some symmetry related transformations.
        as X == 0, and some symmetry related transformations.
        Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
        Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
2006-02-25  Roger Sayle  
2006-02-25  Roger Sayle  
        PR middle-end/23673
        PR middle-end/23673
        * fold-const.c (fold_binary) : Fold (X^Y) == 0 as X == Y
        * fold-const.c (fold_binary) : Fold (X^Y) == 0 as X == Y
        and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
        and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
        symmetry related transformations.  Fold (X^C1) == C2 as
        symmetry related transformations.  Fold (X^C1) == C2 as
        X == (C1^C2).
        X == (C1^C2).
2006-02-25  Juergen Weigert  
2006-02-25  Juergen Weigert  
        Richard Guenther  
        Richard Guenther  
        * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
        * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
2006-02-24  Adam Nemet  
2006-02-24  Adam Nemet  
        * combine.c (gen_lowpart_or_truncate): Call
        * combine.c (gen_lowpart_or_truncate): Call
        simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
        simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
2006-02-24  Diego Novillo  
2006-02-24  Diego Novillo  
        * doc/invoke.texi: Move -fopenmp description to "Options for
        * doc/invoke.texi: Move -fopenmp description to "Options for
        Code Generation".
        Code Generation".
        Remove reference to -lgomp.
        Remove reference to -lgomp.
2006-02-24  David Edelsohn  
2006-02-24  David Edelsohn  
        * doc/install.texi: Require GNU tar version 1.14.
        * doc/install.texi: Require GNU tar version 1.14.
2006-02-24  Geoffrey Keating  
2006-02-24  Geoffrey Keating  
        * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
        * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
        * doc/invoke.texi (C++ Dialect Options): Document
        * doc/invoke.texi (C++ Dialect Options): Document
        -fno-use-cxa-get-exception-ptr.
        -fno-use-cxa-get-exception-ptr.
        * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
        * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
        * configure: Regenerate.
        * configure: Regenerate.
        * c.opt (fuse-cxa-get-exception-ptr): New.
        * c.opt (fuse-cxa-get-exception-ptr): New.
        * c-opts.c (c_common_handle_option): Handle
        * c-opts.c (c_common_handle_option): Handle
        OPT_fuse_cxa_get_exception_ptr.
        OPT_fuse_cxa_get_exception_ptr.
        * c-common.c (flag_use_cxa_atexit): Update documentation.
        * c-common.c (flag_use_cxa_atexit): Update documentation.
        (flag_use_cxa_get_exception_ptr): New.
        (flag_use_cxa_get_exception_ptr): New.
        * c-common.h (flag_use_cxa_get_exception_ptr): New.
        * c-common.h (flag_use_cxa_get_exception_ptr): New.
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
        * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
        documentation.
        documentation.
        (C_COMMON_OVERRIDE_OPTIONS): New.
        (C_COMMON_OVERRIDE_OPTIONS): New.
2006-02-24  Roger Sayle  
2006-02-24  Roger Sayle  
        PR middle-end/24952
        PR middle-end/24952
        * combine.c (try_combine): Explicitly check whether GET_CODE is
        * combine.c (try_combine): Explicitly check whether GET_CODE is
        a SET or a CLOBBER, instead on checking that it isn't a USE.
        a SET or a CLOBBER, instead on checking that it isn't a USE.
2006-02-24  Roger Sayle  
2006-02-24  Roger Sayle  
        * fold-const.c (fold_comparison): New subroutine of fold_binary
        * fold-const.c (fold_comparison): New subroutine of fold_binary
        containing transformations common to both the equality and
        containing transformations common to both the equality and
        ordering relational operators, factored out of fold_binary.
        ordering relational operators, factored out of fold_binary.
        (fold_binary): Separate out the equality operators (EQ_EXPR
        (fold_binary): Separate out the equality operators (EQ_EXPR
        and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
        and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
        LE_EXPR and GE_EXPR), calling fold_comparison to perform the
        LE_EXPR and GE_EXPR), calling fold_comparison to perform the
        transformations common to both.
        transformations common to both.
        (fold_div_compare): Fix latent bugs in the previously unreachable
        (fold_div_compare): Fix latent bugs in the previously unreachable
        LT_EXPR and GE_EXPR cases.
        LT_EXPR and GE_EXPR cases.
2006-02-24  David Edelsohn  
2006-02-24  David Edelsohn  
        * config/rs6000/rs6000.c (rs6000_init_builtins): Change
        * config/rs6000/rs6000.c (rs6000_init_builtins): Change
        decl libname for clog to __clog on AIX.
        decl libname for clog to __clog on AIX.
        * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
        * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
2006-02-24  Alan Modra  
2006-02-24  Alan Modra  
        PR target/26453
        PR target/26453
        * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
        * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
        output traceback table for thunks.  Localise rs6000_stack_info call.
        output traceback table for thunks.  Localise rs6000_stack_info call.
2006-02-23  Roger Sayle  
2006-02-23  Roger Sayle  
            Rainer Orth  
            Rainer Orth  
        * gthr-posix.h (__gthrw): Fix typo in comment.
        * gthr-posix.h (__gthrw): Fix typo in comment.
2006-02-23  Geoffrey Keating  
2006-02-23  Geoffrey Keating  
        * doc/cpp.texi (Character sets): Document that we do support
        * doc/cpp.texi (Character sets): Document that we do support
        input files to be in any character set.
        input files to be in any character set.
2006-02-23  Jeff Law  
2006-02-23  Jeff Law  
        * tree.h (PHI_ARG_NONZERO): Remove.
        * tree.h (PHI_ARG_NONZERO): Remove.
        * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
        * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
        (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
        (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
        node to the new node.
        node to the new node.
        PR tree-optimization/26425
        PR tree-optimization/26425
        * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
        * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
        min/max, then assume its varying.
        min/max, then assume its varying.
2006-02-23  Zdenek Dvorak 
2006-02-23  Zdenek Dvorak 
        PR rtl-optimization/26316
        PR rtl-optimization/26316
        * rtlanal.c (enum may_trap_p_flags): New.
        * rtlanal.c (enum may_trap_p_flags): New.
        (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
        (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
        MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
        MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
        (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
        (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
        (may_trap_after_code_motion_p): New function.
        (may_trap_after_code_motion_p): New function.
        * loop-invariant.c (find_identical_invariants): Fix dump formating.
        * loop-invariant.c (find_identical_invariants): Fix dump formating.
        (find_invariant_insn): Use may_trap_after_code_motion_p.
        (find_invariant_insn): Use may_trap_after_code_motion_p.
        * rtl.h (may_trap_after_code_motion_p): Declare.
        * rtl.h (may_trap_after_code_motion_p): Declare.
2006-02-23  Zdenek Dvorak 
2006-02-23  Zdenek Dvorak 
        * emit-rtl.c (immed_double_const): Cleanup.
        * emit-rtl.c (immed_double_const): Cleanup.
2006-02-23  Daniel Berlin  
2006-02-23  Daniel Berlin  
        Fix PR tree-optimization/26376
        Fix PR tree-optimization/26376
        * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
        * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
        remove assert.
        remove assert.
2006-02-23  Jakub Jelinek  
2006-02-23  Jakub Jelinek  
        PR middle-end/26412
        PR middle-end/26412
        * gimplify.c (omp_add_variable): Guard variable size decl test with
        * gimplify.c (omp_add_variable): Guard variable size decl test with
        DECL_SIZE (decl) check.
        DECL_SIZE (decl) check.
2006-02-23  Richard Guenther  
2006-02-23  Richard Guenther  
        PR middle-end/26439
        PR middle-end/26439
        * tree-ssa-structalias.c (find_func_aliases): Handle complex types
        * tree-ssa-structalias.c (find_func_aliases): Handle complex types
        like aggregate types.
        like aggregate types.
2006-02-23  Jakub Jelinek  
2006-02-23  Jakub Jelinek  
        * configure.ac: Add --with{,out}-long-double-128 configure option.
        * configure.ac: Add --with{,out}-long-double-128 configure option.
        (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
        (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
        * configure: Rebuilt.
        * configure: Rebuilt.
        * config.in: Rebuilt.
        * config.in: Rebuilt.
        * doc/install.texi (Options specification): Document
        * doc/install.texi (Options specification): Document
        --with-long-double-128.
        --with-long-double-128.
        * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
        * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
        (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
        (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
        * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
        * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
        (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
        (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
2006-02-23  Aldy Hernandez  
2006-02-23  Aldy Hernandez  
        * config/s390/s390.c (override_options): Handle
        * config/s390/s390.c (override_options): Handle
        TARGET_DEFAULT_LONG_DOUBLE_128.
        TARGET_DEFAULT_LONG_DOUBLE_128.
        * config/alpha/alpha.c (override_options): Handle
        * config/alpha/alpha.c (override_options): Handle
        TARGET_DEFAULT_LONG_DOUBLE_128.
        TARGET_DEFAULT_LONG_DOUBLE_128.
        * config/sparc/sparc.c (sparc_override_options): Handle
        * config/sparc/sparc.c (sparc_override_options): Handle
        TARGET_DEFAULT_LONG_DOUBLE_128.
        TARGET_DEFAULT_LONG_DOUBLE_128.
2006-02-22  Daniel Jacobowitz  
2006-02-22  Daniel Jacobowitz  
        * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
        * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
        (real-install-headers-tar, real-install-headers-cpio)
        (real-install-headers-tar, real-install-headers-cpio)
        (real-install-headers-cp): New targets.
        (real-install-headers-cp): New targets.
2006-02-22  Richard Sandiford  
2006-02-22  Richard Sandiford  
        * tree.h (variable_section): Delete.
        * tree.h (variable_section): Delete.
        * varasm.c (variable_section): Delete.
        * varasm.c (variable_section): Delete.
2006-02-22  Paolo Bonzini  
2006-02-22  Paolo Bonzini  
        * install.texi: Add notes on install.texi2html.
        * install.texi: Add notes on install.texi2html.
        (Building in parallel): Do not use footnotes.
        (Building in parallel): Do not use footnotes.
2006-02-21  Aldy Hernandez  
2006-02-21  Aldy Hernandez  
        PR libgomp/26234
        PR libgomp/26234
        * doc/install.texi (Configuration): Document --disable-libgomp.
        * doc/install.texi (Configuration): Document --disable-libgomp.
2006-02-21  Geoffrey Keating  
2006-02-21  Geoffrey Keating  
        * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
        * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
2006-02-21  Alexandre Oliva  
2006-02-21  Alexandre Oliva  
        * config/i386/sse.md (vec_extractv2df_1_sse): New.
        * config/i386/sse.md (vec_extractv2df_1_sse): New.
        (vec_extractv2df_0_sse): New.
        (vec_extractv2df_0_sse): New.
2006-02-21  Alexandre Oliva  
2006-02-21  Alexandre Oliva  
        * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
        * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
        * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
        * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
        * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
        * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
        * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
        * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
        to the result of the expression.
        to the result of the expression.
        (def_cfa_1): Adjust.
        (def_cfa_1): Adjust.
        (frame_pointer_cfa_offset): Rename to...
        (frame_pointer_cfa_offset): Rename to...
        (frame_pointer_fb_offset): ... this.  Adjust all uses.
        (frame_pointer_fb_offset): ... this.  Adjust all uses.
        (convert_cfa_to_loc_list): Rename to...
        (convert_cfa_to_loc_list): Rename to...
        (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
        (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
        Pass it on to build_cfa_loc.
        Pass it on to build_cfa_loc.
        (compute_frame_pointer_to_cfa_displacement): Rename to...
        (compute_frame_pointer_to_cfa_displacement): Rename to...
        (compute_frame_pointer_to_fb_displacement): ... this.  New
        (compute_frame_pointer_to_fb_displacement): ... this.  New
        offset parameter.  Use it in computation.
        offset parameter.  Use it in computation.
        (gen_subprogram_die): Compute cfa_fb_offset with the new
        (gen_subprogram_die): Compute cfa_fb_offset with the new
        macro, and use it to compute the fb loc list and the
        macro, and use it to compute the fb loc list and the
        displacement.
        displacement.
2006-02-21  Bernd Schmidt  
2006-02-21  Bernd Schmidt  
        * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
        * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
        replaced with register_operand.
        replaced with register_operand.
        * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
        * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
        non-DREG is expensive.
        non-DREG is expensive.
        * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
        * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
        * config/bfin/bfin.md (movbi): Fix constraints and template for moves
        * config/bfin/bfin.md (movbi): Fix constraints and template for moves
        involving memory.
        involving memory.
2006-02-21  Joseph S. Myers  
2006-02-21  Joseph S. Myers  
        * doc/install.texi2html: Use set -e.
        * doc/install.texi2html: Use set -e.
2006-02-21  Richard Sandiford  
2006-02-21  Richard Sandiford  
        * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
        * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
        (ASM_OUTPUT_SHARED_LOCAL): Delete.
        (ASM_OUTPUT_SHARED_LOCAL): Delete.
        * doc/invoke.texi (-fshared-data): Delete.
        * doc/invoke.texi (-fshared-data): Delete.
        * common.opt (fshared-data): Delete.
        * common.opt (fshared-data): Delete.
        * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
        * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
        (assemble_static_space): Remove #if 0 code.
        (assemble_static_space): Remove #if 0 code.
        * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
        * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
        (ASM_OUTPUT_SHARED_LOCAL): Poison.
        (ASM_OUTPUT_SHARED_LOCAL): Poison.
        * config/cris/cris.h: Remove FIXME.
        * config/cris/cris.h: Remove FIXME.
2006-02-21  Paolo Bonzini  
2006-02-21  Paolo Bonzini  
        * doc/sourcebuild.texi (Front End Directory): No more double-colon
        * doc/sourcebuild.texi (Front End Directory): No more double-colon
        hooks.
        hooks.
2006-02-21  Jakub Jelinek  
2006-02-21  Jakub Jelinek  
        PR middle-end/26379
        PR middle-end/26379
        * combine.c (simplify_shift_const_1): Disable nested shifts
        * combine.c (simplify_shift_const_1): Disable nested shifts
        optimization for vector shifts.
        optimization for vector shifts.
2006-02-20  Roger Sayle  
2006-02-20  Roger Sayle  
        PR tree-optimization/26361
        PR tree-optimization/26361
        * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
        * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
        of unsigned integer types.
        of unsigned integer types.
2006-02-20  Sebastian Pop  
2006-02-20  Sebastian Pop  
        * tree-chrec.c (eq_evolutions_p): New.
        * tree-chrec.c (eq_evolutions_p): New.
        * tree-chrec.h (eq_evolutions_p): Declared.
        * tree-chrec.h (eq_evolutions_p): Declared.
        * tree-data-ref.c: Fix formatting.
        * tree-data-ref.c: Fix formatting.
        (datadep_stats, dependence_stats): New.
        (datadep_stats, dependence_stats): New.
        (gcd): Moved...
        (gcd): Moved...
        (print_direction_vector): New.
        (print_direction_vector): New.
        (dump_data_dependence_relation): Use print_direction_vector.
        (dump_data_dependence_relation): Use print_direction_vector.
        (object_analysis, create_data_ref): Handle COMPONENT_REF.
        (object_analysis, create_data_ref): Handle COMPONENT_REF.
        (compute_subscript_distance): Static.
        (compute_subscript_distance): Static.
        (initialize_data_dependence_relation): Static.  Get the number
        (initialize_data_dependence_relation): Static.  Get the number
        of loops surrounding the references from the callers, and initialize
        of loops surrounding the references from the callers, and initialize
        DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
        DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
        base_object_differ_p analyzers.
        base_object_differ_p analyzers.
        (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
        (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
        compute_overlap_steps_for_affine_1_2,
        compute_overlap_steps_for_affine_1_2,
        analyze_subscript_affine_affine): Count the classified dependences.
        analyze_subscript_affine_affine): Count the classified dependences.
        Print a message when a test failed.
        Print a message when a test failed.
        (can_use_analyze_subscript_affine_affine): New.
        (can_use_analyze_subscript_affine_affine): New.
        (analyze_siv_subscript): Compute the data dependences on symbolic
        (analyze_siv_subscript): Compute the data dependences on symbolic
        scevs that verify can_use_analyze_subscript_affine_affine.
        scevs that verify can_use_analyze_subscript_affine_affine.
        (chrec_steps_divide_constant_p): Returns true, false, or unknown.
        (chrec_steps_divide_constant_p): Returns true, false, or unknown.
        (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
        (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
        Handle symbolic scevs.
        Handle symbolic scevs.
        (analyze_overlapping_iterations): Let symbolic affine scevs to be
        (analyze_overlapping_iterations): Let symbolic affine scevs to be
        analyzed.
        analyzed.
        (subscript_dependence_tester): Moved...
        (subscript_dependence_tester): Moved...
        (build_classic_dist_vector, build_classic_dir_vector): Don't use
        (build_classic_dist_vector, build_classic_dir_vector): Don't use
        lambda_vector_clear on newly allocated vectors.  Get nb_loops from
        lambda_vector_clear on newly allocated vectors.  Get nb_loops from
        DDR_SIZE_VECT instead of getting it in parameter.
        DDR_SIZE_VECT instead of getting it in parameter.
        (subscript_dependence_tester): ... here.  Take as a parameter
        (subscript_dependence_tester): ... here.  Take as a parameter
        loop_nest_depth.  Call build_classic_dist_vector and
        loop_nest_depth.  Call build_classic_dist_vector and
        build_classic_dir_vector.
        build_classic_dir_vector.
        (compute_affine_dependence): Update subscript_dependence_tester
        (compute_affine_dependence): Update subscript_dependence_tester
        parameters.  Update datadep_stats counters.  Call
        parameters.  Update datadep_stats counters.  Call
        compute_subscript_distance.
        compute_subscript_distance.
        (compute_self_dependence): Save the dist and dir vectors.  Call
        (compute_self_dependence): Save the dist and dir vectors.  Call
        compute_subscript_distance.
        compute_subscript_distance.
        (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
        (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
        (compute_all_dependences): Reorder parameters as they were before
        (compute_all_dependences): Reorder parameters as they were before
        conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
        conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
        compute_subscript_distance.  Update the use of
        compute_subscript_distance.  Update the use of
        compute_affine_dependence and initialize_data_dependence_relation.
        compute_affine_dependence and initialize_data_dependence_relation.
        (find_data_references_in_loop): Handle COMPONENT_REF.
        (find_data_references_in_loop): Handle COMPONENT_REF.
        (compute_data_dependences_for_loop): Initialize dependence_stats.
        (compute_data_dependences_for_loop): Initialize dependence_stats.
        Don't call build_classic_dist_vector and build_classic_dir_vector.
        Don't call build_classic_dist_vector and build_classic_dir_vector.
        Update the parameters of initialize_data_dependence_relation and
        Update the parameters of initialize_data_dependence_relation and
        compute_all_dependences.  Print the statistics from datadep_stats.
        compute_all_dependences.  Print the statistics from datadep_stats.
        (analyze_all_data_dependences): Static.  Not used until the pass for
        (analyze_all_data_dependences): Static.  Not used until the pass for
        checking the data dependences is contributed.
        checking the data dependences is contributed.
        * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
        * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
        DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
        DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
        (initialize_data_dependence_relation, compute_affine_dependence,
        (initialize_data_dependence_relation, compute_affine_dependence,
        analyze_all_data_dependences, compute_subscript_distance): Removed.
        analyze_all_data_dependences, compute_subscript_distance): Removed.
        (print_direction_vector): New.
        (print_direction_vector): New.
        * lambda.h (gcd): ... here.
        * lambda.h (gcd): ... here.
        (lambda_vector_gcd): Moved here from gcd_vector.
        (lambda_vector_gcd): Moved here from gcd_vector.
        * lambda-code.c (gcd, gcd_vector): Removed.
        * lambda-code.c (gcd, gcd_vector): Removed.
        (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
        (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
        * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
        * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
2006-02-20  Diego Novillo  
2006-02-20  Diego Novillo  
        * ipa-type-escape.c: Tidy some comments and white space.
        * ipa-type-escape.c: Tidy some comments and white space.
        * tree-ssa-operands.c: Likewise.
        * tree-ssa-operands.c: Likewise.
2006-02-20  Andrew Pinski  
2006-02-20  Andrew Pinski  
        PR tree-opt/25879
        PR tree-opt/25879
        * tree-pretty-print.c (debug_tree_chain): Walk the chains.
        * tree-pretty-print.c (debug_tree_chain): Walk the chains.
        (dump_decl_name): Do not walk the decl tree chains.
        (dump_decl_name): Do not walk the decl tree chains.
        * tree-pass.h (TDF_CHAIN): Remove.
        * tree-pass.h (TDF_CHAIN): Remove.
2006-02-20  Rafael Ávila de Espíndola  
2006-02-20  Rafael Ávila de Espíndola  
        * Makefile.in (C): Remove
        * Makefile.in (C): Remove
        (PROTO): Remove
        (PROTO): Remove
        (.PHONY): Remove C and PROTO
        (.PHONY): Remove C and PROTO
2006-02-20  Roger Sayle  
2006-02-20  Roger Sayle  
        PR middle-end/26236
        PR middle-end/26236
        * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
        * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
        deprecated CHAR_TYPE tree code.
        deprecated CHAR_TYPE tree code.
2006-02-20  Paolo Bonzini  
2006-02-20  Paolo Bonzini  
        * configure.ac (target_list): Add install-info, dvi, html.
        * configure.ac (target_list): Add install-info, dvi, html.
        * configure: Regenerate.
        * configure: Regenerate.
        * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
        * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
        java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
        java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
        treelang/Make-lang.in: Do not use double-colon rules.
        treelang/Make-lang.in: Do not use double-colon rules.
2006-02-20  Daniel Berlin  
2006-02-20  Daniel Berlin  
        * tree.h (struct tree_memory_tag): Add is_used_alone member.
        * tree.h (struct tree_memory_tag): Add is_used_alone member.
        (TMT_USED_ALONE): New macro.
        (TMT_USED_ALONE): New macro.
        * tree-pass.h (PROP_tmt_usage): New property.
        * tree-pass.h (PROP_tmt_usage): New property.
        (TODO_update_tmt_usage): New todo.
        (TODO_update_tmt_usage): New todo.
        * tree-ssa-alias.c (updating_used_alone): New variable.
        * tree-ssa-alias.c (updating_used_alone): New variable.
        (recalculate_used_alone): New function.
        (recalculate_used_alone): New function.
        (compute_may_aliases): Set updating_used_alone, call
        (compute_may_aliases): Set updating_used_alone, call
        recalculate_used_alone.
        recalculate_used_alone.
        * tree-sra.c (pass_sra): Note that this pass destroys
        * tree-sra.c (pass_sra): Note that this pass destroys
        PROP_tmt_usage, and add TODO_update_tmt_usage.
        PROP_tmt_usage, and add TODO_update_tmt_usage.
        * tree-ssa-forwprop.c (pass_forwprop): Ditto.
        * tree-ssa-forwprop.c (pass_forwprop): Ditto.
        * tree-flow.h (updating_used_alone): Prototype.
        * tree-flow.h (updating_used_alone): Prototype.
        (recalculate_used_alone): Ditto.
        (recalculate_used_alone): Ditto.
        * passes.c (execute_todo): Add code to set updating_used_alone,
        * passes.c (execute_todo): Add code to set updating_used_alone,
        and call recalculate.
        and call recalculate.
        * tree-ssa-operands.c (add_virtual_operand): Only append bare def
        * tree-ssa-operands.c (add_virtual_operand): Only append bare def
        for clobber if used alone, and add assert to verify used_alone
        for clobber if used alone, and add assert to verify used_alone
        status.
        status.
2006-02-20  Angel Nunez Mencias  
2006-02-20  Angel Nunez Mencias  
        * config/s390/s390.c (legitimize_pic_address): Assertions checking
        * config/s390/s390.c (legitimize_pic_address): Assertions checking
        for non tls symbols added.
        for non tls symbols added.
        (legitimize_address): Do nothing for PLUS expressions if one of the
        (legitimize_address): Do nothing for PLUS expressions if one of the
        addends is a tls symbol reference.
        addends is a tls symbol reference.
2006-02-20  Paolo Bonzini  
2006-02-20  Paolo Bonzini  
        PR bootstrap/25476
        PR bootstrap/25476
        * Makefile.in (LDFLAGS): Define from autoconf substitution.
        * Makefile.in (LDFLAGS): Define from autoconf substitution.
        * Makefile.in (BOOTSTRAPPING): New.
        * Makefile.in (BOOTSTRAPPING): New.
        (quickstrap): New definition if BOOTSTRAPPING=yes.
        (quickstrap): New definition if BOOTSTRAPPING=yes.
        * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
        * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
        * configure.ac: Substitute all_selected_languages with the languages
        * configure.ac: Substitute all_selected_languages with the languages
        that were configured.  For all the other variables except
        that were configured.  For all the other variables except
        lang_specs_files, include all the languages in the tree.
        lang_specs_files, include all the languages in the tree.
        * configure: Regenerate.
        * configure: Regenerate.
        * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
        * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
        if there is one.  Run the commands to run fixincludes in the same
        if there is one.  Run the commands to run fixincludes in the same
        subshell.
        subshell.
        * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
        * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
        * doc/install.texi: Document exact conventions for searching target tools.
        * doc/install.texi: Document exact conventions for searching target tools.
        Document --with-build-time-tools.  Document toplevel bootstrap.  Document
        Document --with-build-time-tools.  Document toplevel bootstrap.  Document
        something more about building an Ada cross-compiler.  Don't list GNU Make
        something more about building an Ada cross-compiler.  Don't list GNU Make
        requirements which affect all platforms.
        requirements which affect all platforms.
2006-02-19  Roger Sayle  
2006-02-19  Roger Sayle  
        PR middle-end/19543
        PR middle-end/19543
        * varasm.c (compare_constant) : Integer constants are
        * varasm.c (compare_constant) : Integer constants are
        only equivalent if the have both the same mode and precision.
        only equivalent if the have both the same mode and precision.
2006-02-20  Ben Elliston  
2006-02-20  Ben Elliston  
        * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
        * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
2006-02-19  Roger Sayle  
2006-02-19  Roger Sayle  
            Steven Bosscher  
            Steven Bosscher  
        * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
        * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
        constant pool references to identify stack mode constants.
        constant pool references to identify stack mode constants.
        * rtlanal.c (constant_pool_constant_p): New predicate to check
        * rtlanal.c (constant_pool_constant_p): New predicate to check
        whether operand is a floating point constant in the pool.
        whether operand is a floating point constant in the pool.
        * rtl.h (constant_pool_constant_p): Prototype here.
        * rtl.h (constant_pool_constant_p): Prototype here.
        * loop.c (scan_loop): Avoid hoisting constants from the constant
        * loop.c (scan_loop): Avoid hoisting constants from the constant
        pool on STACK_REGS targets.
        pool on STACK_REGS targets.
        (load_mems): Likewise.
        (load_mems): Likewise.
        * loop-invariant.c (get_inv_cost): Make hoisting constant pool
        * loop-invariant.c (get_inv_cost): Make hoisting constant pool
        loads into x87 registers expensive in terms of register pressure.
        loads into x87 registers expensive in terms of register pressure.
2006-02-19  Roger Sayle  
2006-02-19  Roger Sayle  
        * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
        * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
        __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
        __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
2006-02-19  David Edelsohn  
2006-02-19  David Edelsohn  
        * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
        * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
2006-02-19  Daniel Berlin  
2006-02-19  Daniel Berlin  
        * doc/invoke.texi: Document -fipa-pta.
        * doc/invoke.texi: Document -fipa-pta.
        * common.opt: Add ipa-pta option.
        * common.opt: Add ipa-pta option.
        * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
        * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
        (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
        (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
        (do_ds_constraint): Ditto.
        (do_ds_constraint): Ditto.
        (get_constraint_for): Only add to referenced_vars if
        (get_constraint_for): Only add to referenced_vars if
        referenced_vars exists.
        referenced_vars exists.
        (insert_into_field_list): Rewrite to do this unsorted.
        (insert_into_field_list): Rewrite to do this unsorted.
        (insert_into_field_list_sorted): Rename old insert_into_field_list
        (insert_into_field_list_sorted): Rename old insert_into_field_list
        to this.
        to this.
        (create_function_info_for): Use insert_into_field_list_sorted.
        (create_function_info_for): Use insert_into_field_list_sorted.
        (create_variable_info_for): Rewrite so it uses unsorted version,
        (create_variable_info_for): Rewrite so it uses unsorted version,
        since the field list is sorted.
        since the field list is sorted.
        (intra_create_variable_infos): Only add to referenced_vars if
        (intra_create_variable_infos): Only add to referenced_vars if
        referenced_vars exists.
        referenced_vars exists.
        (ipa_pta_execute): Init heapvars, and delete when done.
        (ipa_pta_execute): Init heapvars, and delete when done.
        * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
        * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
2006-02-19  John David Anglin  
2006-02-19  John David Anglin  
        * doc/install.texi: Add missing `@samp'.
        * doc/install.texi: Add missing `@samp'.
2006-02-18  Andrew Pinski 
2006-02-18  Andrew Pinski 
        * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
        * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
        Use the arguments.
        Use the arguments.
2006-02-18  Mark Wielaard  
2006-02-18  Mark Wielaard  
        * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
        * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
        who added new 4.1 features, bug fixes and integration support.
        who added new 4.1 features, bug fixes and integration support.
2006-02-18  David Edelsohn  
2006-02-18  David Edelsohn  
        PR target/26350
        PR target/26350
        * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
        * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
        MEM for ABI_V4 pic.
        MEM for ABI_V4 pic.
2006-02-18  Richard Sandiford  
2006-02-18  Richard Sandiford  
        * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
        * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
        * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
        * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
        (copy_insn_1): Likewise.  Don't copy each field individually.
        (copy_insn_1): Likewise.  Don't copy each field individually.
        Reindent.
        Reindent.
        * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
        * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
        of RTX_SIZE.
        of RTX_SIZE.
        * reload1.c (eliminate_regs): Use shallow_copy_rtx.
        * reload1.c (eliminate_regs): Use shallow_copy_rtx.
        * rtl.c (rtx_size): Rename variable to...
        * rtl.c (rtx_size): Rename variable to...
        (rtx_code_size): ...this.
        (rtx_code_size): ...this.
        (rtx_size): New function.
        (rtx_size): New function.
        (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
        (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
        (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
        (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
        Reindent.
        Reindent.
        (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
        (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
        * rtl.h (rtx_code_size): New variable.
        * rtl.h (rtx_code_size): New variable.
        (rtx_size): Change from a variable to a function.
        (rtx_size): Change from a variable to a function.
        (RTX_SIZE): Rename to...
        (RTX_SIZE): Rename to...
        (RTX_CODE_SIZE): ...this.
        (RTX_CODE_SIZE): ...this.
        PR target/9703
        PR target/9703
        PR tree-optimization/17106
        PR tree-optimization/17106
        * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
        * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
        (Anchored Addresses): New section.
        (Anchored Addresses): New section.
        * doc/invoke.texi (-fsection-anchors): Document.
        * doc/invoke.texi (-fsection-anchors): Document.
        * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
        * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
        (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
        (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
        (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
        (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
        * hooks.c (hook_bool_mode_rtx_false): New function.
        * hooks.c (hook_bool_mode_rtx_false): New function.
        * hooks.h (hook_bool_mode_rtx_false): Declare.
        * hooks.h (hook_bool_mode_rtx_false): Declare.
        * gengtype.c (create_optional_field): New function.
        * gengtype.c (create_optional_field): New function.
        (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
        (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
        SYMBOL_REF_IN_BLOCK_P is true.
        SYMBOL_REF_IN_BLOCK_P is true.
        * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
        * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
        (min_anchor_offset, max_anchor_offset): Likewise.
        (min_anchor_offset, max_anchor_offset): Likewise.
        (use_anchors_for_symbol_p): New hook.
        (use_anchors_for_symbol_p): New hook.
        * toplev.c (compile_file): Call output_object_blocks.
        * toplev.c (compile_file): Call output_object_blocks.
        (target_supports_section_anchors_p): New function.
        (target_supports_section_anchors_p): New function.
        (process_options): Check that -fsection-anchors is only used on
        (process_options): Check that -fsection-anchors is only used on
        targets that support it and when -funit-at-a-time is in effect.
        targets that support it and when -funit-at-a-time is in effect.
        * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
        * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
        if the decl doesn't have one.
        if the decl doesn't have one.
        * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
        * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
        * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
        * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
        of force_const_mem through use_anchored_address.
        of force_const_mem through use_anchored_address.
        (expand_expr_constant): New function.
        (expand_expr_constant): New function.
        (expand_expr_addr_expr_1): Call it.  Use the same modifier when
        (expand_expr_addr_expr_1): Call it.  Use the same modifier when
        calling expand_expr for INDIRECT_REF.
        calling expand_expr for INDIRECT_REF.
        (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
        (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
        for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
        for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
        * expr.h (use_anchored_address): Declare.
        * expr.h (use_anchored_address): Declare.
        * loop-unroll.c: Don't declare rtx vectors here.
        * loop-unroll.c: Don't declare rtx vectors here.
        * explow.c: Include output.h.
        * explow.c: Include output.h.
        (validize_mem): Call use_anchored_address.
        (validize_mem): Call use_anchored_address.
        (use_anchored_address): New function.
        (use_anchored_address): New function.
        * common.opt (-fsection-anchors): New switch.
        * common.opt (-fsection-anchors): New switch.
        * varasm.c (object_block_htab, anchor_labelno): New variables.
        * varasm.c (object_block_htab, anchor_labelno): New variables.
        (hash_section, object_block_entry_eq, object_block_entry_hash)
        (hash_section, object_block_entry_eq, object_block_entry_hash)
        (use_object_blocks_p, get_block_for_section, create_block_symbol)
        (use_object_blocks_p, get_block_for_section, create_block_symbol)
        (use_blocks_for_decl_p, change_symbol_section): New functions.
        (use_blocks_for_decl_p, change_symbol_section): New functions.
        (get_variable_section): New function, split out from assemble_variable.
        (get_variable_section): New function, split out from assemble_variable.
        (make_decl_rtl): Create a block symbol if use_object_blocks_p and
        (make_decl_rtl): Create a block symbol if use_object_blocks_p and
        use_blocks_for_decl_p say so.  Use change_symbol_section if the
        use_blocks_for_decl_p say so.  Use change_symbol_section if the
        symbol has already been created.
        symbol has already been created.
        (assemble_variable_contents): New function, split out from...
        (assemble_variable_contents): New function, split out from...
        (assemble_variable): ...here.  Don't output any code for
        (assemble_variable): ...here.  Don't output any code for
        block symbols; just pass them to place_block_symbol.
        block symbols; just pass them to place_block_symbol.
        Use get_variable_section and assemble_variable_contents.
        Use get_variable_section and assemble_variable_contents.
        (get_constant_alignment, get_constant_section, get_constant_size): New
        (get_constant_alignment, get_constant_section, get_constant_size): New
        functions, split from output_constant_def_contents.
        functions, split from output_constant_def_contents.
        (build_constant_desc): Create a block symbol if use_object_blocks_p
        (build_constant_desc): Create a block symbol if use_object_blocks_p
        says so.  Or into SYMBOL_REF_FLAGS.
        says so.  Or into SYMBOL_REF_FLAGS.
        (assemble_constant_contents): New function, split from...
        (assemble_constant_contents): New function, split from...
        (output_constant_def_contents): ...here.  Don't output any code
        (output_constant_def_contents): ...here.  Don't output any code
        for block symbols; just pass them to place_section_symbol.
        for block symbols; just pass them to place_section_symbol.
        Use get_constant_section and get_constant_alignment.
        Use get_constant_section and get_constant_alignment.
        (force_const_mem): Create a block symbol if use_object_blocks_p and
        (force_const_mem): Create a block symbol if use_object_blocks_p and
        use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
        use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
        (output_constant_pool_1): Add an explicit alignment argument.
        (output_constant_pool_1): Add an explicit alignment argument.
        Don't switch sections here.
        Don't switch sections here.
        (output_constant_pool): Adjust call to output_constant_pool_1.
        (output_constant_pool): Adjust call to output_constant_pool_1.
        Switch sections here instead.  Don't output anything for block symbols;
        Switch sections here instead.  Don't output anything for block symbols;
        just pass them to place_block_symbol.
        just pass them to place_block_symbol.
        (init_varasm_once): Initialize object_block_htab.
        (init_varasm_once): Initialize object_block_htab.
        (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
        (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
        (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
        (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
        (place_block_symbol, get_section_anchor, output_object_block)
        (place_block_symbol, get_section_anchor, output_object_block)
        (output_object_block_htab, output_object_blocks): New functions.
        (output_object_block_htab, output_object_blocks): New functions.
        * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
        * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
        (TARGET_ASM_OUT): Include it.
        (TARGET_ASM_OUT): Include it.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
        (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
        (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
        (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
        (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
        (TARGET_INITIALIZER): Include them.
        (TARGET_INITIALIZER): Include them.
        * rtl.c (rtl_check_failed_block_symbol): New function.
        * rtl.c (rtl_check_failed_block_symbol): New function.
        * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
        * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
        (block_symbol, object_block): New structures.
        (block_symbol, object_block): New structures.
        (rtx_def): Add a block_symbol field to the union.
        (rtx_def): Add a block_symbol field to the union.
        (BLOCK_SYMBOL_CHECK): New macro.
        (BLOCK_SYMBOL_CHECK): New macro.
        (rtl_check_failed_block_symbol): Declare.
        (rtl_check_failed_block_symbol): Declare.
        (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
        (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
        (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
        (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
        (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
        (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
        (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
        (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
        * output.h (output_section_symbols): Declare.
        * output.h (output_section_symbols): Declare.
        (object_block): Name structure.
        (object_block): Name structure.
        (place_section_symbol, get_section_anchor, default_asm_output_anchor)
        (place_section_symbol, get_section_anchor, default_asm_output_anchor)
        (default_use_anchors_for_symbol_p): Declare.
        (default_use_anchors_for_symbol_p): Declare.
        * Makefile.in (RTL_BASE_H): Add vec.h.
        * Makefile.in (RTL_BASE_H): Add vec.h.
        (explow.o): Depend on output.h.
        (explow.o): Depend on output.h.
        * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
        * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
        (TARGET_MAX_ANCHOR_OFFSET): Likewise.
        (TARGET_MAX_ANCHOR_OFFSET): Likewise.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
        (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
        (rs6000_use_blocks_for_constant_p): New function.
        (rs6000_use_blocks_for_constant_p): New function.
2006-02-18  John David Anglin  
2006-02-18  John David Anglin  
        * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
        * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
2006-02-18  Andrew Pinski  
2006-02-18  Andrew Pinski  
        PR tree-opt/25680
        PR tree-opt/25680
        * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
        * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
        IMAGPART_EXPR.
        IMAGPART_EXPR.
2006-02-18  Diego Novillo  
2006-02-18  Diego Novillo  
        * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
        * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
        is_aliased.
        is_aliased.
        Update all users.
        Update all users.
2006-02-18  Jakub Jelinek  
2006-02-18  Jakub Jelinek  
        PR middle-end/26334
        PR middle-end/26334
        * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
        * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
        instead of DECL_REGISTER.
        instead of DECL_REGISTER.
2006-02-18  Olivier Hainque  
2006-02-18  Olivier Hainque  
        PR ada/13408
        PR ada/13408
        * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
        * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
2006-02-18  Joseph S. Myers  
2006-02-18  Joseph S. Myers  
        PR target/24837
        PR target/24837
        * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
        * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
        * opth-gen.awk: Handle Var and InverseMask together.
        * opth-gen.awk: Handle Var and InverseMask together.
        * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
        * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
        * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
        * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
        (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
        (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
        (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
        (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
        used together.
        used together.
        (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
        (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
        * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER): Define.
        LINUX_DYNAMIC_LINKER): Define.
        (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
        (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
        * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
        * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
        TARGET_GLIBC.
        TARGET_GLIBC.
        * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
        (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
        * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (TARGET_C99_FUNCTIONS): Don't define.
        (TARGET_C99_FUNCTIONS): Don't define.
        * config/i386/linux.h (DYNAMIC_LINKER): Rename to
        * config/i386/linux.h (DYNAMIC_LINKER): Rename to
        GLIBC_DYNAMIC_LINKER.
        GLIBC_DYNAMIC_LINKER.
        (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
        (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
        * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
        * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
        GLIBC_DYNAMIC_LINKER64): Define.
        GLIBC_DYNAMIC_LINKER64): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
        LINUX_DYNAMIC_LINKER64.
        LINUX_DYNAMIC_LINKER64.
        * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
        * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
        * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
        GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
        GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
        UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
        UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
        and LINUX_DYNAMIC_LINKER32.
        and LINUX_DYNAMIC_LINKER32.
        * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
        * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
        TARGET_GLIBC.
        TARGET_GLIBC.
        * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
        * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
        (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
        (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
        UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
        UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
        CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
        (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
        (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
        (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
        * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
        * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER): Define.
        LINUX_DYNAMIC_LINKER): Define.
        (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
        (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
        * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
        * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
        GLIBC_DYNAMIC_LINKER64): Define.
        GLIBC_DYNAMIC_LINKER64): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
        LINUX_DYNAMIC_LINKER64.
        LINUX_DYNAMIC_LINKER64.
        * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
        * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER): Define.
        LINUX_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
        (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
        * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
        * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
        GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
        GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
        UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
        UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
        (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
        (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
        (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
        (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
        (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
        (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
        * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * doc/invoke.texi (-muclibc): Remove caveat about supported
        * doc/invoke.texi (-muclibc): Remove caveat about supported
        targets.
        targets.
2006-02-17  Grigory Zagorodnev 
2006-02-17  Grigory Zagorodnev 
        * doc/cpp.texi (__TIMESTAMP__): Document.
        * doc/cpp.texi (__TIMESTAMP__): Document.
2006-02-17  Roger Sayle  
2006-02-17  Roger Sayle  
        PR middle-end/25600
        PR middle-end/25600
        * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
        * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
        C is one less than the width of X (and related transformations).
        C is one less than the width of X (and related transformations).
        * simplify-rtx.c (simplify_unary_operation_1): Transform
        * simplify-rtx.c (simplify_unary_operation_1): Transform
        (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
        (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
        depending on STORE_FLAG_VALUE, were C is one less then the
        depending on STORE_FLAG_VALUE, were C is one less then the
        width of X.
        width of X.
2006-02-17  Daniel Berlin  
2006-02-17  Daniel Berlin  
        Fix PR tree-optimization/26341
        Fix PR tree-optimization/26341
        * tree-ssa-operands.c (add_virtual_operand): Remove assert
        * tree-ssa-operands.c (add_virtual_operand): Remove assert
        about NAME_MEMORY_TAG's.
        about NAME_MEMORY_TAG's.
2006-02-17  John David Anglin  
2006-02-17  John David Anglin  
        PR target/26255
        PR target/26255
        * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
        * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
        with hardware float support, and software float support.  Add fcpy
        with hardware float support, and software float support.  Add fcpy
        alternative to hardware patterns.  Add alternatives to copy between
        alternative to hardware patterns.  Add alternatives to copy between
        general and floating-point registers to the 32-bit pattern.
        general and floating-point registers to the 32-bit pattern.
        * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
        * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
        secondary reload to load a QI or HI mode constant into a floating
        secondary reload to load a QI or HI mode constant into a floating
        point register.
        point register.
        * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
        * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
        * pa64-regs.h (VALID_FP_MODE_P): Likewise.
        * pa64-regs.h (VALID_FP_MODE_P): Likewise.
2006-02-17  Andrew Pinski  
2006-02-17  Andrew Pinski  
        PR target/26272
        PR target/26272
        * config/rs6000/darwin.md (load_macho_picbase_si): Add
        * config/rs6000/darwin.md (load_macho_picbase_si): Add
        pc to the pattern.
        pc to the pattern.
        (load_macho_picbase_di): Likewise.
        (load_macho_picbase_di): Likewise.
2006-02-16  Jeff Law  
2006-02-16  Jeff Law  
        * tree-vrp.c (set_value_range_to_nonnegative): New function.
        * tree-vrp.c (set_value_range_to_nonnegative): New function.
        (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
        (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
        (ssa_name_nonzero_p): Likewise.
        (ssa_name_nonzero_p): Likewise.
        (get_value_range): Return NULL if VRP is not running.
        (get_value_range): Return NULL if VRP is not running.
        (extract_range_from_expr): Fallback to tree_expr_XXX_p if
        (extract_range_from_expr): Fallback to tree_expr_XXX_p if
        VRP routines do not discover a range.
        VRP routines do not discover a range.
        (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
        (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
        * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
        * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
        * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
        * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
        (tree_expr_nonnegative_p): Similarly.
        (tree_expr_nonnegative_p): Similarly.
        * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
        * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
        (restore_nonzero_vars_to_original_value): Remove.
        (restore_nonzero_vars_to_original_value): Remove.
        (unsafe_associative_fp_binop): Remove.
        (unsafe_associative_fp_binop): Remove.
        (tree_ssa_dominator_optimize): Remove initialization and
        (tree_ssa_dominator_optimize): Remove initialization and
        finalization of nonzero_vars and nonzero_vars_stack.
        finalization of nonzero_vars and nonzero_vars_stack.
        (dom_opt_initialize_block): No longer push marker on
        (dom_opt_initialize_block): No longer push marker on
        nonzero_vars_stack.
        nonzero_vars_stack.
        (dom_opt_finalize_block): No longer call
        (dom_opt_finalize_block): No longer call
        restore_nonzero_vars_to_original_value.
        restore_nonzero_vars_to_original_value.
        (record_equivalences_from_phis): No longer look for
        (record_equivalences_from_phis): No longer look for
        nonzero PHI arguments.
        nonzero PHI arguments.
        (cprop_into_successor_phis): No longer propagate nonzero
        (cprop_into_successor_phis): No longer propagate nonzero
        property into PHI arguments.  Lose unused argument.  Caller
        property into PHI arguments.  Lose unused argument.  Caller
        updated.
        updated.
        (record_equivalences_from_stmt): No longer record nonzero
        (record_equivalences_from_stmt): No longer record nonzero
        values for SSA_NAMEs.
        values for SSA_NAMEs.
        (lookup_avail_expr): No longer use nonzero_vars.
        (lookup_avail_expr): No longer use nonzero_vars.
        * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
        * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
        for sizetype when sizetype is unsigned.
        for sizetype when sizetype is unsigned.
2006-02-16  Denis Nagorny 
2006-02-16  Denis Nagorny 
        PR rtl-optimization/25603
        PR rtl-optimization/25603
        * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
        * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
        (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
        (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
        * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
        * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
        with new meaning of SETS.
        with new meaning of SETS.
2006-02-16  Joseph S. Myers  
2006-02-16  Joseph S. Myers  
        PR target/20353
        PR target/20353
        PR target/24578
        PR target/24578
        PR target/24837
        PR target/24837
        * config/linux.opt: New file.
        * config/linux.opt: New file.
        * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
        * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
        LINUX_DYNAMIC_LINKER): Define.
        LINUX_DYNAMIC_LINKER): Define.
        (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
        (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
        * config.gcc (*-*-linux*): Define extra_options.
        * config.gcc (*-*-linux*): Define extra_options.
        (*-*-*uclibc*): Define UCLIBC_DEFAULT.
        (*-*-*uclibc*): Define UCLIBC_DEFAULT.
        (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
        (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
        * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
        * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
        GLIBC_DYNAMIC_LINKER.
        GLIBC_DYNAMIC_LINKER.
        * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
        * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
        (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
        * doc/invoke.texi (GNU/Linux Options): New section.
        * doc/invoke.texi (GNU/Linux Options): New section.
2006-02-16  Eric Botcazou  
2006-02-16  Eric Botcazou  
        * config/sparc/sparc.md (setjmp): Rewrite.
        * config/sparc/sparc.md (setjmp): Rewrite.
        (setjmp_32): Delete.
        (setjmp_32): Delete.
        (setjmp_64): Likewise.
        (setjmp_64): Likewise.
2006-02-16  Daniel Berlin 
2006-02-16  Daniel Berlin 
        * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
        * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
         previous change.
         previous change.
2006-02-16  Zdenek Dvorak 
2006-02-16  Zdenek Dvorak 
        * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
        * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
        read-write uses.
        read-write uses.
2006-02-16  Zdenek Dvorak 
2006-02-16  Zdenek Dvorak 
        PR rtl-optimization/26296
        PR rtl-optimization/26296
        * Makefile.in (loop-invariant.c): Add except.h dependency.
        * Makefile.in (loop-invariant.c): Add except.h dependency.
        * loop-invariant.c: Include except.h.
        * loop-invariant.c: Include except.h.
        (find_invariant_insn): Ignore insns satisfying can_throw_internal.
        (find_invariant_insn): Ignore insns satisfying can_throw_internal.
2005-02-16  Paul Brook  
2005-02-16  Paul Brook  
        * reload1.c (emit_reload_insns): Invalidate dead input registers used
        * reload1.c (emit_reload_insns): Invalidate dead input registers used
        for reloads.
        for reloads.
2006-02-16  Bernd Schmidt  
2006-02-16  Bernd Schmidt  
        PR rtl-optimization/25636
        PR rtl-optimization/25636
        * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
        * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
        when deciding whether an insn is an initializing insn.
        when deciding whether an insn is an initializing insn.
2006-02-15 Daniel Berlin  
2006-02-15 Daniel Berlin  
        * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
        * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
        (tree_code_size): Ditto.
        (tree_code_size): Ditto.
        * tree.h (struct tree_memory_tag): Remove parent_var.
        * tree.h (struct tree_memory_tag): Remove parent_var.
        (struct tree_struct_field_tag): New.
        (struct tree_struct_field_tag): New.
        (SFT_OFFSET): New.
        (SFT_OFFSET): New.
        (SFT_SIZE): New.
        (SFT_SIZE): New.
        (union tree_node): Add sft member.
        (union tree_node): Add sft member.
        * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
        * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
        specially here.
        specially here.
        (create_sft): Add size and offset argument, set SFT_OFFSET and
        (create_sft): Add size and offset argument, set SFT_OFFSET and
        SFT_SIZE.
        SFT_SIZE.
        (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
        (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
        * treestruct.def: Add TS_STRUCT_FIELD_TAG.
        * treestruct.def: Add TS_STRUCT_FIELD_TAG.
        * tree-flow-inline.h (get_subvar_at): Update for
        * tree-flow-inline.h (get_subvar_at): Update for
        SFT_OFFSET/SFT_SIZE.
        SFT_OFFSET/SFT_SIZE.
        (var_can_have_subvars): Ditto.
        (var_can_have_subvars): Ditto.
        (overlap_subvar): Ditto.
        (overlap_subvar): Ditto.
        * print-tree.c (print_node): Print out interesting things for
        * print-tree.c (print_node): Print out interesting things for
        SFT's.
        SFT's.
        * tree-flow.h (struct subvar): Remove offset and size members.
        * tree-flow.h (struct subvar): Remove offset and size members.
        * tree-ssa-operands.c (get_expr_operands): Update for
        * tree-ssa-operands.c (get_expr_operands): Update for
        get_indirect_ref_operands changes.
        get_indirect_ref_operands changes.
        (get_indirect_ref_operands): Call add_virtual_operand instead of
        (get_indirect_ref_operands): Call add_virtual_operand instead of
        add_stmt_operand.  Only recurse on base var if requested.
        add_stmt_operand.  Only recurse on base var if requested.
        (access_can_touch_variable): New function.
        (access_can_touch_variable): New function.
        (add_stmt_operand): Split virtual operand handling into ...
        (add_stmt_operand): Split virtual operand handling into ...
        (add_virtual_operand): Here.  Add offset, size, and for_clobber
        (add_virtual_operand): Here.  Add offset, size, and for_clobber
        arguments.  Prune alias sets.
        arguments.  Prune alias sets.
        (add_call_clobber_ops): Call add_virtual_operand.
        (add_call_clobber_ops): Call add_virtual_operand.
2006-02-15  Jakub Jelinek  
2006-02-15  Jakub Jelinek  
        PR middle-end/26300
        PR middle-end/26300
        * combine.c (make_extraction): Bail out if ORIG_POS is negative.
        * combine.c (make_extraction): Bail out if ORIG_POS is negative.
        * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
        * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
        than TREE_CODE as index into omp_clause_num_ops array.
        than TREE_CODE as index into omp_clause_num_ops array.
2006-02-15  Uttam Pawar  
2006-02-15  Uttam Pawar  
        PR rtl-optimization/26184
        PR rtl-optimization/26184
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        uses_of_defs.
        uses_of_defs.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        must_precede, must_follow and tobe_scheduled.
        must_precede, must_follow and tobe_scheduled.
        PR other/26147
        PR other/26147
        * opts.c (common_handle_option): Free new_option pointer.
        * opts.c (common_handle_option): Free new_option pointer.
        * df-core.c (df_analyze): Free postorder pointer.
        * df-core.c (df_analyze): Free postorder pointer.
2006-02-15  Rafael Ávila de Espíndola 
2006-02-15  Rafael Ávila de Espíndola 
        * Makefile.in: Fix the examples about the use of stamps
        * Makefile.in: Fix the examples about the use of stamps
2006-02-15  Michael Matz  
2006-02-15  Michael Matz  
        PR middle-end/22275
        PR middle-end/22275
        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        influenced by maximum_field_alignment or DECL_PACKED.
        influenced by maximum_field_alignment or DECL_PACKED.
        (update_alignment_for_field): Ditto.
        (update_alignment_for_field): Ditto.
        (place_field): Ditto.
        (place_field): Ditto.
        * doc/extend.texi (<#pragma pack>, ): Document
        * doc/extend.texi (<#pragma pack>, ): Document
        this behaviour.
        this behaviour.
2006-02-15  Paolo Bonzini  
2006-02-15  Paolo Bonzini  
        * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
        * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
        (debug_flow_info): Pass it.
        (debug_flow_info): Pass it.
        * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
        * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
        * bb-reorder.c (reorder_basic_blocks): Likewise.
        * bb-reorder.c (reorder_basic_blocks): Likewise.
        * cfgcleanup.c (rest_of_handle_jump2): Likewise.
        * cfgcleanup.c (rest_of_handle_jump2): Likewise.
        * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
        * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
        * flow.c (life_analysis, recompute_reg_usage): Likewise.
        * flow.c (life_analysis, recompute_reg_usage): Likewise.
        * gcse.c (gcse_main, bypass_jumps): Likewise.
        * gcse.c (gcse_main, bypass_jumps): Likewise.
        * ifcvt.c (rest_of_handle_if_conversion): Likewise.
        * ifcvt.c (rest_of_handle_if_conversion): Likewise.
        * local-alloc.c (rest_of_handle_local_alloc): Likewise.
        * local-alloc.c (rest_of_handle_local_alloc): Likewise.
        * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
        * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
        * profile.c (compute_branch_probabilities, branch_prob): Likewise.
        * profile.c (compute_branch_probabilities, branch_prob): Likewise.
        * rtl.h (dump_flow_info): Adjust prototype.
        * rtl.h (dump_flow_info): Adjust prototype.
        * tracer.c (rest_of_handle_tracer, tracer): Likewise.
        * tracer.c (rest_of_handle_tracer, tracer): Likewise.
        * var-tracking.c (variable_tracking_main): Likewise.
        * var-tracking.c (variable_tracking_main): Likewise.
        * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
        * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
        * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
        * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
        options.
        options.
2006-02-15  Marcin Dalecki 
2006-02-15  Marcin Dalecki 
        * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
        * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
        construction.
        construction.
2006-02-14  Zdenek Dvorak 
2006-02-14  Zdenek Dvorak 
        PR tree-optimization/26209
        PR tree-optimization/26209
        * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
        * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
        * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
        * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
        eh edges.
        eh edges.
        * tree-cfg.c (replace_uses_by): Do not alter cfg.
        * tree-cfg.c (replace_uses_by): Do not alter cfg.
2006-02-14  Roger Sayle  
2006-02-14  Roger Sayle  
        PR middle-end/23670
        PR middle-end/23670
        * fold-const.c (fold_binary) : Optimize (X&Y)|Y into
        * fold-const.c (fold_binary) : Optimize (X&Y)|Y into
        (X,Y) and the corresponding symmetry related transformations.
        (X,Y) and the corresponding symmetry related transformations.
        (fold_binary) : Likewise, optimize (X|Y)&Y into
        (fold_binary) : Likewise, optimize (X|Y)&Y into
        (X,Y) and its symmetry related transformations.
        (X,Y) and its symmetry related transformations.
2006-02-14  Roger Sayle  
2006-02-14  Roger Sayle  
        * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
        * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
        and GEU.
        and GEU.
2006-02-14  Adam Nemet  
2006-02-14  Adam Nemet  
        * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
        * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
2006-02-14  Rainer Orth  
2006-02-14  Rainer Orth  
        PR bootstrap/26053
        PR bootstrap/26053
        * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
        * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
        support COMDAT group.
        support COMDAT group.
        * configure: Regenerate.
        * configure: Regenerate.
2006-02-14  Roger Sayle  
2006-02-14  Roger Sayle  
        PR middle-end/26279
        PR middle-end/26279
        PR middle-end/26280
        PR middle-end/26280
        PR middle-end/26283
        PR middle-end/26283
        * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
        * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
2006-02-14  Daniel Berlin  
2006-02-14  Daniel Berlin  
        Fix PR tree-optimization/26260
        Fix PR tree-optimization/26260
        * doc/invoke.texi (max-fields-for-field-sensitive): Document
        * doc/invoke.texi (max-fields-for-field-sensitive): Document
        param.
        param.
        * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
        * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
        * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
        * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
        * tree-ssa-structalias.c (create_variable_info_for): Use
        * tree-ssa-structalias.c (create_variable_info_for): Use
        MAX_FIELDS_FOR_FIELD_SENSITIVE.
        MAX_FIELDS_FOR_FIELD_SENSITIVE.
2006-02-14  Zdenek Dvorak 
2006-02-14  Zdenek Dvorak 
        * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
        * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
        Document.
        Document.
        * tree-ssa-loop-niter.c (number_of_iterations_ne,
        * tree-ssa-loop-niter.c (number_of_iterations_ne,
        number_of_iterations_lt, number_of_iterations_cond): Remember the shape
        number_of_iterations_lt, number_of_iterations_cond): Remember the shape
        of the ending condition.
        of the ending condition.
        * tree-ssa-loop-manip.c: Include params.h.
        * tree-ssa-loop-manip.c: Include params.h.
        (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
        (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
        tree_unroll_loop): New functions.
        tree_unroll_loop): New functions.
        * tree-pass.h (pass_loop_prefetch): Declare.
        * tree-pass.h (pass_loop_prefetch): Declare.
        * loop.c (rest_of_handle_loop_optimize): Test for
        * loop.c (rest_of_handle_loop_optimize): Test for
        -fprefetch-loop-arrays-rtl.
        -fprefetch-loop-arrays-rtl.
        * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
        * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
        * timevar.def (TV_TREE_PREFETCH): New timevar.
        * timevar.def (TV_TREE_PREFETCH): New timevar.
        * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
        * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
        pass_loop_prefetch): New.
        pass_loop_prefetch): New.
        * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
        * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
        (cleanup_tree_cfg_loop): Call scev_reset.
        (cleanup_tree_cfg_loop): Call scev_reset.
        * common.opt (fprefetch-loop-arrays-rtl): Add.
        * common.opt (fprefetch-loop-arrays-rtl): Add.
        * tree-ssa-loop-prefetch.c: New file.
        * tree-ssa-loop-prefetch.c: New file.
        * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
        * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
        (new_temp_expr_table): Initialize expr_vars.
        (new_temp_expr_table): Initialize expr_vars.
        (free_temp_expr_table): Cleanup expr_vars.
        (free_temp_expr_table): Cleanup expr_vars.
        (check_replaceable, find_replaceable_in_bb): Prevent accumulating
        (check_replaceable, find_replaceable_in_bb): Prevent accumulating
        expressions from being merged into one.
        expressions from being merged into one.
        * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
        * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
        (struct tree_niter_desc): Add control, bound and cmp fields.
        (struct tree_niter_desc): Add control, bound and cmp fields.
        (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
        (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
        Declare.
        Declare.
        * Makefile.in (tree-ssa-loop-prefetch.o): Add.
        * Makefile.in (tree-ssa-loop-prefetch.o): Add.
        (tree-cfgcleanup.o): Add SCEV_H dependency.
        (tree-cfgcleanup.o): Add SCEV_H dependency.
        (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
        (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
        * passes.c (init_optimization_passes): Add pass_loop_prefetch.
        * passes.c (init_optimization_passes): Add pass_loop_prefetch.
2006-02-14  Richard Guenther  
2006-02-14  Richard Guenther  
        PR tree-optimization/26258
        PR tree-optimization/26258
        * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
        * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
        in PHI argument processing.
        in PHI argument processing.
2006-02-13  Adam Nemet  
2006-02-13  Adam Nemet  
        * simplify-rtx.c (simplify_unary_operation_1) : Return
        * simplify-rtx.c (simplify_unary_operation_1) : Return
        new expression in the requested machine mode.
        new expression in the requested machine mode.
2006-02-13  Roger Sayle  
2006-02-13  Roger Sayle  
        * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
        * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
        directly, instead let do_compare_rtx_and_jump handle this for us.
        directly, instead let do_compare_rtx_and_jump handle this for us.
        * expr.c (expand_expr_real_1): Likewise.
        * expr.c (expand_expr_real_1): Likewise.
        * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
        * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
        before do_jump_by_parts_greater.
        before do_jump_by_parts_greater.
        (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
        (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
        * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
        * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
2006-02-13  John David Anglin  
2006-02-13  John David Anglin  
        * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
        * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
2006-02-13  Zdenek Dvorak 
2006-02-13  Zdenek Dvorak 
        PR rtl-optimization/26235
        PR rtl-optimization/26235
        * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
        * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
        (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
        (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
        format.
        format.
2006-02-13  Jeff Law  
2006-02-13  Jeff Law  
        * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
        * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
        TRUTH_XOR_EPR.
        TRUTH_XOR_EPR.
2006-02-13  Jakub Jelinek  
2006-02-13  Jakub Jelinek  
        PR middle-end/26092
        PR middle-end/26092
        * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
        * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
        twice if decl is a builtin.  When trying again, call get_callee_fndecl
        twice if decl is a builtin.  When trying again, call get_callee_fndecl
        first to verify it is still a builtin.
        first to verify it is still a builtin.
2006-02-13  Geoffrey Keating  
2006-02-13  Geoffrey Keating  
        * dwarf2out.c (base_type_die): Don't add AT_name here.
        * dwarf2out.c (base_type_die): Don't add AT_name here.
        (subrange_type_die): Don't add AT_name here.
        (subrange_type_die): Don't add AT_name here.
        (modified_type_die): Rearrange code flow.  Do add AT_name here.
        (modified_type_die): Rearrange code flow.  Do add AT_name here.
2006-02-13  Zdenek Dvorak 
2006-02-13  Zdenek Dvorak 
        PR rtl-optimization/26247
        PR rtl-optimization/26247
        PR rtl-optimization/26248
        PR rtl-optimization/26248
        * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
        * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
2006-02-13  Richard Sandiford  
2006-02-13  Richard Sandiford  
        * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
        * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
        * config/fixtfdi.c: Likewise.
        * config/fixtfdi.c: Likewise.
        * config/fixunstfdi.c: Likewise.
        * config/fixunstfdi.c: Likewise.
        * config/floatditf.c: Likewise.
        * config/floatditf.c: Likewise.
2006-02-13  Roger Sayle  
2006-02-13  Roger Sayle  
        PR middle-end/24427
        PR middle-end/24427
        * fold-const.c (fold_binary) : Transform (X&C1)|C2
        * fold-const.c (fold_binary) : Transform (X&C1)|C2
        into (X,C2) if C1 is a subset of the bits of C2.  Transform
        into (X,C2) if C1 is a subset of the bits of C2.  Transform
        (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
        (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
        (X&(C1&~C2))|C2.
        (X&(C1&~C2))|C2.
        : Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
        : Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
2006-02-13  Josh Conner  
2006-02-13  Josh Conner  
        PR target/25376
        PR target/25376
        * varasm.c (function_section): Check for section name before
        * varasm.c (function_section): Check for section name before
        calling select_section on targets that define
        calling select_section on targets that define
        USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
        USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
        unlikely_text_section instead of hot_function_section if
        unlikely_text_section instead of hot_function_section if
        first_function_block_is_cold.
        first_function_block_is_cold.
2006-02-13  J"orn Rennecke 
2006-02-13  J"orn Rennecke 
        PR middle-end/25335
        PR middle-end/25335
        * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
        * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
2006-02-12  Zdenek Dvorak 
2006-02-12  Zdenek Dvorak 
        PR rtl-optimization/26222
        PR rtl-optimization/26222
        * function.c (assign_stack_temp_for_type): Do not reuse stack slots
        * function.c (assign_stack_temp_for_type): Do not reuse stack slots
        after tree->rtl expansion.
        after tree->rtl expansion.
        * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
        * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
        before passing it to emit_move_insn.
        before passing it to emit_move_insn.
2006-02-12  Gabriel Dos Reis  
2006-02-12  Gabriel Dos Reis  
        * doc/invoke.texi (-Write-strings): Document that it is enabled by
        * doc/invoke.texi (-Write-strings): Document that it is enabled by
        default.
        default.
        * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
        * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
        Clarify documentation.
        Clarify documentation.
        * c-common.h (warn_write_strings): Remove.
        * c-common.h (warn_write_strings): Remove.
        * c-common.c (warn_write_strings): Likewise.
        * c-common.c (warn_write_strings): Likewise.
        * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
        * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
        default for C++.
        default for C++.
2006-02-12  Roger Sayle  
2006-02-12  Roger Sayle  
        PR middle-end/25724
        PR middle-end/25724
        * dojump.c (do_jump): Call do_compare_rtx_and_jump.
        * dojump.c (do_jump): Call do_compare_rtx_and_jump.
        (do_jump_parts_zero_rtx): New function renamed from
        (do_jump_parts_zero_rtx): New function renamed from
        do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
        do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
        (do_jump_parts_equality_rtx): New function split out from
        (do_jump_parts_equality_rtx): New function split out from
        do_jump_parts_equality.  Old implementation renamed as above.
        do_jump_parts_equality.  Old implementation renamed as above.
        Call do_jump_parts_zero_rtx if either operand is zero.
        Call do_jump_parts_zero_rtx if either operand is zero.
        (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
        (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
        do all of the heavy lifting.
        do all of the heavy lifting.
        (do_compare_rtx_and_jump): Handle multi-word comparisons by
        (do_compare_rtx_and_jump): Handle multi-word comparisons by
        calling either do_jump_by_parts_greater_rtx or
        calling either do_jump_by_parts_greater_rtx or
        do_jump_by_parts_equality_rtx.
        do_jump_by_parts_equality_rtx.
        * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
        * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
        * expmed.c (do_cmp_and_jump): Now multi-word optimization has
        * expmed.c (do_cmp_and_jump): Now multi-word optimization has
        moved to do_compare_rtx_and_jump, call it directly.
        moved to do_compare_rtx_and_jump, call it directly.
        * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
        * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
        mode argument.  Call do_compare_rtx_and_jump.
        mode argument.  Call do_compare_rtx_and_jump.
        (emit_case_nodes): Update calls to do_jump_if_equal.
        (emit_case_nodes): Update calls to do_jump_if_equal.
2006-02-12  Zdenek Dvorak 
2006-02-12  Zdenek Dvorak 
        PR rtl-optimization/26225
        PR rtl-optimization/26225
        * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
        * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
2006-02-12  Zdenek Dvorak 
2006-02-12  Zdenek Dvorak 
        PR rtl-optimization/26232
        PR rtl-optimization/26232
        * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
        * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
2006-02-11  Jason Merrill  
2006-02-11  Jason Merrill  
        PR tree-opt/24365
        PR tree-opt/24365
        * tree-inline.c (declare_return_variable): Just don't use the
        * tree-inline.c (declare_return_variable): Just don't use the
        modify target if it's a gimple complex reg and the return slot
        modify target if it's a gimple complex reg and the return slot
        isn't.
        isn't.
2006-02-11  Kaveh R. Ghazi  
2006-02-11  Kaveh R. Ghazi  
        * doc/contrib.texi: Update my entry.
        * doc/contrib.texi: Update my entry.
2006-02-10  Geoffrey Keating  
2006-02-10  Geoffrey Keating  
        * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
        * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
2006-02-10  Diego Novillo  
2006-02-10  Diego Novillo  
        * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
        * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
        expensive.
        expensive.
2006-02-10  Zdenek Dvorak 
2006-02-10  Zdenek Dvorak 
        * doc/invoke.texi (-floop-optimize2): Removed.
        * doc/invoke.texi (-floop-optimize2): Removed.
        * toplev.c (process_options): Remove handling of flag_loop_optimize2.
        * toplev.c (process_options): Remove handling of flag_loop_optimize2.
        * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
        * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
        Test flag_branch_on_count_reg only if HAVE_doloop_end.
        Test flag_branch_on_count_reg only if HAVE_doloop_end.
        * common.opt (floop-optimize2): Removed.
        * common.opt (floop-optimize2): Removed.
        (fmove-loop-invariants): Enabled by default.
        (fmove-loop-invariants): Enabled by default.
2006-02-10  Sebastian Pop  
2006-02-10  Sebastian Pop  
        * tree-if-conv.c (combine_blocks): Free the result of
        * tree-if-conv.c (combine_blocks): Free the result of
        get_loop_exit_edges.
        get_loop_exit_edges.
2006-02-10  Jeff Law  
2006-02-10  Jeff Law  
        * fold-const.c (tree_expr_nonzero_p): Fix thinko.
        * fold-const.c (tree_expr_nonzero_p): Fix thinko.
        PR tree-optimization/26213
        PR tree-optimization/26213
        * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
        * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
        loop trying to follow SSA_NAME_VALUE chains.
        loop trying to follow SSA_NAME_VALUE chains.
2006-02-10  Richard Guenther  
2006-02-10  Richard Guenther  
        * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
        * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
        deal with structures that end in implicitly variable sized arrays.
        deal with structures that end in implicitly variable sized arrays.
2006-02-09  Zdenek Dvorak 
2006-02-09  Zdenek Dvorak 
        PR rtl-optimization/24762
        PR rtl-optimization/24762
        * df-scan.c (df_bb_refs_record): Record correct registers defined on
        * df-scan.c (df_bb_refs_record): Record correct registers defined on
        eh edges.
        eh edges.
2006-02-09  Zdenek Dvorak 
2006-02-09  Zdenek Dvorak 
        * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
        * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
        (struct ivopts_data): Add regs_used field.
        (struct ivopts_data): Add regs_used field.
        (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
        (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
        (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
        (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
        instead of loop_data->regs_used;
        instead of loop_data->regs_used;
        (free_loop_data): Do not free aux fields for loops.
        (free_loop_data): Do not free aux fields for loops.
        (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
        (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
        and tree_ssa_iv_optimize_finalize.
        and tree_ssa_iv_optimize_finalize.
2006-02-09  Kaz Kojima  
2006-02-09  Kaz Kojima  
        * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
        * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
2006-02-09  J"orn Rennecke 
2006-02-09  J"orn Rennecke 
        PR target/26141
        PR target/26141
        * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
        * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
        computing the effective result type.
        computing the effective result type.
2006-02-09  J"orn Rennecke 
2006-02-09  J"orn Rennecke 
        PR inline-asm/16194
        PR inline-asm/16194
        * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
        * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
        (tree_overlaps_hard_reg_set): Declare.
        (tree_overlaps_hard_reg_set): Declare.
        * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
        * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
        type and signature to match function type expected by walk_tree.
        type and signature to match function type expected by walk_tree.
        (tree_overlaps_hard_reg_set): New function.
        (tree_overlaps_hard_reg_set): New function.
        (decl_conflicts_with_clobbers_p): Rename to:
        (decl_conflicts_with_clobbers_p): Rename to:
        (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
        (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
        Use tree_overlaps_hard_reg_set.  Changed caller.
        Use tree_overlaps_hard_reg_set.  Changed caller.
        * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
        * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
        decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
        decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
        * cris.c (cris_md_asm_clobbers): Likewise.
        * cris.c (cris_md_asm_clobbers): Likewise.
2006-02-09  Bernd Schmidt  
2006-02-09  Bernd Schmidt  
        * reload1.c (emit_input_reload_insns): Delete code that tries to
        * reload1.c (emit_input_reload_insns): Delete code that tries to
        inherit using find_equiv_reg.
        inherit using find_equiv_reg.
2006-02-09  Gabriel Dos Reis  
2006-02-09  Gabriel Dos Reis  
        * c-common.h (flag_const_strings): Don't declare.
        * c-common.h (flag_const_strings): Don't declare.
        * c-common.c (flag_const_strings): Remove.
        * c-common.c (flag_const_strings): Remove.
        * c.opt (fconst_strings): Remove.
        * c.opt (fconst_strings): Remove.
        * c-opts.c (c_common_handle_option): Remove .
        * c-opts.c (c_common_handle_option): Remove .
        : Don't set flag_const_strings.
        : Don't set flag_const_strings.
        (c_common_init_options): Don't set flag_const_strings.
        (c_common_init_options): Don't set flag_const_strings.
        * doc/invoke.texi (-fno-const-strings): Remove documentation.
        * doc/invoke.texi (-fno-const-strings): Remove documentation.
2006-02-09  Richard Earnshaw  
2006-02-09  Richard Earnshaw  
        * arm.md (tlobits_cbranch): New pattern.
        * arm.md (tlobits_cbranch): New pattern.
        * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
        * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
        testing a single bit.
        testing a single bit.
2006-02-09  Andrew Pinski  
2006-02-09  Andrew Pinski  
        PR tree-opt/26179
        PR tree-opt/26179
        * tree-ssa-pre.c (create_component_ref_by_pieces):
        * tree-ssa-pre.c (create_component_ref_by_pieces):
        Handle RETURN_DECL like VAR_DECL.
        Handle RETURN_DECL like VAR_DECL.
2006-02-09  Andrew Pinski  
2006-02-09  Andrew Pinski  
        PR middle-end/26134
        PR middle-end/26134
        * fold-const.c (fold_indirect_ref_1): Fold
        * fold-const.c (fold_indirect_ref_1): Fold
        "*(foo *)&complexfoo" to "__real__ complexfoo"
        "*(foo *)&complexfoo" to "__real__ complexfoo"
        and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
        and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
2006-02-09  Andrew Pinski  
2006-02-09  Andrew Pinski  
        * tree-flow-inline.h (var_can_have_subvars):
        * tree-flow-inline.h (var_can_have_subvars):
        Volatile variables should not have subvariables.
        Volatile variables should not have subvariables.
2006-02-09  Diego Novillo  
2006-02-09  Diego Novillo  
        PR 26180
        PR 26180
        * tree-vrp.c (vrp_int_const_binop): Detect overflow when
        * tree-vrp.c (vrp_int_const_binop): Detect overflow when
        multiplying unsigned values.
        multiplying unsigned values.
        Tidy comments.
        Tidy comments.
2006-02-09  Eric Botcazou  
2006-02-09  Eric Botcazou  
        * config/sparc/sparc.c (tls_call_delay): Fix oversight.
        * config/sparc/sparc.c (tls_call_delay): Fix oversight.
2006-02-08  Jason Merrill  
2006-02-08  Jason Merrill  
        PR c++/25979
        PR c++/25979
        * tree.def: Elaborate on difference from MODIFY_EXPR.
        * tree.def: Elaborate on difference from MODIFY_EXPR.
        * doc/c-tree.texi (INIT_EXPR): Likewise.
        * doc/c-tree.texi (INIT_EXPR): Likewise.
        * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
        * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
        (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
        (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
        (gimplify_target_expr): Likewise.
        (gimplify_target_expr): Likewise.
        (gimplify_cond_expr): Remove target handling.
        (gimplify_cond_expr): Remove target handling.
        (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
        (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
        (gimplify_expr): Clobber it here.
        (gimplify_expr): Clobber it here.
        (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
        (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
        Do return slot optimization if we have an INIT_EXPR.
        Do return slot optimization if we have an INIT_EXPR.
        PR tree-opt/24365
        PR tree-opt/24365
        * tree-inline.c (declare_return_variable): Also clear
        * tree-inline.c (declare_return_variable): Also clear
        DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
        DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
        PR c++/16405
        PR c++/16405
        * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
        * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
        PR middle-end/22439
        PR middle-end/22439
        * gimplify.c (gimplify_one_sizepos): Fix typo.
        * gimplify.c (gimplify_one_sizepos): Fix typo.
2006-02-08  Jeff Law  
2006-02-08  Jeff Law  
        PR tree-optimization/21417
        PR tree-optimization/21417
        * tree-ssa-threadedge.c (thread_across_edge): Reject threading
        * tree-ssa-threadedge.c (thread_across_edge): Reject threading
        across a backedge if the control statement at the end of the
        across a backedge if the control statement at the end of the
        block is data dependent on other statements in the same block.
        block is data dependent on other statements in the same block.
        (record_temporary_equivalences_from_stmts): Remove over-conservative
        (record_temporary_equivalences_from_stmts): Remove over-conservative
        test for threading across backedges.
        test for threading across backedges.
        * tree-ssa-dce.c (remove_dead_statement): When removing a dead
        * tree-ssa-dce.c (remove_dead_statement): When removing a dead
        control statement, handle all three special cases in the same
        control statement, handle all three special cases in the same
        manner as they all have the same desired solution.  No longer
        manner as they all have the same desired solution.  No longer
        special case edge flag updating when the post dominator is
        special case edge flag updating when the post dominator is
        the exit block.
        the exit block.
2006-02-08  Roger Sayle  
2006-02-08  Roger Sayle  
        * tree.def (CHAR_TYPE): Remove.
        * tree.def (CHAR_TYPE): Remove.
        * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
        * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
        * dwarf2out.c (base_type_die, is_base_type): Likewise.
        * dwarf2out.c (base_type_die, is_base_type): Likewise.
        (gen_type_die) : Remove handling of CHAR_TYPE arrays.
        (gen_type_die) : Remove handling of CHAR_TYPE arrays.
        (gen_string_type_die): Delete unreachable function.
        (gen_string_type_die): Delete unreachable function.
        * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
        * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
        * tree.c (build_int_cst_wide, type_contains_placeholder_1,
        * tree.c (build_int_cst_wide, type_contains_placeholder_1,
        type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
        type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
        * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
        * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
        * builtins.c (type_to_class): Likewise.
        * builtins.c (type_to_class): Likewise.
        * fold-const.c (fold_convert, build_range_check,
        * fold-const.c (fold_convert, build_range_check,
        merge_ranges): Likewise.
        merge_ranges): Likewise.
        * expr.c (count_type_elements): Likewise.
        * expr.c (count_type_elements): Likewise.
        * c-pretty-print.c (pp_c_type_specifier): Likewise.
        * c-pretty-print.c (pp_c_type_specifier): Likewise.
        * stor-layout.c (layout_type): Likewise.
        * stor-layout.c (layout_type): Likewise.
        * ipa-type-escape.c (type_to_consider): Likewise.
        * ipa-type-escape.c (type_to_consider): Likewise.
        * gimplify.c (omp_firstprivatize_type_sizes,
        * gimplify.c (omp_firstprivatize_type_sizes,
        gimplify_type_sizes): Likewise.
        gimplify_type_sizes): Likewise.
        * explow.c (promote_mode): Likewise.
        * explow.c (promote_mode): Likewise.
        * tree-sra.c (is_sra_scalar_type): Likewise.
        * tree-sra.c (is_sra_scalar_type): Likewise.
        * varasm.c (output_constant): Likewise.
        * varasm.c (output_constant): Likewise.
        * tree-inline.c (remap_type_1): Likewise.
        * tree-inline.c (remap_type_1): Likewise.
        * convert.c (convert_to_pointer, convert_to_real,
        * convert.c (convert_to_pointer, convert_to_real,
        convert_to_integer, convert_to_complex): Likewise.
        convert_to_integer, convert_to_complex): Likewise.
2006-02-08  Daniel Berlin  
2006-02-08  Daniel Berlin  
        * df-scan.c (df_def_record_1): A set destination may
        * df-scan.c (df_def_record_1): A set destination may
        be a parallel regardless of mode.
        be a parallel regardless of mode.
2006-02-08  Roger Sayle  
2006-02-08  Roger Sayle  
        PR target/22209
        PR target/22209
        * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
        * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
        * config/mips/_tilib.c: Remove.
        * config/mips/_tilib.c: Remove.
        * config/fixtfdi.c: New libgcc source file.
        * config/fixtfdi.c: New libgcc source file.
        * config/fixunstfdi.c: New source file.
        * config/fixunstfdi.c: New source file.
        * config/floatditf.c: New source file.
        * config/floatditf.c: New source file.
        * config/floatunditf.c: New souce file.
        * config/floatunditf.c: New souce file.
        * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
        * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
        files above instead of config/mips/_tilib.c.
        files above instead of config/mips/_tilib.c.
        * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
        * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2006-02-08  Jeff Law  
2006-02-08  Jeff Law  
        PR tree-optimization/26169
        PR tree-optimization/26169
        * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
        * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
        threading jumps.
        threading jumps.
2006-02-08  Zdenek Dvorak 
2006-02-08  Zdenek Dvorak 
        * df.h (DF_REG_SIZE): Return the length of the initialized
        * df.h (DF_REG_SIZE): Return the length of the initialized
        part of the array.
        part of the array.
2006-02-08  Nathan Sidwell  
2006-02-08  Nathan Sidwell  
        * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
        * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
        __muldf3): Return a correctly signed zero.
        __muldf3): Return a correctly signed zero.
2006-02-08  Paolo Bonzini  
2006-02-08  Paolo Bonzini  
        * passes.c (register_one_dump_file): Accept the current properties
        * passes.c (register_one_dump_file): Accept the current properties
        instead of pass number.  Adjust call to dump_register.  Remove
        instead of pass number.  Adjust call to dump_register.  Remove
        duplicated code.
        duplicated code.
        (register_dump_files): Now a wrapper around...
        (register_dump_files): Now a wrapper around...
        (register_dump_files_1): ... this one.  Do not modify the pass
        (register_dump_files_1): ... this one.  Do not modify the pass
        structure.
        structure.
        (next_pass_1): Cosmetic fix.
        (next_pass_1): Cosmetic fix.
        (execute_todo): Keep second parameter only.  Use curr_properties
        (execute_todo): Keep second parameter only.  Use curr_properties
        instead of fetching it from the pass structure.  Check and set
        instead of fetching it from the pass structure.  Check and set
        last_verified.
        last_verified.
        (execute_one_pass): Handle TODO_set_props.  Use curr_properties
        (execute_one_pass): Handle TODO_set_props.  Use curr_properties
        instead of fetching it from the pass structure.  Fix calls to
        instead of fetching it from the pass structure.  Fix calls to
        execute_todo.  Update curr_properties and initialize .vcg RTL dump
        execute_todo.  Update curr_properties and initialize .vcg RTL dump
        after running the pass.  Reset last_verified.
        after running the pass.  Reset last_verified.
        * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
        * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
        at the beginning.
        at the beginning.
        (FIRST_AUTO_NUMBERED_DUMP): New.
        (FIRST_AUTO_NUMBERED_DUMP): New.
        (dump_register): Remove "num" parameter, assign it within the
        (dump_register): Remove "num" parameter, assign it within the
        function.
        function.
        (get_dump_file_name): Modify template for dumps.
        (get_dump_file_name): Modify template for dumps.
        * tree-dump.h (dump_register): Adjust prototype.
        * tree-dump.h (dump_register): Adjust prototype.
        * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
        * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
        (PROP_trees): Add PROP_gimple_lomp.
        (PROP_trees): Add PROP_gimple_lomp.
        (TODO_set_props): New.
        (TODO_set_props): New.
        * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
        * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
        * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
        * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
        * cfgexpand.c (pass_expand): Destroy PROP_trees.
        * cfgexpand.c (pass_expand): Destroy PROP_trees.
2006-02-08  Jakub Jelinek  
2006-02-08  Jakub Jelinek  
        * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
        * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
        (sparc64-*-linux*): Likewise.
        (sparc64-*-linux*): Likewise.
        * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
        * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
        * config/sparc/t-linux: New file.
        * config/sparc/t-linux: New file.
        * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
        * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
        __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
        __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
        (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
        (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
        -m32 -mlong-double-128.
        -m32 -mlong-double-128.
        * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
        * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
        * config/alpha/t-linux: New file.
        * config/alpha/t-linux: New file.
        * config/alpha/libgcc-alpha-ldbl.ver: New file.
        * config/alpha/libgcc-alpha-ldbl.ver: New file.
        * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
        * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
        __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
        __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
        (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
        (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
        * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
        * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
        __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
        __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
        (CPP_ARCH32_SPEC): Remove.
        (CPP_ARCH32_SPEC): Remove.
2006-02-07  Uttam Pawar  
2006-02-07  Uttam Pawar  
        PR tree-optimization/26145
        PR tree-optimization/26145
        * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
        * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
        bbs pointer.
        bbs pointer.
2006-02-07  John David Anglin  
2006-02-07  John David Anglin  
        PR target/26109
        PR target/26109
        * pa.c (attr_length_indirect_call): Don't return length 8 for distances
        * pa.c (attr_length_indirect_call): Don't return length 8 for distances
        >= 240000 when generating code for SOM runtime.
        >= 240000 when generating code for SOM runtime.
        (output_indirect_call): Don't use "b,l" instruction for indirect calls
        (output_indirect_call): Don't use "b,l" instruction for indirect calls
        to $$dyncall when generating code for SOM runtime..
        to $$dyncall when generating code for SOM runtime..
2006-02-07  Dirk Mueller  
2006-02-07  Dirk Mueller  
        PR c++/18150
        PR c++/18150
        * doc/invoke.texi (-Wsequence-point): Update documentation
        * doc/invoke.texi (-Wsequence-point): Update documentation
        that -Wsequence-point is implemented for C++ as well.
        that -Wsequence-point is implemented for C++ as well.
2006-02-07  Eric Botcazou  
2006-02-07  Eric Botcazou  
        * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
        * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
        * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
        * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
        (LIB_SPEC): Likewise.
        (LIB_SPEC): Likewise.
        * doc/invoke.texi (SPARC options): Document -pthread.
        * doc/invoke.texi (SPARC options): Document -pthread.
2006-02-07  Geoffrey Keating  
2006-02-07  Geoffrey Keating  
        * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
        * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
        PIC addresses.
        PIC addresses.
2006-02-07  Roger Sayle  
2006-02-07  Roger Sayle  
        * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
        * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
        Correct comment describing BOOLEAN_TYPE.
        Correct comment describing BOOLEAN_TYPE.
2006-02-07  Dirk Mueller  
2006-02-07  Dirk Mueller  
        * c.opt: C++ frontend supports -Wdiv-by-zero.
        * c.opt: C++ frontend supports -Wdiv-by-zero.
        * c-opts.c (c_common_handle_option): Remove dead case.
        * c-opts.c (c_common_handle_option): Remove dead case.
2006-02-07  Eric Botcazou  
2006-02-07  Eric Botcazou  
        * configure.ac (TLS assembler check): Do not enable TLS by
        * configure.ac (TLS assembler check): Do not enable TLS by
        default on SPARC/Solaris before version 10.
        default on SPARC/Solaris before version 10.
        * configure: Regenerate.
        * configure: Regenerate.
2006-02-07  David Edelsohn  
2006-02-07  David Edelsohn  
        * doc/invoke.texi (xl-compat): Document conversion and support
        * doc/invoke.texi (xl-compat): Document conversion and support
        routine names.
        routine names.
2006-02-07  Jeff Law  
2006-02-07  Jeff Law  
        * tree-vrp.c (find_conditional_asserts): Update comments.
        * tree-vrp.c (find_conditional_asserts): Update comments.
        (simplify_stmt_for_jump_threading): New.
        (simplify_stmt_for_jump_threading): New.
        (identify_jump_threads, finalize_jump_threads): New.
        (identify_jump_threads, finalize_jump_threads): New.
        (vrp_finalize): Call identify_jump_threads.
        (vrp_finalize): Call identify_jump_threads.
        (execute_vrp): Call finalize_jump_threads.
        (execute_vrp): Call finalize_jump_threads.
        * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
        * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
        (vrp_element, vrp_data, vrp_element_p): Remove.
        (vrp_element, vrp_data, vrp_element_p): Remove.
        (vrp_hash_elt, vrp_variables_stack): Remove.
        (vrp_hash_elt, vrp_variables_stack): Remove.
        (vrp_hash, vrp_eq, record_range): Remove.
        (vrp_hash, vrp_eq, record_range): Remove.
        (simplify_cond_and_lookup_avail_expr): Remove.
        (simplify_cond_and_lookup_avail_expr): Remove.
        (extract_range_from_cond): Remove.
        (extract_range_from_cond): Remove.
        (thread_across_edge): Relocated into tree-ssa-threadedge.c.
        (thread_across_edge): Relocated into tree-ssa-threadedge.c.
        (simplify_stmt_for_jump_threading): New.
        (simplify_stmt_for_jump_threading): New.
        (dom_thread_across_edge): New wrapper.
        (dom_thread_across_edge): New wrapper.
        (tree_ssa_dominator_optimize): No longer initialize or
        (tree_ssa_dominator_optimize): No longer initialize or
        finalize any of the VRP datastructures.  Remove iteration
        finalize any of the VRP datastructures.  Remove iteration
        step and simplify as a result of removal of iteration step.
        step and simplify as a result of removal of iteration step.
        (pass_dominator): Perform a cfg cleanup after DOM.
        (pass_dominator): Perform a cfg cleanup after DOM.
        (dom_opt_finalize_block): Use the new common routines
        (dom_opt_finalize_block): Use the new common routines
        for threading jumps.  Simplify stack management slightly.
        for threading jumps.  Simplify stack management slightly.
        No longer need to unwind VRP state.
        No longer need to unwind VRP state.
        (record_equivalences_from_incoming_edge): No longer record
        (record_equivalences_from_incoming_edge): No longer record
        VRP information.
        VRP information.
        (eliminate_redundant_computations): No longer call
        (eliminate_redundant_computations): No longer call
        simplify_cond_and_lookup_avail_expr.
        simplify_cond_and_lookup_avail_expr.
        * tree-flow.h (potentially_threadable_block): Prototype.
        * tree-flow.h (potentially_threadable_block): Prototype.
        (thread_across_edge): Likewise.
        (thread_across_edge): Likewise.
        * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
        * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
        (tree-ssa-threadedge.o): Add dependencies.
        (tree-ssa-threadedge.o): Add dependencies.
        * tree-ssa-threadedge.c: New file.
        * tree-ssa-threadedge.c: New file.
        * passes.c (init_optimization_passes): Merge PHIs before
        * passes.c (init_optimization_passes): Merge PHIs before
        calling VRP.  Run VRP again late in the SSA optimization pipeline.
        calling VRP.  Run VRP again late in the SSA optimization pipeline.
2006-02-07  Eric Botcazou  
2006-02-07  Eric Botcazou  
        * df-core.c (df_set_blocks): Do not dereference function pointers.
        * df-core.c (df_set_blocks): Do not dereference function pointers.
        (df_finish1): Likewise.
        (df_finish1): Likewise.
        (df_hybrid_search_forward): Likewise.
        (df_hybrid_search_forward): Likewise.
        (df_hybrid_search_backward): Likewise.
        (df_hybrid_search_backward): Likewise.
        (df_iterative_dataflow): Likewise.
        (df_iterative_dataflow): Likewise.
        (df_analyze_problem): Likewise.
        (df_analyze_problem): Likewise.
        (df_compact_blocks): Likewise.
        (df_compact_blocks): Likewise.
        (df_dump): Likewise.
        (df_dump): Likewise.
        * df-scan.c (df_rescan_blocks): Likewise.
        * df-scan.c (df_rescan_blocks): Likewise.
        (df_record_entry_block_defs): Likewise.
        (df_record_entry_block_defs): Likewise.
        * genconditions.c (write_conditions): Guard the definition of
        * genconditions.c (write_conditions): Guard the definition of
        'insn_conditions' with the check on GCC version.
        'insn_conditions' with the check on GCC version.
        (write_writer): Guard the traversal 'insn_conditions' with
        (write_writer): Guard the traversal 'insn_conditions' with
        the check on GCC version.
        the check on GCC version.
2006-02-07  Richard Guenther  
2006-02-07  Richard Guenther  
        PR c++/26140
        PR c++/26140
        Revert
        Revert
        2006-01-30  Richard Guenther  
        2006-01-30  Richard Guenther  
        PR c++/23372
        PR c++/23372
        * gimplify.c (gimplify_target_expr): Handle easy cases
        * gimplify.c (gimplify_target_expr): Handle easy cases
        without creating a temporary.
        without creating a temporary.
2006-02-07  Pete Steinmetz  
2006-02-07  Pete Steinmetz  
        * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
        * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
        use of float in probability computations.  Use edge probabilities
        use of float in probability computations.  Use edge probabilities
        in place of statically computed probabilities.
        in place of statically computed probabilities.
        (min_spec_prob): New static variable.
        (min_spec_prob): New static variable.
        (schedule_insns): Initialize it.
        (schedule_insns): Initialize it.
        (GET_SRC_PROB): Removed.
        (GET_SRC_PROB): Removed.
        * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
        * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
2006-02-07  Alexandre Oliva  
2006-02-07  Alexandre Oliva  
        PR debug/24444
        PR debug/24444
        * config/ia64/unwind-ia64.c: Revert last change.
        * config/ia64/unwind-ia64.c: Revert last change.
        * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
        * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
        (INCOMING_FRAME_SP_OFFSET): Define.
        (INCOMING_FRAME_SP_OFFSET): Define.
2006-02-06  Roger Sayle  
2006-02-06  Roger Sayle  
        * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
        * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
2006-02-07  Ben Elliston  
2006-02-07  Ben Elliston  
        * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
        * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
        (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
        (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
        (ix86_return_in_memory): Handle TDmode.
        (ix86_return_in_memory): Handle TDmode.
        (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
        (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
        (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
        (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
2006-02-06  Richard Sandiford  
2006-02-06  Richard Sandiford  
        * reorg.c (dbr_schedule): Use dump_file instead of file.
        * reorg.c (dbr_schedule): Use dump_file instead of file.
2006-02-06  Steve Ellcey  
2006-02-06  Steve Ellcey  
        PR target/25917
        PR target/25917
        * config/ia64/predicates.md (extr_len_operand): New predicate.
        * config/ia64/predicates.md (extr_len_operand): New predicate.
        * config/ia64/ia64.md (extv): Tighten constraints.
        * config/ia64/ia64.md (extv): Tighten constraints.
        (extzv): Ditto.
        (extzv): Ditto.
        (*tbit_and_2): Ditto.
        (*tbit_and_2): Ditto.
        (*tbit_and_3): Ditto.
        (*tbit_and_3): Ditto.
        (*tbit_or_2): Ditto.
        (*tbit_or_2): Ditto.
        (*tbit_or_3): Ditto.
        (*tbit_or_3): Ditto.
        (*bit_zero): Ditto.
        (*bit_zero): Ditto.
        (*bit_one): Ditto.
        (*bit_one): Ditto.
2006-02-06  Andrew Pinski  
2006-02-06  Andrew Pinski  
        PR target/23359
        PR target/23359
        * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
        * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
2006-02-06  Zdenek Dvorak 
2006-02-06  Zdenek Dvorak 
        * tree-vrp.c (execute_vrp): Do not pass dump argument to.
        * tree-vrp.c (execute_vrp): Do not pass dump argument to.
        loop_optimizer_init and loop_optimizer_finalize
        loop_optimizer_init and loop_optimizer_finalize
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
        * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
        * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
        * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
        tree_ssa_loop_done): Ditto.
        tree_ssa_loop_done): Ditto.
        * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
        * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
        * sched-ebb.c: Include output.h.
        * sched-ebb.c: Include output.h.
        (schedule_ebbs): Do not use dump argument.
        (schedule_ebbs): Do not use dump argument.
        * value-prof.h (struct profile_hooks): Remove profile_dump_file.
        * value-prof.h (struct profile_hooks): Remove profile_dump_file.
        * loop.c (loop_dump_stream): Removed.
        * loop.c (loop_dump_stream): Removed.
        (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
        (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
        argument.
        argument.
        (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
        (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
        emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
        emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
        final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
        final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
        loop_iterations, strength_reduce, record_biv, record_giv,
        loop_iterations, strength_reduce, record_biv, record_giv,
        final_giv_value, check_final_value, check_ext_dependent_givs,
        final_giv_value, check_final_value, check_ext_dependent_givs,
        combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
        combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
        try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
        try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
        dump_file instead of loop_dump_stream.
        dump_file instead of loop_dump_stream.
        * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
        * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
        argument dump_file.
        argument dump_file.
        * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
        * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
        dump argument.
        dump argument.
        * flow.c (life_analysis, rest_of_handle_life): Ditto.
        * flow.c (life_analysis, rest_of_handle_life): Ditto.
        * haifa-sched.c: Include output.h
        * haifa-sched.c: Include output.h
        (schedule_insns, sched_init): Do not use dump argument.
        (schedule_insns, sched_init): Do not use dump argument.
        * mode-switching.c (optimize_mode_switching): Ditto.
        * mode-switching.c (optimize_mode_switching): Ditto.
        * modulo-sched.c (stats_file): Removed.
        * modulo-sched.c (stats_file): Removed.
        (print_node_sched_params): Do not call argument dump_file.
        (print_node_sched_params): Do not call argument dump_file.
        (sms_schedule_by_order, loop_canon_p, sms_schedule,
        (sms_schedule_by_order, loop_canon_p, sms_schedule,
        rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
        rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
        of stats_file.
        of stats_file.
        * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
        * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
        use dump argument.
        use dump argument.
        * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
        * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
        rtl_loop_init, rtl_loop_done): Ditto.
        rtl_loop_init, rtl_loop_done): Ditto.
        * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
        * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
        * predict.c (combine_predictions_for_bb, tree_estimate_probability):
        * predict.c (combine_predictions_for_bb, tree_estimate_probability):
        Ditto.
        Ditto.
        * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
        * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
        * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
        * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
        * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
        * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
        rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
        rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
        * emit-rtl.c (renumber_insns): Ditto.
        * emit-rtl.c (renumber_insns): Ditto.
        * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
        * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
        expand_gimple_basic_block, tree_expand_cfg): Ditto.
        expand_gimple_basic_block, tree_expand_cfg): Ditto.
        * regclass.c (regclass): Ditto.
        * regclass.c (regclass): Ditto.
        * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
        * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
        remove_ssa_form, rewrite_out_of_ssa): Ditto.
        remove_ssa_form, rewrite_out_of_ssa): Ditto.
        * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
        * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
        convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
        convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
        Ditto.
        Ditto.
        * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
        * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
        * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
        * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
        to regclass.
        to regclass.
        * gcse.c (gcse_file, debug_stderr): Removed.
        * gcse.c (gcse_file, debug_stderr): Removed.
        (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
        (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
        rest_of_handle_gcse): Do not use dump argument.
        rest_of_handle_gcse): Do not use dump argument.
        (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
        (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
        one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
        one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
        pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
        pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
        compute_code_hoist_vbeinout, compute_code_hoist_data,
        compute_code_hoist_vbeinout, compute_code_hoist_data,
        one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
        one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
        compute_store_table, build_store_vectors, insert_insn_start_bb,
        compute_store_table, build_store_vectors, insert_insn_start_bb,
        insert_store, remove_reachable_equiv_notes, replace_store_insn,
        insert_store, remove_reachable_equiv_notes, replace_store_insn,
        store_motion): Use dump_file instead of gcse_file.
        store_motion): Use dump_file instead of gcse_file.
        * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
        * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
        * profile.c (profile_dump_file): Removed.
        * profile.c (profile_dump_file): Removed.
        (branch_prob): Use dump_file instead of profile_dump_file.
        (branch_prob): Use dump_file instead of profile_dump_file.
        * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
        * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
        dump_file.
        dump_file.
        * tree-ssa-copy.c (dump_copy_of): Ditto.
        * tree-ssa-copy.c (dump_copy_of): Ditto.
        * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
        * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
        dump file to life_analysis.
        dump file to life_analysis.
        * bt-load.c (branch_target_load_optimize): Ditto.
        * bt-load.c (branch_target_load_optimize): Ditto.
        * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
        * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
        renumber_insns.
        renumber_insns.
        * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
        * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
        regclass, dbr_schedule): Declaration changed.
        regclass, dbr_schedule): Declaration changed.
        * sched-int.h (sched_init): Declaration changed.
        * sched-int.h (sched_init): Declaration changed.
        * tree-profile.c (tree_profile_dump_file): Removed.
        * tree-profile.c (tree_profile_dump_file): Removed.
        (tree_profile_hooks): Removed profile_dump_file hook.
        (tree_profile_hooks): Removed profile_dump_file hook.
        * rtl-profile (rtl_profile_dump_file): Removed.
        * rtl-profile (rtl_profile_dump_file): Removed.
        (rtl_profile_hooks): emoved profile_dump_file hook.
        (rtl_profile_hooks): emoved profile_dump_file hook.
        * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
        * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
        changed.
        changed.
        * c-gimplify.c (c_genericize): Do not call local variable dump_file.
        * c-gimplify.c (c_genericize): Do not call local variable dump_file.
        * tree-cfg.c (build_tree_cfg): Ditto.
        * tree-cfg.c (build_tree_cfg): Ditto.
        * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
        * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
        * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
        * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
        Declaration changed.
        Declaration changed.
        * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
        * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
        life_analysis and schedule_insns.
        life_analysis and schedule_insns.
        * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
        * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
        life_analysis.
        life_analysis.
        * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
        * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
        dbr_schedule.
        dbr_schedule.
        * config/mips/mips.c (mips_reorg): Ditto.
        * config/mips/mips.c (mips_reorg): Ditto.
        * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
        * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
        schedule_ebbs.
        schedule_ebbs.
2006-02-06  Aldy Hernandez  
2006-02-06  Aldy Hernandez  
        * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        (s390_mangle_fundamental_type): New.
        (s390_mangle_fundamental_type): New.
        * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        Define.
        Define.
        * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        (alpha_mangle_fundamental_type): New.
        (alpha_mangle_fundamental_type): New.
        * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        Define.
        Define.
        * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        Define.
        Define.
        * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
        Define.
        Define.
        * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
        (sparc_mangle_fundamental_type): New.
        (sparc_mangle_fundamental_type): New.
2006-02-06  Jakub Jelinek  
2006-02-06  Jakub Jelinek  
        * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
        * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
        (s390x-*-linux*): Likewise.
        (s390x-*-linux*): Likewise.
        * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
        * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
        * config/s390/t-linux: New file.
        * config/s390/t-linux: New file.
2006-02-02  Bernd Schmidt  
2006-02-02  Bernd Schmidt  
        * config/i386/sync.md (sync_add, sync_sub, sync_ior,
        * config/i386/sync.md (sync_add, sync_sub, sync_ior,
        sync_and, sync_xor): Operand 0 is in-out.
        sync_and, sync_xor): Operand 0 is in-out.
2006-02-06  Daniel Berlin  
2006-02-06  Daniel Berlin  
        * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
        * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
        (ANTIC_SAFE_LOADS): New macro.
        (ANTIC_SAFE_LOADS): New macro.
        (find_or_generate_expression): Add prototype.
        (find_or_generate_expression): Add prototype.
        (set_contains_value): Allow null set for sake of not always having
        (set_contains_value): Allow null set for sake of not always having
        to allocate ANTIC_SAFE_LOADS.
        to allocate ANTIC_SAFE_LOADS.
        (phi_translate): Move placement of AGGREGATE_TYPE_P check.
        (phi_translate): Move placement of AGGREGATE_TYPE_P check.
        Allow COMPONENT_REF too.
        Allow COMPONENT_REF too.
        (valid_in_set): Allow COMPONENT_REF.
        (valid_in_set): Allow COMPONENT_REF.
        Check ANTIC_SAFE_LOADS too.
        Check ANTIC_SAFE_LOADS too.
        (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
        (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
        (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
        (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
        rename.
        rename.
        (can_PRE_operation): Add COMPONENT_REF.
        (can_PRE_operation): Add COMPONENT_REF.
        (create_component_ref_by_pieces): New function.
        (create_component_ref_by_pieces): New function.
        (create_expression_by_pieces): Use create_component_ref_by_pieces.
        (create_expression_by_pieces): Use create_component_ref_by_pieces.
        (insert_aux): Move AGGREGATE_TYPE_P check here.
        (insert_aux): Move AGGREGATE_TYPE_P check here.
        (compute_avail): Set bb local stmt uids.
        (compute_avail): Set bb local stmt uids.
        (pass_pre): Use TODO_update_ssa_only_virtuals.
        (pass_pre): Use TODO_update_ssa_only_virtuals.
2006-02-06  Ben Elliston  
2006-02-06  Ben Elliston  
        * configure.ac: Unconditionally disable decimal float by default.
        * configure.ac: Unconditionally disable decimal float by default.
        * configure: Regenerate.
        * configure: Regenerate.
2006-02-06  Ben Elliston  
2006-02-06  Ben Elliston  
        * read-rtl.c (read_name): Terminate reading on EOF.
        * read-rtl.c (read_name): Terminate reading on EOF.
2006-02-06  Ben Elliston  
2006-02-06  Ben Elliston  
        * dfp.c (decimal_real_arithmetic): Change second argument type
        * dfp.c (decimal_real_arithmetic): Change second argument type
        from int to enum tree_code. Do not always return true, but now
        from int to enum tree_code. Do not always return true, but now
        return result of any call to decimal_do helper functions.
        return result of any call to decimal_do helper functions.
        * dfp.h (decimal_real_arithmetic): Update prototype.
        * dfp.h (decimal_real_arithmetic): Update prototype.
2006-02-05  Eric Botcazou  
2006-02-05  Eric Botcazou  
        * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
        * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
2006-02-05  Andrew Pinski  
2006-02-05  Andrew Pinski  
        PR tree-opt/25251
        PR tree-opt/25251
        * tree-cfg.c (cleanup_dead_labels): Also don't remove
        * tree-cfg.c (cleanup_dead_labels): Also don't remove
        forced labels.
        forced labels.
2006-02-04  Zdenek Dvorak 
2006-02-04  Zdenek Dvorak 
        * tree-vrp.c (cfg_loops): Removed.
        * tree-vrp.c (cfg_loops): Removed.
        (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
        (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
        Use current_loops instead of cfg_loops.  Pass flags to
        Use current_loops instead of cfg_loops.  Pass flags to
        loop_optimizer_init.
        loop_optimizer_init.
        * cfgloopmanip.c (fix_loop_structure): Update only available
        * cfgloopmanip.c (fix_loop_structure): Update only available
        information.
        information.
        * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
        * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
        loop_optimizer_init.
        loop_optimizer_init.
        * modulo-sched.c (build_loops_structure): Removed.
        * modulo-sched.c (build_loops_structure): Removed.
        (sms_schedule): Use loop_optimizer_init.
        (sms_schedule): Use loop_optimizer_init.
        * loop-init.c (loop_optimizer_init): Use flags to determine
        * loop-init.c (loop_optimizer_init): Use flags to determine
        which properties of loops to prepare.
        which properties of loops to prepare.
        (rtl_loop_init): Pass flags to loop_optimizer_init.
        (rtl_loop_init): Pass flags to loop_optimizer_init.
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * tree-ssa-sink.c (execute_sink_code): Ditto.
        * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
        * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
        * tree-ssa-pre.c (init_pre): Ditto.
        * tree-ssa-pre.c (init_pre): Ditto.
        * cfgloop.h (LOOPS_NORMAL): New.
        * cfgloop.h (LOOPS_NORMAL): New.
        (loop_optimizer_init): Declaration changed.
        (loop_optimizer_init): Declaration changed.
2006-02-05  John David Anglin  
2006-02-05  John David Anglin  
        * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
        * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
        * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
        * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
        pa/t-pa.
        pa/t-pa.
        * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
        * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
        pa/t-pa.
        pa/t-pa.
        * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
        * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
        pa/x-ada.
        pa/x-ada.
        * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
        * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
        * pa/t-pa64: Delete quadlib.c rule.
        * pa/t-pa64: Delete quadlib.c rule.
        * pa/x-ada: Revert last change.
        * pa/x-ada: Revert last change.
        * pa/t-pa: Revert last change.  Delete quadlib.c rule.
        * pa/t-pa: Revert last change.  Delete quadlib.c rule.
2006-02-04  Zdenek Dvorak 
2006-02-04  Zdenek Dvorak 
        PR rtl-optimization/26087
        PR rtl-optimization/26087
        * rtlanal.c (canonicalize_condition): Do not cross basic block
        * rtlanal.c (canonicalize_condition): Do not cross basic block
        boundaries.
        boundaries.
2006-02-04  Alexandre Oliva  
2006-02-04  Alexandre Oliva  
        PR debug/24444
        PR debug/24444
        * config/ia64/ia64.c: Include debug.h.
        * config/ia64/ia64.c: Include debug.h.
        (MAX_ARTIFICIAL_LABEL_BYTES): New.
        (MAX_ARTIFICIAL_LABEL_BYTES): New.
        (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
        (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
        (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
        (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
        (process_epilogue, process_set, process_for_unwind_directive):
        (process_epilogue, process_set, process_for_unwind_directive):
        Output unwind info only if requested.  Add CFA info if requested.
        Output unwind info only if requested.  Add CFA info if requested.
        Add new arguments as needed.  Adjust callers.
        Add new arguments as needed.  Adjust callers.
        * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
        * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
        incorrect default.
        incorrect default.
        (DWARF2_FRAME_INFO): Define to zero.
        (DWARF2_FRAME_INFO): Define to zero.
        * config/ia64/unwind-ia64.c: Remove code that compensated for
        * config/ia64/unwind-ia64.c: Remove code that compensated for
        the CFA offset error fixed above.
        the CFA offset error fixed above.
        * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
        * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
        * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
        * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
        (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
        (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
        -funwind-tables and -fexceptions to enable frame info.
        -funwind-tables and -fexceptions to enable frame info.
        (dwarf2out_frame_init): Define initial CFA even if
        (dwarf2out_frame_init): Define initial CFA even if
        DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
        DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
        DWARF2_UNWIND_INFO is nonzero, not just defined.
        DWARF2_UNWIND_INFO is nonzero, not just defined.
        (dwarf2out_frame_finish): Output non-EH call frame info only
        (dwarf2out_frame_finish): Output non-EH call frame info only
        if DWARF2_FRAME_INFO is nonzero.
        if DWARF2_FRAME_INFO is nonzero.
        (convert_cfa_to_loc_list,
        (convert_cfa_to_loc_list,
        compute_frame_pointer_to_cfa_displacement): Define even if
        compute_frame_pointer_to_cfa_displacement): Define even if
        unwind info is not supported.
        unwind info is not supported.
        (gen_subprogram_die): Use the above unconditionally.  Remove
        (gen_subprogram_die): Use the above unconditionally.  Remove
        legacy alternate code.
        legacy alternate code.
        * toplev.c (compile_file): Compile in call to
        * toplev.c (compile_file): Compile in call to
        dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
        dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
        (lang_dependent_init): Ditto for dwarf2out_frame_init.
        (lang_dependent_init): Ditto for dwarf2out_frame_init.
2006-02-04  David Edelsohn  
2006-02-04  David Edelsohn  
            Jakub Jelinek  
            Jakub Jelinek  
        * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
        * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
        IBM extended float format long double as "g" on powerpc*-linux.
        IBM extended float format long double as "g" on powerpc*-linux.
2006-02-03  John David Anglin  
2006-02-03  John David Anglin  
        PR target/25926
        PR target/25926
        * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
        * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
        * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
        * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
2006-02-03  Jason Merrill  
2006-02-03  Jason Merrill  
        PR c++/25979
        PR c++/25979
        * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
        * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
        PR middle-end/25977
        PR middle-end/25977
        * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
        * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
        on the return slot if it's an NRV.
        on the return slot if it's an NRV.
2006-02-03  Zdenek Dvorak 
2006-02-03  Zdenek Dvorak 
        * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
        * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
        (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
        (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
        rewrite_use): Do not handle USE_OUTER.
        rewrite_use): Do not handle USE_OUTER.
        (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
        (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
        add_iv_outer_candidates, may_replace_final_value,
        add_iv_outer_candidates, may_replace_final_value,
        determine_use_iv_cost_outer, rewrite_use_outer): Removed.
        determine_use_iv_cost_outer, rewrite_use_outer): Removed.
        (find_interesting_uses_op): Functionality of
        (find_interesting_uses_op): Functionality of
        find_interesting_uses_outer_or_nonlin moved here.
        find_interesting_uses_outer_or_nonlin moved here.
        (find_interesting_uses_outside): Use find_interesting_uses_op.
        (find_interesting_uses_outside): Use find_interesting_uses_op.
2006-02-03  Alan Modra  
2006-02-03  Alan Modra  
        PR target/25960
        PR target/25960
        * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
        * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
2006-02-03  Andreas Krebbel  
2006-02-03  Andreas Krebbel  
            Ulrich Weigand  
            Ulrich Weigand  
        PR target/25864
        PR target/25864
        * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
        * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
        "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
        "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
        * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
        * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
        * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
        * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
        and dxr fields.
        and dxr fields.
        (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
        (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
        (s390_rtx_costs): Use the new fields to calculate rtx costs.
        (s390_rtx_costs): Use the new fields to calculate rtx costs.
        (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
        (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
        Define secondary reloads for TFmode moves.
        Define secondary reloads for TFmode moves.
        (constant_modes): Add TFmode.
        (constant_modes): Add TFmode.
        (NR_C_MODES): Set to 8.
        (NR_C_MODES): Set to 8.
        * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
        * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
        builtin define.
        builtin define.
        (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
        (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
        (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
        (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
        (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
        (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
        CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
        CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
        * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
        * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
        fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
        fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
        (FPR mode macro): Add TFmode.
        (FPR mode macro): Add TFmode.
        (DSF mode macro): New.
        (DSF mode macro): New.
        (,  mode attributes): Removed.
        (,  mode attributes): Removed.
        (, , , ,  mode attributes): New.
        (, , , ,  mode attributes): New.
        ("*cmp_ccs_0", "*cmp_ccs_0_ibm", "*cmp_ccs",
        ("*cmp_ccs_0", "*cmp_ccs_0_ibm", "*cmp_ccs",
        "*cmp_ccs_ibm", "fix_trunc2_ieee",
        "*cmp_ccs_ibm", "fix_trunc2_ieee",
        "floatdi2", "floatsi2_ieee", "*add3",
        "floatdi2", "floatsi2_ieee", "*add3",
        "*add3_cc", "*add3_cconly", "*add3_ibm",
        "*add3_cc", "*add3_cconly", "*add3_ibm",
        "*sub3", "*sub3_cc", "*sub3_cconly",
        "*sub3", "*sub3_cc", "*sub3_cconly",
        "*sub3_ibm", "*mul3_ibm", "*fmadd", "*fmsub",
        "*sub3_ibm", "*mul3_ibm", "*fmadd", "*fmsub",
        "*div3", "*div3_ibm", "*neg2_cc",
        "*div3", "*div3_ibm", "*neg2_cc",
        "*neg2_cconly", "*neg2", "*neg2_ibm",
        "*neg2_cconly", "*neg2", "*neg2_ibm",
        "*abs2_cc", "*abs2_cconly", "*abs2",
        "*abs2_cc", "*abs2_cconly", "*abs2",
        "*abs2_ibm", "*negabs2_cc", "*negabs2_cconly",
        "*abs2_ibm", "*negabs2_cc", "*negabs2_cconly",
        "*negabs2", "sqrt2"):
        "*negabs2", "sqrt2"):
        Changed  to . R constraint replaced by .
        Changed  to . R constraint replaced by .
        ("*mul3"): Changed  to . R constraint replaced by
        ("*mul3"): Changed  to . R constraint replaced by
        .
        .
        ("fix_truncdi2"): 'FPR:' removed.
        ("fix_truncdi2"): 'FPR:' removed.
        ("*fmadd", "*fmsub"): FPR mode replaced by DSF.
        ("*fmadd", "*fmsub"): FPR mode replaced by DSF.
        ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
        ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
        splitters.
        splitters.
        ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
        ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
        "extenddftf2", "extendsftf2"): New expanders.
        "extenddftf2", "extendsftf2"): New expanders.
        ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
        ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
        "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
        "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
        "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
        "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
        * config/s390/s390.opt (mlong-double-128, mlong-double-64):
        * config/s390/s390.opt (mlong-double-128, mlong-double-64):
        New options.
        New options.
        * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
        * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
        * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
        * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
        __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
        __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
        __floatditf): Add a GCC_4.1.0 symbol version tag.
        __floatditf): Add a GCC_4.1.0 symbol version tag.
        * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
        * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
        the new options.
        the new options.
2006-02-02  Andrew Pinski  
2006-02-02  Andrew Pinski  
        PR target/25377
        PR target/25377
        * config/i386/i386.c (ix86_function_ok_for_sibcall):
        * config/i386/i386.c (ix86_function_ok_for_sibcall):
        Use targetm.binds_local_p instead of TREE_PUBLIC.
        Use targetm.binds_local_p instead of TREE_PUBLIC.
2006-02-02  Roger Sayle  
2006-02-02  Roger Sayle  
        * tree.h (TYPE_STRING_FLAG): Document that this field may be used
        * tree.h (TYPE_STRING_FLAG): Document that this field may be used
        on INTEGER_TYPEs to indicate that it denotes a character type.
        on INTEGER_TYPEs to indicate that it denotes a character type.
        * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
        * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
        signed_char_type_node, unsigned_char_type_node and char_type_node.
        signed_char_type_node, unsigned_char_type_node and char_type_node.
        * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
        * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
        INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
        INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
        a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
        a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
2006-02-02  Zdenek Dvorak 
2006-02-02  Zdenek Dvorak 
            Daniel Berlin  
            Daniel Berlin  
        * tree-tailcall.c (arg_needs_copy_p): New function.
        * tree-tailcall.c (arg_needs_copy_p): New function.
        (eliminate_tail_call): Use arg_needs_copy_p.
        (eliminate_tail_call): Use arg_needs_copy_p.
        (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
        (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
        (add_virtual_phis): New function.
        (add_virtual_phis): New function.
2006-02-02  Jakub Jelinek  
2006-02-02  Jakub Jelinek  
        * config/sparc/sparc.c (sparc_output_scratch_registers): Use
        * config/sparc/sparc.c (sparc_output_scratch_registers): Use
        #ignore instead of #scratch for %g7 .register directive.
        #ignore instead of #scratch for %g7 .register directive.
2006-02-02  Andreas Tobler  
2006-02-02  Andreas Tobler  
        * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
        * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
        object files.
        object files.
2006-02-02  Bernd Schmidt  
2006-02-02  Bernd Schmidt  
        * flow.c (calculate_global_regs_live): Assert that there aren't any
        * flow.c (calculate_global_regs_live): Assert that there aren't any
        EDGE_FAKE edges.
        EDGE_FAKE edges.
2006-02-02  Paolo Bonzini  
2006-02-02  Paolo Bonzini  
        * tree-flow-inline.h (bsi_after_labels): Rewrite, return
        * tree-flow-inline.h (bsi_after_labels): Rewrite, return
        what its name says.
        what its name says.
        * lambda-code.c (perfect_nestify): Use bsi_insert_before on
        * lambda-code.c (perfect_nestify): Use bsi_insert_before on
        bsi_after_labels iterator.
        bsi_after_labels iterator.
        * tree-if-conv.c (find_phi_replacement_condition,
        * tree-if-conv.c (find_phi_replacement_condition,
        replace_phi_with_cond_modify_expr): Likewise.
        replace_phi_with_cond_modify_expr): Likewise.
        * tree-scalar-evolution.c (scev_const_prop): Likewise.
        * tree-scalar-evolution.c (scev_const_prop): Likewise.
        * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
        * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
2006-02-02  Diego Novillo  
2006-02-02  Diego Novillo  
        * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
        * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
2006-02-02  Diego Novillo  
2006-02-02  Diego Novillo  
        PR 25990
        PR 25990
        * tree-cfg.c (move_block_to_fn): Clear out the basic block
        * tree-cfg.c (move_block_to_fn): Clear out the basic block
        array after growing it.
        array after growing it.
2006-02-01  Steve Ellcey  
2006-02-01  Steve Ellcey  
        PR middle-end/24901
        PR middle-end/24901
        * fold-const.c (fold_checksum_tree): Change type of buf.
        * fold-const.c (fold_checksum_tree): Change type of buf.
2006-02-01  Bernd Schmidt  
2006-02-01  Bernd Schmidt  
        * reload.c (push_secondary_reload): Initialize t_icode.
        * reload.c (push_secondary_reload): Initialize t_icode.
2006-02-01  Jakub Jelinek  
2006-02-01  Jakub Jelinek  
        * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
        * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
        -msoft-float -mlong-double-128 only issue a warning, but don't
        -msoft-float -mlong-double-128 only issue a warning, but don't
        swich to DFmode long double.
        swich to DFmode long double.
2006-02-01  Hans-Peter Nilsson  
2006-02-01  Hans-Peter Nilsson  
        * cse.c (fold_rtx) : When arg1
        * cse.c (fold_rtx) : When arg1
        has a constant equivalent, iterate over equivalents for arg0,
        has a constant equivalent, iterate over equivalents for arg0,
        calling simplify_relational_operation and if there's a result
        calling simplify_relational_operation and if there's a result
        cheaper than X, apply fold_rtx and return the result.
        cheaper than X, apply fold_rtx and return the result.
2006-02-01  Jan Hubicka  
2006-02-01  Jan Hubicka  
        * opts.c (no_unit_at_a_time_default): New global variable.
        * opts.c (no_unit_at_a_time_default): New global variable.
        (decode_options): Use it.
        (decode_options): Use it.
        * opts.h (no_unit_at_a_time_default): Declare.
        * opts.h (no_unit_at_a_time_default): Declare.
2006-02-01  Paul Brook  
2006-02-01  Paul Brook  
        * function.c (assign_parm_setup_reg): Use function argument promotion
        * function.c (assign_parm_setup_reg): Use function argument promotion
        rules.
        rules.
        * expr.c (expand_expr_real_1): Use function argument promotion rules
        * expr.c (expand_expr_real_1): Use function argument promotion rules
        for PARM_DECLs.
        for PARM_DECLs.
2006-02-01  Steve Ellcey  
2006-02-01  Steve Ellcey  
        * gcc.c (process_command): Change j to 'unsigned int'.
        * gcc.c (process_command): Change j to 'unsigned int'.
2006-01-31  Andrew Pinski  
2006-01-31  Andrew Pinski  
        PR middle-end/26001
        PR middle-end/26001
        * expr.c (expand_expr_real_1) :
        * expr.c (expand_expr_real_1) :
        Use the corrected index for the character
        Use the corrected index for the character
        out of the string constant.
        out of the string constant.
2006-01-31  Andrew Pinski  
2006-01-31  Andrew Pinski  
        * mode-switching.c (optimize_mode_switching): Fix size
        * mode-switching.c (optimize_mode_switching): Fix size
        allocated for bb_info[n_entities].
        allocated for bb_info[n_entities].
2006-01-31  Andrew Pinski  
2006-01-31  Andrew Pinski  
        * gcc.c (main): Correct type that is allocated for
        * gcc.c (main): Correct type that is allocated for
        explicit_link_files.
        explicit_link_files.
2006-01-31  Jakub Jelinek  
2006-01-31  Jakub Jelinek  
        * config/s390/s390.c (init_alignment_context): Set
        * config/s390/s390.c (init_alignment_context): Set
        ALIAS_SET_MEMORY_BARRIER on the MEM.
        ALIAS_SET_MEMORY_BARRIER on the MEM.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
2006-01-31  Uttam Pawar  
2006-01-31  Uttam Pawar  
        PR middle-end/25933
        PR middle-end/25933
        * loop-unroll.c (unroll_loop_runtime_iterations): Free
        * loop-unroll.c (unroll_loop_runtime_iterations): Free
        dom_bbs pointer.
        dom_bbs pointer.
        * tree-ssa-live.c (type_var_init): Allocate bitmap after
        * tree-ssa-live.c (type_var_init): Allocate bitmap after
        call to tpa_init.
        call to tpa_init.
2006-01-31  Marcin Dalecki  
2006-01-31  Marcin Dalecki  
        * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
        * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
        * regrename.c: Ditto.
        * regrename.c: Ditto.
        * tree-ssa-loop-im.c: Ditto.
        * tree-ssa-loop-im.c: Ditto.
        * tree-dump.c: Ditto.
        * tree-dump.c: Ditto.
        * tree-complex.c: Ditto.
        * tree-complex.c: Ditto.
        * genrecog.c: Ditto.
        * genrecog.c: Ditto.
        * tree-ssa-threadupdate.c: Ditto.
        * tree-ssa-threadupdate.c: Ditto.
        * tracer.c: Ditto.
        * tracer.c: Ditto.
        * java/class.c: Ditto.
        * java/class.c: Ditto.
        * java/jcf-parse.c: Ditto.
        * java/jcf-parse.c: Ditto.
        * java/resource.c: Ditto.
        * java/resource.c: Ditto.
        * java/except.c: Ditto.
        * java/except.c: Ditto.
        * java/jvspec.c: Ditto.
        * java/jvspec.c: Ditto.
        * java/jcf-write.c: Ditto.
        * java/jcf-write.c: Ditto.
        * java/jcf-path.c: Ditto.
        * java/jcf-path.c: Ditto.
        * java/gjavah.c: Ditto.
        * java/gjavah.c: Ditto.
        * java/zextract.c: Ditto.
        * java/zextract.c: Ditto.
        * java/jcf-io.c: Ditto.
        * java/jcf-io.c: Ditto.
        * java/jcf.h: Ditto.
        * java/jcf.h: Ditto.
        * java/buffer.c: Ditto.
        * java/buffer.c: Ditto.
        * java/lang.c: Ditto.
        * java/lang.c: Ditto.
        * java/parse-scan.y: Ditto.
        * java/parse-scan.y: Ditto.
        * java/lex.c: Ditto.
        * java/lex.c: Ditto.
        * java/lex.h: Ditto.
        * java/lex.h: Ditto.
        * cfgloopmanip.c: Ditto.
        * cfgloopmanip.c: Ditto.
        * postreload-gcse.c: Ditto.
        * postreload-gcse.c: Ditto.
        * tree-ssa-loop-manip.c: Ditto.
        * tree-ssa-loop-manip.c: Ditto.
        * postreload.c: Ditto.
        * postreload.c: Ditto.
        * tree-ssa-loop-ch.c: Ditto.
        * tree-ssa-loop-ch.c: Ditto.
        * loop.c: Ditto.
        * loop.c: Ditto.
        * ipa-cp.c: Ditto.
        * ipa-cp.c: Ditto.
        * cppspec.c: Ditto.
        * cppspec.c: Ditto.
        * diagnostic.c: Ditto.
        * diagnostic.c: Ditto.
        * final.c: Ditto.
        * final.c: Ditto.
        * genoutput.c: Ditto.
        * genoutput.c: Ditto.
        * gcc.c: Ditto.
        * gcc.c: Ditto.
        * cfghooks.c: Ditto.
        * cfghooks.c: Ditto.
        * cfgloopanal.c: Ditto.
        * cfgloopanal.c: Ditto.
        * objc/objc-act.c: Ditto.
        * objc/objc-act.c: Ditto.
        * gcov.c: Ditto.
        * gcov.c: Ditto.
        * genextract.c: Ditto.
        * genextract.c: Ditto.
        * genautomata.c: Ditto.
        * genautomata.c: Ditto.
        * pretty-print.c: Ditto.
        * pretty-print.c: Ditto.
        * genemit.c: Ditto.
        * genemit.c: Ditto.
        * cgraphunit.c: Ditto.
        * cgraphunit.c: Ditto.
        * flow.c: Ditto.
        * flow.c: Ditto.
        * df-scan.c: Ditto.
        * df-scan.c: Ditto.
        * haifa-sched.c: Ditto.
        * haifa-sched.c: Ditto.
        * dominance.c: Ditto.
        * dominance.c: Ditto.
        * dbxout.c: Ditto.
        * dbxout.c: Ditto.
        * tree-ssa-loop-ivopts.c: Ditto.
        * tree-ssa-loop-ivopts.c: Ditto.
        * df-core.c: Ditto.
        * df-core.c: Ditto.
        * mode-switching.c: Ditto.
        * mode-switching.c: Ditto.
        * modulo-sched.c: Ditto.
        * modulo-sched.c: Ditto.
        * graph.c: Ditto.
        * graph.c: Ditto.
        * ipa-pure-const.c: Ditto.
        * ipa-pure-const.c: Ditto.
        * cse.c: Ditto.
        * cse.c: Ditto.
        * fix-header.c: Ditto.
        * fix-header.c: Ditto.
        * web.c: Ditto.
        * web.c: Ditto.
        * tree-stdarg.c: Ditto.
        * tree-stdarg.c: Ditto.
        * ipa-utils.c: Ditto.
        * ipa-utils.c: Ditto.
        * loop-init.c: Ditto.
        * loop-init.c: Ditto.
        * ipa-inline.c: Ditto.
        * ipa-inline.c: Ditto.
        * cfganal.c: Ditto.
        * cfganal.c: Ditto.
        * global.c: Ditto.
        * global.c: Ditto.
        * alloc-pool.c: Ditto.
        * alloc-pool.c: Ditto.
        * dwarf2out.c: Ditto.
        * dwarf2out.c: Ditto.
        * opts.c: Ditto.
        * opts.c: Ditto.
        * genattrtab.c: Ditto.
        * genattrtab.c: Ditto.
        * tree-ssa-loop-ivcanon.c: Ditto.
        * tree-ssa-loop-ivcanon.c: Ditto.
        * predict.c: Ditto.
        * predict.c: Ditto.
        * timevar.c: Ditto.
        * timevar.c: Ditto.
        * lcm.c: Ditto.
        * lcm.c: Ditto.
        * fortran/gfortranspec.c: Ditto.
        * fortran/gfortranspec.c: Ditto.
        * regmove.c: Ditto.
        * regmove.c: Ditto.
        * local-alloc.c: Ditto.
        * local-alloc.c: Ditto.
        * langhooks.c: Ditto.
        * langhooks.c: Ditto.
        * function.c: Ditto.
        * function.c: Ditto.
        * tree-vectorizer.c: Ditto.
        * tree-vectorizer.c: Ditto.
        * gcse.c: Ditto.
        * gcse.c: Ditto.
        * ipa-type-escape.c: Ditto.
        * ipa-type-escape.c: Ditto.
        * alias.c: Ditto.
        * alias.c: Ditto.
        * tree-if-conv.c: Ditto.
        * tree-if-conv.c: Ditto.
        * profile.c: Ditto.
        * profile.c: Ditto.
        * ipa.c: Ditto.
        * ipa.c: Ditto.
        * tree-data-ref.c: Ditto.
        * tree-data-ref.c: Ditto.
        * loop-unroll.c: Ditto.
        * loop-unroll.c: Ditto.
        * treelang/treetree.c: Ditto.
        * treelang/treetree.c: Ditto.
        * calls.c: Ditto.
        * calls.c: Ditto.
        * bt-load.c: Ditto.
        * bt-load.c: Ditto.
        * ggc-common.c: Ditto.
        * ggc-common.c: Ditto.
        * except.c: Ditto.
        * except.c: Ditto.
        * coverage.c: Ditto.
        * coverage.c: Ditto.
        * cselib.c: Ditto.
        * cselib.c: Ditto.
        * tree-cfgcleanup.c: Ditto.
        * tree-cfgcleanup.c: Ditto.
        * tree-ssa-pre.c: Ditto.
        * tree-ssa-pre.c: Ditto.
        * cfgcleanup.c: Ditto.
        * cfgcleanup.c: Ditto.
        * loop-invariant.c: Ditto.
        * loop-invariant.c: Ditto.
        * loop-iv.c: Ditto.
        * loop-iv.c: Ditto.
        * ipa-prop.c: Ditto.
        * ipa-prop.c: Ditto.
        * print-tree.c: Ditto.
        * print-tree.c: Ditto.
        * conflict.c: Ditto.
        * conflict.c: Ditto.
        * ggc-page.c: Ditto.
        * ggc-page.c: Ditto.
        * sched-deps.c: Ditto.
        * sched-deps.c: Ditto.
        * regclass.c: Ditto.
        * regclass.c: Ditto.
        * tree-object-size.c: Ditto.
        * tree-object-size.c: Ditto.
        * combine.c: Ditto.
        * combine.c: Ditto.
        * bb-reorder.c: Ditto.
        * bb-reorder.c: Ditto.
        * resource.c: Ditto.
        * resource.c: Ditto.
        * var-tracking.c: Ditto.
        * var-tracking.c: Ditto.
        * cfgloop.c: Ditto.
        * cfgloop.c: Ditto.
        * df-problems.c: Ditto.
        * df-problems.c: Ditto.
        * reg-stack.c: Ditto.
        * reg-stack.c: Ditto.
        * tlink.c: Ditto.
        * tlink.c: Ditto.
        * gccspec.c: Ditto.
        * gccspec.c: Ditto.
        * sched-rgn.c: Ditto.
        * sched-rgn.c: Ditto.
        * tree-ssa-structalias.c: Ditto.
        * tree-ssa-structalias.c: Ditto.
        * tree-ssa-reassoc.c: Ditto.
        * tree-ssa-reassoc.c: Ditto.
        * config/darwin-c.c: Ditto.
        * config/darwin-c.c: Ditto.
        * config/darwin.c: Ditto.
        * config/darwin.c: Ditto.
        * config/arm/arm.c: Ditto.
        * config/arm/arm.c: Ditto.
        * cfgrtl.c: Ditto.
        * cfgrtl.c: Ditto.
        * collect2.c: Ditto.
        * collect2.c: Ditto.
        * reload1.c: Ditto.
        * reload1.c: Ditto.
2006-01-31  Nicolas Pitre  
2006-01-31  Nicolas Pitre  
        * arm.md (smaxsi3): Make aware of smax_m1.
        * arm.md (smaxsi3): Make aware of smax_m1.
        (smax_m1): New.
        (smax_m1): New.
2006-01-31  Nathan Sidwell  
2006-01-31  Nathan Sidwell  
        * config/m68k/lb1sf68.asm: Use moveq to load small constants.
        * config/m68k/lb1sf68.asm: Use moveq to load small constants.
2006-01-31  Richard Guenther  
2006-01-31  Richard Guenther  
        * doc/invoke.texi (-msselibm): Document.
        * doc/invoke.texi (-msselibm): Document.
        * target.h (expand_library_builtin): New target hook.
        * target.h (expand_library_builtin): New target hook.
        * builtins.c (expand_builtin): Use expand_library_builtin.
        * builtins.c (expand_builtin): Use expand_library_builtin.
        (default_expand_library_builtin): New function.
        (default_expand_library_builtin): New function.
        * gcc.c (LINK_GCC_MATH_SPEC): Define.
        * gcc.c (LINK_GCC_MATH_SPEC): Define.
        (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
        (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
        (link_gcc_math_spec): Declare.
        (link_gcc_math_spec): Declare.
        (static_specs): Add link_gcc_math_spec.
        (static_specs): Add link_gcc_math_spec.
        * expr.h (default_expand_library_builtin): Declare.
        * expr.h (default_expand_library_builtin): Declare.
        * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
        (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
        * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
        * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
        * config/i386/i386.opt (msselibm): New target option.
        * config/i386/i386.opt (msselibm): New target option.
        * config/i386/i386.c (ix86_builtin_function_variants): New array.
        * config/i386/i386.c (ix86_builtin_function_variants): New array.
        (ix86_init_sse_abi_builtins): New function.
        (ix86_init_sse_abi_builtins): New function.
        (ix86_expand_library_builtin): Likewise.
        (ix86_expand_library_builtin): Likewise.
        (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
        (override_options): Handle error conditions wrt -msselibm.
        (override_options): Handle error conditions wrt -msselibm.
        (ix86_builtins): Add function codes for SSE2 ABI builtins.
        (ix86_builtins): Add function codes for SSE2 ABI builtins.
        (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
        (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
        * doc/extend.texi (__builtin_sse2_*): Document new target specific
        * doc/extend.texi (__builtin_sse2_*): Document new target specific
        builtins.
        builtins.
2006-01-31  Richard Guenther  
2006-01-31  Richard Guenther  
        Paolo Bonzini  
        Paolo Bonzini  
        * doc/install.texi (--disable-libgcc-math): Document.
        * doc/install.texi (--disable-libgcc-math): Document.
2006-01-30  Marcin Dalecki  
2006-01-30  Marcin Dalecki  
        * expr.h (expand_normal): new inline function.
        * expr.h (expand_normal): new inline function.
        * builtins.c: use it, use EXPAND_NORMAL explicitely.
        * builtins.c: use it, use EXPAND_NORMAL explicitely.
        * dojump.c: use it.
        * dojump.c: use it.
        * dwarf2out.c: use it.
        * dwarf2out.c: use it.
        * expr.c: use it.
        * expr.c: use it.
        * calls.c: use it.
        * calls.c: use it.
        * expmed.c: use it.
        * expmed.c: use it.
        * except.c: use it.
        * except.c: use it.
        * config/sparc/sparc.c: use it.
        * config/sparc/sparc.c: use it.
        * config/i386/i386.c: use it.
        * config/i386/i386.c: use it.
        * config/rs6000/rs6000.c: use it.
        * config/rs6000/rs6000.c: use it.
        * config/arm/arm.c: use it.
        * config/arm/arm.c: use it.
        * config/mips/mips.c: use it.
        * config/mips/mips.c: use it.
        * stmt.c: use it, use EXPAND_NORMAL explicitely.
        * stmt.c: use it, use EXPAND_NORMAL explicitely.
2006-01-30  Roger Sayle  
2006-01-30  Roger Sayle  
        * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
        * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
        argv to the appropriate type.
        argv to the appropriate type.
2006-01-30  Zdenek Dvorak 
2006-01-30  Zdenek Dvorak 
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
        * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
        unreachable code.
        unreachable code.
2006-01-30  Ulrich Weigand  
2006-01-30  Ulrich Weigand  
        PR target/26018
        PR target/26018
        * config/s390/s390.c (struct machine_function): New flag
        * config/s390/s390.c (struct machine_function): New flag
        decomposed_literal_pool_addresses_ok_p.
        decomposed_literal_pool_addresses_ok_p.
        (s390_reorg): Set it before final stage of literal pool transforms.
        (s390_reorg): Set it before final stage of literal pool transforms.
        (s390_decompose_address): Only accept displacements of the form
        (s390_decompose_address): Only accept displacements of the form
        (minus (label_ref ...) (label_ref ...)) if that flag is set.
        (minus (label_ref ...) (label_ref ...)) if that flag is set.
2006-01-30  Carlos O'Donell  
2006-01-30  Carlos O'Donell  
        * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
        * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
        the comparison routine return.
        the comparison routine return.
2006-01-30  Michael Matz  
2006-01-30  Michael Matz  
        * global.c (find_reg): Only evict for global regs.
        * global.c (find_reg): Only evict for global regs.
        Take n_refs into account and dump more info.
        Take n_refs into account and dump more info.
2006-01-30  J"orn Rennecke 
2006-01-30  J"orn Rennecke 
        PR target/14798:
        PR target/14798:
        * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
        * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
        (pragma_trap, pragma_nosave_low_regs): Likewise.
        (pragma_trap, pragma_nosave_low_regs): Likewise.
        (current_function_anonymous_args): Likewise.
        (current_function_anonymous_args): Likewise.
        (sh_deferred_function_attributes): New variable.
        (sh_deferred_function_attributes): New variable.
        (sh_deferred_function_attributes_tail): Likewise.
        (sh_deferred_function_attributes_tail): Likewise.
        (print_operand): For '@', look up trap_exit attribute.
        (print_operand): For '@', look up trap_exit attribute.
        (calc_live_regs): Look up trapa_handler attribute.  For trapa
        (calc_live_regs): Look up trapa_handler attribute.  For trapa
        handlers, save/restore fpscr, but don't do any other
        handlers, save/restore fpscr, but don't do any other
        interrupt-specific saves.
        interrupt-specific saves.
        Don't save r0..r7 if the nosave_low_regs attribute is in effect.
        Don't save r0..r7 if the nosave_low_regs attribute is in effect.
        Fix check for partially saved registers to check for SHmedia.
        Fix check for partially saved registers to check for SHmedia.
        (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
        (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
        (sh_output_function_epilogue): Don't clear any of the removed
        (sh_output_function_epilogue): Don't clear any of the removed
        variables.
        variables.
        (sh_insert_attributes): Don't check pragma_interrupt.
        (sh_insert_attributes): Don't check pragma_interrupt.
        Insert deferred attributes.  Check that interrupt attribute is
        Insert deferred attributes.  Check that interrupt attribute is
        present for other attributes that require its presence.
        present for other attributes that require its presence.
        (sh_attribute_table): Add new attributes trapa_handler and
        (sh_attribute_table): Add new attributes trapa_handler and
        nosave_low_regs.
        nosave_low_regs.
        (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
        (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
        Don't check for pragma_interrupt.  Don't store argument.
        Don't check for pragma_interrupt.  Don't store argument.
        * sh.h (pragma_interrupt, sp_switch): Don't declare.
        * sh.h (pragma_interrupt, sp_switch): Don't declare.
        (sh_deferred_function_attributes): Declare.
        (sh_deferred_function_attributes): Declare.
        (sh_deferred_function_attributes_tail): Likewise.
        (sh_deferred_function_attributes_tail): Likewise.
        * sh.md (sp_switch_1): Add operand.  Change generator caller.
        * sh.md (sp_switch_1): Add operand.  Change generator caller.
        (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
        (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
        (*return_i): Don't use when trap_exit attribute is in effect.
        (*return_i): Don't use when trap_exit attribute is in effect.
        (*return_trapa): New insn pattern.
        (*return_trapa): New insn pattern.
        * sh-c.c: New file.
        * sh-c.c: New file.
        * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
        * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
        setting c_target_objs and cxx_target_objs.
        setting c_target_objs and cxx_target_objs.
        * t-sh: Add rule for sh-c.o.
        * t-sh: Add rule for sh-c.o.
2006-01-30  Richard Guenther  
2006-01-30  Richard Guenther  
        PR c++/23372
        PR c++/23372
        * gimplify.c (gimplify_target_expr): Handle easy cases
        * gimplify.c (gimplify_target_expr): Handle easy cases
        without creating a temporary.
        without creating a temporary.
2006-01-30  Nathan Sidwell  
2006-01-30  Nathan Sidwell  
        * vec.h (safe_grow): Remove duplicated line.
        * vec.h (safe_grow): Remove duplicated line.
2006-01-29  Diego Novillo  
2006-01-29  Diego Novillo  
        PR 25874
        PR 25874
        * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
        * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
        (expand_omp): ... here.
        (expand_omp): ... here.
        (expand_omp_parallel): Only remove barriers for combined
        (expand_omp_parallel): Only remove barriers for combined
        parallel+workshare constructs.
        parallel+workshare constructs.
2006-01-29  Eric Botcazou  
2006-01-29  Eric Botcazou  
        Revert
        Revert
        2005-11-09  Eric Botcazou  
        2005-11-09  Eric Botcazou  
        * tree.c (build_qualified_type): Chain the new type to the original
        * tree.c (build_qualified_type): Chain the new type to the original
        type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
        type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
        a POINTER_TYPE or a REFERENCE_TYPE respectively.
        a POINTER_TYPE or a REFERENCE_TYPE respectively.
        (build_pointer_type_for_mode): Only return unqualified types.
        (build_pointer_type_for_mode): Only return unqualified types.
        (build_reference_type_for_mode): Likewise.
        (build_reference_type_for_mode): Likewise.
2006-01-29  Gabriel Dos Reis  
2006-01-29  Gabriel Dos Reis  
        * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
        * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
        * Makefile.in (CXX_COMPAT_WARN): Define.
        * Makefile.in (CXX_COMPAT_WARN): Define.
        * configure: Regenerate.
        * configure: Regenerate.
2006-01-29  Dorit Nuzman  
2006-01-29  Dorit Nuzman  
        PR tree-opt/25911
        PR tree-opt/25911
        * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
        * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
        to an if check.
        to an if check.
2006-01-29  Gabriel Dos Reis  
2006-01-29  Gabriel Dos Reis  
        * toplev.c: Fix thinko.
        * toplev.c: Fix thinko.
2006-01-29  Gabriel Dos Reis  
2006-01-29  Gabriel Dos Reis  
            Marcin Dalecki  
            Marcin Dalecki  
        * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
        * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
        (push_srcloc): Use XNEW.
        (push_srcloc): Use XNEW.
        (init_asm_output, default_get_pch_validity): Use XNEWVEC.
        (init_asm_output, default_get_pch_validity): Use XNEWVEC.
2006-01-29  Kenneth Zadeck 
2006-01-29  Kenneth Zadeck 
        * df-core.c (df_set_blocks): Deleted all variable.
        * df-core.c (df_set_blocks): Deleted all variable.
2006-01-28  Ian Lance Taylor  
2006-01-28  Ian Lance Taylor  
        * cgraphunit.c (cgraph_assemble_pending_functions): Call
        * cgraphunit.c (cgraph_assemble_pending_functions): Call
        cgraph_output_pending_asms.
        cgraph_output_pending_asms.
2006-01-28  Zack Weinberg  
2006-01-28  Zack Weinberg  
        * c.opt: Add -W(no-)overlength-strings.
        * c.opt: Add -W(no-)overlength-strings.
        * doc/invoke.texi: Document it.
        * doc/invoke.texi: Document it.
        * c-opts.c (c_common_handle_option): -pedantic implies
        * c-opts.c (c_common_handle_option): -pedantic implies
        -Woverlength-strings, if not explicitly disabled already.
        -Woverlength-strings, if not explicitly disabled already.
        (c_common_post_options): -Woverlength-strings defaults to off, and
        (c_common_post_options): -Woverlength-strings defaults to off, and
        is always off for C++.
        is always off for C++.
        * c-common.c (fix_string_type): Issue warning about strings longer
        * c-common.c (fix_string_type): Issue warning about strings longer
        than is portable only if warn_overlength_strings.  Rearrange code
        than is portable only if warn_overlength_strings.  Rearrange code
        a little for clarity.
        a little for clarity.
        * configure.in: Check for -Wno-overlength-strings as well before
        * configure.in: Check for -Wno-overlength-strings as well before
        enabling -pedantic in stage 1.
        enabling -pedantic in stage 1.
        * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
        * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
        (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
        (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
        * genconditions.c (write_header, write_one_condition)
        * genconditions.c (write_header, write_one_condition)
        (write_conditions, write_writer): Consolidate very long strings
        (write_conditions, write_writer): Consolidate very long strings
        that were broken up to fit in C89 portable limit.  Don't use
        that were broken up to fit in C89 portable limit.  Don't use
        printf when fputs will do.
        printf when fputs will do.
2006-01-28  Adam Nemet  
2006-01-28  Adam Nemet  
        * combine.c (simplify_comparison ): Check
        * combine.c (simplify_comparison ): Check
        TRULY_NOOP_TRUNCATION before start using a subreg.
        TRULY_NOOP_TRUNCATION before start using a subreg.
        * config/mips/mips.md (*branch_zero,
        * config/mips/mips.md (*branch_zero,
        *branch_zero_inverted, *branch_equality,
        *branch_zero_inverted, *branch_equality,
        *branch_equality_inverted, *branch_equality_mips16):
        *branch_equality_inverted, *branch_equality_mips16):
        Remove mode check from comparisons.
        Remove mode check from comparisons.
2006-01-28  Kenneth Zadeck 
2006-01-28  Kenneth Zadeck 
        * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
        * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
2006-01-28  Kazu Hirata  
2006-01-28  Kazu Hirata  
        * expmed.c (const_mult_add_overflow_p): Remove.
        * expmed.c (const_mult_add_overflow_p): Remove.
        * expr.h: Remove the prototype for const_mult_add_overflow_p.
        * expr.h: Remove the prototype for const_mult_add_overflow_p.
        * recog.c (validate_replace_rtx_subexp): Remove.
        * recog.c (validate_replace_rtx_subexp): Remove.
        * recog.h: Remove the prototype for
        * recog.h: Remove the prototype for
        validate_replace_rtx_subexp.
        validate_replace_rtx_subexp.
        * integrate.h: Remove the prototype for
        * integrate.h: Remove the prototype for
        copy_decl_for_inlining.
        copy_decl_for_inlining.
        * rtl.h: Remove the prototype for mark_constant_function.
        * rtl.h: Remove the prototype for mark_constant_function.
        * tree-vectorizer.h: Remove the prototype for
        * tree-vectorizer.h: Remove the prototype for
        vect_strip_conversion.
        vect_strip_conversion.
        * modulo-sched.c (create_partial_schedule,
        * modulo-sched.c (create_partial_schedule,
        free_partial_schedule, reset_partial_schedule): Make them
        free_partial_schedule, reset_partial_schedule): Make them
        static.
        static.
        * hooks.c (hook_bool_rtx_int_false): Remove.
        * hooks.c (hook_bool_rtx_int_false): Remove.
        * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
        * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
2006-01-28  David Edelsohn  
2006-01-28  David Edelsohn  
        * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
        * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
        and -mlong-double-128 are incompatible.
        and -mlong-double-128 are incompatible.
        * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
        * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
        * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
        * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
        (TARGET_LIBGCC2_CFLAGS): Define.
        (TARGET_LIBGCC2_CFLAGS): Define.
        * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
        * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
        (TARGET_LIBGCC2_CFLAGS): Same.
        (TARGET_LIBGCC2_CFLAGS): Same.
        * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
        * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
2006-01-28  Kazu Hirata  
2006-01-28  Kazu Hirata  
        PR c/19606.
        PR c/19606.
        * c-typeck.c (build_binary_op): Perform implicit casts of
        * c-typeck.c (build_binary_op): Perform implicit casts of
        operands before shortening them.
        operands before shortening them.
        * cfgloopmanip.c (split_loop_bb): Remove.
        * cfgloopmanip.c (split_loop_bb): Remove.
        * cfgloop.h: Remove the prototype for split_loop_bb.
        * cfgloop.h: Remove the prototype for split_loop_bb.
        * cfgloop.c (flow_loop_outside_edge_p): Remove.
        * cfgloop.c (flow_loop_outside_edge_p): Remove.
        * cfgloop.h: Remove the prototype for
        * cfgloop.h: Remove the prototype for
        flow_loop_outside_edge_p.
        flow_loop_outside_edge_p.
        * emit-rtl.c (init_virtual_regs): Make it static.
        * emit-rtl.c (init_virtual_regs): Make it static.
        * function.h: Remove the prototype for init_virtual_regs.
        * function.h: Remove the prototype for init_virtual_regs.
        * recog.c (peephole2_optimize): Make it static.
        * recog.c (peephole2_optimize): Make it static.
        * recog.h: Remove the prototype for peephole2_optimize.
        * recog.h: Remove the prototype for peephole2_optimize.
2006-01-27  H.J. Lu  
2006-01-27  H.J. Lu  
        * df-scan.c (df_record_entry_block_defs): Check if
        * df-scan.c (df_record_entry_block_defs): Check if
        INCOMING_RETURN_ADDR_RTX is defined.
        INCOMING_RETURN_ADDR_RTX is defined.
2006-01-27  Daniel Berlin  
2006-01-27  Daniel Berlin  
            Kenneth Zadeck 
            Kenneth Zadeck 
        PR rtl-optimization/24762
        PR rtl-optimization/24762
        * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
        * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
        * targhooks.c (hook_void_bitmap): New hook prototype.
        * targhooks.c (hook_void_bitmap): New hook prototype.
        * targhoohs.h (hook_void_bitmap): Ditto.
        * targhoohs.h (hook_void_bitmap): Ditto.
        * bitmap.h (bitmap_head_def): Moved to coretypes.h.
        * bitmap.h (bitmap_head_def): Moved to coretypes.h.
        * coretypes.h (bitmap_head_def): Moved from bitmap.h.
        * coretypes.h (bitmap_head_def): Moved from bitmap.h.
        * target.h (live_on_entry): New function pointer.
        * target.h (live_on_entry): New function pointer.
        * df-scan.c (df_all_hard_regs): Removed.
        * df-scan.c (df_all_hard_regs): Removed.
        (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
        (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
        (df_scan_free_internal): Added df->entry_block_defs.
        (df_scan_free_internal): Added df->entry_block_defs.
        (df_scan_alloc): Ditto.
        (df_scan_alloc): Ditto.
        (df_scan_dump): Ditto.
        (df_scan_dump): Ditto.
        (df_uses_record): Plumbed flag field properly thru calls.
        (df_uses_record): Plumbed flag field properly thru calls.
        Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
        Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
        This part fixes PR24762.
        This part fixes PR24762.
        (df_bb_refs_record): Added code to make the frame and arg
        (df_bb_refs_record): Added code to make the frame and arg
        pointers live in EH blocks.
        pointers live in EH blocks.
        (df_refs_record): Added call to df_record_entry_block_defs.
        (df_refs_record): Added call to df_record_entry_block_defs.
        (df_record_entry_block_defs): New function.
        (df_record_entry_block_defs): New function.
        * df-core.c: Added comments to describe new artifical defs.
        * df-core.c: Added comments to describe new artifical defs.
        * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
        * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
        (entry_block_defs): New field in struct df.
        (entry_block_defs): New field in struct df.
        (df_all_hard_regs): Deleted.
        (df_all_hard_regs): Deleted.
        * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
        * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
        * df-problems.c (df_ru_bb_local_compute_process_def):
        * df-problems.c (df_ru_bb_local_compute_process_def):
        Added code to handle artifical defs in the entry to a function.
        Added code to handle artifical defs in the entry to a function.
        (df_ru_bb_local_compute): Ditto.
        (df_ru_bb_local_compute): Ditto.
        (df_rd_bb_local_compute_process_def): Ditto.
        (df_rd_bb_local_compute_process_def): Ditto.
        (df_rd_bb_local_compute): Ditto.
        (df_rd_bb_local_compute): Ditto.
        (df_lr_bb_local_compute): Ditto.
        (df_lr_bb_local_compute): Ditto.
        (df_ur_bb_local_compute): Ditto.
        (df_ur_bb_local_compute): Ditto.
        (df_urec_bb_local_compute): Ditto.
        (df_urec_bb_local_compute): Ditto.
        (df_chain_create_bb): Ditto.
        (df_chain_create_bb): Ditto.
        (df_ur_local_finalize): Removed entry.
        (df_ur_local_finalize): Removed entry.
        (df_urec_init): Ditto.
        (df_urec_init): Ditto.
        (df_urec_local_finalize): Ditto.
        (df_urec_local_finalize): Ditto.
        (df_ri_bb_compute): Added detection of last use of pseudos.
        (df_ri_bb_compute): Added detection of last use of pseudos.
        * Makefile.in (df-scan.o): Updated dependencies.
        * Makefile.in (df-scan.o): Updated dependencies.
        * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
        * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
        * config/mips/mips.c (mips_set_live_on_entry): Added.
        * config/mips/mips.c (mips_set_live_on_entry): Added.
        * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
        * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
        for target hook.
        for target hook.
        * dce.c (marked_insn_p): Added code to handle artifical defs.
        * dce.c (marked_insn_p): Added code to handle artifical defs.
2006-01-27  H.J. Lu  
2006-01-27  H.J. Lu  
        * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
        * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
        intrinsic.
        intrinsic.
        (_mm_cvtsi128_si64): Likewise.
        (_mm_cvtsi128_si64): Likewise.
        (_mm_cvtsd_si64): Likewise.
        (_mm_cvtsd_si64): Likewise.
        (_mm_cvttsd_si64): Likewise.
        (_mm_cvttsd_si64): Likewise.
        (_mm_cvtsi64_sd): Likewise.
        (_mm_cvtsi64_sd): Likewise.
        (_mm_cvtsi64_si128): Likewise.
        (_mm_cvtsi64_si128): Likewise.
        * config/i386/mmintrin.h (_m_from_int64): Likewise.
        * config/i386/mmintrin.h (_m_from_int64): Likewise.
        (_mm_cvtsi64_m64): Likewise.
        (_mm_cvtsi64_m64): Likewise.
        (_m_to_int64): Likewise.
        (_m_to_int64): Likewise.
        (_mm_cvtm64_si64): Likewise.
        (_mm_cvtm64_si64): Likewise.
        * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
        * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
        (_mm_cvttss_si64): Likewise.
        (_mm_cvttss_si64): Likewise.
        (_mm_cvtsi64_ss): Likewise.
        (_mm_cvtsi64_ss): Likewise.
        (_mm_cvtss_f32): Likewise.
        (_mm_cvtss_f32): Likewise.
2006-01-27  Carlos O'Donell  
2006-01-27  Carlos O'Donell  
        * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
        * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
        for pragma redefine_extname.
        for pragma redefine_extname.
2006-01-27  Jakub Jelinek  
2006-01-27  Jakub Jelinek  
        PR target/25864
        PR target/25864
        * libgcc-std.ver: Add GCC_4.1.0 symbol version.
        * libgcc-std.ver: Add GCC_4.1.0 symbol version.
        * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
        * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
        -mno-minimal-toc to previous content.
        -mno-minimal-toc to previous content.
        (bispecs): Remove goal.
        (bispecs): Remove goal.
        * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
        * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
        * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
        * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
        compatibility aliases on powerpc-*-*gnu*.
        compatibility aliases on powerpc-*-*gnu*.
        * config/rs6000/libgcc-ppc-glibc.ver: New file.
        * config/rs6000/libgcc-ppc-glibc.ver: New file.
        * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
        * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
        libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
        libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
        (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
        (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
        (ldblspecs): New goal.
        (ldblspecs): New goal.
        * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
        * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
        * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
        * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
        _df_to_tf.
        _df_to_tf.
        * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
        * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
        L_sf_to_tf or L_df_to_tf is defined.
        L_sf_to_tf or L_df_to_tf is defined.
2006-01-27  David Edelsohn  
2006-01-27  David Edelsohn  
            Alan Modra  
            Alan Modra  
        PR target/25864
        PR target/25864
        * config/rs6000/linux.h (POWERPC_LINUX): Define.
        * config/rs6000/linux.h (POWERPC_LINUX): Define.
        * config/rs6000/linux64.h (POWERPC_LINUX): Define.
        * config/rs6000/linux64.h (POWERPC_LINUX): Define.
        * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
        * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
        * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
        * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
        * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
        (rs6000_override_options): Initialize rs6000_ieeequad.
        (rs6000_override_options): Initialize rs6000_ieeequad.
        Initialize TFmode format to ibm_extended_format if not
        Initialize TFmode format to ibm_extended_format if not
        TARGET_IEEEQUAD.
        TARGET_IEEEQUAD.
        (rs6000_handle_option): Accept -mabi= ibmlongdouble and
        (rs6000_handle_option): Accept -mabi= ibmlongdouble and
        ieeelongdouble.
        ieeelongdouble.
        (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
        (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
        (rs6000_return_in_memory): Only return IEEEQUAD in memory.
        (rs6000_return_in_memory): Only return IEEEQUAD in memory.
        (function_arg_advance): IBM long double passed in two FPRs, not
        (function_arg_advance): IBM long double passed in two FPRs, not
        split.
        split.
        (function_arg): IBM long double passed in FPRs.
        (function_arg): IBM long double passed in FPRs.
        (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
        (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
        (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
        (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
        Only multireg GPR aligned.
        Only multireg GPR aligned.
        (rs6000_init_libfuncs): Enable IBM long double functions if not
        (rs6000_init_libfuncs): Enable IBM long double functions if not
        IEEEQUAD.
        IEEEQUAD.
        (rs6000_generate_compare): Use IBM long double compare if not
        (rs6000_generate_compare): Use IBM long double compare if not
        TARGET_IEEEQUAD.
        TARGET_IEEEQUAD.
        * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
        * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
        (TARGET_IEEEQUAD): Define.
        (TARGET_IEEEQUAD): Define.
        (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
        (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
        not TARGET_IEEEQUAD.
        not TARGET_IEEEQUAD.
        * config/rs6000/rs6000.md: Enable TFmode patterns if
        * config/rs6000/rs6000.md: Enable TFmode patterns if
        !TARGET_IEEEQUAD.
        !TARGET_IEEEQUAD.
        * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
        * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
        * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
        * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
        and -mlong-double-128 are incompatible.
        and -mlong-double-128 are incompatible.
        * doc/invoke.texi (-mabi): Collect options together.  Add
        * doc/invoke.texi (-mabi): Collect options together.  Add
        ibmlongdouble and ieeelongdouble.
        ibmlongdouble and ieeelongdouble.
2006-01-27  Richard Sandiford  
2006-01-27  Richard Sandiford  
        * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
        * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
        opaque type.
        opaque type.
        * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
        * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
        * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
        * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
        (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
        (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
        * rtl.h (rtunion_def): Remove rt_ptr.
        * rtl.h (rtunion_def): Remove rt_ptr.
        (X0PTR): Delete.
        (X0PTR): Delete.
        (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
        (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
        (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
        (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
        * config/i386/winnt.c (i386_pe_mark_dllexport)
        * config/i386/winnt.c (i386_pe_mark_dllexport)
        (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
        (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
2006-01-27 Gabor Loki 
2006-01-27 Gabor Loki 
        * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
        * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
2006-01-26 Alexandre Oliva  
2006-01-26 Alexandre Oliva  
        PR other/24829
        PR other/24829
        PR target/24831
        PR target/24831
        * gthr-dce.h: Do not gthrw-ify pthread_once_init,
        * gthr-dce.h: Do not gthrw-ify pthread_once_init,
        pthread_key_delete.  From John David Anglin.  gthrw-ify
        pthread_key_delete.  From John David Anglin.  gthrw-ify
        pthread_getunique_np only if it it's not a macro.  Delete
        pthread_getunique_np only if it it's not a macro.  Delete
        UNUSED macro.
        UNUSED macro.
        (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
        (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
        __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
        __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
        __gthread_objc_condition_signal, __gthread_key_delete): Add
        __gthread_objc_condition_signal, __gthread_key_delete): Add
        "__attribute__ ((__unused__))" to unused arguments.
        "__attribute__ ((__unused__))" to unused arguments.
        (__gthread_recursive_mutex_init_function): Add missing return.
        (__gthread_recursive_mutex_init_function): Add missing return.
        * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
        * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
        gthr-posix95.h: Use macro-based approach for name redirection
        gthr-posix95.h: Use macro-based approach for name redirection
        on targets missing weakref.
        on targets missing weakref.
2006-01-26  Zack Weinberg  
2006-01-26  Zack Weinberg  
        * genconditions.c (write_header): In generated code, #ifdef out
        * genconditions.c (write_header): In generated code, #ifdef out
        all includes and fake declarations, except includes of bconfig.h
        all includes and fake declarations, except includes of bconfig.h
        and system.h, unless GCC_VERSION >= 3001.  Do not include
        and system.h, unless GCC_VERSION >= 3001.  Do not include
        gensupport.h in any case.
        gensupport.h in any case.
        (write_conditions): Generate a definition of struct c_test.  Add
        (write_conditions): Generate a definition of struct c_test.  Add
        a comment to the generated #endif.
        a comment to the generated #endif.
        (write_one_condition): Escape backslashes in string too.
        (write_one_condition): Escape backslashes in string too.
        (write_writer): Generated code must escape backslashes and quote
        (write_writer): Generated code must escape backslashes and quote
        marks (but not newlines) in the strings it writes.
        marks (but not newlines) in the strings it writes.
        * Makefile.in (build/gencondmd.o): Update dependencies.
        * Makefile.in (build/gencondmd.o): Update dependencies.
2006-01-26  Steve Ellcey  
2006-01-26  Steve Ellcey  
        PR target/25961
        PR target/25961
        * Makefile.in (insn-automata.o): Add header file dependencies.
        * Makefile.in (insn-automata.o): Add header file dependencies.
        * genautomata.c: Add includes.
        * genautomata.c: Add includes.
2006-01-26  Steve Ellcey  
2006-01-26  Steve Ellcey  
        PR target/25961
        PR target/25961
        * Makefile.in (insn-automata.o): Add -Wno-error flag.
        * Makefile.in (insn-automata.o): Add -Wno-error flag.
2006-01-26  Paolo Bonzini  
2006-01-26  Paolo Bonzini  
        * configure.ac: Expect target tools paths to be passed from the toplevel
        * configure.ac: Expect target tools paths to be passed from the toplevel
        and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
        and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
        AS_SET_VAR_IF.
        AS_SET_VAR_IF.
        * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
        * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
2006-01-26  Alexandre Oliva  
2006-01-26  Alexandre Oliva  
        PR c/25892
        PR c/25892
        * c.opt (Wpointer-sign): Init to -1.
        * c.opt (Wpointer-sign): Init to -1.
        * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
        * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
        OPT_pedantic, to 0 otherwise.
        OPT_pedantic, to 0 otherwise.
        * doc/invoke.texi: Update.
        * doc/invoke.texi: Update.
2006-01-26  Paolo Bonzini  
2006-01-26  Paolo Bonzini  
        * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
        * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
        constants provided by 80387 instructions in the destination mode.
        constants provided by 80387 instructions in the destination mode.
2006-01-26  Richard Guenther  
2006-01-26  Richard Guenther  
            Andrew Pinski  
            Andrew Pinski  
        PR tree-opt/21470
        PR tree-opt/21470
        partial PR tree-opt/17064
        partial PR tree-opt/17064
        * tree-ssa-structalias.c (intra_create_variable_infos):
        * tree-ssa-structalias.c (intra_create_variable_infos):
        Create heap variables for incoming parameters if
        Create heap variables for incoming parameters if
        flag_argument_noalias > 1.
        flag_argument_noalias > 1.
        (find_what_p_points_to): Look through default defs of
        (find_what_p_points_to): Look through default defs of
        parameter decls.
        parameter decls.
2006-01-26  Jeff Law  
2006-01-26  Jeff Law  
        PR ada/25900
        PR ada/25900
        * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
        * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
        with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
        with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
        within the VR_RANGE, use the VR_RANGE as the result, not the
        within the VR_RANGE, use the VR_RANGE as the result, not the
        VR_ANTI_RANGE.
        VR_ANTI_RANGE.
        (adjust_range_with_scev): Reject ranges from SCEV which are out of
        (adjust_range_with_scev): Reject ranges from SCEV which are out of
        bounds for the type.
        bounds for the type.
2006-01-26  Daniel Berlin  
2006-01-26  Daniel Berlin  
        * tree-ssa-alias.c (maybe_create_global_var): Change
        * tree-ssa-alias.c (maybe_create_global_var): Change
        subvar walking to an assertion that we don't have subvar'd variables.
        subvar walking to an assertion that we don't have subvar'd variables.
2006-01-26  Andrew Pinski  
2006-01-26  Andrew Pinski  
        PR C/25861
        PR C/25861
        * c-common.c (c_common_truthvalue_conversion) :
        * c-common.c (c_common_truthvalue_conversion) :
        Use a new variable, inner.  PARM_DECLs are always non-weak.
        Use a new variable, inner.  PARM_DECLs are always non-weak.
2006-01-26  Shantonu Sen  
2006-01-26  Shantonu Sen  
        * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
        * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
        --disable-checking.
        --disable-checking.
2006-01-26  Adam Nemet  
2006-01-26  Adam Nemet  
        * config/mips/mips.md (*clear_upper32): New combiner pattern.
        * config/mips/mips.md (*clear_upper32): New combiner pattern.
2006-01-26  Richard Earnshaw  
2006-01-26  Richard Earnshaw  
        * arm.md (smaxsi3, sminsi3): Convert to define_expand.
        * arm.md (smaxsi3, sminsi3): Convert to define_expand.
        (smax_insn, smin_insn, smax_0, smin_0): New.
        (smax_insn, smin_insn, smax_0, smin_0): New.
2006-01-26  Hans-Peter Nilsson  
2006-01-26  Hans-Peter Nilsson  
        PR target/25947
        PR target/25947
        * config/cris/cris.c (cris_order_for_addsi3): New function.
        * config/cris/cris.c (cris_order_for_addsi3): New function.
        * config/cris/cris-protos.h: Prototype it.
        * config/cris/cris-protos.h: Prototype it.
        * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
        * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
        (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
        (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
        (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
        (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
        (split for "op.S1 [rx=rx+i],ry (swapped)")
        (split for "op.S1 [rx=rx+i],ry (swapped)")
        (split for "op(s|u).S1 [rx=rx+i],ry")
        (split for "op(s|u).S1 [rx=rx+i],ry")
        (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
        (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
        Apply cris_order_for_addsi3 when generating addsi3 insns.
        Apply cris_order_for_addsi3 when generating addsi3 insns.
2006-01-25  Diego Novillo  
2006-01-25  Diego Novillo  
        * tree.h (TREE_RANGE_CHECK): Fix range predicate.
        * tree.h (TREE_RANGE_CHECK): Fix range predicate.
        (TREE_BLOCK): Add call to EXPR_CHECK.
        (TREE_BLOCK): Add call to EXPR_CHECK.
2006-01-25  Diego Novillo  
2006-01-25  Diego Novillo  
        PR 25886
        PR 25886
        * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
        * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
        * tree-pretty-print.c (dump_omp_clause): Extract from ...
        * tree-pretty-print.c (dump_omp_clause): Extract from ...
        (dump_omp_clauses): ... here.
        (dump_omp_clauses): ... here.
        (dump_generic_node): Handle OMP_CLAUSE.
        (dump_generic_node): Handle OMP_CLAUSE.
        * tree.c (omp_clause_num_ops): New.
        * tree.c (omp_clause_num_ops): New.
        (omp_clause_code_name): New.
        (omp_clause_code_name): New.
        (tree_code_size): Handle OMP_CLAUSE.
        (tree_code_size): Handle OMP_CLAUSE.
        (tree_size): Likewise.
        (tree_size): Likewise.
        (make_node): Document handling of OMP_CLAUSE.
        (make_node): Document handling of OMP_CLAUSE.
        (tree_node_structure): Handle OMP_CLAUSE.
        (tree_node_structure): Handle OMP_CLAUSE.
        (omp_clause_check_failed): New.
        (omp_clause_check_failed): New.
        (omp_clause_range_check_failed): New.
        (omp_clause_range_check_failed): New.
        (omp_clause_operand_check_failed): New.
        (omp_clause_operand_check_failed): New.
        (build_omp_clause): New.
        (build_omp_clause): New.
        (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
        (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
        * tree.h (enum omp_clause_code): Declare.
        * tree.h (enum omp_clause_code): Declare.
        (OMP_CLAUSE_SUBCODE_CHECK): Define.
        (OMP_CLAUSE_SUBCODE_CHECK): Define.
        (OMP_CLAUSE_RANGE_CHECK): Define.
        (OMP_CLAUSE_RANGE_CHECK): Define.
        (OMP_CLAUSE_ELT_CHECK): Define.
        (OMP_CLAUSE_ELT_CHECK): Define.
        (omp_clause_check_failed): Declare.
        (omp_clause_check_failed): Declare.
        (omp_clause_operand_check_failed): Declare.
        (omp_clause_operand_check_failed): Declare.
        (omp_clause_range_check_failed): Declare.
        (omp_clause_range_check_failed): Declare.
        (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
        (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
        (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
        (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
        (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
        (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
        (OMP_CLAUSE_LASTPRIVATE): Likewise.
        (OMP_CLAUSE_LASTPRIVATE): Likewise.
        (OMP_CLAUSE_IF_EXPR): Likewise.
        (OMP_CLAUSE_IF_EXPR): Likewise.
        (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
        (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
        (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
        (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
        (OMP_CLAUSE_REDUCTION_CODE): Likewise.
        (OMP_CLAUSE_REDUCTION_CODE): Likewise.
        (OMP_CLAUSE_REDUCTION_INIT): Likewise.
        (OMP_CLAUSE_REDUCTION_INIT): Likewise.
        (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
        (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
        (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
        (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
        Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
        Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
        (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
        (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
        (OMP_CLAUSE_DEFAULT_KIND): Likewise.
        (OMP_CLAUSE_DEFAULT_KIND): Likewise.
        (OMP_CLAUSE_CODE): Define.
        (OMP_CLAUSE_CODE): Define.
        (OMP_CLAUSE_SET_CODE): Define.
        (OMP_CLAUSE_SET_CODE): Define.
        (OMP_CLAUSE_CODE): Define.
        (OMP_CLAUSE_CODE): Define.
        (OMP_CLAUSE_OPERAND): Define.
        (OMP_CLAUSE_OPERAND): Define.
        (struct tree_omp_clause): Declare.
        (struct tree_omp_clause): Declare.
        (union tree_node): Add field 'omp_clause'.
        (union tree_node): Add field 'omp_clause'.
        * treestruct.def (TS_OMP_CLAUSE): Define.
        * treestruct.def (TS_OMP_CLAUSE): Define.
        * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
        * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
        OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
        OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
        OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
        OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
        OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
        OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
        OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
        OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
        OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
        OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
        (OMP_CLAUSE): Define.
        (OMP_CLAUSE): Define.
        * print-tree.c (print_node): Handle OMP_CLAUSE.
        * print-tree.c (print_node): Handle OMP_CLAUSE.
        * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
        * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
        * c-typeck.c: Likewise.
        * c-typeck.c: Likewise.
        * gimplify.c: Likewise.
        * gimplify.c: Likewise.
        * c-omp.c: Likewise.
        * c-omp.c: Likewise.
        * tree-nested.c: Likewise.
        * tree-nested.c: Likewise.
        * tree-inline.c: Likewise.
        * tree-inline.c: Likewise.
        * c-parser.c: Likewise.
        * c-parser.c: Likewise.
        * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
        * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
        clauses.
        clauses.
2006-01-25  Roger Sayle  
2006-01-25  Roger Sayle  
        PR rtl-optimization/25703
        PR rtl-optimization/25703
        * combine.c (try_combine): Handle zero_extract and strict_low_part
        * combine.c (try_combine): Handle zero_extract and strict_low_part
        of non-lowpart SUBREGs for constant reg_subword_p set optimization.
        of non-lowpart SUBREGs for constant reg_subword_p set optimization.
2006-01-25  Peter Bergner  
2006-01-25  Peter Bergner  
        * global.c: Fix comment typos.
        * global.c: Fix comment typos.
2006-01-25  Andrew Pinski  
2006-01-25  Andrew Pinski  
        PR target/25758
        PR target/25758
        * config/i386/i386.c (output_pic_addr_const) :
        * config/i386/i386.c (output_pic_addr_const) :
        Use output_addr_const instead of assemble_name.
        Use output_addr_const instead of assemble_name.
2006-01-25  Paolo Bonzini  
2006-01-25  Paolo Bonzini  
        * Makefile.in (sched-vis.o): Update dependencies.
        * Makefile.in (sched-vis.o): Update dependencies.
        * haifa-sched.c (sched_finish): Clear current_sched_info.
        * haifa-sched.c (sched_finish): Clear current_sched_info.
        * cfg.c (dump_bb_info): New, split from dump_flow_info.
        * cfg.c (dump_bb_info): New, split from dump_flow_info.
        (dump_flow_info): Call it.
        (dump_flow_info): Call it.
        * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
        * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
        a slim RTL dump.
        a slim RTL dump.
        * basic-block.h (dump_bb_info): Declare.
        * basic-block.h (dump_bb_info): Declare.
        * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
        * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
        option, and apply options only for dump files whose TDF_RTL,
        option, and apply options only for dump files whose TDF_RTL,
        TDF_TREE, or TDF_IPA bits match.
        TDF_TREE, or TDF_IPA bits match.
        * rtl.h: Declare new functions exported from sched-vis.c.
        * rtl.h: Declare new functions exported from sched-vis.c.
        * sched-vis.c: Enable also if scheduling is not used.
        * sched-vis.c: Enable also if scheduling is not used.
        (print_value): Print the mode of registers if not inside scheduling.
        (print_value): Print the mode of registers if not inside scheduling.
        (print_insn): Make it work outside the scheduler.  Beautify the output
        (print_insn): Make it work outside the scheduler.  Beautify the output
        a bit.
        a bit.
        (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
        (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
2006-01-25  Richard Sandiford  
2006-01-25  Richard Sandiford  
        * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
        * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
        * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
        * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
        a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
        a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
        depending on the value of CONSTANT_POOL_ADDRESS_P.
        depending on the value of CONSTANT_POOL_ADDRESS_P.
        * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
        * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
        SYMBOL_REF_DECL.
        SYMBOL_REF_DECL.
        * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
        * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
        rather than SYMBOL_REF_DECL.
        rather than SYMBOL_REF_DECL.
        (rtx_constant_pool): Remove const_rtx_sym_htab.
        (rtx_constant_pool): Remove const_rtx_sym_htab.
        (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
        (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
        (init_varasm_status): Don't initialize const_rtx_sym_htab.
        (init_varasm_status): Don't initialize const_rtx_sym_htab.
        (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
        (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
        Remove handling of const_rtx_sym_htab.
        Remove handling of const_rtx_sym_htab.
        (find_pool_constant): Delete.
        (find_pool_constant): Delete.
        (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
        (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
        rather than find_pool_constant.
        rather than find_pool_constant.
        (get_pool_constant_for_function): Delete.
        (get_pool_constant_for_function): Delete.
        (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
        (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
        find_pool_constant.
        find_pool_constant.
        * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
        * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
        (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
        (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
        (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
        (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
        (SYMBOL_REF_CONSTANT): New macro.
        (SYMBOL_REF_CONSTANT): New macro.
        (get_pool_constant_for_function): Delete.
        (get_pool_constant_for_function): Delete.
        * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
        * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
        rather than SYMBOL_REF_DECL.
        rather than SYMBOL_REF_DECL.
        (i386_pe_mark_dllimport): Likewise.
        (i386_pe_mark_dllimport): Likewise.
        * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
        * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
        rather than SYMBOL_REF_DECL.
        rather than SYMBOL_REF_DECL.
        * config/darwin.c (machopic_indirect_data_reference): Likewise.
        * config/darwin.c (machopic_indirect_data_reference): Likewise.
        (machopic_indirect_call_target): Likewise.
        (machopic_indirect_call_target): Likewise.
2006-01-25  Eric Botcazou  
2006-01-25  Eric Botcazou  
        * flow.c (delete_noop_moves): Add missing EOL to dump message.
        * flow.c (delete_noop_moves): Add missing EOL to dump message.
2006-01-25  Richard Sandiford  
2006-01-25  Richard Sandiford  
        * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
        * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
2006-01-25  Kaz Kojima  
2006-01-25  Kaz Kojima  
        * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
        * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
2006-01-24  David Daney  
2006-01-24  David Daney  
        PR java/25816
        PR java/25816
        * configure.ac (enable_tls): New enable option.
        * configure.ac (enable_tls): New enable option.
        (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
        (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
        * configure: Regenerate.
        * configure: Regenerate.
        * doc/install.texi (--enable-tls): Document new option.
        * doc/install.texi (--enable-tls): Document new option.
        (--disable-tls): Ditto.
        (--disable-tls): Ditto.
2006-01-24  Richard Henderson  
2006-01-24  Richard Henderson  
        * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
        * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
        * alias.c (true_dependence): Respect it.
        * alias.c (true_dependence): Respect it.
        (canon_true_dependence, write_dependence_p): Likewise.
        (canon_true_dependence, write_dependence_p): Likewise.
        * builtins.c (get_builtin_sync_mem): Set it.
        * builtins.c (get_builtin_sync_mem): Set it.
2006-01-25  Zdenek Dvorak 
2006-01-25  Zdenek Dvorak 
        * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
        * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
        efficient way.
        efficient way.
2006-01-24  DJ Delorie  
2006-01-24  DJ Delorie  
        * expmed.c (store_bit_field): Don't arbitrarily deny using insv
        * expmed.c (store_bit_field): Don't arbitrarily deny using insv
        for storing constants in single-bit bitfields.
        for storing constants in single-bit bitfields.
2006-01-25  Ben Elliston  
2006-01-25  Ben Elliston  
        * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
        * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
2006-01-24  Andrew Pinski  
2006-01-24  Andrew Pinski  
        PR tree-opt/25860
        PR tree-opt/25860
        * tree-ssa-pre.c (phi_translate): Return NULL
        * tree-ssa-pre.c (phi_translate): Return NULL
        for AGGREGATE_TYPE's.
        for AGGREGATE_TYPE's.
2006-01-24  Zack Weinberg  
2006-01-24  Zack Weinberg  
        * genautomata.c (process_state_for_insn_equiv_partition):
        * genautomata.c (process_state_for_insn_equiv_partition):
        Use xcalloc for insn_arcs_array.
        Use xcalloc for insn_arcs_array.
        * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
        * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
        (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
        (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
2006-01-24  Richard Henderson  
2006-01-24  Richard Henderson  
        * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
        * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
        update all callers.
        update all callers.
2006-01-23  Paolo Bonzini  
2006-01-23  Paolo Bonzini  
        PR rtl-optimization/25890
        PR rtl-optimization/25890
        PR rtl-optimization/25905
        PR rtl-optimization/25905
        * combine.c (expand_compound_operation, expand_field_assignment):
        * combine.c (expand_compound_operation, expand_field_assignment):
        Fail if the bitfield's final position is out of bounds.
        Fail if the bitfield's final position is out of bounds.
2006-01-24  Ian Lance Taylor  
2006-01-24  Ian Lance Taylor  
        PR middle-end/25930
        PR middle-end/25930
        * cgraphunit.c (cgraph_output_in_order): Don't clear
        * cgraphunit.c (cgraph_output_in_order): Don't clear
        cgraph_asm_nodes until after asm strings have been output.
        cgraph_asm_nodes until after asm strings have been output.
2006-01-23  Adam Nemet  
2006-01-23  Adam Nemet  
        * fix-header.c (read_scan_file): Add new parameter imultilib when
        * fix-header.c (read_scan_file): Add new parameter imultilib when
        calling register_include_chains.
        calling register_include_chains.
2006-01-23  Diego Novillo  
2006-01-23  Diego Novillo  
        * omp-low.c: Update documentation.
        * omp-low.c: Update documentation.
2006-01-23  Andrew Pinski  
2006-01-23  Andrew Pinski  
            Daniel Berlin  
            Daniel Berlin  
        PR tree-opt/25315
        PR tree-opt/25315
        PR tree-opt/25857
        PR tree-opt/25857
        * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
        * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
        return from the function.
        return from the function.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * rtl.def (match_code): Add second argument.
        * rtl.def (match_code): Add second argument.
        * genpreds.c (write_extract_subexp): New function.
        * genpreds.c (write_extract_subexp): New function.
        (write_match_code): Add path argument.  Use write_extract_subexp.
        (write_match_code): Add path argument.  Use write_extract_subexp.
        (write_predicate_expr): Pass path to write_match_code.
        (write_predicate_expr): Pass path to write_match_code.
        (mark_mode_tests): MATCH_CODE applied to a subexpression does
        (mark_mode_tests): MATCH_CODE applied to a subexpression does
        not perform a mode test.
        not perform a mode test.
        * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
        * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
        a subexpression does not constrain the top-level code set.
        a subexpression does not constrain the top-level code set.
        * read-rtl.c (read_rtx_variadic): New function.
        * read-rtl.c (read_rtx_variadic): New function.
        (read_rtx_1): Use it; allow AND and IOR to be variadic.
        (read_rtx_1): Use it; allow AND and IOR to be variadic.
        * doc/md.texi: Document new notation.
        * doc/md.texi: Document new notation.
        * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
        * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
        (cmpsi_operand): ... here, using new notation.
        (cmpsi_operand): ... here, using new notation.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * varray.c: Remove GENERATOR_FILE #ifdefs.
        * varray.c: Remove GENERATOR_FILE #ifdefs.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genautomata.c (output_reserved_units_table): Emit nothing if
        * genautomata.c (output_reserved_units_table): Emit nothing if
        description->query_units_num is zero.  Remove extra blank line.
        description->query_units_num is zero.  Remove extra blank line.
        (output_cpu_unit_reservation_p): Short circuit
        (output_cpu_unit_reservation_p): Short circuit
        if description->query_units_num is zero.
        if description->query_units_num is zero.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
        * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
        and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
        and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
        nor any of the random handful of variables that used to be necessary
        nor any of the random handful of variables that used to be necessary
        when this program was linked with rtlanal.o.  Prune set of forward
        when this program was linked with rtlanal.o.  Prune set of forward
        function declarations.
        function declarations.
        (struct attr_desc): Remove static_p field.
        (struct attr_desc): Remove static_p field.
        (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
        (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
        (check_attr_test, make_internal_attr, make_numeric_value): Make static.
        (check_attr_test, make_internal_attr, make_numeric_value): Make static.
        (attr_string): Do not read the character one past the length of
        (attr_string): Do not read the character one past the length of
        the string.
        the string.
        (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
        (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
        (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
        (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
        (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
        (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
        (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
        (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
        (make_automaton_attrs): New.
        (make_automaton_attrs): New.
        (main): Do not call into genautomata.  Call local gen_bypass
        (main): Do not call into genautomata.  Call local gen_bypass
        and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
        and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
        Remove special case for insn_alts.
        Remove special case for insn_alts.
        * genautomata.c: Include gensupport.h; not genattrtab.h nor
        * genautomata.c: Include gensupport.h; not genattrtab.h nor
        varray.h (leftover from previous change).  Prune set of forward
        varray.h (leftover from previous change).  Prune set of forward
        function declarations.  Remove state_alts fields from all
        function declarations.  Remove state_alts fields from all
        structures.  Remove state_alts_table from struct automaton.
        structures.  Remove state_alts_table from struct automaton.
        Make everything except main static.  Do not maintain num_dfa_decls.
        Make everything except main static.  Do not maintain num_dfa_decls.
        Do not maintain state_alts fields of various structures.
        Do not maintain state_alts fields of various structures.
        (process_decls): Don't validate condexp for dm_insn_reserv decls.
        (process_decls): Don't validate condexp for dm_insn_reserv decls.
        (add_arc): Remove state_alts argument.  All callers updated.
        (add_arc): Remove state_alts argument.  All callers updated.
        (output_reserved_units_table): Emit #ifdef here...
        (output_reserved_units_table): Emit #ifdef here...
        (output_tables): ...not here.  Don't generate state_alts tables.
        (output_tables): ...not here.  Don't generate state_alts tables.
        (expand_automata): Don't generate attributes.
        (expand_automata): Don't generate attributes.
        (write_automata): Don't generate state_alts functions.
        (write_automata): Don't generate state_alts functions.
        (main): New function.
        (main): New function.
        (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
        (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
        (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
        (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
        (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
        (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
        (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
        (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
        (BYPASS_P_FUNC_NAME, output_state_alts_table)
        (BYPASS_P_FUNC_NAME, output_state_alts_table)
        (output_automata_list_state_alts_code, output_internal_state_alts_func)
        (output_automata_list_state_alts_code, output_internal_state_alts_func)
        (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
        (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
        (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
        (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
        Delete.
        Delete.
        * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
        * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
        * genattrtab.h: Delete file.
        * genattrtab.h: Delete file.
        * Makefile.in (OBJS-common): Add insn-automata.o.
        * Makefile.in (OBJS-common): Add insn-automata.o.
        (insn-automata.o): New rule.
        (insn-automata.o): New rule.
        (simple_generated_c): Add insn-automata.c.
        (simple_generated_c): Add insn-automata.c.
        (build/genattrtab.o, build/genautomata.o): Update dependencies.
        (build/genattrtab.o, build/genautomata.o): Update dependencies.
        (genprogmd): Add automata.
        (genprogmd): Add automata.
        (build/genattrtab): Needs no extra objects nor libraries.
        (build/genattrtab): Needs no extra objects nor libraries.
        (build/genautomata): Needs build/vec.o and -lm.
        (build/genautomata): Needs build/vec.o and -lm.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
        * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
        (output_dfa_max_issue_rate, locked_states_num): Delete.
        (output_dfa_max_issue_rate, locked_states_num): Delete.
        (struct automaton): Add locked_states field.
        (struct automaton): Add locked_states field.
        (output_dead_lock_vect): Save number of locked states in
        (output_dead_lock_vect): Save number of locked states in
        automaton->locked_states.  If it is zero, don't print anything.
        automaton->locked_states.  If it is zero, don't print anything.
        (output_max_insn_queue_index_def): Define max_insn_queue_index const.
        (output_max_insn_queue_index_def): Define max_insn_queue_index const.
        (output_internal_dead_lock_func): Only test the dead_lock_vect
        (output_internal_dead_lock_func): Only test the dead_lock_vect
        for automata that have locked states.
        for automata that have locked states.
        (output_statistics): Always print the number of locked states for
        (output_statistics): Always print the number of locked states for
        each automaton.  Calculate total number of locked states here.
        each automaton.  Calculate total number of locked states here.
        (write_automata): Don't call output_dfa_max_issue_rate.
        (write_automata): Don't call output_dfa_max_issue_rate.
        * genattrtab.c: Define length_unit_log as a const variable.
        * genattrtab.c: Define length_unit_log as a const variable.
        * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
        * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
        max_insn_queue_index const.
        max_insn_queue_index const.
        * final.c (length_unit_log): Declare const.
        * final.c (length_unit_log): Declare const.
        * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
        * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genautomata.c: Include vec.h, not varray.h.
        * genautomata.c: Include vec.h, not varray.h.
        Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
        Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
        VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
        VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
        VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
        VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
        VEC_* macros operating on appropriately typed vectors, or to
        VEC_* macros operating on appropriately typed vectors, or to
        malloced arrays when the size is known in advance.  Const-ify
        malloced arrays when the size is known in advance.  Const-ify
        many char* variables and function arguments.  No functional changes.
        many char* variables and function arguments.  No functional changes.
        * Makefile.in (build/varray.o): Delete rule.
        * Makefile.in (build/varray.o): Delete rule.
        (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
        (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
        (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
        (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * gensupport.c: Define get_insn_name and record_insn_name here.
        * gensupport.c: Define get_insn_name and record_insn_name here.
        (read_md_rtx): Call record_insn_name as appropriate.
        (read_md_rtx): Call record_insn_name as appropriate.
        * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
        * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
        * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
        * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
        * genpreds.c, genrecog.c: Don't define get_insn_name nor
        * genpreds.c, genrecog.c: Don't define get_insn_name nor
        record_insn_name.
        record_insn_name.
        * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
        * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
        (BUILD_VARRAY): Delete.
        (BUILD_VARRAY): Delete.
        (genprognormal): Rename genprogmd.  Fold in all programs from
        (genprognormal): Rename genprogmd.  Fold in all programs from
        genprognoprint; also attrtab.
        genprognoprint; also attrtab.
        (build/genattrtab): Just mention genautomata.o and varray.o.
        (build/genattrtab): Just mention genautomata.o and varray.o.
        Reorganize a bit, add comments to make the categories clearer.
        Reorganize a bit, add comments to make the categories clearer.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genconditions.c (condition_table, add_condition): Delete.
        * genconditions.c (condition_table, add_condition): Delete.
        (write_conditions): Don't emit n_insn_conditions nor
        (write_conditions): Don't emit n_insn_conditions nor
        insn_elision_unavailable.  Issue the gcc version #ifdef here,
        insn_elision_unavailable.  Issue the gcc version #ifdef here,
        inside the table, with no #else clause ...
        inside the table, with no #else clause ...
        (write_header): ...not here.
        (write_header): ...not here.
        (write_writer): New function.
        (write_writer): New function.
        (main): Don't initialize condition_table.  Use add_c_test.
        (main): Don't initialize condition_table.  Use add_c_test.
        Call write_writer.
        Call write_writer.
        * gensupport.c (init_md_reader_args_cb): Handle multiple input
        * gensupport.c (init_md_reader_args_cb): Handle multiple input
        files on the command line.
        files on the command line.
        (maybe_eval_c_test): Don't check insn_elision_unavailable.
        (maybe_eval_c_test): Don't check insn_elision_unavailable.
        Return -1 if there is no entry in the table, don't abort.
        Return -1 if there is no entry in the table, don't abort.
        (add_c_test, traverse_c_tests): New functions.
        (add_c_test, traverse_c_tests): New functions.
        * gensupport.h (insn_elision_unavailable, insn_conditions)
        * gensupport.h (insn_elision_unavailable, insn_conditions)
        (n_insn_conditions): Delete declarations.
        (n_insn_conditions): Delete declarations.
        (add_c_test, traverse_c_tests): Declare.
        (add_c_test, traverse_c_tests): Declare.
        * read-rtl.c: Include gensupport.h.
        * read-rtl.c: Include gensupport.h.
        (read_conditions): New function.
        (read_conditions): New function.
        (read_rtx): If read_rtx_1 returns 0, treat as EOF.
        (read_rtx): If read_rtx_1 returns 0, treat as EOF.
        (read_rtx_1): If we get EOF when we were looking for an initial
        (read_rtx_1): If we get EOF when we were looking for an initial
        open paren, return 0.  Call read_conditions when appropriate.
        open paren, return 0.  Call read_conditions when appropriate.
        * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
        * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
        dummy-conditions.o.  Eliminate references to insn-conditions.o,
        dummy-conditions.o.  Eliminate references to insn-conditions.o,
        or change them to build/gencondmd.o, as appropriate.  Remove
        or change them to build/gencondmd.o, as appropriate.  Remove
        insn-constants.h from $(simple_generated_h) and insn-conditions.c
        insn-constants.h from $(simple_generated_h) and insn-conditions.c
        from $(simple_generated_c).  For all files remaining in those
        from $(simple_generated_c).  For all files remaining in those
        two lists, add insn-conditions.md to the generator command line.
        two lists, add insn-conditions.md to the generator command line.
        Give insn-constants.h/s-constants their own rules.  Add rules
        Give insn-constants.h/s-constants their own rules.  Add rules
        for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
        for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
        (build/read-rtl.o): Depend on gensupport.h.
        (build/read-rtl.o): Depend on gensupport.h.
        (genprognormal): Include preds.
        (genprognormal): Include preds.
        (genprogearly): Rename genprognoprint; only difference is now that
        (genprogearly): Rename genprognoprint; only difference is now that
        they don't link with $(BUILD_PRINT).
        they don't link with $(BUILD_PRINT).
        * dummy-conditions.c: Delete.
        * dummy-conditions.c: Delete.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * genextract.c: Don't include insn-config.h.  Do include vec.h.
        * genextract.c: Don't include insn-config.h.  Do include vec.h.
        Declare vectors of int, char, and locstr.
        Declare vectors of int, char, and locstr.
        (locstr): New typedef.
        (locstr): New typedef.
        (struct extraction): Make all array fields into bare pointers.
        (struct extraction): Make all array fields into bare pointers.
        (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
        (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
        (insn_code_number): Delete.
        (insn_code_number): Delete.
        (accum_extract): New struct.
        (accum_extract): New struct.
        (VEC_safe_set_locstr, VEC_char_to_string): New functions.
        (VEC_safe_set_locstr, VEC_char_to_string): New functions.
        (gen_insn): Take insn_code_number as an argument.  Use an
        (gen_insn): Take insn_code_number as an argument.  Use an
        accum_extract structure instead of loading data directly into
        accum_extract structure instead of loading data directly into
        a struct extraction, and having to know how big it might get.
        a struct extraction, and having to know how big it might get.
        (walk_rtx): Operate entirely on an accum_extract structure.
        (walk_rtx): Operate entirely on an accum_extract structure.
        (print_path): Avoid unnecessary use of printf.
        (print_path): Avoid unnecessary use of printf.
        (print_header): New function, split out of main.  Distinguish
        (print_header): New function, split out of main.  Distinguish
        more carefully between an unrecognizable insn and an insn that
        more carefully between an unrecognizable insn and an insn that
        has the code number of a define_expand.
        has the code number of a define_expand.
        (main): Pass insn_code_number to gen_insn.  Call print_header
        (main): Pass insn_code_number to gen_insn.  Call print_header
        only after parsing.  Avoid unnecessary use of printf.
        only after parsing.  Avoid unnecessary use of printf.
        * Makefile.in (build/vec.o): New rule.
        * Makefile.in (build/vec.o): New rule.
        (build/genextract): Depend on build/vec.o.
        (build/genextract): Depend on build/vec.o.
        (build/genextract.o): Don't depend on insn-config.h.
        (build/genextract.o): Don't depend on insn-config.h.
2006-01-22  Zack Weinberg  
2006-01-22  Zack Weinberg  
        * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
        * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
        $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
        $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
        practical.  Eliminate per-generator-program link rules.
        practical.  Eliminate per-generator-program link rules.
2006-01-23  Andrew Pinski  
2006-01-23  Andrew Pinski  
        PR middle-end/24437
        PR middle-end/24437
        * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
        * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
        with a call expr to ...
        with a call expr to ...
        * fold-const.c (fold_ternary) : Here.
        * fold-const.c (fold_ternary) : Here.
2006-01-23  Richard Guenther  
2006-01-23  Richard Guenther  
        * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
        * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
        before make_edge with conditional EDGE_TRUE_VALUE.
        before make_edge with conditional EDGE_TRUE_VALUE.
2006-01-23  Steven Bosscher  
2006-01-23  Steven Bosscher  
        Jan Hubicka  
        Jan Hubicka  
        Richard Guenther  
        Richard Guenther  
        PR rtl-optimization/25654
        PR rtl-optimization/25654
        * cfgexpand.c (aggregate_contains_union_type): New function.
        * cfgexpand.c (aggregate_contains_union_type): New function.
        (add_alias_set_conflicts): Call it.  Make sure to add conflicts
        (add_alias_set_conflicts): Call it.  Make sure to add conflicts
        for structure variables that contain a union type.
        for structure variables that contain a union type.
2006-01-23  Richard Sandiford  
2006-01-23  Richard Sandiford  
        * gengtype.c (new_structure): Return the structure.
        * gengtype.c (new_structure): Return the structure.
        (create_option): Add an extra "next" argument.
        (create_option): Add an extra "next" argument.
        (create_field): New function.
        (create_field): New function.
        (adjust_field_rtx_def): Use create_option and create_field.
        (adjust_field_rtx_def): Use create_option and create_field.
        Remove a now-unnecessary call to find_structure.
        Remove a now-unnecessary call to find_structure.
        (adjust_field_tree_def): Likewise.
        (adjust_field_tree_def): Likewise.
        (note_yacc_type): Remove an unnecessary call to find_structure.
        (note_yacc_type): Remove an unnecessary call to find_structure.
        * gengtype.h (new_structure): Return the structure.
        * gengtype.h (new_structure): Return the structure.
        (create_option): Add an extra argument.
        (create_option): Add an extra argument.
        * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
        * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
        (option): Adjust calls to create_option.
        (option): Adjust calls to create_option.
2006-01-22  David Edelsohn  
2006-01-22  David Edelsohn  
        * config/rs6000/aix.h (STACK_BOUNDARY): Define.
        * config/rs6000/aix.h (STACK_BOUNDARY): Define.
2006-01-22  Paul Brook  
2006-01-22  Paul Brook  
        Peter Barada  
        Peter Barada  
        * config/m68k/m68k.md: Add Coldfire FPU support.
        * config/m68k/m68k.md: Add Coldfire FPU support.
        Define FP mode macro and associated attributes.
        Define FP mode macro and associated attributes.
        Use it for float mode patterns.
        Use it for float mode patterns.
        * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
        * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
        (LIBCALL_VALUE): Use m68k_libcall_value.
        (LIBCALL_VALUE): Use m68k_libcall_value.
        * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
        * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
        (m68k_function_value): Ditto.
        (m68k_function_value): Ditto.
        (emit_move_sequence): Ditto.
        (emit_move_sequence): Ditto.
        * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
        * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
        * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
        * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
        * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
        * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
        (MULTILIB_EXCEPTIONS): Ditto.
        (MULTILIB_EXCEPTIONS): Ditto.
        * config/m68k/m68k.opt: Add mcfv4e.
        * config/m68k/m68k.opt: Add mcfv4e.
        * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
        * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
        (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
        (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
        (m68k_output_function_prologue): Save ColdFire FPU registers.
        (m68k_output_function_prologue): Save ColdFire FPU registers.
        (m68k_output_function_epilogue): Restore ColdFire FPU registers.
        (m68k_output_function_epilogue): Restore ColdFire FPU registers.
        (force_mode, fp_reg_operand, emit_move_sequence): New functions.
        (force_mode, fp_reg_operand, emit_move_sequence): New functions.
        (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
        (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
        ColdFire FPU registers.
        ColdFire FPU registers.
        (m68k_libcall_value, m68k_function_value): New functions.
        (m68k_libcall_value, m68k_function_value): New functions.
        * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
        * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
        (LIBCALL_VALUE): Use m68k_libcall_value.
        (LIBCALL_VALUE): Use m68k_libcall_value.
        * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
        * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
        (MASK_COLDFIRE): Add MASK_CFV4E.
        (MASK_COLDFIRE): Add MASK_CFV4E.
        (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
        (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
        (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
        (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
        (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
        (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
        (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
        (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
        (GO_IF_LEGITIMATE_ADDRESS): Use it.
        (GO_IF_LEGITIMATE_ADDRESS): Use it.
        (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
        (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
        * doc/invoke.tex: Document -mcfv4e on m68k.
        * doc/invoke.tex: Document -mcfv4e on m68k.
2006-01-22  Ranjit Mathew  
2006-01-22  Ranjit Mathew  
        * doc/contribute.texi: Change CVS to SVN and update the corresponding
        * doc/contribute.texi: Change CVS to SVN and update the corresponding
        URL.
        URL.
2006-01-21  Gabriel Dos Reis  
2006-01-21  Gabriel Dos Reis  
        PR c++/16190
        PR c++/16190
        * c-opts.c (c_common_handle_option): Don't include
        * c-opts.c (c_common_handle_option): Don't include
        -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
        -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
        * doc/invoke.texi (C++ Dialect Options): Document that
        * doc/invoke.texi (C++ Dialect Options): Document that
        -Wnon-virtual-dtor is no longer included in -Wall.
        -Wnon-virtual-dtor is no longer included in -Wall.
2006-01-21  Joseph S. Myers  
2006-01-21  Joseph S. Myers  
        * gcov.c (print_version), gcov-dump.c (print_version),
        * gcov.c (print_version), gcov-dump.c (print_version),
        mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
        mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
        dates.
        dates.
2006-01-21  Kenneth Zadeck 
2006-01-21  Kenneth Zadeck 
        * df-scan.c (problem_SCAN): Added NULL reset function.
        * df-scan.c (problem_SCAN): Added NULL reset function.
        (df_scan_reset_blocks): Added code to call reset block function
        (df_scan_reset_blocks): Added code to call reset block function
        (df_bb_refs_delete) Fixed comment.
        (df_bb_refs_delete) Fixed comment.
        (df_insn_refs_delete): Made tolerant of deleting non existent info
        (df_insn_refs_delete): Made tolerant of deleting non existent info
        for dataflow problems that need to be reset.
        for dataflow problems that need to be reset.
        * df-core.c (df_set_blocks): Ditto.
        * df-core.c (df_set_blocks): Ditto.
        * df.h (struct df_problem): Added reset_fun.
        * df.h (struct df_problem): Added reset_fun.
        * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
        * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
        problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
        problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
        (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
        (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
        functions to clear out all references to def-use or use-def chains.
        functions to clear out all references to def-use or use-def chains.
2006-01-21  Ben Elliston  
2006-01-21  Ben Elliston  
        * varasm.c (assemble_real): Initialise data array.
        * varasm.c (assemble_real): Initialise data array.
2006-01-20  Paul Brook  
2006-01-20  Paul Brook  
        Merge from csl-arm-branch.
        Merge from csl-arm-branch.
        2005-09-21  Kazu Hirata  
        2005-09-21  Kazu Hirata  
        * config/arm/arm.md (movdi): Force operands[1] to a register
        * config/arm/arm.md (movdi): Force operands[1] to a register
        if we have a non-register source.
        if we have a non-register source.
        (*arm_movdi, *movdf_soft_insn): Require that one of the
        (*arm_movdi, *movdf_soft_insn): Require that one of the
        operands be a register.
        operands be a register.
        * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
        * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
        * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
        * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2006-01-20  DJ Delorie  
2006-01-20  DJ Delorie  
        * varasm.c (initializer_constant_valid_p): Allow pointers
        * varasm.c (initializer_constant_valid_p): Allow pointers
        initialized from integer constants of lesser precision.
        initialized from integer constants of lesser precision.
        (output_constant): Allow non-int-sized pointer modes to be
        (output_constant): Allow non-int-sized pointer modes to be
        initialized from integer constants.
        initialized from integer constants.
2006-01-20  Joseph S. Myers  
2006-01-20  Joseph S. Myers  
        PR libstdc++/25524
        PR libstdc++/25524
        * cppdefault.h (struct default_include): Add multilib flag.
        * cppdefault.h (struct default_include): Add multilib flag.
        * cppdefault.c (cpp_include_defaults): Set it.
        * cppdefault.c (cpp_include_defaults): Set it.
        * c.opt (-imultilib): New option.
        * c.opt (-imultilib): New option.
        * c-opts.c (imultilib): New.
        * c-opts.c (imultilib): New.
        (c_common_handle_option): Handle -imultilib.
        (c_common_handle_option): Handle -imultilib.
        (c_common_post_options): Likewise.
        (c_common_post_options): Likewise.
        * c-incpath.c (add_standard_paths, register_include_chains):
        * c-incpath.c (add_standard_paths, register_include_chains):
        Likewise.
        Likewise.
        * c-incpath.h (register_include_chains): Add extra parameter.
        * c-incpath.h (register_include_chains): Add extra parameter.
        * gcc.c (do_spec_1): Generate -imultilib option.
        * gcc.c (do_spec_1): Generate -imultilib option.
        (The Specs Language): Update %I description.
        (The Specs Language): Update %I description.
        (process_command): Update copyright notice.
        (process_command): Update copyright notice.
        * doc/cppopts.texi (-imultilib): Document.
        * doc/cppopts.texi (-imultilib): Document.
        * doc/invoke.texi (-imultilib): Include in option summary.
        * doc/invoke.texi (-imultilib): Include in option summary.
        (%I): Update specs documentation.
        (%I): Update specs documentation.
2006-01-20  Zdenek Dvorak 
2006-01-20  Zdenek Dvorak 
        * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
        * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
2006-01-20  Richard Sandiford  
2006-01-20  Richard Sandiford  
        * stmt.c (case_bit_test_cmp): Stabilize the sort using code
        * stmt.c (case_bit_test_cmp): Stabilize the sort using code
        label numbers.
        label numbers.
2006-01-20  Richard Guenther  
2006-01-20  Richard Guenther  
        Steven Bosscher 
        Steven Bosscher 
        PR rtl-optimization/24626
        PR rtl-optimization/24626
        * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
        * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
        EDGE_TRUE_VALUE if in RTL mode.
        EDGE_TRUE_VALUE if in RTL mode.
        Revert
        Revert
        2005-03-30 Mostafa Hagog 
        2005-03-30 Mostafa Hagog 
        * cfgrtl.c (rtl_verify_flow_info_1): Fix.
        * cfgrtl.c (rtl_verify_flow_info_1): Fix.
2006-01-20  Dirk Mueller  
2006-01-20  Dirk Mueller  
        PR c++/5520
        PR c++/5520
        * c-parser.c (c_parser_if_body): Use build_empty_stmt()
        * c-parser.c (c_parser_if_body): Use build_empty_stmt()
        instead of a special NOP marker.
        instead of a special NOP marker.
        * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
        * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
        NOP marker handling.
        NOP marker handling.
        * c-common.h (empty_body_warning): Add forward declaration.
        * c-common.h (empty_body_warning): Add forward declaration.
        * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
        * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
        Now uses IS_EMPTY_STMT() instead of special NOP markers.
        Now uses IS_EMPTY_STMT() instead of special NOP markers.
2006-01-20  Paul Brook  
2006-01-20  Paul Brook  
        * Makefile.in (lang_checks): Keep going if mkdir fails.
        * Makefile.in (lang_checks): Keep going if mkdir fails.
2006-01-19  Kenneth Zadeck 
2006-01-19  Kenneth Zadeck 
        * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
        * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
        be able to clean out basic block when not necessary.
        be able to clean out basic block when not necessary.
        (df_scan_free): Fixed to properly delete information if df is
        (df_scan_free): Fixed to properly delete information if df is
        unused before calling df_finish.
        unused before calling df_finish.
        (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
        (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
        df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
        df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
        or comment typos.
        or comment typos.
        (df_bb_refs_delete): New function.
        (df_bb_refs_delete): New function.
        (df_refs_delete): Moved per block code to df_bb_refs_delete.
        (df_refs_delete): Moved per block code to df_bb_refs_delete.
        * df-core.c (df_set_blocks): Added code to properly clean out
        * df-core.c (df_set_blocks): Added code to properly clean out
        unused blocks if they are not part of the blocks to consider.
        unused blocks if they are not part of the blocks to consider.
        Added additional null check.
        Added additional null check.
        (df_compact_blocks): Added basic block parameter to free_bb_fun to
        (df_compact_blocks): Added basic block parameter to free_bb_fun to
        be able to clean out basic block when not necessary
        be able to clean out basic block when not necessary
        * df.h (df_free_bb_function): Ditto.
        * df.h (df_free_bb_function): Ditto.
        (df_bb_refs_delete): New function.
        (df_bb_refs_delete): New function.
        * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
        * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
        df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
        df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
        basic block parameter to be able to clean out basic block when not
        basic block parameter to be able to clean out basic block when not
        necessary.
        necessary.
        (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
        (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
        (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
        (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
        Fixed to properly delete information if df is unused before
        Fixed to properly delete information if df is unused before
        calling df_finish.
        calling df_finish.
2006-01-19  Kenneth Zadeck 
2006-01-19  Kenneth Zadeck 
        PR rtl-optimization/25799
        PR rtl-optimization/25799
        * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
        * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
        Corrected confluence operator to remove bits from op2 before oring
        Corrected confluence operator to remove bits from op2 before oring
        with op1 rather than removing bits from op1.
        with op1 rather than removing bits from op1.
        (df_ru_transfer_function): Corrected test on wrong bitmap which
        (df_ru_transfer_function): Corrected test on wrong bitmap which
        caused infinite loop.  Both of these problems were introduced in
        caused infinite loop.  Both of these problems were introduced in
        the dataflow rewrite.
        the dataflow rewrite.
2006-01-19  DJ Delorie  
2006-01-19  DJ Delorie  
        * reload1.c (find_reload_regs): Note the details of reload
        * reload1.c (find_reload_regs): Note the details of reload
        failures in the dump file.
        failures in the dump file.
        (spill_failure): Likewise.
        (spill_failure): Likewise.
2006-01-20  Zdenek Dvorak 
2006-01-20  Zdenek Dvorak 
        * loop-iv.c: Include df.h and hashtab.h.
        * loop-iv.c: Include df.h and hashtab.h.
        (enum iv_grd_result): New enum.
        (enum iv_grd_result): New enum.
        (DF_REF_IV, DF_REF_IV_SET): New macros.
        (DF_REF_IV, DF_REF_IV_SET): New macros.
        (struct biv_entry): New.
        (struct biv_entry): New.
        (df, bivs): New global variables.
        (df, bivs): New global variables.
        (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
        (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
        assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
        assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
        Removed.
        Removed.
        (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
        (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
        iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
        iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
        analyzed_for_bivness_p, record_biv): New functions.
        analyzed_for_bivness_p, record_biv): New functions.
        (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
        (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
        get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
        get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
        iv_analyze, biv_p, iv_analysis_done): Work with df representation of
        iv_analyze, biv_p, iv_analysis_done): Work with df representation of
        UD chains.
        UD chains.
        (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
        (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
        analysed.
        analysed.
        (iv_number_of_iterations): Use new interface to iv analysis.
        (iv_number_of_iterations): Use new interface to iv analysis.
        * loop-unroll.c: Do not include varray.h.
        * loop-unroll.c: Do not include varray.h.
        (analyze_iv_to_split_insn): Use new interface to iv
        (analyze_iv_to_split_insn): Use new interface to iv
        analysis.
        analysis.
        * loop-unswitch.c (may_unswitch_on): Ditto.
        * loop-unswitch.c (may_unswitch_on): Ditto.
        * df.c (df_bitmaps_free): Only work for bbs for that structures are
        * df.c (df_bitmaps_free): Only work for bbs for that structures are
        allocated.
        allocated.
        (df_bb_modify): Realloc tables to the new index.
        (df_bb_modify): Realloc tables to the new index.
        (df_find_use): New function.
        (df_find_use): New function.
        * df.h (df_find_use): Declare.
        * df.h (df_find_use): Declare.
        * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
        * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
        outmode.
        outmode.
        * cfgloop.h (struct rtx_iv): Remove analysed field.
        * cfgloop.h (struct rtx_iv): Remove analysed field.
        (iv_get_reaching_def): Removed.
        (iv_get_reaching_def): Removed.
        (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
        (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
        * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
        * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
        (loop-iv.o): Add df.h and hashtab.h dependency.
        (loop-iv.o): Add df.h and hashtab.h dependency.
        * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
        * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
2006-01-20  Alan Modra  
2006-01-20  Alan Modra  
        PR target/25668
        PR target/25668
        * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
        * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
        Double TFmode.
        Double TFmode.
        (__floatundisf, __floatundidf): Likewise.
        (__floatundisf, __floatundidf): Likewise.
        * libgcc2.h (IS_IBM_EXTENDED): Define.
        * libgcc2.h (IS_IBM_EXTENDED): Define.
2006-01-19  DJ Delorie  
2006-01-19  DJ Delorie  
        * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
        * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
2006-01-19  Paul Brook  
2006-01-19  Paul Brook  
        * config/arm/arm.c (arm_compute_func_type): Treat all functions
        * config/arm/arm.c (arm_compute_func_type): Treat all functions
        as nothrow when unwinding tables are disabled.
        as nothrow when unwinding tables are disabled.
2006-01-19  John David Anglin  
2006-01-19  John David Anglin  
        PR testsuite/25171
        PR testsuite/25171
        * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
        * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
        of bit-field" when in system header.
        of bit-field" when in system header.
2006-01-19  DJ Delorie  
2006-01-19  DJ Delorie  
        * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
        * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
        the 16 bit shift limit of the m16c.
        the 16 bit shift limit of the m16c.
2006-01-19  Andrew Pinski  
2006-01-19  Andrew Pinski  
        PR target/22099
        PR target/22099
        * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
        * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
        * config/i386/i386.c (output_set_got): Output the label if we have one
        * config/i386/i386.c (output_set_got): Output the label if we have one
        for the TARGET_DEEP_BRANCH_PREDICTION case.
        for the TARGET_DEEP_BRANCH_PREDICTION case.
2006-01-19  Jan Hubicka  
2006-01-19  Jan Hubicka  
            H.J. Lu  
            H.J. Lu  
            Evandro Menezes 
            Evandro Menezes 
        * invoke.texi (generic): Document
        * invoke.texi (generic): Document
        (i686) Update.
        (i686) Update.
        * config.gcc: Make x86_64-* and i686-* default to generic tunning.
        * config.gcc: Make x86_64-* and i686-* default to generic tunning.
        * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
        * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
        TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
        TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
        (x86_use_incdec, x86_pad_returns): New variables
        (x86_use_incdec, x86_pad_returns): New variables
        (TARGET_CPU_DEFAULT_generic): New constant
        (TARGET_CPU_DEFAULT_generic): New constant
        (TARGET_CPU_DEFAULT_NAMES): Add generic.
        (TARGET_CPU_DEFAULT_NAMES): Add generic.
        (enum processor_type): Add generic32 and generic64.
        (enum processor_type): Add generic32 and generic64.
        * i386.md (cpu attribute): Add generic32/generic64
        * i386.md (cpu attribute): Add generic32/generic64
        (movhi splitter): Behave sanely when both partial_reg_dependency and
        (movhi splitter): Behave sanely when both partial_reg_dependency and
        partial_reg_stall are set.
        partial_reg_stall are set.
        (K8 splitters): Enable for generic as well.
        (K8 splitters): Enable for generic as well.
        * predicates.md (incdec_operand): Use TARGET_INCDEC
        * predicates.md (incdec_operand): Use TARGET_INCDEC
        (aligned_operand): Avoid memory mismatch stalls.
        (aligned_operand): Avoid memory mismatch stalls.
        * athlon.md: Enable for generic64, new patterns for 128bit moves.
        * athlon.md: Enable for generic64, new patterns for 128bit moves.
        * ppro.md: Enable for generic32
        * ppro.md: Enable for generic32
        * i386.c (generic64_cost, generic32_cost): New.
        * i386.c (generic64_cost, generic32_cost): New.
        (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
        (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
        (x86_use_leave): Enable for generic64.  (x86_use_sahf,
        (x86_use_leave): Enable for generic64.  (x86_use_sahf,
        x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
        x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
        x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
        x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
        x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
        x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
        x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
        x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
        x86_partial_reg_dependency, x86_memory_mismatch_stall,
        x86_partial_reg_dependency, x86_memory_mismatch_stall,
        x86_accumulate_outgoing_args, x86_prologue_using_move,
        x86_accumulate_outgoing_args, x86_prologue_using_move,
        x86_epilogue_using_move, x86_arch_always_fancy_math_387,
        x86_epilogue_using_move, x86_arch_always_fancy_math_387,
        x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
        x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
        Enable for generic.
        Enable for generic.
        (x86_use_incdec, x86_pad_returns): New.
        (x86_use_incdec, x86_pad_returns): New.
        (override_options): Add generic32 and generic64, translate "generic"
        (override_options): Add generic32 and generic64, translate "generic"
        to generic32/generic64 and "i686" to "generic32", refuse
        to generic32/generic64 and "i686" to "generic32", refuse
        "generic32"/"generic64" as arch target.
        "generic32"/"generic64" as arch target.
        (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
        (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
        (ix86_reorg): Honor PAD_RETURNS.
        (ix86_reorg): Honor PAD_RETURNS.
2006-01-19  Diego Novillo  
2006-01-19  Diego Novillo  
        * tree-pretty-print.c (dump_generic_node): Handle
        * tree-pretty-print.c (dump_generic_node): Handle
        OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
        OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
        * cgraph.c (cgraph_expand_queue): Rename from
        * cgraph.c (cgraph_expand_queue): Rename from
        cgraph_analyze_queue.  Update all users.
        cgraph_analyze_queue.  Update all users.
        * cgraphunit.c (cgraph_assemble_pending_functions): Process
        * cgraphunit.c (cgraph_assemble_pending_functions): Process
        cgraph_expand_queue.
        cgraph_expand_queue.
        (cgraph_expand_all_functions): Likewise.
        (cgraph_expand_all_functions): Likewise.
        (cgraph_finalize_pending_functions): Remove.  Update callers.
        (cgraph_finalize_pending_functions): Remove.  Update callers.
        * tree.h (OMP_DIRECTIVE_P): Define.
        * tree.h (OMP_DIRECTIVE_P): Define.
        (OMP_PARALLEL_FN): Define.
        (OMP_PARALLEL_FN): Define.
        (OMP_PARALLEL_DATA_ARG): Define.
        (OMP_PARALLEL_DATA_ARG): Define.
        (OMP_SECTIONS_SECTIONS): Define.
        (OMP_SECTIONS_SECTIONS): Define.
        * tree-pass.h (pass_expand_omp): Declare.
        * tree-pass.h (pass_expand_omp): Declare.
        * omp-low.c (struct omp_region): Declare.
        * omp-low.c (struct omp_region): Declare.
        (struct omp_context): Remove fields 'parallel_type',
        (struct omp_context): Remove fields 'parallel_type',
        'parallel_start_ix' and 'parallel_start_additional_args'.
        'parallel_start_ix' and 'parallel_start_additional_args'.
        Update all users.
        Update all users.
        (struct omp_for_data): Rename from struct expand_omp_for_data.
        (struct omp_for_data): Rename from struct expand_omp_for_data.
        (omp_regions): New static variable.
        (omp_regions): New static variable.
        (root_omp_region): New static variable.
        (root_omp_region): New static variable.
        (find_omp_clause): Make static.
        (find_omp_clause): Make static.
        (is_in_combined_parallel_ctx): Remove.
        (is_in_combined_parallel_ctx): Remove.
        (is_combined_parallel): New.
        (is_combined_parallel): New.
        (extract_omp_for_data): Move earlier in the file.
        (extract_omp_for_data): Move earlier in the file.
        (workshare_safe_to_combine_p): New.
        (workshare_safe_to_combine_p): New.
        (get_ws_args_for): New.
        (get_ws_args_for): New.
        (determine_parallel_type): Move earlier in the file.
        (determine_parallel_type): Move earlier in the file.
        (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
        (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
        child function.
        child function.
        (omp_copy_decl): Likewise.
        (omp_copy_decl): Likewise.
        (create_omp_child_function): Likewise.
        (create_omp_child_function): Likewise.
        (lookup_omp_region): New.
        (lookup_omp_region): New.
        (dump_omp_region): New.
        (dump_omp_region): New.
        (debug_omp_region): New.
        (debug_omp_region): New.
        (debug_all_omp_regions): New.
        (debug_all_omp_regions): New.
        (new_omp_region): New.
        (new_omp_region): New.
        (scan_omp_parallel): If parallel_nesting_level > 1, the
        (scan_omp_parallel): If parallel_nesting_level > 1, the
        directive is nested within another parallel directive.
        directive is nested within another parallel directive.
        Set OMP_PARALLEL_FN.
        Set OMP_PARALLEL_FN.
        (scan_omp_for): Do not try to handle combined parallel+for
        (scan_omp_for): Do not try to handle combined parallel+for
        cases.
        cases.
        Remove FIXME comment.
        Remove FIXME comment.
        (scan_omp_nested): Remove.
        (scan_omp_nested): Remove.
        (scan_omp_1): Do not call scan_omp_nested when
        (scan_omp_1): Do not call scan_omp_nested when
        parallel_nesting_level is > 1.
        parallel_nesting_level is > 1.
        Do not change the DECL_CONTEXT of local variables found.
        Do not change the DECL_CONTEXT of local variables found.
        (lookup_decl_in_outer_ctx): New.
        (lookup_decl_in_outer_ctx): New.
        (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
        (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
        (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
        (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
        (lower_reduction_clauses): Rename from expand_reduction_clauses.
        (lower_reduction_clauses): Rename from expand_reduction_clauses.
        (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
        (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
        If CTX is nested, lookup VAR in the outer context when
        If CTX is nested, lookup VAR in the outer context when
        building copy assignment.
        building copy assignment.
        (lower_send_clauses): Rename from expand_send_clauses.
        (lower_send_clauses): Rename from expand_send_clauses.
        If CTX is nested, lookup VAR in the outer context when
        If CTX is nested, lookup VAR in the outer context when
        building copy assignments.
        building copy assignments.
        (lower_send_shared_vars): Rename from expand_send_shared_vars.
        (lower_send_shared_vars): Rename from expand_send_shared_vars.
        If CTX is nested, lookup VAR in the outer context when
        If CTX is nested, lookup VAR in the outer context when
        building copy assignments.
        building copy assignments.
        (expand_parallel_call): Rename from build_parallel_call.
        (expand_parallel_call): Rename from build_parallel_call.
        Handle combined parallel+workshare cases.
        Handle combined parallel+workshare cases.
        Re-implement to emit code into the CFG.
        Re-implement to emit code into the CFG.
        (list2chain): New.
        (list2chain): New.
        (expand_omp_parallel): Re-implement to emit code into the CFG.
        (expand_omp_parallel): Re-implement to emit code into the CFG.
        Call move_sese_region_to_fn to outline the sub-graph
        Call move_sese_region_to_fn to outline the sub-graph
        containing the parallel region.
        containing the parallel region.
        (expand_omp_for_1): Remove.
        (expand_omp_for_1): Remove.
        (expand_omp_for_generic): Re-implement to emit code into the
        (expand_omp_for_generic): Re-implement to emit code into the
        CFG.
        CFG.
        (expand_omp_for_static_nochunk): Likewise.
        (expand_omp_for_static_nochunk): Likewise.
        (expand_omp_for_static_chunk): Likewise.
        (expand_omp_for_static_chunk): Likewise.
        (expand_omp_for): Likewise.
        (expand_omp_for): Likewise.
        (expand_omp_sections): Likewise.
        (expand_omp_sections): Likewise.
        (remove_exit_barriers): New.
        (remove_exit_barriers): New.
        (expand_omp_synch): New.
        (expand_omp_synch): New.
        (expand_omp): New.
        (expand_omp): New.
        (build_omp_regions_1): New.
        (build_omp_regions_1): New.
        (build_omp_regions): New.
        (build_omp_regions): New.
        (execute_expand_omp): New.
        (execute_expand_omp): New.
        (gate_expand_omp): New.
        (gate_expand_omp): New.
        (pass_expand_omp): Define.
        (pass_expand_omp): Define.
        (lower_omp_sections): Rename from expand_omp_sections.
        (lower_omp_sections): Rename from expand_omp_sections.
        Set OMP_SECTIONS_SECTIONS.
        Set OMP_SECTIONS_SECTIONS.
        (lower_omp_single_simple): Rename from expand_omp_single_simple.
        (lower_omp_single_simple): Rename from expand_omp_single_simple.
        (lower_omp_single_copy): Rename from expand_omp_single_copy.
        (lower_omp_single_copy): Rename from expand_omp_single_copy.
        (lower_omp_single): Rename from expand_omp_simple.
        (lower_omp_single): Rename from expand_omp_simple.
        (lower_omp_master): Rename from expand_omp_master.
        (lower_omp_master): Rename from expand_omp_master.
        (lower_omp_ordered): Rename from expand_omp_ordered.
        (lower_omp_ordered): Rename from expand_omp_ordered.
        (lower_omp_critical): Rename from expand_omp_critical.
        (lower_omp_critical): Rename from expand_omp_critical.
        (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
        (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
        (lower_omp_for): Re-implement.
        (lower_omp_for): Re-implement.
        (lower_omp_parallel): Re-implement.
        (lower_omp_parallel): Re-implement.
        (lower_regimplify): Rename from expand_regimplify.
        (lower_regimplify): Rename from expand_regimplify.
        (lower_omp_1): Rename from expand_omp_1.
        (lower_omp_1): Rename from expand_omp_1.
        If there are syntax errors in the program, replace every
        If there are syntax errors in the program, replace every
        OpenMP directive with NOP.
        OpenMP directive with NOP.
        Call lower_omp_* instead of expand_omp_*.
        Call lower_omp_* instead of expand_omp_*.
        (lower_omp): Rename from expand_omp.
        (lower_omp): Rename from expand_omp.
        * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
        * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
        * tree-gimple.h (enum omp_parallel_type): Remove.
        * tree-gimple.h (enum omp_parallel_type): Remove.
        (gimple_boolify): Declare extern.
        (gimple_boolify): Declare extern.
        (find_omp_clause, determine_parallel_type): Remove.
        (find_omp_clause, determine_parallel_type): Remove.
        * gimple-low.c (lower_omp_directive): New.
        * gimple-low.c (lower_omp_directive): New.
        (lower_stmt): Call it.
        (lower_stmt): Call it.
        (record_vars_into): Move from ...
        (record_vars_into): Move from ...
        (record_vars): ... here.
        (record_vars): ... here.
        Call record_vars_into with current_function_decl.
        Call record_vars_into with current_function_decl.
        * gimplify.c (struct gimplify_ctx): Remove fields
        * gimplify.c (struct gimplify_ctx): Remove fields
        combined_pre_p and combined_ctxp.  Update users.
        combined_pre_p and combined_ctxp.  Update users.
        (get_formal_tmp_var): Add documentation.
        (get_formal_tmp_var): Add documentation.
        (gimple_boolify): Make extern.
        (gimple_boolify): Make extern.
        (gimplify_expr_in_ctx): Remove.  Update callers.
        (gimplify_expr_in_ctx): Remove.  Update callers.
        (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
        (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
        will always be a BIND_EXPR.
        will always be a BIND_EXPR.
        (gimplify_expr): Handle OMP_RETURN_EXPR.
        (gimplify_expr): Handle OMP_RETURN_EXPR.
        * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
        * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
        (OMP_PARALLEL): Add 3 operands.
        (OMP_PARALLEL): Add 3 operands.
        (OMP_SECTIONS): Add 1 operand.
        (OMP_SECTIONS): Add 1 operand.
        (OMP_RETURN_EXPR): Define.
        (OMP_RETURN_EXPR): Define.
        * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
        * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
        (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
        (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
        * tree-iterator.c (alloc_stmt_list): Assert that we are not
        * tree-iterator.c (alloc_stmt_list): Assert that we are not
        creating a circular free list.
        creating a circular free list.
        (free_stmt_list): Assert that we are not freeing stmt_list_cache.
        (free_stmt_list): Assert that we are not freeing stmt_list_cache.
        * tree-flow.h (move_sese_region_to_fn): Declare.
        * tree-flow.h (move_sese_region_to_fn): Declare.
        (record_vars_into): Declare.
        (record_vars_into): Declare.
        * tree-cfg.c (make_omp_sections_edges): New.
        * tree-cfg.c (make_omp_sections_edges): New.
        (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
        (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
        OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
        OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
        OMP_SECTIONS and OMP_SECTION.
        OMP_SECTIONS and OMP_SECTION.
        (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
        (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
        (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
        (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
        (verify_stmt): Do not handle OMP_DIRECTIVE_P.
        (verify_stmt): Do not handle OMP_DIRECTIVE_P.
        (gather_blocks_in_sese_region): New.
        (gather_blocks_in_sese_region): New.
        (struct move_stmt_d): Declare.
        (struct move_stmt_d): Declare.
        (move_stmt_r): New.
        (move_stmt_r): New.
        (move_block_to_fn): New.
        (move_block_to_fn): New.
        (move_sese_region_to_fn): New.
        (move_sese_region_to_fn): New.
        * passes.c (init_optimization_passes): Schedule
        * passes.c (init_optimization_passes): Schedule
        pass_expand_omp after pass_init_datastructures.
        pass_expand_omp after pass_init_datastructures.
        * tree-ssa-operands.c (get_expr_operands): Handle
        * tree-ssa-operands.c (get_expr_operands): Handle
        OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
        OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
        OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
        OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
2006-01-19  Jeff Law  
2006-01-19  Jeff Law  
        * tree-vrp.c (extract_range_from_assert): Refine the result range
        * tree-vrp.c (extract_range_from_assert): Refine the result range
        if the variable referenced by the ASSERT_EXPR has a range and
        if the variable referenced by the ASSERT_EXPR has a range and
        either the tentative result range or the previous range is a
        either the tentative result range or the previous range is a
        VR_ANTI_RANGE.
        VR_ANTI_RANGE.
2006-01-19  Richard Sandiford  
2006-01-19  Richard Sandiford  
        * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
        * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
2006-01-19  Jan Hubicka  
2006-01-19  Jan Hubicka  
        * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
        * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
2006-01-19  Paolo Bonzini  
2006-01-19  Paolo Bonzini  
        * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
        * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
        (expand_compound_operation, expand_field_assignment): Fail if the
        (expand_compound_operation, expand_field_assignment): Fail if the
        bit lengths of an extract operation are out of range.
        bit lengths of an extract operation are out of range.
        (make_extraction): Compute wanted_inner_mode based on the position
        (make_extraction): Compute wanted_inner_mode based on the position
        and length of the extraction.  Make it extraction_mode for non-constant
        and length of the extraction.  Make it extraction_mode for non-constant
        positions, and do not modify offset in that case.  When generating a
        positions, and do not modify offset in that case.  When generating a
        new MEM, use a mode that can hold the extraction while keeping correct
        new MEM, use a mode that can hold the extraction while keeping correct
        alignment.  Remove code that supported MEMs wrapped by USEs.
        alignment.  Remove code that supported MEMs wrapped by USEs.
        (simplify_shift_const_1, force_to_mode) : Remove.
        (simplify_shift_const_1, force_to_mode) : Remove.
2006-01-19  Andreas Krebbel  
2006-01-19  Andreas Krebbel  
        * config/s390/s390.md ("Y", "y"): New mode attribute.
        * config/s390/s390.md ("Y", "y"): New mode attribute.
        ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
        ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
        "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
        "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
        "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
        "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
        "*addsi3_imm_cc", "*addsi3_carry1_cc",
        "*addsi3_imm_cc", "*addsi3_carry1_cc",
        "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
        "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
        "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
        "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
        "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
        "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
        "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
        "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
        "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
        "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
        "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
        "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
        "addsi3", "subsi3"): Insn patterns removed.
        "addsi3", "subsi3"): Insn patterns removed.
        ("*add3_carry1_cc", "*add3_carry1_cconly",
        ("*add3_carry1_cc", "*add3_carry1_cconly",
        "*add3_carry2_cc", "*add3_carry2_cconly", "*add3_cc",
        "*add3_carry2_cc", "*add3_carry2_cconly", "*add3_cc",
        "*add3_cconly", "*add3_cconly2", "*add3_imm_cc",
        "*add3_cconly", "*add3_cconly2", "*add3_imm_cc",
        "*sub3_borrow_cc", "*sub3_borrow_cconly",
        "*sub3_borrow_cc", "*sub3_borrow_cconly",
        "*sub3_cc", "*sub3_cc2", "*sub3_cconly",
        "*sub3_cc", "*sub3_cc2", "*sub3_cconly",
        "*sub3_cconly2"): New insn patterns.
        "*sub3_cconly2"): New insn patterns.
        ("addsi3", "subsi3"): New expanders.
        ("addsi3", "subsi3"): New expanders.
2006-01-19  Dorit Nuzman  
2006-01-19  Dorit Nuzman  
        * Makefile.in (tree-vect-patterns.o): Add rule for new file.
        * Makefile.in (tree-vect-patterns.o): Add rule for new file.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
        existing STMT_VINFO_VECTYPE if available.
        existing STMT_VINFO_VECTYPE if available.
        (vect_mark_relevant): Add special handling for stmts that are
        (vect_mark_relevant): Add special handling for stmts that are
        marked as STMT_VINFO_IN_PATTERN_P.
        marked as STMT_VINFO_IN_PATTERN_P.
        (vect_analyze_loop): Call vect_pattern_recog.
        (vect_analyze_loop): Call vect_pattern_recog.
        * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
        * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
        * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
        * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
        stmt_info.
        stmt_info.
        (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
        (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
        (vect_recog_func_ptr): New function-pointer type.
        (vect_recog_func_ptr): New function-pointer type.
        * tree-vect-patterns.c: New file.
        * tree-vect-patterns.c: New file.
        (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
        (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
        (vect_recog_dot_prod_pattern, vect_pattern_recog):
        (vect_recog_dot_prod_pattern, vect_pattern_recog):
        (vect_pattern_recog_1): New functions.
        (vect_pattern_recog_1): New functions.
        (vect_pattern_recog_funcs): New array of function pointers.
        (vect_pattern_recog_funcs): New array of function pointers.
        * tree-vectorizer.h (ternary_op): New enum value.
        * tree-vectorizer.h (ternary_op): New enum value.
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
        * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
        declaration. Revised documentation. Removed redundant dump prints.
        declaration. Revised documentation. Removed redundant dump prints.
        Removed redundant argument. Added support for reduction patterns.
        Removed redundant argument. Added support for reduction patterns.
        (vectorizable_reduction): Added support for reduction patterns.
        (vectorizable_reduction): Added support for reduction patterns.
        (vect_transform_stmt): Added support for patterns.
        (vect_transform_stmt): Added support for patterns.
        * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
        * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
        * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
        * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
        * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
        * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
        (expand_widen_pattern_expr): New function.
        (expand_widen_pattern_expr): New function.
        (init_optabs): Initialize new optabs udot_prod_optab,
        (init_optabs): Initialize new optabs udot_prod_optab,
        sdot_prod_optab.
        sdot_prod_optab.
        * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
        * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
        (sdot_prod_optab, udot_prod_optab): Define new optabs.
        (sdot_prod_optab, udot_prod_optab): Define new optabs.
        (expand_widen_pattern_expr): New function declaration.
        (expand_widen_pattern_expr): New function declaration.
        * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
        * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
        tree-codes.
        tree-codes.
        * tree-inline.c (estimate_num_insns_1): Added cases for new
        * tree-inline.c (estimate_num_insns_1): Added cases for new
        tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        (op_prio): Likewise.
        (op_prio): Likewise.
        (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
        * tree-ssa-operands.c (get_expr_operands): Added case for
        * tree-ssa-operands.c (get_expr_operands): Added case for
        DOT_PROD_EXPR.
        DOT_PROD_EXPR.
        * tree-vect-patterns.c (widened_name_p): New function.
        * tree-vect-patterns.c (widened_name_p): New function.
        (vect_recog_dot_prod_pattern): Added function implementation.
        (vect_recog_dot_prod_pattern): Added function implementation.
        * tree-vect-transform.c (get_initial_def_for_reduction): Added
        * tree-vect-transform.c (get_initial_def_for_reduction): Added
        cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
        cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
        * config/rs6000/altivec.md (udot_prod, sdot_prodv8hi): New.
        * config/rs6000/altivec.md (udot_prod, sdot_prodv8hi): New.
        * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
        * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
        * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
        * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
        * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
        * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
        * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
        * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
        (init_optabs): Initialize new optabs widen_ssum_optab,
        (init_optabs): Initialize new optabs widen_ssum_optab,
        widen_usum_optab.
        widen_usum_optab.
        * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
        * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
        (widen_ssum_optab, widen_usum_optab): Define new optabs.
        (widen_ssum_optab, widen_usum_optab): Define new optabs.
        * tree-vect-generic.c: (expand_vector_operations_1): Check type of
        * tree-vect-generic.c: (expand_vector_operations_1): Check type of
        use instead of type of def.
        use instead of type of def.
        * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
        * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
        function implementation.
        function implementation.
        * config/rs6000/altivec.md (widen_usum, widen_ssumv16qi,
        * config/rs6000/altivec.md (widen_usum, widen_ssumv16qi,
        widen_ssumv8hi): New.
        widen_ssumv8hi): New.
        * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
        * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
        patterns.
        patterns.
2006-01-19  Richard Sandiford  
2006-01-19  Richard Sandiford  
        PR c/25805
        PR c/25805
        * c-decl.c (add_flexible_array_elts_to_size): New function.
        * c-decl.c (add_flexible_array_elts_to_size): New function.
        (finish_decl): Use it.
        (finish_decl): Use it.
2006-01-18  Andrew Pinski  
2006-01-18  Andrew Pinski  
        * diagnostic.h: Include options.h.
        * diagnostic.h: Include options.h.
        * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
        * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
        dependancies for diagnostic.h.
        dependancies for diagnostic.h.
        * Makefile.in (DIAGNOSTIC_H): Add options.h.
        * Makefile.in (DIAGNOSTIC_H): Add options.h.
2006-01-16  Daniel Berlin  
2006-01-16  Daniel Berlin  
        * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
        * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
        (ssa_ro_call_cache_valid): Ditto.
        (ssa_ro_call_cache_valid): Ditto.
        * tree-ssa-alias.c (sort_tags_by_id): New function.
        * tree-ssa-alias.c (sort_tags_by_id): New function.
        (init_transitive_clobber_worklist): Ditto.
        (init_transitive_clobber_worklist): Ditto.
        (add_to_worklist): Ditto.
        (add_to_worklist): Ditto.
        (mark_aliases_call_clobbered): Ditto.
        (mark_aliases_call_clobbered): Ditto.
        (compute_tag_properties): Ditto.
        (compute_tag_properties): Ditto.
        (set_initial_properties): Ditto.
        (set_initial_properties): Ditto.
        (compute_call_clobbered): Ditto.
        (compute_call_clobbered): Ditto.
        (compute_may_aliases):  Call compute_call_clobbered and grouping.
        (compute_may_aliases):  Call compute_call_clobbered and grouping.
        (compute_flow_sensitive_aliasing): Remove clobbering related code.
        (compute_flow_sensitive_aliasing): Remove clobbering related code.
        (compute_flow_insensitive_aliasing): Grouping now happens in our
        (compute_flow_insensitive_aliasing): Grouping now happens in our
        caller.
        caller.
        (setup_pointers_and_addressables): Remove clobbering related code.
        (setup_pointers_and_addressables): Remove clobbering related code.
        (add_may_alias): Ditto.
        (add_may_alias): Ditto.
        (replace_may_alias): Ditto.
        (replace_may_alias): Ditto.
        (get_nmt_for): Ditto.
        (get_nmt_for): Ditto.
        (create_global_var):
        (create_global_var):
        (is_escape_site): Return an escape_type enumeration.
        (is_escape_site): Return an escape_type enumeration.
        * tree-flow-inline.h (is_call_clobbered): Global var does not
        * tree-flow-inline.h (is_call_clobbered): Global var does not
        imply call clobbered.
        imply call clobbered.
        (mark_call_clobbered): Take a reason for marking this. Remove
        (mark_call_clobbered): Take a reason for marking this. Remove
        marking of globalness, and cache invalidation.
        marking of globalness, and cache invalidation.
        (clear_call_clobbered): Remove cache invalidation code.
        (clear_call_clobbered): Remove cache invalidation code.
        * tree-dfa.c (dump_variable): If details is on, dump the reason
        * tree-dfa.c (dump_variable): If details is on, dump the reason
        for escaping.
        for escaping.
        * tree-outof-ssa.c (create_temp): Copy escape mask from original
        * tree-outof-ssa.c (create_temp): Copy escape mask from original
        variable.
        variable.
        * tree-flow.h (struct ptr_info_def): Add escape mask member.
        * tree-flow.h (struct ptr_info_def): Add escape mask member.
        (struct var_ann_d): Ditto.
        (struct var_ann_d): Ditto.
        (enum escape_type): New.
        (enum escape_type): New.
        (mark_call_clobbered): Adjust prototype.
        (mark_call_clobbered): Adjust prototype.
        * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
        * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
        are never call clobbered.
        are never call clobbered.
        Record reasons for escaping.
        Record reasons for escaping.
        * tree-ssa-structalias.h (is_escape_site): Update prototype.
        * tree-ssa-structalias.h (is_escape_site): Update prototype.
        * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
        * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
        (ssa_ro_call_cache_valid): Ditto.
        (ssa_ro_call_cache_valid): Ditto.
        (clobbered_v_may_defs): Ditto.
        (clobbered_v_may_defs): Ditto.
        (clobbered_vuses): Ditto.
        (clobbered_vuses): Ditto.
        (ro_call_vuses): Ditto.
        (ro_call_vuses): Ditto.
        (clobber_stats): New.
        (clobber_stats): New.
        (init_ssa_operands): Zero out clobber stats.
        (init_ssa_operands): Zero out clobber stats.
        (fini_ssa_operands): Print out clobber stats.
        (fini_ssa_operands): Print out clobber stats.
        (get_call_expr_operands): Pass callee fndecl to
        (get_call_expr_operands): Pass callee fndecl to
        add_call_read_ops).
        add_call_read_ops).
        (add_call_clobber_ops): Remove use of cache.
        (add_call_clobber_ops): Remove use of cache.
        Add use of PURE_CONST information.
        Add use of PURE_CONST information.
        (add_call_read_ops): Remove use of cache.
        (add_call_read_ops): Remove use of cache.
        Add use of static not_read information.
        Add use of static not_read information.
2006-01-18  Alexandre Oliva  
2006-01-18  Alexandre Oliva  
        Introduce TLS descriptors for i386 and x86_64.
        Introduce TLS descriptors for i386 and x86_64.
        * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
        * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
        (TARGET_ANY_GNU_TLS): New macro.
        (TARGET_ANY_GNU_TLS): New macro.
        (enum tls_dialect): Added TLS_DIALECT_GNU2.
        (enum tls_dialect): Added TLS_DIALECT_GNU2.
        (struct machine_function): Add tls_descriptor_call_expanded_p.
        (struct machine_function): Add tls_descriptor_call_expanded_p.
        (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
        (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
        (ix86_current_function_calls_tls_descriptor): Likewise.
        (ix86_current_function_calls_tls_descriptor): Likewise.
        * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
        * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
        (override_options): Introduce gnu2 tls dialect.
        (override_options): Introduce gnu2 tls dialect.
        (ix86_frame_pointer_required): Functions containing TLSCALLs are
        (ix86_frame_pointer_required): Functions containing TLSCALLs are
        not leaves.
        not leaves.
        (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
        (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
        Likewise.
        Likewise.
        (legitimize_tls_address): Adjust logic for GNU2 TLS.
        (legitimize_tls_address): Adjust logic for GNU2 TLS.
        (ix86_init_machine_status): Initialize new field.
        (ix86_init_machine_status): Initialize new field.
        (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
        (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
        (ix86_tls_module_base): New.
        (ix86_tls_module_base): New.
        * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
        * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
        * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
        * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
        (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
        (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
        (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
        (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
        (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
        (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
        (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
        (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
        (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
        (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
        (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
        (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
        * config/i386/predicates.md (tls_modbase_operand): New.
        * config/i386/predicates.md (tls_modbase_operand): New.
        (tp_or_register_operand): New.
        (tp_or_register_operand): New.
2006-01-18  Daniel Berlin  
2006-01-18  Daniel Berlin  
        * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
        * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
        (look_for_address_of): Ditto.
        (look_for_address_of): Ditto.
        (ipa_init): Walk the function decls.
        (ipa_init): Walk the function decls.
        (static_execute): Don't set readonly on FUNCTION_DECL's.
        (static_execute): Don't set readonly on FUNCTION_DECL's.
2006-01-18  Roger Sayle  
2006-01-18  Roger Sayle  
        * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
        * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
        for shifts where the source and destination registers are different.
        for shifts where the source and destination registers are different.
2006-01-18  Paul Brook  
2006-01-18  Paul Brook  
        Merge from csl-arm-branch.
        Merge from csl-arm-branch.
        2005-03-14  Julian Brown  
        2005-03-14  Julian Brown  
        * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
        * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
        (aeabi_llsl): Likewise.
        (aeabi_llsl): Likewise.
        (ashrdi3): Likewise.
        (ashrdi3): Likewise.
        (aeabi_lasr): Likewise.
        (aeabi_lasr): Likewise.
        (lshrdi3): Likewise.
        (lshrdi3): Likewise.
        (aeabi_llsr): Likewise.
        (aeabi_llsr): Likewise.
        2005-03-10  Julian Brown  
        2005-03-10  Julian Brown  
        * config.gcc: Disable shared libgcc for SymbianOS.
        * config.gcc: Disable shared libgcc for SymbianOS.
        * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
        * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
2006-01-18  DJ Delorie  
2006-01-18  DJ Delorie  
        * c-pragma.c (handle_pragma_diagnostic): New.
        * c-pragma.c (handle_pragma_diagnostic): New.
        (init_pragma): Register it.
        (init_pragma): Register it.
        * doc/extend.texi: Document it.
        * doc/extend.texi: Document it.
        * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
        * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
        * diagnostic.h (diagnostic_classify_diagnostic): Declare.
        * diagnostic.h (diagnostic_classify_diagnostic): Declare.
        (diagnostic_context): Add classify_diagnostic[].
        (diagnostic_context): Add classify_diagnostic[].
        * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
        * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
        as errors if they're overridden to DK_WARNING.
        as errors if they're overridden to DK_WARNING.
        (diagnostic_initialize): Initialize classify_diagnostic[].
        (diagnostic_initialize): Initialize classify_diagnostic[].
        (diagnostic_set_kind_override): New.
        (diagnostic_set_kind_override): New.
        (diagnostic_report_diagnostic): Check for kind changes.
        (diagnostic_report_diagnostic): Check for kind changes.
        * opts.c (common_handle_option): Take lang_mask.  Update callers.
        * opts.c (common_handle_option): Take lang_mask.  Update callers.
        Handle OPT_Werror_.
        Handle OPT_Werror_.
        * common.opt (Werror=): New.
        * common.opt (Werror=): New.
        * doc/invoke.texi: Document -Werror=*
        * doc/invoke.texi: Document -Werror=*
2006-01-18  Jeff Law  
2006-01-18  Jeff Law  
        * tree-vrp.c (test_for_singularity): Correct test for new
        * tree-vrp.c (test_for_singularity): Correct test for new
        min limit.  Use operand_equal_p rather than pointer equality
        min limit.  Use operand_equal_p rather than pointer equality
        for testing if new min/max values are equal.
        for testing if new min/max values are equal.
        * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
        * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
        using range information until after propagation and folding.
        using range information until after propagation and folding.
2006-01-18  Richard Henderson  
2006-01-18  Richard Henderson  
            Aldy Hernandez  
            Aldy Hernandez  
            Jakub Jelinek  
            Jakub Jelinek  
            Diego Novillo  
            Diego Novillo  
        * omp-low.c: New file.
        * omp-low.c: New file.
        * c-omp.c: New file.
        * c-omp.c: New file.
2006-01-18  Richard Henderson  
2006-01-18  Richard Henderson  
            Jakub Jelinek  
            Jakub Jelinek  
            Diego Novillo  
            Diego Novillo  
        * doc/invoke.texi: Document -fopenmp.
        * doc/invoke.texi: Document -fopenmp.
        * tree-dump.h (debug_function): Declare.
        * tree-dump.h (debug_function): Declare.
        * hooks.c (hook_bool_tree_bool_false): New function.
        * hooks.c (hook_bool_tree_bool_false): New function.
        (hook_tree_tree_null): Remove.
        (hook_tree_tree_null): Remove.
        (hook_tree_tree_tree_null): New.
        (hook_tree_tree_tree_null): New.
        * hooks.h: Update to match.
        * hooks.h: Update to match.
        * tree-pretty-print.c (debug_tree_chain): New.
        * tree-pretty-print.c (debug_tree_chain): New.
        (print_generic_expr): Handle TDF_CHAIN.
        (print_generic_expr): Handle TDF_CHAIN.
        (dump_generic_node): Handle BLOCK.
        (dump_generic_node): Handle BLOCK.
        Do not abort with incomplete SWITCH_EXPRs.
        Do not abort with incomplete SWITCH_EXPRs.
        Do not dump body of an OpenMP directive if TDF_SLIM is given.
        Do not dump body of an OpenMP directive if TDF_SLIM is given.
        : Don't
        : Don't
        print space after directive name.
        print space after directive name.
        : Handle printing OMP_FOR_PRE_BODY.
        : Handle printing OMP_FOR_PRE_BODY.
        Handle OMP_MASTER and OMP_ORDERED.
        Handle OMP_MASTER and OMP_ORDERED.
        Handle printing of OMP_BODY just in one place, goto
        Handle printing of OMP_BODY just in one place, goto
        dump_omp_body in the rest of OMP_* nodes that have
        dump_omp_body in the rest of OMP_* nodes that have
        OMP_BODY.
        OMP_BODY.
        Don't handle clause nodes here.  Update omp statements to
        Don't handle clause nodes here.  Update omp statements to
        use dump_omp_clauses.
        use dump_omp_clauses.
        Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
        Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
        OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
        OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
        OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
        OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
        GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
        GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
        GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
        GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
        GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
        GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
        Adjust output for GOMP_PARALLEL.
        Adjust output for GOMP_PARALLEL.
        (dump_omp_clauses): New.
        (dump_omp_clauses): New.
        (print_declaration): Dump DECL_VALUE_EXPR.
        (print_declaration): Dump DECL_VALUE_EXPR.
        (op_symbol_1): Split out of op_symbol.
        (op_symbol_1): Split out of op_symbol.
        (dumping_stmts): Remove.  Update all users.
        (dumping_stmts): Remove.  Update all users.
        * cgraph.c (cgraph_analyze_queue): New.
        * cgraph.c (cgraph_analyze_queue): New.
        (cgraph_add_new_function): New.
        (cgraph_add_new_function): New.
        * cgraph.h (cgraph_analyze_queue): Declare.
        * cgraph.h (cgraph_analyze_queue): Declare.
        (cgraph_add_new_function): Declare.
        (cgraph_add_new_function): Declare.
        (cgraph_lower_function): Remove.
        (cgraph_lower_function): Remove.
        * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
        * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
        nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
        nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
        and TYPE_P nodes in its default clause.
        and TYPE_P nodes in its default clause.
        (empty_body_p): New.
        (empty_body_p): New.
        (tree_range_check_failed): New.
        (tree_range_check_failed): New.
        (build5_stat): New.
        (build5_stat): New.
        * tree.h (OMP_CLAUSE_REDUCTION_INIT,
        * tree.h (OMP_CLAUSE_REDUCTION_INIT,
        OMP_CLAUSE_REDUCTION_MERGE,
        OMP_CLAUSE_REDUCTION_MERGE,
        OMP_CLAUSE_REDUCTION_PLACEHOLDER,
        OMP_CLAUSE_REDUCTION_PLACEHOLDER,
        OMP_CLAUSE_PRIVATE_DEBUG,
        OMP_CLAUSE_PRIVATE_DEBUG,
        OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
        OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
        OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
        OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
        OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
        OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
        OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
        OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
        OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
        OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
        OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
        OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
        OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
        OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
        OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
        OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
        OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
        OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
        OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
        OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
        OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
        OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
        OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
        OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
        OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
        OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
        OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
        OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
        (TREE_RANGE_CHECK): New.
        (TREE_RANGE_CHECK): New.
        (empty_body_p): Declare.
        (empty_body_p): Declare.
        (enum omp_clause_default_kind): New.
        (enum omp_clause_default_kind): New.
        (build_string_literal): Declare.
        (build_string_literal): Declare.
        (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
        (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
        (build5_stat, build5): Declare.
        (build5_stat, build5): Declare.
        * tree-pass.h (TDF_CHAIN): Define.
        * tree-pass.h (TDF_CHAIN): Define.
        * tree-pass.h (PROP_gimple_lomp): Define.
        * tree-pass.h (PROP_gimple_lomp): Define.
        (pass_lower_omp): Declare.
        (pass_lower_omp): Declare.
        * diagnostic.h (debug_tree_chain): Declare.
        * diagnostic.h (debug_tree_chain): Declare.
        * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
        * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
        mode_for_size.
        mode_for_size.
        (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
        (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
        * builtins.c (build_string_literal): Make extern.
        * builtins.c (build_string_literal): Make extern.
        * gcc.c (include_spec_function): New.
        * gcc.c (include_spec_function): New.
        (static_spec_functions): Add it.
        (static_spec_functions): Add it.
        (main): Move load of libgomp.spec ...
        (main): Move load of libgomp.spec ...
        (LINK_COMMAND_SPEC): ... here.
        (LINK_COMMAND_SPEC): ... here.
        (link_gomp_spec): New.
        (link_gomp_spec): New.
        (static_specs): Include it.
        (static_specs): Include it.
        (LINK_COMMAND_SPEC): Add link_gomp.
        (LINK_COMMAND_SPEC): Add link_gomp.
        (GOMP_SELF_SPECS): New.
        (GOMP_SELF_SPECS): New.
        (driver_self_specs): Include it.
        (driver_self_specs): Include it.
        (switch_matches): Don't mark inline.
        (switch_matches): Don't mark inline.
        (main): Load libgomp.spec.
        (main): Load libgomp.spec.
        * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
        * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
        OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
        OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
        and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
        and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
        * tree-gimple.h (enum omp_parallel): Declare.
        * tree-gimple.h (enum omp_parallel): Declare.
        (determine_parallel_type): Declare.
        (determine_parallel_type): Declare.
        (omp_firstprivatize_variable): Declare.
        (omp_firstprivatize_variable): Declare.
        (omp_reduction_init): Declare.
        (omp_reduction_init): Declare.
        (diagnose_omp_structured_block_errors): Declare.
        (diagnose_omp_structured_block_errors): Declare.
        (struct walk_stmt_info): Add want_return_expr.
        (struct walk_stmt_info): Add want_return_expr.
        (struct walk_stmt_info): Add want_bind_expr, want_locations.
        (struct walk_stmt_info): Add want_bind_expr, want_locations.
        (find_omp_clause): Declare.
        (find_omp_clause): Declare.
        (insert_field_into_struct): Declare.
        (insert_field_into_struct): Declare.
        (struct walk_stmt_info): Move from tree-nested.c
        (struct walk_stmt_info): Move from tree-nested.c
        (walk_stmts): Declare.
        (walk_stmts): Declare.
        * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
        * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
        to 200505.
        to 200505.
        * cgraphunit.c (cgraph_lower_function): Make static.
        * cgraphunit.c (cgraph_lower_function): Make static.
        (cgraph_finalize_pending_functions): New.
        (cgraph_finalize_pending_functions): New.
        (cgraph_finalize_function): Call it.
        (cgraph_finalize_function): Call it.
        (cgraph_finalize_compilation_unit): Likewise.
        (cgraph_finalize_compilation_unit): Likewise.
        * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
        * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
        BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
        BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
        (BT_FN_UINT_UINT): New.
        (BT_FN_UINT_UINT): New.
        (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
        (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
        DEF_FUNCTION_TYPE_VAR_4): Document.
        DEF_FUNCTION_TYPE_VAR_4): Document.
        (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
        (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
        BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
        BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
        BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
        BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
        BT_FN_VOID_OMPFN_PTR_UINT_UINT,
        BT_FN_VOID_OMPFN_PTR_UINT_UINT,
        BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
        BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
        BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
        BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
        BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
        BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
        BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
        BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
        * builtins.def: Update DEF_BUILTIN comment to include COND argument.
        * builtins.def: Update DEF_BUILTIN comment to include COND argument.
        Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
        Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
        into separate files.
        into separate files.
        (DEF_GOMP_BUILTIN): New.
        (DEF_GOMP_BUILTIN): New.
        (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
        (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
        BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
        BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
        BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
        BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
        BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
        BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
        BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
        BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
        BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
        BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
        BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
        BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
        BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
        BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
        BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
        BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
        BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
        BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
        BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
        BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
        BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
        BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
        BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
        BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
        BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
        BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
        BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
        BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
        BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
        BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
        BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
        BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
        BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
        BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
        BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
        BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
        BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
        * sync-builtins.def: New file, moved from builtins.def.
        * sync-builtins.def: New file, moved from builtins.def.
        * omp-builtins.def: New file, moved from builtins.def.
        * omp-builtins.def: New file, moved from builtins.def.
        * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
        * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
        * gimple-low.c (lower_function_body): Clear data.
        * gimple-low.c (lower_function_body): Clear data.
        (lower_stmt): Do not handle COMPOUND_EXPR.
        (lower_stmt): Do not handle COMPOUND_EXPR.
        Remove call to print_node_brief.
        Remove call to print_node_brief.
        * c-tree.h (c_finish_omp_clauses): New prototype.
        * c-tree.h (c_finish_omp_clauses): New prototype.
        (C_DECL_THREADPRIVATE_P): Define.
        (C_DECL_THREADPRIVATE_P): Define.
        (lookup_name_no_remap, c_omp_remap_private): Remove
        (lookup_name_no_remap, c_omp_remap_private): Remove
        (c_begin_omp_parallel, c_finish_omp_parallel): Update.
        (c_begin_omp_parallel, c_finish_omp_parallel): Update.
        (check_for_loop_decls): Update decl.
        (check_for_loop_decls): Update decl.
        (lookup_name_no_remap, c_omp_remap_private): Declare.
        (lookup_name_no_remap, c_omp_remap_private): Declare.
        (build_indirect_ref, build_modify_expr, pushdecl,
        (build_indirect_ref, build_modify_expr, pushdecl,
        pushdecl_top_level): Move to c-common.h.
        pushdecl_top_level): Move to c-common.h.
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
        before the switch, but just in the 2 places that need it.
        before the switch, but just in the 2 places that need it.
        * c-decl.c (diagnose_mismatched_decls): Do not check for
        * c-decl.c (diagnose_mismatched_decls): Do not check for
        mismatched thread-local attributes when OLDDECL is marked
        mismatched thread-local attributes when OLDDECL is marked
        threadprivate and NEWDECL has no thread-local attributes.
        threadprivate and NEWDECL has no thread-local attributes.
        (merge_decls): Merge C_DECL_THREADPRIVATE_P.
        (merge_decls): Merge C_DECL_THREADPRIVATE_P.
        (c_gimple_diagnostics_recursively): Rename from
        (c_gimple_diagnostics_recursively): Rename from
        c_warn_unused_result_recursively.  Invoke
        c_warn_unused_result_recursively.  Invoke
        diagnose_omp_structured_block_errors.
        diagnose_omp_structured_block_errors.
        (check_for_loop_decls): Return a singular decl found.
        (check_for_loop_decls): Return a singular decl found.
        * langhooks.c (lhd_omp_predetermined_sharing): Return
        * langhooks.c (lhd_omp_predetermined_sharing): Return
        OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
        OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
        (lhd_omp_firstprivatize_type_sizes): New.
        (lhd_omp_firstprivatize_type_sizes): New.
        (lhd_omp_assignment): New.
        (lhd_omp_assignment): New.
        (lhd_omp_predetermined_sharing): New.
        (lhd_omp_predetermined_sharing): New.
        * langhooks.h (struct gimplify_omp_ctx): Forward declare.
        * langhooks.h (struct gimplify_omp_ctx): Forward declare.
        (struct lang_hooks_for_types): Add
        (struct lang_hooks_for_types): Add
        omp_firstprivatize_type_sizes, omp_privatize_by_reference,
        omp_firstprivatize_type_sizes, omp_privatize_by_reference,
        omp_predetermined_sharing, omp_disregard_value_expr,
        omp_predetermined_sharing, omp_disregard_value_expr,
        omp_private_debug_clause, omp_clause_default_ctor,
        omp_private_debug_clause, omp_clause_default_ctor,
        omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
        omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
        (c_finish_omp_clauses): New.
        (c_finish_omp_clauses): New.
        (c_finish_bc_stmt): Diagnose break within omp for.
        (c_finish_bc_stmt): Diagnose break within omp for.
        (c_begin_omp_parallel, c_finish_omp_parallel): New.
        (c_begin_omp_parallel, c_finish_omp_parallel): New.
        (build_unary_op): Return error_mark after reporting
        (build_unary_op): Return error_mark after reporting
        a readonly_error.
        a readonly_error.
        (build_modify_expr): Likewise.
        (build_modify_expr): Likewise.
        * gimplify.c: Include optabs.h and pointer-set.h.
        * gimplify.c: Include optabs.h and pointer-set.h.
        (enum gimplify_omp_var_data): Declare.
        (enum gimplify_omp_var_data): Declare.
        (struct gimplify_omp_ctx): Declare.
        (struct gimplify_omp_ctx): Declare.
        (struct gimplify_ctx): Add fields prev_context, combined_pre_p
        (struct gimplify_ctx): Add fields prev_context, combined_pre_p
        and combined_ctxp.
        and combined_ctxp.
        (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
        (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
        (push_gimplify_context, pop_gimplify_context): Allow nesting.
        (push_gimplify_context, pop_gimplify_context): Allow nesting.
        (splay_tree_compare_decl_uid): New.
        (splay_tree_compare_decl_uid): New.
        (new_omp_context): New.
        (new_omp_context): New.
        (delete_omp_context): New.
        (delete_omp_context): New.
        (gimple_add_tmp_var): Call omp_add_variable.
        (gimple_add_tmp_var): Call omp_add_variable.
        (gimplify_bind_expr): Likewise.
        (gimplify_bind_expr): Likewise.
        (gimplify_var_or_parm_decl): If omp_notice_variable returned
        (gimplify_var_or_parm_decl): If omp_notice_variable returned
        true, disregard DECL_VALUE_EXPR on the decl if any.
        true, disregard DECL_VALUE_EXPR on the decl if any.
        (gimplify_expr_in_ctx): New.
        (gimplify_expr_in_ctx): New.
        (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
        (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
        omp_add_variable, omp_notice_variable, omp_is_private
        omp_add_variable, omp_notice_variable, omp_is_private
        gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
        gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
        gimplify_adjust_omp_clauses, gimplify_omp_parallel
        gimplify_adjust_omp_clauses, gimplify_omp_parallel
        gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
        gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
        gimplify_omp_atomic_fetch_op, goa_stabilize_expr
        gimplify_omp_atomic_fetch_op, goa_stabilize_expr
        gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
        gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
        gimplify_omp_atomic): New.
        gimplify_omp_atomic): New.
        (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
        (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
        OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
        OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
        OMP_CRITICAL and OMP_ATOMIC.
        OMP_CRITICAL and OMP_ATOMIC.
        (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
        (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
        * c-pragma.h (enum pragma_kind): Add
        * c-pragma.h (enum pragma_kind): Add
        PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
        PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
        PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
        PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
        PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
        PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
        PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
        PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
        PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
        PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
        PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
        PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
        PRAGMA_OMP_THREADPRIVATE.
        PRAGMA_OMP_THREADPRIVATE.
        * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
        * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
        OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
        OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
        OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
        OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
        OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
        OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
        OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
        OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
        OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
        OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
        OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
        OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
        OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
        OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
        OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
        OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
        * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
        * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
        * tree-ssa-dce.c (find_control_dependence): Do not assume that
        * tree-ssa-dce.c (find_control_dependence): Do not assume that
        ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
        ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
        * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
        * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
        OpenMP directives.
        OpenMP directives.
        (struct nesting_info): Add field_map,
        (struct nesting_info): Add field_map,
        suppress_expansion, debug_var_chain.
        suppress_expansion, debug_var_chain.
        (create_nesting_tree): Initialize them.
        (create_nesting_tree): Initialize them.
        (lookup_field_for_decl): Use field_map.
        (lookup_field_for_decl): Use field_map.
        (get_nonlocal_debug_decl, get_local_debug_decl): New.
        (get_nonlocal_debug_decl, get_local_debug_decl): New.
        (convert_local_omp_clauses): New.
        (convert_local_omp_clauses): New.
        (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
        (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
        (walk_body): Split out of walk_function.
        (walk_body): Split out of walk_function.
        (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
        (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
        (convert_nonlocal_reference): Handle omp statements.
        (convert_nonlocal_reference): Handle omp statements.
        (convert_local_reference): Likewise.
        (convert_local_reference): Likewise.
        (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
        (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
        (unnest_nesting_tree): New.
        (unnest_nesting_tree): New.
        (lower_nested_functions): Call it.
        (lower_nested_functions): Call it.
        (insert_field_into_struct): Make extern.
        (insert_field_into_struct): Make extern.
        (struct walk_stmt_info): Move to tree-gimple.h.
        (struct walk_stmt_info): Move to tree-gimple.h.
        (walk_stmts): Make extern.
        (walk_stmts): Make extern.
        * omp-builtins.def: New file.
        * omp-builtins.def: New file.
        * tree-iterator.c (expr_only): Clarify comment.
        * tree-iterator.c (expr_only): Clarify comment.
        * c-common.h (pushdecl_top_level, pushdecl,
        * c-common.h (pushdecl_top_level, pushdecl,
        build_modify_expr, build_indirect_ref,
        build_modify_expr, build_indirect_ref,
        c_finish_omp_master, c_finish_omp_critical,
        c_finish_omp_master, c_finish_omp_critical,
        c_finish_omp_ordered, c_finish_omp_barrier,
        c_finish_omp_ordered, c_finish_omp_barrier,
        c_finish_omp_atomic, c_finish_omp_flush,
        c_finish_omp_atomic, c_finish_omp_flush,
        c_finish_omp_for, c_split_parallel_clauses,
        c_finish_omp_for, c_split_parallel_clauses,
        omp_clause_default_kind, c_omp_sharing_predetermined,
        omp_clause_default_kind, c_omp_sharing_predetermined,
        c_omp_remap_decl): Declare.
        c_omp_remap_decl): Declare.
        * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
        * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
        (OBJS-common): Add omp-low.o.
        (OBJS-common): Add omp-low.o.
        (c-omp.o, omp-low.o): Add.
        (c-omp.o, omp-low.o): Add.
        (gimplify.o): Add dependency on $(OPTABS_H).
        (gimplify.o): Add dependency on $(OPTABS_H).
        (GTFILES): Add omp-low.c.
        (GTFILES): Add omp-low.c.
        (gt-stringpool.h): Add.
        (gt-stringpool.h): Add.
        * tree-cfg.c (set_bb_for_stmt): Do not update the
        * tree-cfg.c (set_bb_for_stmt): Do not update the
        block-to-labels map if we are currently expanding to RTL.
        block-to-labels map if we are currently expanding to RTL.
        (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
        (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
        checks.
        checks.
        Handle IDENTIFIER_NODE.
        Handle IDENTIFIER_NODE.
        (tree_verify_flow_info): Do not ICE when emitting error
        (tree_verify_flow_info): Do not ICE when emitting error
        messages about invalid labels.
        messages about invalid labels.
        (dump_function_to_file): Reset CFUN before emitting the body
        (dump_function_to_file): Reset CFUN before emitting the body
        of the function.
        of the function.
        (debug_function): New.
        (debug_function): New.
        * passes.c (init_optimization_passes): Schedule
        * passes.c (init_optimization_passes): Schedule
        pass_lower_omp.
        pass_lower_omp.
        * langhooks-def.h (lhd_omp_predetermined_sharing,
        * langhooks-def.h (lhd_omp_predetermined_sharing,
        lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
        lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
        Declare.
        Declare.
        (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
        (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
        (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
        (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
        (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
        (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
        LANG_HOOKS_OMP_PREDETERMINED_SHARING,
        LANG_HOOKS_OMP_PREDETERMINED_SHARING,
        LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
        LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
        LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
        LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
        LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
        LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
        LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
        LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
        LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
        LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
        LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
        LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
        (LANG_HOOK_DECLS): Use them.
        (LANG_HOOK_DECLS): Use them.
2006-01-18  Dmitry Kurochkin 
2006-01-18  Dmitry Kurochkin 
            Richard Henderson  
            Richard Henderson  
            Jakub Jelinek  
            Jakub Jelinek  
            Diego Novillo  
            Diego Novillo  
        * c-parser.c (pragma_omp_clause): Define.
        * c-parser.c (pragma_omp_clause): Define.
        (c_parser_declaration_or_fndef): Document OpenMP syntax.
        (c_parser_declaration_or_fndef): Document OpenMP syntax.
        (c_parser_compound_statement): Likewise.
        (c_parser_compound_statement): Likewise.
        (c_parser_statement): Likewise.
        (c_parser_statement): Likewise.
        (c_parser_pragma): Handle omp pragmas.
        (c_parser_pragma): Handle omp pragmas.
        (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
        (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
        OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
        OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
        (c_parser_omp_clause_name, check_no_duplicate_clause,
        (c_parser_omp_clause_name, check_no_duplicate_clause,
        c_parser_omp_variable_list,
        c_parser_omp_variable_list,
        c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
        c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
        c_parser_omp_clause_copyprivate,
        c_parser_omp_clause_copyprivate,
        c_parser_omp_clause_default,
        c_parser_omp_clause_default,
        c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
        c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
        c_parser_omp_clause_lastprivate,
        c_parser_omp_clause_lastprivate,
        c_parser_omp_clause_nowait,
        c_parser_omp_clause_nowait,
        c_parser_omp_clause_num_threads,
        c_parser_omp_clause_num_threads,
        c_parser_omp_clause_ordered, c_parser_omp_clause_private,
        c_parser_omp_clause_ordered, c_parser_omp_clause_private,
        c_parser_omp_clause_reduction,
        c_parser_omp_clause_reduction,
        c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
        c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
        c_parser_omp_all_clauses, c_parser_omp_structured_block,
        c_parser_omp_all_clauses, c_parser_omp_structured_block,
        c_parser_omp_atomic, c_parser_omp_barrier,
        c_parser_omp_atomic, c_parser_omp_barrier,
        c_parser_omp_critical, c_parser_omp_flush,
        c_parser_omp_critical, c_parser_omp_flush,
        c_parser_omp_for_loop, c_parser_omp_for,
        c_parser_omp_for_loop, c_parser_omp_for,
        c_parser_omp_master, c_parser_omp_ordered,
        c_parser_omp_master, c_parser_omp_ordered,
        c_parser_omp_sections_scope, c_parser_omp_sections,
        c_parser_omp_sections_scope, c_parser_omp_sections,
        c_parser_omp_parallel, c_parser_omp_single,
        c_parser_omp_parallel, c_parser_omp_single,
        c_parser_omp_construct, c_parser_omp_threadprivate): New.
        c_parser_omp_construct, c_parser_omp_threadprivate): New.
        * c-pragma.c (init_pragma): Do omp pragma registration here.
        * c-pragma.c (init_pragma): Do omp pragma registration here.
        * c.opt (fopenmp): New flag.
        * c.opt (fopenmp): New flag.
2006-01-18  Eric Christopher  
2006-01-18  Eric Christopher  
        * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
        * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
        * config/darwin.h (GOMP_SELF_SPECS): Define.
        * config/darwin.h (GOMP_SELF_SPECS): Define.
2006-01-18  Kazu Hirata  
2006-01-18  Kazu Hirata  
        * rtl.h: Remove the prototype for reg_alloc.
        * rtl.h: Remove the prototype for reg_alloc.
2006-01-18  John David Anglin  
2006-01-18  John David Anglin  
        PR target/25731
        PR target/25731
        * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
        * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
        hppa[12]*-*-hpux11*): Override default shared libgcc version for both
        hppa[12]*-*-hpux11*): Override default shared libgcc version for both
        sjlj and dwarf2 exception handling.
        sjlj and dwarf2 exception handling.
        * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
        * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
        Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
        Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
        * pa/pa.c (function_value): Treat complex and vector types as
        * pa/pa.c (function_value): Treat complex and vector types as
        aggregates.
        aggregates.
        (function_arg): Likewise.  Only pass scalar floats in the floating
        (function_arg): Likewise.  Only pass scalar floats in the floating
        point argument registers.
        point argument registers.
        * pa/t-slibgcc-dwarf-ver: New file.
        * pa/t-slibgcc-dwarf-ver: New file.
        * pa/t-slibgcc-sjlj-ver: New file.
        * pa/t-slibgcc-sjlj-ver: New file.
        * pa/t-slibgcc-elf-ver: Delete file.
        * pa/t-slibgcc-elf-ver: Delete file.
2006-01-19  Alan Modra  
2006-01-19  Alan Modra  
        * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
        * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
        unlikely_test_section_p test.
        unlikely_test_section_p test.
2006-01-18  Kazu Hirata  
2006-01-18  Kazu Hirata  
        * mode-switching.c (optimize_mode_switching): Make it static.
        * mode-switching.c (optimize_mode_switching): Make it static.
        * basic-block.h: Remove the prototype for
        * basic-block.h: Remove the prototype for
        optimize_mode_switching.
        optimize_mode_switching.
        * modulo-sched.c (sms_schedule): Make it static.
        * modulo-sched.c (sms_schedule): Make it static.
        * rtl.h: Remove the prototype for sms_schedule.
        * rtl.h: Remove the prototype for sms_schedule.
        * postreload-gcse.c (gcse_after_reload_main): Make it static.
        * postreload-gcse.c (gcse_after_reload_main): Make it static.
        * rtl.h: Remove the prototype for gcse_after_reload_main.
        * rtl.h: Remove the prototype for gcse_after_reload_main.
        * reg-stack.c (reg_to_stack): Make it static.
        * reg-stack.c (reg_to_stack): Make it static.
        * rtl.h: Remove the prototype for reg_to_stack.
        * rtl.h: Remove the prototype for reg_to_stack.
        * regrename.c (regrename_optimize, copyprop_hardreg_forward):
        * regrename.c (regrename_optimize, copyprop_hardreg_forward):
        Make them static.
        Make them static.
        * rtl.h: Remove the prototypes for regrename_optimize and
        * rtl.h: Remove the prototypes for regrename_optimize and
        copyprop_hardreg_forward.
        copyprop_hardreg_forward.
2006-01-18  Eric Botcazou  
2006-01-18  Eric Botcazou  
        * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
        * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
        alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
        alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
        Test against the appropriate null constant for the mode.
        Test against the appropriate null constant for the mode.
        If 'fixup_overlap' is true, swap the operands if they overlap.
        If 'fixup_overlap' is true, swap the operands if they overlap.
        (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
        (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
        * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
        * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
        alpha_split_tmode_pair and adjust for above change.
        alpha_split_tmode_pair and adjust for above change.
        * config/alpha/alpha.md (movtf_internal): Adjust call to
        * config/alpha/alpha.md (movtf_internal): Adjust call to
        alpha_split_tfmode_pair and rely on it to swap the operands.
        alpha_split_tfmode_pair and rely on it to swap the operands.
        (movti_internal): New insn and post-reload splitter.
        (movti_internal): New insn and post-reload splitter.
        (movti): New expander.
        (movti): New expander.
2006-01-18  Philippe De Muyter  
2006-01-18  Philippe De Muyter  
        * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
        * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
        operands.
        operands.
2006-01-18  Kazu Hirata  
2006-01-18  Kazu Hirata  
        * rtlanal.c (global_reg_mentioned_p_1,
        * rtlanal.c (global_reg_mentioned_p_1,
        global_reg_mentioned_p): Remove.
        global_reg_mentioned_p): Remove.
        * rtl.h: Remove the prototype for global_reg_mentioned_p.
        * rtl.h: Remove the prototype for global_reg_mentioned_p.
        * flow.c (initialize_uninitialized_subregs): Make it static.
        * flow.c (initialize_uninitialized_subregs): Make it static.
        * rtl.h: Remove the prototype for
        * rtl.h: Remove the prototype for
        initialize_uninitialized_subregs.
        initialize_uninitialized_subregs.
        * function.c (instantiate_virtual_regs): Make it static.
        * function.c (instantiate_virtual_regs): Make it static.
        * function.h: Remove the prototype for
        * function.h: Remove the prototype for
        instantiate_virtual_regs.
        instantiate_virtual_regs.
        * regmove.c (regmove_optimize, combine_stack_adjustments):
        * regmove.c (regmove_optimize, combine_stack_adjustments):
        Make them static.
        Make them static.
        * rtl.h: Remove the prototypes for regmove_optimize and
        * rtl.h: Remove the prototypes for regmove_optimize and
        combine_stack_adjustments.
        combine_stack_adjustments.
2006-01-17  Roger Sayle  
2006-01-17  Roger Sayle  
        * config/i386/i386.c (COSTS_N_BYTES): New macro.
        * config/i386/i386.c (COSTS_N_BYTES): New macro.
        (size_cost): Encode costs in bytes so that a reg-reg addition is
        (size_cost): Encode costs in bytes so that a reg-reg addition is
        equivalent to COSTS_N_INSNS(1).
        equivalent to COSTS_N_INSNS(1).
        (override_options): Use the size_cost.branch_cost as the default
        (override_options): Use the size_cost.branch_cost as the default
        ix86_branch_cost when optimizing for size.
        ix86_branch_cost when optimizing for size.
2006-01-18  Ben Elliston  
2006-01-18  Ben Elliston  
        * Makefile.in (D32PBIT_FUNCS): New.
        * Makefile.in (D32PBIT_FUNCS): New.
        (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
        (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
        (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
        (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
        D64PBIT_FUNCS and D128PBIT_FUNCS.
        D64PBIT_FUNCS and D128PBIT_FUNCS.
        (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
        (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
        * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
        * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
        D128PBIT are set.
        D128PBIT are set.
        (decnumber_dep): Define.
        (decnumber_dep): Define.
        * doc/libgcc.texi (Decimal float library routines): New node.
        * doc/libgcc.texi (Decimal float library routines): New node.
        * config/dfp-bit.h, config/dfp-bit.c: New files.
        * config/dfp-bit.h, config/dfp-bit.c: New files.
2006-01-18  Ben Elliston  
2006-01-18  Ben Elliston  
        * expr.c (emit_move_change_mode): Always adjust addresses, not
        * expr.c (emit_move_change_mode): Always adjust addresses, not
        just during reload.  Copy replacements only during reload.
        just during reload.  Copy replacements only during reload.
        (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
        (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
        emit_move_via_integer.
        emit_move_via_integer.
2006-01-17  Shantonu Sen  
2006-01-17  Shantonu Sen  
        * Makefile.in (check-%, check-consistency): Use $${srcdir}
        * Makefile.in (check-%, check-consistency): Use $${srcdir}
        instead of $(srcdir) and ${srcdir}.
        instead of $(srcdir) and ${srcdir}.
2006-01-17  Richard Earnshaw  
2006-01-17  Richard Earnshaw  
        PR target/592
        PR target/592
        PR middle-end/11135
        PR middle-end/11135
        * arm.h (struct machine_function): Add pic_reg.
        * arm.h (struct machine_function): Add pic_reg.
        * arm.c (arm_pic_register): Make unsigned.
        * arm.c (arm_pic_register): Make unsigned.
        (arm_override_options): Only set arm_pic_register if
        (arm_override_options): Only set arm_pic_register if
        TARGET_SINGLE_PIC_BASE.
        TARGET_SINGLE_PIC_BASE.
        (use_return_insn): Only test for a pic register if it is fixed.
        (use_return_insn): Only test for a pic register if it is fixed.
        (arm_compute_save_reg0_reg12_mask): Likewise.
        (arm_compute_save_reg0_reg12_mask): Likewise.
        (thumb_compute_save_reg_mask): Likewise.
        (thumb_compute_save_reg_mask): Likewise.
        (legitimate_pic_operand): Factor out some known invariants.
        (legitimate_pic_operand): Factor out some known invariants.
        (legitimize_pic_address): If we don't have a fixed pic register,
        (legitimize_pic_address): If we don't have a fixed pic register,
        then set up a pseudo in the function entry sequence.  Handle the
        then set up a pseudo in the function entry sequence.  Handle the
        pic base being in a pseudo.
        pic base being in a pseudo.
        (arm_load_pic_register): Handle the pic register being in a pseudo.
        (arm_load_pic_register): Handle the pic register being in a pseudo.
        (arm_expand_prologue): Only set up the pic register if it is fixed.
        (arm_expand_prologue): Only set up the pic register if it is fixed.
        (thumb_expand_prologue): Likewise.
        (thumb_expand_prologue): Likewise.
        * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
        * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
        (pic_load_addr_based_insn): Likewise.
        (pic_load_addr_based_insn): Likewise.
        (builtin_setjmp_receiver): Don't restore the pic base if it isn't
        (builtin_setjmp_receiver): Don't restore the pic base if it isn't
        fixed.
        fixed.
2006-01-18  Ben Elliston  
2006-01-18  Ben Elliston  
        * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
        * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
        decimal float modes for all floating point registers.
        decimal float modes for all floating point registers.
        * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
        * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
        match_code "mem" with match_test "macho_lo_sum_memory_operand".
        match_code "mem" with match_test "macho_lo_sum_memory_operand".
2006-01-17  Jakub Jelinek  
2006-01-17  Jakub Jelinek  
        PR c/25682
        PR c/25682
        * c-typeck.c (build_unary_op): Fold offsetof-like expressions
        * c-typeck.c (build_unary_op): Fold offsetof-like expressions
        even when the pointer is not NULL.
        even when the pointer is not NULL.
2006-01-16  Ian Lance Taylor  
2006-01-16  Ian Lance Taylor  
        * common.opt (ftoplevel-reorder): New option.
        * common.opt (ftoplevel-reorder): New option.
        * cgraph.c (cgraph_asm_nodes): New global variable.
        * cgraph.c (cgraph_asm_nodes): New global variable.
        (cgraph_asm_last_node): New static variable.
        (cgraph_asm_last_node): New static variable.
        (cgraph_order): New global variable.
        (cgraph_order): New global variable.
        (cgraph_create_node): Set new order field.
        (cgraph_create_node): Set new order field.
        (cgraph_varpool_node): Likewise.
        (cgraph_varpool_node): Likewise.
        (decide_is_variable_needed): Return true if not
        (decide_is_variable_needed): Return true if not
        flag_toplevel_reorder.
        flag_toplevel_reorder.
        (cgraph_add_asm_node): New function.
        (cgraph_add_asm_node): New function.
        * cgraph.h (struct cgraph_node): Add order field.
        * cgraph.h (struct cgraph_node): Add order field.
        (struct cgraph_varpool_node): Add order field.
        (struct cgraph_varpool_node): Add order field.
        (struct cgraph_asm_node): Define.
        (struct cgraph_asm_node): Define.
        (cgraph_asm_nodes, cgraph_order): Declare.
        (cgraph_asm_nodes, cgraph_order): Declare.
        (cgraph_add_asm_node): Declare.
        (cgraph_add_asm_node): Declare.
        * cgraphunit.c (cgraph_varpool_assemble_decl): New static
        * cgraphunit.c (cgraph_varpool_assemble_decl): New static
        function.
        function.
        (cgraph_varpool_assemble_pending_decls): Call it.
        (cgraph_varpool_assemble_pending_decls): Call it.
        (cgraph_output_pending_asms): New static function.
        (cgraph_output_pending_asms): New static function.
        (cgraph_finalize_compilation_unit): Call it.
        (cgraph_finalize_compilation_unit): Call it.
        (struct cgraph_order_sort): Define.
        (struct cgraph_order_sort): Define.
        (cgraph_output_in_order): New static function.
        (cgraph_output_in_order): New static function.
        (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
        (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
        !flag_toplevel_reorder case.
        !flag_toplevel_reorder case.
        * c-parser.c: Include "cgraph.h".
        * c-parser.c: Include "cgraph.h".
        (c_parser_asm_definition): Call cgraph_add_asm_node rather than
        (c_parser_asm_definition): Call cgraph_add_asm_node rather than
        assemble_asm.
        assemble_asm.
        * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
        * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
        than -fno-unit-at-a-time.
        than -fno-unit-at-a-time.
        * doc/invoke.texi (Option Summary): Mention
        * doc/invoke.texi (Option Summary): Mention
        -fno-toplevel-reorder.
        -fno-toplevel-reorder.
        (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
        (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
        -funit-at-a-time documentation.
        -funit-at-a-time documentation.
2006-01-17  Hans-Peter Nilsson  
2006-01-17  Hans-Peter Nilsson  
            Kazu Hirata  
            Kazu Hirata  
        * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
        * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
2006-01-17  Kazu Hirata  
2006-01-17  Kazu Hirata  
        * Makefile.in (FUNCTION_H): New.  Use it instead of
        * Makefile.in (FUNCTION_H): New.  Use it instead of
        function.h throughout the file.
        function.h throughout the file.
        * function.h: Include tree.h.
        * function.h: Include tree.h.
2006-01-17  Ben Elliston  
2006-01-17  Ben Elliston  
        * recog.c: Separate some functions with whitespace.
        * recog.c: Separate some functions with whitespace.
2006-01-16  Richard Henderson  
2006-01-16  Richard Henderson  
        Merge from gomp branch:
        Merge from gomp branch:
        * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
        * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
        * tree-inline.h (struct copy_body_data): Move from tree-inline.c
        * tree-inline.h (struct copy_body_data): Move from tree-inline.c
        and rename from struct inline_data.  Rename callee* to dst*;
        and rename from struct inline_data.  Rename callee* to dst*;
        caller* to src*; add copy_decl hook, transform_call_graph_edges,
        caller* to src*; add copy_decl hook, transform_call_graph_edges,
        transform_new_cfg, transform_return_to_modify, and
        transform_new_cfg, transform_return_to_modify, and
        transform_lang_insert_block flags; remove cloning_p, versioning_p,
        transform_lang_insert_block flags; remove cloning_p, versioning_p,
        update_clones_p.
        update_clones_p.
        (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
        (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
        (copy_decl_for_dup): Remove.
        (copy_decl_for_dup): Remove.
        * tree-inline.c (struct inline_data): Move to header.
        * tree-inline.c (struct inline_data): Move to header.
        (insert_decl_map): Export.
        (insert_decl_map): Export.
        (remap_decl): Update for member name changes.  Use copy_decl hook.
        (remap_decl): Update for member name changes.  Use copy_decl hook.
        Allow for replacement to be a non-decl.  Remove dead code.
        Allow for replacement to be a non-decl.  Remove dead code.
        (remap_type_1): Check for existing mapping.
        (remap_type_1): Check for existing mapping.
        (remap_type): Export.
        (remap_type): Export.
        (remap_decls): Update for member name changes.
        (remap_decls): Update for member name changes.
        (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
        (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
        (copy_body, setup_one_parameter, declare_return_variable): Likewise.
        (copy_body, setup_one_parameter, declare_return_variable): Likewise.
        (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
        (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
        (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
        (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
        (tree_function_versioning, build_duplicate_type): Likewise.
        (tree_function_versioning, build_duplicate_type): Likewise.
        (copy_body_r): Likewise.  Export.
        (copy_body_r): Likewise.  Export.
        (copy_decl_for_dup): Split into ...
        (copy_decl_for_dup): Split into ...
        (copy_decl_for_dup_finish, copy_decl_to_var,
        (copy_decl_for_dup_finish, copy_decl_to_var,
        copy_decl_no_change, copy_decl_maybe_to_var): ... these.
        copy_decl_no_change, copy_decl_maybe_to_var): ... these.
        (replace_ref_tree, inlining_p): Remove.
        (replace_ref_tree, inlining_p): Remove.
2006-01-16  Kazu Hirata  
2006-01-16  Kazu Hirata  
        * ifcvt.c (if_convert): Make it static.
        * ifcvt.c (if_convert): Make it static.
        * rtl.h: Remove the prototype for if_convert.
        * rtl.h: Remove the prototype for if_convert.
        * local-alloc.c (local_alloc): Make it static.
        * local-alloc.c (local_alloc): Make it static.
        * rtl.h: Remove the prototype for local_alloc.
        * rtl.h: Remove the prototype for local_alloc.
        * loop.c (loop_optimize): Make it static.
        * loop.c (loop_optimize): Make it static.
        * cfgloop.h: Remove the prototype for loop_optimize.
        * cfgloop.h: Remove the prototype for loop_optimize.
        * rtl.h: Likewise.
        * rtl.h: Likewise.
2006-01-16  DJ Delorie  
2006-01-16  DJ Delorie  
        * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
        * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
        mems.
        mems.
2006-01-16  John David Anglin  
2006-01-16  John David Anglin  
        * pa.md: Disparage copies between general and floating-point registers
        * pa.md: Disparage copies between general and floating-point registers
        in 32-bit move patterns.
        in 32-bit move patterns.
2006-01-16  H.J. Lu  
2006-01-16  H.J. Lu  
        PR testsuite/25741
        PR testsuite/25741
        * Makefile.in (check-%): Depend on site.exp instead of
        * Makefile.in (check-%): Depend on site.exp instead of
        $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
        $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
        directories.
        directories.
2006-01-16  Kazu Hirata  
2006-01-16  Kazu Hirata  
        * global.c (global_alloc): Make it static.
        * global.c (global_alloc): Make it static.
        * rtl.h: Remove the prototype for global_alloc.
        * rtl.h: Remove the prototype for global_alloc.
2006-01-16  Richard Guenther  
2006-01-16  Richard Guenther  
        * tree-ssa-alias.c (struct used_part): Add write_only field.
        * tree-ssa-alias.c (struct used_part): Add write_only field.
        (get_or_create_used_part_for): Initialize it to true.
        (get_or_create_used_part_for): Initialize it to true.
        (create_overlap_variables_for): Don't create structure variables
        (create_overlap_variables_for): Don't create structure variables
        for structures that only are written to.
        for structures that only are written to.
        (find_used_portions): Handle MODIFY_EXPR to track whether a
        (find_used_portions): Handle MODIFY_EXPR to track whether a
        structure is only written to.
        structure is only written to.
2006-01-16  Kazu Hirata  
2006-01-16  Kazu Hirata  
        * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
        * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
        static.
        static.
        * basic-block.h: Remove the prototype for
        * basic-block.h: Remove the prototype for
        partition_hot_cold_basic_blocks.
        partition_hot_cold_basic_blocks.
2006-01-16  Rafael Ãvila de EspÃ�­ndola 
2006-01-16  Rafael Ãvila de EspÃ�­ndola 
        * cppspec.c (lang_specific_spec_functions): Remove.
        * cppspec.c (lang_specific_spec_functions): Remove.
        * gcc.c (lookup_spec_function): Use static_spec_functions directly.
        * gcc.c (lookup_spec_function): Use static_spec_functions directly.
        * gcc.h (lang_specific_spec_functions): Remove.
        * gcc.h (lang_specific_spec_functions): Remove.
        * gccspec.c (lang_specific_spec_functions): Remove.
        * gccspec.c (lang_specific_spec_functions): Remove.
2006-01-16  Paolo Bonzini  
2006-01-16  Paolo Bonzini  
        * combine.c (record_value_for_reg): Invalidate registers
        * combine.c (record_value_for_reg): Invalidate registers
        if INSN is null.
        if INSN is null.
        (record_dead_and_set_regs_1): Likewise, by passing them to
        (record_dead_and_set_regs_1): Likewise, by passing them to
        record_value_for_reg.
        record_value_for_reg.
        (record_dead_and_set_regs): Invalidate stores made by a
        (record_dead_and_set_regs): Invalidate stores made by a
        call.  We do not combine across a call, but we still
        call.  We do not combine across a call, but we still
        relied on equivalences.
        relied on equivalences.
2006-01-16  Eric Botcazou  
2006-01-16  Eric Botcazou  
        * tree-vrp.c (extract_range_from_binary_expr): Cope with
        * tree-vrp.c (extract_range_from_binary_expr): Cope with
        vrp_int_const_binop returning non-constant nodes.
        vrp_int_const_binop returning non-constant nodes.
2006-01-16  Paul Brook  
2006-01-16  Paul Brook  
        * config/m68k/m68k.c (output_move_const_into_data_reg):
        * config/m68k/m68k.c (output_move_const_into_data_reg):
        Output correct mnemonic for mvz and mvs.
        Output correct mnemonic for mvz and mvs.
2006-01-16  Gabor Loki  
2006-01-16  Gabor Loki  
        * rtl-factoring.c: Add sequence abstraction algorithm.
        * rtl-factoring.c: Add sequence abstraction algorithm.
        * cfgcleanup.c (outgoing_edges_match): Extra checks.
        * cfgcleanup.c (outgoing_edges_match): Extra checks.
        (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
        (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
        ABNORMAL edges.
        ABNORMAL edges.
        (block_has_preserve_label): New function.
        (block_has_preserve_label): New function.
        * common.opt: Register new pass.
        * common.opt: Register new pass.
        * Makefile.in: Ditto.
        * Makefile.in: Ditto.
        * passes.c: Ditto.
        * passes.c: Ditto.
        * timevar.def: Ditto.
        * timevar.def: Ditto.
        * tree-pass.h: Ditto.
        * tree-pass.h: Ditto.
        * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
        * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
        * rtl.h (make_jump_insn_raw): Add forward decl.
        * rtl.h (make_jump_insn_raw): Add forward decl.
        * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
        * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
2006-01-16  Eric Botcazou  
2006-01-16  Eric Botcazou  
            Roger Sayle  
            Roger Sayle  
        * fold-const.c (fold_minmax): New static function.
        * fold-const.c (fold_minmax): New static function.
        (fold_binary) : Call it.
        (fold_binary) : Call it.
        : Likewise.
        : Likewise.
        * stor-layout.c (place_field): Use DECL_SIZE consistently
        * stor-layout.c (place_field): Use DECL_SIZE consistently
        in the computation of the new record size.
        in the computation of the new record size.
2006-01-16  Kazu Hirata  
2006-01-16  Kazu Hirata  
        * cse.c (cse_condition_code_reg): Make it static.
        * cse.c (cse_condition_code_reg): Make it static.
        * rtl.h: Remove the prototype for cse_condition_code_reg.
        * rtl.h: Remove the prototype for cse_condition_code_reg.
        * combine.c (combine_instructions): Make it static.
        * combine.c (combine_instructions): Make it static.
        * rtl.h: Remove the prototype for combine_instructions.
        * rtl.h: Remove the prototype for combine_instructions.
2006-01-15  John David Anglin  
2006-01-15  John David Anglin  
        PR target/25168
        PR target/25168
        * tree.c (get_file_function_name_long): Concatenate the first global
        * tree.c (get_file_function_name_long): Concatenate the first global
        object name with a string derived from the input filename of the object
        object name with a string derived from the input filename of the object
        for type "F".
        for type "F".
2006-01-16  Ben Elliston  
2006-01-16  Ben Elliston  
        * config/i386/winnt-stubs.c: Update FSF address.
        * config/i386/winnt-stubs.c: Update FSF address.
        * config/xtensa/ieee754-df.S: Ditto.
        * config/xtensa/ieee754-df.S: Ditto.
        * config/xtensa/ieee754-sf.S: Ditto.
        * config/xtensa/ieee754-sf.S: Ditto.
2006-01-14  Ian Lance Taylor  
2006-01-14  Ian Lance Taylor  
        * ifcvt.c (noce_init_if_info): New static function, broken out of
        * ifcvt.c (noce_init_if_info): New static function, broken out of
        noce_process_if_block.
        noce_process_if_block.
        (noce_process_if_block): Call noce_init_if_info.
        (noce_process_if_block): Call noce_init_if_info.
        (check_cond_move_block): New static function.
        (check_cond_move_block): New static function.
        (cond_move_process_if_block): New static function.
        (cond_move_process_if_block): New static function.
        (process_if_block): Call cond_move_process_if_block.
        (process_if_block): Call cond_move_process_if_block.
2006-01-15  Kazu Hirata  
2006-01-15  Kazu Hirata  
        * cselib.c (hash_table): Rename to cselib_hash_table.
        * cselib.c (hash_table): Rename to cselib_hash_table.
        (cselib_clear_table, discard_useless_values,
        (cselib_clear_table, discard_useless_values,
        remove_useless_values, cselib_lookup_mem, cselib_lookup,
        remove_useless_values, cselib_lookup_mem, cselib_lookup,
        cselib_init, cselib_finish): Adjust uses of hash_table.
        cselib_init, cselib_finish): Adjust uses of hash_table.
2006-01-14  Kazu Hirata  
2006-01-14  Kazu Hirata  
        PR tree-optimization/25485
        PR tree-optimization/25485
        * tree-vrp.c (extract_range_from_binary_expr): Handle cases
        * tree-vrp.c (extract_range_from_binary_expr): Handle cases
        where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
        where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
        is known to be false and true, respectively.
        is known to be false and true, respectively.
2006-01-14  Richard Guenther  
2006-01-14  Richard Guenther  
        PR tree-optimization/22548
        PR tree-optimization/22548
        PR tree-optimization/22555
        PR tree-optimization/22555
        PR tree-optimization/22501
        PR tree-optimization/22501
        * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
        * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
        * params.def (salias-max-array-elements): New parameter.
        * params.def (salias-max-array-elements): New parameter.
        * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
        * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
        * doc/invoke.texi (salias-max-array-elements): Document.
        * doc/invoke.texi (salias-max-array-elements): Document.
        * tree-flow-inline.h (var_can_have_subvars): We also handle
        * tree-flow-inline.h (var_can_have_subvars): We also handle
        arrays now.
        arrays now.
        * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
        * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
        COMPONENT_REF.
        COMPONENT_REF.
        * tree-ssa-structalias.c (params.h): Include.
        * tree-ssa-structalias.c (params.h): Include.
        (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
        (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
        (find_func_aliases): Handle multiple constraints from ARRAY_REF.
        (find_func_aliases): Handle multiple constraints from ARRAY_REF.
        (get_constraint_for): For ADDR_EXPR operating on something
        (get_constraint_for): For ADDR_EXPR operating on something
        containing an ARRAY_REF, add all subvars to the solution.
        containing an ARRAY_REF, add all subvars to the solution.
        (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
        (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
        * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
        * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
        for creating MUST_DEFs.
        for creating MUST_DEFs.
        (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
        (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
2006-01-14  Zdenek Dvorak 
2006-01-14  Zdenek Dvorak 
        * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
        * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
        functions.
        functions.
        (number_of_iterations_ne, number_of_iterations_lt_to_ne,
        (number_of_iterations_ne, number_of_iterations_lt_to_ne,
        assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
        assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
        number_of_iterations_le): New functions.
        number_of_iterations_le): New functions.
        (number_of_iterations_special): Removed.
        (number_of_iterations_special): Removed.
        (number_of_iterations_exit): Do not use number_of_iterations_special.
        (number_of_iterations_exit): Do not use number_of_iterations_special.
        * tree.c (unsigned_type_for): Always return integer type.
        * tree.c (unsigned_type_for): Always return integer type.
2006-01-14  Steven Bosscher  
2006-01-14  Steven Bosscher  
        Richard Guenther  
        Richard Guenther  
        PR rtl-optimization/24257
        PR rtl-optimization/24257
        * gcse.c (find_moveable_store): Only consider a store movable
        * gcse.c (find_moveable_store): Only consider a store movable
        when the SET_SRC of the insn can be assigned to a register.
        when the SET_SRC of the insn can be assigned to a register.
2006-01-14  Ian Lance Taylor  
2006-01-14  Ian Lance Taylor  
        * tree.c (tree_not_class_check_failed): New function.
        * tree.c (tree_not_class_check_failed): New function.
        * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
        * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
        (tree_not_class_check_failed): Declare.
        (tree_not_class_check_failed): Declare.
2006-01-13  Ian Lance Taylor  
2006-01-13  Ian Lance Taylor  
        * reload1.c (do_output_reload): Add assertion rejecting a
        * reload1.c (do_output_reload): Add assertion rejecting a
        CALL_INSN.
        CALL_INSN.
2006-01-13  Adam Nemet  
2006-01-13  Adam Nemet  
        * combine.c (struct reg_stat): Add new fields truncation_label and
        * combine.c (struct reg_stat): Add new fields truncation_label and
        truncated_to_mode.
        truncated_to_mode.
        (record_value_for_reg): Reset truncated_to_mode.
        (record_value_for_reg): Reset truncated_to_mode.
        (record_truncated_value): New function.
        (record_truncated_value): New function.
        (check_promoted_subreg): Call it.  Rename to check_conversions.
        (check_promoted_subreg): Call it.  Rename to check_conversions.
        (combine_instructions): Rename check_promoted_subreg to
        (combine_instructions): Rename check_promoted_subreg to
        check_conversions.
        check_conversions.
        (reg_truncated_to_mode): New function.
        (reg_truncated_to_mode): New function.
        (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
        (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
        (gen_lowpart_or_truncate): New function.
        (gen_lowpart_or_truncate): New function.
        (force_to_mode): Use it instead of gen_lowpart.
        (force_to_mode): Use it instead of gen_lowpart.
2006-01-13  Diego Novillo  
2006-01-13  Diego Novillo  
        * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
        * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
        VAR is a tag, not its type tag.
        VAR is a tag, not its type tag.
2006-01-13  Alexandre Oliva  
2006-01-13  Alexandre Oliva  
        * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
        * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
        alternatives to match style of other entries.
        alternatives to match style of other entries.
        (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
        (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
2006-01-13  Daniel Berlin  
2006-01-13  Daniel Berlin  
        PR tree-optimization/25771
        PR tree-optimization/25771
        * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
        * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
        SSA_NAMES.
        SSA_NAMES.
2006-01-13  Andrew Pinski  
2006-01-13  Andrew Pinski  
        PR tree-opt/24365
        PR tree-opt/24365
        * tree-inline.c (declare_return_variable): If the return variable
        * tree-inline.c (declare_return_variable): If the return variable
        was marked as a non gimple complex, set the return slot variable
        was marked as a non gimple complex, set the return slot variable
        to be a non gimple comple variable.
        to be a non gimple comple variable.
2006-01-13  Richard Guenther  
2006-01-13  Richard Guenther  
        * builtins.c (expand_builtin_sincos): New function.
        * builtins.c (expand_builtin_sincos): New function.
        (expand_builtin_mathfn_3): Remove dead code, sin and cos
        (expand_builtin_mathfn_3): Remove dead code, sin and cos
        do not set errno.
        do not set errno.
        (expand_builtin): Expand sincos using expand_builtin_sincos.
        (expand_builtin): Expand sincos using expand_builtin_sincos.
2006-01-12  DJ Delorie  
2006-01-12  DJ Delorie  
        * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
        * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
        shift counts, separate SI shifts for m32c vs m16c, pass shift type
        shift counts, separate SI shifts for m32c vs m16c, pass shift type
        so that constant shifts can be split.
        so that constant shifts can be split.
        * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
        * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
        (m32c_valid_pointer_mode): Make static.
        (m32c_valid_pointer_mode): Make static.
        (shift_gen_func_for): New.
        (shift_gen_func_for): New.
        (m32c_prepare_shift): Use it.  Split large const shifts into
        (m32c_prepare_shift): Use it.  Split large const shifts into
        multiple shifts.
        multiple shifts.
        * config/m32c/predicates.md (shiftcount_operand): Allow more
        * config/m32c/predicates.md (shiftcount_operand): Allow more
        general operands.
        general operands.
        (longshiftcount_operand): New.
        (longshiftcount_operand): New.
        * doc/md.texi (Machine Constraints): Document In6.
        * doc/md.texi (Machine Constraints): Document In6.
2006-01-13  Ben Elliston  
2006-01-13  Ben Elliston  
        * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
        * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
        REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
        REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
        documentation.
        documentation.
2006-01-12  Daniel Berlin  
2006-01-12  Daniel Berlin  
        * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
        * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
        to try to avoid clobbering pieces of structures when we know
        to try to avoid clobbering pieces of structures when we know
        something about the whole structure.
        something about the whole structure.
        * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
        * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
2006-01-13  Ben Elliston  
2006-01-13  Ben Elliston  
        * doc/rtl.texi (Insns): Remove statement that libcalls cannot
        * doc/rtl.texi (Insns): Remove statement that libcalls cannot
        return in memory, as this is no limitation is no longer present.
        return in memory, as this is no limitation is no longer present.
2006-01-12  DJ Delorie  
2006-01-12  DJ Delorie  
        * config/m32c/addsub.md (addhi3): Add two more alternatives, for
        * config/m32c/addsub.md (addhi3): Add two more alternatives, for
        mova with fb, and for fb+0 -> An.
        mova with fb, and for fb+0 -> An.
        * config/m32c/mov.md (peephole2): Fix enabling logic.
        * config/m32c/mov.md (peephole2): Fix enabling logic.
        * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
        * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
        DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
        DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
        DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
        DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
        FINI_ARRAY_SECTION_ASM_OP): Define.
        FINI_ARRAY_SECTION_ASM_OP): Define.
        * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
        * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
        variable.
        variable.
        (m32c_legitimize_reload_address): New logic to reload FB to An.
        (m32c_legitimize_reload_address): New logic to reload FB to An.
        (m32c_output_reg_push): Add newline.
        (m32c_output_reg_push): Add newline.
        (m32c_output_reg_pop): Likewise.
        (m32c_output_reg_pop): Likewise.
2006-01-12  Ulrich Weigand  
2006-01-12  Ulrich Weigand  
        * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
        * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
2006-01-11  Andrew Pinski  
2006-01-11  Andrew Pinski  
        * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
        * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
2006-01-11  Kazu Hirata  
2006-01-11  Kazu Hirata  
        * config/sh/predicates.md (sh_rep_vec): Add parallel to
        * config/sh/predicates.md (sh_rep_vec): Add parallel to
        match_code.
        match_code.
2006-01-11  Ben Elliston  
2006-01-11  Ben Elliston  
        * rtlanal.c (find_reg_note): Assert insn is not null.
        * rtlanal.c (find_reg_note): Assert insn is not null.
2006-01-11  Kenneth Zadeck 
2006-01-11  Kenneth Zadeck 
        * df-scan.c (df_hard_reg_init): Move declaration of i outside
        * df-scan.c (df_hard_reg_init): Move declaration of i outside
        ifdef.
        ifdef.
2006-01-11  Jeff Law  
2006-01-11  Jeff Law  
        * tree-ssa-threadupdate.c (threaded_edges): New VEC to
        * tree-ssa-threadupdate.c (threaded_edges): New VEC to
        hold edge pairs.
        hold edge pairs.
        (mark_threaded_blocks, register_jump_thread): New functions.
        (mark_threaded_blocks, register_jump_thread): New functions.
        (thread_through_all_blocks): Remove unwanted argument.  No
        (thread_through_all_blocks): Remove unwanted argument.  No
        longer rely on e->aux to communicate thread target info.
        longer rely on e->aux to communicate thread target info.
        Call mark_threaded_blocks.  Release the threaded_blocks
        Call mark_threaded_blocks.  Release the threaded_blocks
        bitmap and threaded_edges vector when complete.
        bitmap and threaded_edges vector when complete.
        * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
        * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
        (threaded_blocks): Remove.
        (threaded_blocks): Remove.
        (tree_ssa_dominator_optimize): Remove initialization and
        (tree_ssa_dominator_optimize): Remove initialization and
        finalization of threaded_blocks.  Simplify call to
        finalization of threaded_blocks.  Simplify call to
        thread_through_all_blocks.
        thread_through_all_blocks.
        (thread_across_edge): Call register_jump_thread rather than
        (thread_across_edge): Call register_jump_thread rather than
        storing thread information into e->aux.
        storing thread information into e->aux.
        (free_all_edge_infos): Simplify now that e->aux is no longer
        (free_all_edge_infos): Simplify now that e->aux is no longer
        used to communicate with thread_through_all_blocks.
        used to communicate with thread_through_all_blocks.
        * tree-flow.h (thread_through_all_blocks): Update prototype.
        * tree-flow.h (thread_through_all_blocks): Update prototype.
        (register_jump_thread): Prototype.
        (register_jump_thread): Prototype.
2006-01-11  Kazu Hirata  
2006-01-11  Kazu Hirata  
        * df-core.c (df_compact_blocks, df_bb_replace): Use
        * df-core.c (df_compact_blocks, df_bb_replace): Use
        SET_BASIC_BLOCK instead of BASIC_BLOCK.
        SET_BASIC_BLOCK instead of BASIC_BLOCK.
2006-01-11  Richard Guenther  
2006-01-11  Richard Guenther  
        PR tree-optimization/25734
        PR tree-optimization/25734
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
        stop propagation after successful propagation to the LHS.
        stop propagation after successful propagation to the LHS.
2006-01-11  Kazu Hirata  
2006-01-11  Kazu Hirata  
        * basic-block.h (control_flow_graph): Change the type of
        * basic-block.h (control_flow_graph): Change the type of
        x_basic_block_info to VEC(basic_block,gc) *.
        x_basic_block_info to VEC(basic_block,gc) *.
        (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
        (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
        basic_block_info.
        basic_block_info.
        (SET_BASIC_BLOCK): New.
        (SET_BASIC_BLOCK): New.
        * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
        * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
        instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
        instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
        * cfgbuild.c (find_basic_blocks): Likewise.
        * cfgbuild.c (find_basic_blocks): Likewise.
        * cfglayout.c (fixup_reorder_chain): Likewise.
        * cfglayout.c (fixup_reorder_chain): Likewise.
        * cfgrtl.c (create_basic_block_structure,
        * cfgrtl.c (create_basic_block_structure,
        rtl_create_basic_block): Likewise.
        rtl_create_basic_block): Likewise.
        * ifcvt.c (find_if_case_1): Likewise.
        * ifcvt.c (find_if_case_1): Likewise.
        * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
        * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
        Likewise.
        Likewise.
2006-01-11  Kenneth Zadeck 
2006-01-11  Kenneth Zadeck 
        * Makefile.in: Removed rotted odf.c entry.
        * Makefile.in: Removed rotted odf.c entry.
2006-01-11  Hans-Peter Nilsson  
2006-01-11  Hans-Peter Nilsson  
        PR target/25706
        PR target/25706
        * config/cris/cris.md ("*extopqihi_side", "*extopsi_side")
        * config/cris/cris.md ("*extopqihi_side", "*extopsi_side")
        ("*extopsi_swap_side_biap", "*extopsi_swap_side",
        ("*extopsi_swap_side_biap", "*extopsi_swap_side",
        ("*extopqihi", "*extopsi", "*extopsi_swap"): Use %E
        ("*extopqihi", "*extopsi", "*extopsi_swap"): Use %E
        output pattern modifier, not %e.
        output pattern modifier, not %e.
        * config/cris/cris.c (cris_op_str): Update comment about pattern
        * config/cris/cris.c (cris_op_str): Update comment about pattern
        modifier.
        modifier.
        (cris_print_operand) : Clear cris_output_insn_is_bound
        (cris_print_operand) : Clear cris_output_insn_is_bound
        before falling through into...
        before falling through into...
        : Redefined from old 'e' case.
        : Redefined from old 'e' case.
2006-01-11  Jan Hubicka  
2006-01-11  Jan Hubicka  
        PR target/25042
        PR target/25042
        * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
        * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
2006-01-11  Jan Hubicka  
2006-01-11  Jan Hubicka  
        * i386.h (TARGET_DECOMPOSE_LEA): Kill.
        * i386.h (TARGET_DECOMPOSE_LEA): Kill.
        * i386.c (x86_decompose_lea): Kill.
        * i386.c (x86_decompose_lea): Kill.
        (ix86_rtx_costs): Kill.
        (ix86_rtx_costs): Kill.
2006-01-11  Jan Hubicka  
2006-01-11  Jan Hubicka  
        * cgraph.c (cgraph_insert_node_to_hashtable): New function.
        * cgraph.c (cgraph_insert_node_to_hashtable): New function.
        * cgraph.h (cgraph_node): Add inline_decl.
        * cgraph.h (cgraph_node): Add inline_decl.
        (cgraph_insert_node_to_hashtable): Declare.
        (cgraph_insert_node_to_hashtable): Declare.
        (save_inline_function_body): Declare.
        (save_inline_function_body): Declare.
        * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
        * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
        clones.
        clones.
        (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
        (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
        (cgraph_function_versioning): Update call of tree_function_versioning.
        (cgraph_function_versioning): Update call of tree_function_versioning.
        (save_inline_function_body): New function.
        (save_inline_function_body): New function.
        * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
        * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
        saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
        saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
        * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
        * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
        (cgraph_default_inline_p): Likewise.
        (cgraph_default_inline_p): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise.
        (cgraph_decide_inlining_incrementally): Likewise.
        * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
        * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
        (copy_bb): Kill saving; do updating of clones.
        (copy_bb): Kill saving; do updating of clones.
        (copy_cfg_body): Kill saving.
        (copy_cfg_body): Kill saving.
        (initialize_inlined-parameters): Likewise.
        (initialize_inlined-parameters): Likewise.
        (expand_call_inline): Likewise.
        (expand_call_inline): Likewise.
        (save_body): Kill.
        (save_body): Kill.
        (tree_function_versioning): New parameter "update_clones".
        (tree_function_versioning): New parameter "update_clones".
        (inlining_p): Kill saving.
        (inlining_p): Kill saving.
        * tree-inline.h (tree_function_versioning): Update prototype.
        * tree-inline.h (tree_function_versioning): Update prototype.
        * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
        * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
        saving.
        saving.
2006-01-11  Ian Lance Taylor 
2006-01-11  Ian Lance Taylor 
        * combine.c (struct undo): Remove is_int.  Enumify types of undos.
        * combine.c (struct undo): Remove is_int.  Enumify types of undos.
        Allow undoing set of machine mode.
        Allow undoing set of machine mode.
        (do_SUBST): Use enums instead of is_int.
        (do_SUBST): Use enums instead of is_int.
        (do_SUBST_MODE): New function.
        (do_SUBST_MODE): New function.
        (SUBST_MODE): New macro.
        (SUBST_MODE): New macro.
        (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
        (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
        reg and trying to replace reg_regno_rtx with a new register.
        reg and trying to replace reg_regno_rtx with a new register.
        (undo_all): Use new enums, handle undoing a PUT_MODE change.
        (undo_all): Use new enums, handle undoing a PUT_MODE change.
        (simplify_set): Use SUBST_MODE.
        (simplify_set): Use SUBST_MODE.
        (distribute_notes): Remove code that tried to update reg notes
        (distribute_notes): Remove code that tried to update reg notes
        for regno_reg_rtx changes.
        for regno_reg_rtx changes.
2006-01-11  Paolo Bonzini  
2006-01-11  Paolo Bonzini  
        PR tree-optimization/23109
        PR tree-optimization/23109
        PR tree-optimization/23948
        PR tree-optimization/23948
        PR tree-optimization/24123
        PR tree-optimization/24123
        * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
        * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
        * tree-cfg.c (single_noncomplex_succ): New.
        * tree-cfg.c (single_noncomplex_succ): New.
        * tree-flow.h (single_noncomplex_succ): Declare it.
        * tree-flow.h (single_noncomplex_succ): Declare it.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
        (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
        (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
        insert_bb, register_division_in, insert_reciprocals,
        insert_bb, register_division_in, insert_reciprocals,
        replace_reciprocal, free_bb): New.
        replace_reciprocal, free_bb): New.
        (execute_cse_reciprocals_1): Rewritten.
        (execute_cse_reciprocals_1): Rewritten.
        (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
        (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
        Do not commit any edge insertion.  Always compute dominators and
        Do not commit any edge insertion.  Always compute dominators and
        create the allocation pool.
        create the allocation pool.
        * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
        * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
        * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
        * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
        * targhooks.c (default_min_divistions_for_recip_mul): New.
        * targhooks.c (default_min_divistions_for_recip_mul): New.
        * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
        * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
        * passes.c (init_optimization_passes): Run recip after tree loop
        * passes.c (init_optimization_passes): Run recip after tree loop
        optimizations.
        optimizations.
        * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
        * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
2006-01-11  Danny Berlin 
2006-01-11  Danny Berlin 
            Kenneth Zadeck 
            Kenneth Zadeck 
        * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
        * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
        DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
        DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
        DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
        DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
        DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
        DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
        DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
        DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
        DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
        DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
        DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
        DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
        DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
        DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
        DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
        DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
        DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
        DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
        DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
        DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
        DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
        DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
        DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
        DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
        DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
        DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
        DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
        DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
        DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
        DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
        DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
        DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
        DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
        DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
        DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
        DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
        DF_SCAN_POST_ALLOC): New macros.
        DF_SCAN_POST_ALLOC): New macros.
        (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
        (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
        df_free_bb_function, df_local_compute_function, df_init_function,
        df_free_bb_function, df_local_compute_function, df_init_function,
        df_dataflow_function, df_confluence_function_0,
        df_dataflow_function, df_confluence_function_0,
        df_confluence_function_n, df_transfer_function,
        df_confluence_function_n, df_transfer_function,
        df_finalizer_function, df_free_function, df_dump_problem_function,
        df_finalizer_function, df_free_function, df_dump_problem_function,
        df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
        df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
        df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
        df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
        df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
        df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
        df_urec_bb_info, ) New types.
        df_urec_bb_info, ) New types.
        (df_invalidated_by_call, df_all_hard_regs, df_state) New public
        (df_invalidated_by_call, df_all_hard_regs, df_state) New public
        variables.
        variables.
        (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
        (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
        df_analyze_simple_change_some_blocks,
        df_analyze_simple_change_some_blocks,
        df_analyze_simple_change_one_block, df_compact_blocks,
        df_analyze_simple_change_one_block, df_compact_blocks,
        df_bb_replace, df_bb_regno_last_use_find,
        df_bb_replace, df_bb_regno_last_use_find,
        df_bb_regno_first_def_find, df_bb_regno_last_def_find,
        df_bb_regno_first_def_find, df_bb_regno_last_def_find,
        df_insn_regno_def_p, df_find_def, df_find_use,
        df_insn_regno_def_p, df_find_def, df_find_use,
        df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
        df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
        df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
        df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
        df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
        df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
        debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
        debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
        debug_df_chain, df_get_dependent_problem, df_chain_create,
        debug_df_chain, df_get_dependent_problem, df_chain_create,
        df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
        df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
        df_grow_bb_info, df_chain_dump, df_print_bb_index,
        df_grow_bb_info, df_chain_dump, df_print_bb_index,
        df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
        df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
        df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
        df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
        df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
        df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
        df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
        df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
        df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
        df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
        df_rescan_blocks, df_ref_create, df_get_artificial_defs,
        df_rescan_blocks, df_ref_create, df_get_artificial_defs,
        df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
        df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
        df_ref_remove, df_insn_refs_delete, df_refs_delete,
        df_ref_remove, df_insn_refs_delete, df_refs_delete,
        df_reorganize_refs, df_set_state, df_hard_reg_init,
        df_reorganize_refs, df_set_state, df_hard_reg_init,
        df_read_modify_subreg_p) New public functions.
        df_read_modify_subreg_p) New public functions.
        * df-core.c: The core dataflow solver and glue routines for rtl
        * df-core.c: The core dataflow solver and glue routines for rtl
        dataflow.
        dataflow.
        (df_init, df_add_problem, df_set_blocks, df_finish,
        (df_init, df_add_problem, df_set_blocks, df_finish,
        df_hybrid_search_forward, df_hybrid_search_backward,
        df_hybrid_search_forward, df_hybrid_search_backward,
        df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
        df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
        df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
        df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
        df_bb_regno_last_use_find, df_bb_regno_first_def_find,
        df_bb_regno_last_use_find, df_bb_regno_first_def_find,
        df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
        df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
        df_reg_defined, df_find_use, df_reg_used, df_dump,
        df_reg_defined, df_find_use, df_reg_used, df_dump,
        df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
        df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
        df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
        df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
        debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
        debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
        debug_df_useno, reset_df_after_reload): New functions.
        debug_df_useno, reset_df_after_reload): New functions.
        * df-scan.c: The scanning fuctions, once in df.c, completely
        * df-scan.c: The scanning fuctions, once in df.c, completely
        rewritten so that they now fully model the functionality of
        rewritten so that they now fully model the functionality of
        register usage at the backend.
        register usage at the backend.
        (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
        (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
        df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
        df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
        df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
        df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
        df_grow_insn_info, df_rescan_blocks, df_ref_create,
        df_grow_insn_info, df_rescan_blocks, df_ref_create,
        df_get_artificial_defs, df_get_artificial_uses,
        df_get_artificial_defs, df_get_artificial_uses,
        df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
        df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
        df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
        df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
        df_refs_delete, df_reorganize_refs, df_set_state,
        df_refs_delete, df_reorganize_refs, df_set_state,
        df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
        df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
        df_def_record_1, df_defs_record, df_uses_record,
        df_def_record_1, df_defs_record, df_uses_record,
        df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
        df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
        df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
        df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
        df_record_exit_block_uses, df_hard_reg_init): New functions.
        df_record_exit_block_uses, df_hard_reg_init): New functions.
        * df-problems.c: Seven concrete dataflow problems that use the
        * df-problems.c: Seven concrete dataflow problems that use the
        scanning in df-scan.c and are solved by the engine in df-core.c.
        scanning in df-scan.c and are solved by the engine in df-core.c.
        (df_get_dependent_problem, df_chain_create, df_chain_unlink,
        (df_get_dependent_problem, df_chain_create, df_chain_unlink,
        df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
        df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
        df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
        df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
        df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
        df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
        df_ru_free_bb_info, df_ru_alloc,
        df_ru_free_bb_info, df_ru_alloc,
        df_ru_bb_local_compute_process_def,
        df_ru_bb_local_compute_process_def,
        df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
        df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
        df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
        df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
        df_ru_transfer_function, df_ru_free, df_ru_dump,
        df_ru_transfer_function, df_ru_free, df_ru_dump,
        df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
        df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
        df_rd_free_bb_info, df_rd_alloc,
        df_rd_free_bb_info, df_rd_alloc,
        df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
        df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
        df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
        df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
        df_rd_transfer_function, df_rd_free, df_rd_dump,
        df_rd_transfer_function, df_rd_free, df_rd_dump,
        df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
        df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
        df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
        df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
        df_lr_local_compute, df_lr_init, df_lr_confluence_0,
        df_lr_local_compute, df_lr_init, df_lr_confluence_0,
        df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
        df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
        df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
        df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
        df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
        df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
        df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
        df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
        df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
        df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
        df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
        df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
        df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
        df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
        df_urec_mark_reg_change, df_urec_check_earlyclobber,
        df_urec_mark_reg_change, df_urec_check_earlyclobber,
        df_urec_mark_reg_use_for_earlyclobber,
        df_urec_mark_reg_use_for_earlyclobber,
        df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
        df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
        df_urec_local_compute, df_urec_init, df_urec_local_finalize,
        df_urec_local_compute, df_urec_init, df_urec_local_finalize,
        df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
        df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
        df_urec_dump, df_urec_add_problem, df_chain_alloc,
        df_urec_dump, df_urec_add_problem, df_chain_alloc,
        df_chain_create_bb_process_use, df_chain_create_bb,
        df_chain_create_bb_process_use, df_chain_create_bb,
        df_chain_finalize, df_chain_free, df_chains_dump,
        df_chain_finalize, df_chain_free, df_chains_dump,
        df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
        df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
        df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
        df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
        df_reg_lifetime): New functions.
        df_reg_lifetime): New functions.
        * df.c: Deleted file.
        * df.c: Deleted file.
        * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
        * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
        consistent with new df api.
        consistent with new df api.
        * modulo-sched.c (sms_schedule, rest_of_handle_sms,
        * modulo-sched.c (sms_schedule, rest_of_handle_sms,
        rest_of_handle_sms): Ditto.
        rest_of_handle_sms): Ditto.
        * web.c (unionfind_union, union_defs, entry_register, web_main):
        * web.c (unionfind_union, union_defs, entry_register, web_main):
        Ditto.
        Ditto.
        * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
        * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
        invariant_expr_equal_p, find_defs, check_dependencies,
        invariant_expr_equal_p, find_defs, check_dependencies,
        find_invariant_insn, find_invariants_to_move, move_invariant_reg,
        find_invariant_insn, find_invariants_to_move, move_invariant_reg,
        free_inv_motion_data, move_loop_invariants): Ditto.
        free_inv_motion_data, move_loop_invariants): Ditto.
        * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
        * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
        Update dependencies.
        Update dependencies.
        (odf.c): Added defective entry that was deleted later in day.
        (odf.c): Added defective entry that was deleted later in day.
        * sched-deps.c (sched_analyze_1): Ditto.
        * sched-deps.c (sched_analyze_1): Ditto.
2006-01-11  Zdenek Dvorak 
2006-01-11  Zdenek Dvorak 
        * tree-ssa-operands.c (get_expr_operands): Record addressable
        * tree-ssa-operands.c (get_expr_operands): Record addressable
        variables directly.  Do not call add_stmt_operands for CONST_DECLs
        variables directly.  Do not call add_stmt_operands for CONST_DECLs
        and ARRAY_DECLs.
        and ARRAY_DECLs.
        (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
        (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
        (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
        (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
2006-01-11  Ben Elliston  
2006-01-11  Ben Elliston  
        * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
        * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
        function returns true in the positive case.
        function returns true in the positive case.
2006-01-10  John David Anglin  
2006-01-10  John David Anglin  
        PR target/20754
        PR target/20754
        * config/pa/pa.md: Create separate 32 and 64-bit move patterns
        * config/pa/pa.md: Create separate 32 and 64-bit move patterns
        for SI, DI, SF and DF modes.  Add alternatives to copy between
        for SI, DI, SF and DF modes.  Add alternatives to copy between
        general and floating point registers to the 32-bit patterns.
        general and floating point registers to the 32-bit patterns.
        * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
        * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
        * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
        * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
        (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
        (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
        generating 64-bit code.
        generating 64-bit code.
        * config/pa/pa.c (output_move_double): Handle copies between general
        * config/pa/pa.c (output_move_double): Handle copies between general
        and floating registers.
        and floating registers.
2006-01-10  Stuart Hastings  
2006-01-10  Stuart Hastings  
        * config/i386/i386.md (set_got): Update.
        * config/i386/i386.md (set_got): Update.
        (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
        (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
        (builtin_setjmp_receiver): Mach-O support.
        (builtin_setjmp_receiver): Mach-O support.
        * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
        * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
        (GOT_SYMBOL_NAME): Define.
        (GOT_SYMBOL_NAME): Define.
        (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
        (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
        (TARGET_DEEP_BRANCH_PREDICTION): Remove.
        (TARGET_DEEP_BRANCH_PREDICTION): Remove.
        * config/i386/i386.c (override_options): Revise for Darwin.
        * config/i386/i386.c (override_options): Revise for Darwin.
        (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
        (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
        support.  (darwin_x86_file_end): New.  (output_set_got): Add label
        support.  (darwin_x86_file_end): New.  (output_set_got): Add label
        parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
        parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
        * config/i386/i386-protos.h (output_set_got): Likewise.
        * config/i386/i386-protos.h (output_set_got): Likewise.
        * config/darwin.c (machopic_legitimize_pic_address): Update
        * config/darwin.c (machopic_legitimize_pic_address): Update
        regs_ever_live[].
        regs_ever_live[].
2006-01-10  Kaz Kojima  
2006-01-10  Kaz Kojima  
        * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
        * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
        when MODE isn't BLKmode.
        when MODE isn't BLKmode.
2006-01-10  Eric Botcazou  
2006-01-10  Eric Botcazou  
        PR rtl-optimization/25367
        PR rtl-optimization/25367
        * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
        * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
2006-01-10  Hans-Peter Nilsson  
2006-01-10  Hans-Peter Nilsson  
        PR target/25718
        PR target/25718
        * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
        * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
        for a negative bound.
        for a negative bound.
2006-01-10  Richard Guenther  
2006-01-10  Richard Guenther  
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        * tree-ssa-structalias.c (get_constraint_for_component_ref):
        Never override with anything constraint.
        Never override with anything constraint.
2006-01-10  Jan Beulich  
2006-01-10  Jan Beulich  
        * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
        * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
        256 bits when optimize_size.
        256 bits when optimize_size.
2006-01-10  Jan Beulich  
2006-01-10  Jan Beulich  
        * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
        * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
        MASK_ALIGN_DOUBLE.
        MASK_ALIGN_DOUBLE.
        * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
        * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
        * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
        * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
        arguments.
        arguments.
2006-01-10  Ben Elliston  
2006-01-10  Ben Elliston  
        * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
        * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
        float modes.
        float modes.
        * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
        * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
        (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
        (USE_FP_FOR_ARG): Reject decimal float modes.
        (USE_FP_FOR_ARG): Reject decimal float modes.
        (function_arg_advance): Likewise.
        (function_arg_advance): Likewise.
        (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
        (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
        (rs6000_handle_altivec_attribute): Do not permit decimal floating
        (rs6000_handle_altivec_attribute): Do not permit decimal floating
        point types in AltiVec vectors.
        point types in AltiVec vectors.
        (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
        (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
        (rs6000_libcall_value): Likewise.
        (rs6000_libcall_value): Likewise.
2006-01-09  Bob Wilson  
2006-01-09  Bob Wilson  
        * config/xtensa/ieee754-df.S: New file.
        * config/xtensa/ieee754-df.S: New file.
        * config/xtensa/ieee754-sf.S: New file.
        * config/xtensa/ieee754-sf.S: New file.
        * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
        * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
        (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
        (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
        * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
        * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
2006-01-09  Kazu Hirata  
2006-01-09  Kazu Hirata  
        * config/sh/predicates.md (binary_float_operator,
        * config/sh/predicates.md (binary_float_operator,
        binary_logical_operator, commutative_float_operator,
        binary_logical_operator, commutative_float_operator,
        equality_comparison_operator, greater_comparison_operator,
        equality_comparison_operator, greater_comparison_operator,
        less_comparison_operator, logical_operator,
        less_comparison_operator, logical_operator,
        noncommutative_float_operator, shift_operator,
        noncommutative_float_operator, shift_operator,
        symbol_ref_operand, unary_float_operator): Remove redundant
        symbol_ref_operand, unary_float_operator): Remove redundant
        conditionals.
        conditionals.
2006-01-09  Jeff Law  
2006-01-09  Jeff Law  
        * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
        * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
        code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
        code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
        now unused arguments.  Callers updated.
        now unused arguments.  Callers updated.
        (eliminate_redundant_computations): Remove now unused arguments,
        (eliminate_redundant_computations): Remove now unused arguments,
        callers updated.
        callers updated.
        (local_fold): Remove, no longer used.
        (local_fold): Remove, no longer used.
        (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
        (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
        and moved to...
        and moved to...
        * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
        * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
        (simplify_cond): New function.
        (simplify_cond): New function.
        (forward_propagate_into_cond): Call simplify_cond.
        (forward_propagate_into_cond): Call simplify_cond.
2006-01-09  Alexandre Oliva  
2006-01-09  Alexandre Oliva  
        * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
        * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
        (*vec_extractv2di_1_sse): New.
        (*vec_extractv2di_1_sse): New.
2006-01-09  Ben Elliston  
2006-01-09  Ben Elliston  
        * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
        * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
2006-01-08  Richard Guenther  
2006-01-08  Richard Guenther  
        * tree-ssa-structalias.c (get_constraint_for): Remove
        * tree-ssa-structalias.c (get_constraint_for): Remove
        anyoffset argument.
        anyoffset argument.
        (get_constraint_for_component_ref): Likewise.
        (get_constraint_for_component_ref): Likewise.
        (do_deref): Likewise.
        (do_deref): Likewise.
        (get_constraint_for): Likewise.
        (get_constraint_for): Likewise.
        (do_structure_copy): Likewise.
        (do_structure_copy): Likewise.
        (handle_ptr_arith): Likewise.
        (handle_ptr_arith): Likewise.
        (find_func_aliases): Likewise.  Remove unused need_anyoffset
        (find_func_aliases): Likewise.  Remove unused need_anyoffset
        variable.
        variable.
2006-01-08  J"orn Rennecke  
2006-01-08  J"orn Rennecke  
            Kaz Kojima  
            Kaz Kojima  
        * config/sh/sh.h (CONST_OK_FOR_K16): Define.
        * config/sh/sh.h (CONST_OK_FOR_K16): Define.
        (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
        (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
        (EXTRA_CONSTRAINT_C16): Remove.
        (EXTRA_CONSTRAINT_C16): Remove.
        (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
        (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
        (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
        (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
        EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
        EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
        * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
        * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
        constants of SHmedia.  Handle nested constant expressions of
        constants of SHmedia.  Handle nested constant expressions of
        SHmedia correctly.
        SHmedia correctly.
        (andcosts): Fix the costs for SHmedia constants.
        (andcosts): Fix the costs for SHmedia constants.
        (sh_rtx_costs): Take account of outer_code for SHmedia constants.
        (sh_rtx_costs): Take account of outer_code for SHmedia constants.
        * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
        * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
        (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
        (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
        (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
        (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
        (movv4hi_i, movv2si_i): Likewise.
        (movv4hi_i, movv2si_i): Likewise.
        (movsi_const): Adjust the second operand of ior so to match with
        (movsi_const): Adjust the second operand of ior so to match with
        the Csu constraint.
        the Csu constraint.
        (movdi_const, movdi_const_32bit): Likewise.
        (movdi_const, movdi_const_32bit): Likewise.
        (movdi_const_16bit+1): Don't sign-extend LOW.
        (movdi_const_16bit+1): Don't sign-extend LOW.
        (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
        (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
        step.
        step.
        (*double_shori): Fix the split condition.  Use GEN_INT instead
        (*double_shori): Fix the split condition.  Use GEN_INT instead
        of get_int_mode calls.  Mask lower 16-bit of the argument of
        of get_int_mode calls.  Mask lower 16-bit of the argument of
        the last GEN_INT.
        the last GEN_INT.
        (sym2GOTPLT): Remove.
        (sym2GOTPLT): Remove.
        (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
        (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
        gen_rtx_UNSPEC.
        gen_rtx_UNSPEC.
        * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
        * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
        instead of EXTRA_CONSTRAINT_C16.
        instead of EXTRA_CONSTRAINT_C16.
2006-01-07  Ian Lance Taylor  
2006-01-07  Ian Lance Taylor  
            David Edelsohn  
            David Edelsohn  
        PR rtl-optimization/25662
        PR rtl-optimization/25662
        * optabs.c (simplify_expand_binop): Use simplify_binary_operation
        * optabs.c (simplify_expand_binop): Use simplify_binary_operation
        for constant operands instead of simplify_gen_binary.
        for constant operands instead of simplify_gen_binary.
        * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
        * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
        after trying simplify_binary_operation
        after trying simplify_binary_operation
2006-01-06  Daniel Berlin  
2006-01-06  Daniel Berlin  
        * tree.c (iterative_hash_expr): Hash decls based on UID.
        * tree.c (iterative_hash_expr): Hash decls based on UID.
2006-01-06  Eric Christopher  
2006-01-06  Eric Christopher  
        * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
        * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
        (TARGET_UNWIND_EMIT): Fix spelling.
        (TARGET_UNWIND_EMIT): Fix spelling.
        * target.h (gcc_target): Add except_table_label.
        * target.h (gcc_target): Add except_table_label.
        * except.c (output_function_exception_table): Use.
        * except.c (output_function_exception_table): Use.
        * varasm.c (default_emit_except_table_label): New.
        * varasm.c (default_emit_except_table_label): New.
        * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
        * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
        define.
        define.
        (asm_out): Add here.
        (asm_out): Add here.
        * output.h (default_emit_except_table_label): Prototype.
        * output.h (default_emit_except_table_label): Prototype.
        * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
        * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
        * config/darwin.c (darwin_emit_except_table_label): Define.
        * config/darwin.c (darwin_emit_except_table_label): Define.
        * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
        * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
2006-01-06  Zdenek Dvorak 
2006-01-06  Zdenek Dvorak 
        PR tree-optimization/18527
        PR tree-optimization/18527
        * tree-ssa-loop-niter.c (number_of_iterations_cond,
        * tree-ssa-loop-niter.c (number_of_iterations_cond,
        number_of_iterations_special, number_of_iterations_exit):
        number_of_iterations_special, number_of_iterations_exit):
        Move base and step of an iv to a single structure.  Add
        Move base and step of an iv to a single structure.  Add
        no_overflow flag, and use it in # of iterations analysis.
        no_overflow flag, and use it in # of iterations analysis.
        * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
        * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
        folded_casts argument.
        folded_casts argument.
        (simple_iv): Pass base and step in a structure.  Set no_overflow
        (simple_iv): Pass base and step in a structure.  Set no_overflow
        flag.
        flag.
        (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
        (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
        Evaluate expensiveness of computing # of iterations instead of
        Evaluate expensiveness of computing # of iterations instead of
        the final expression.
        the final expression.
        * tree-scalar-evolution.h (affine_iv): New structure.
        * tree-scalar-evolution.h (affine_iv): New structure.
        (simple_iv): Declaration changed.
        (simple_iv): Declaration changed.
        * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
        * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
        * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
        * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
        find_givs_in_stmt): Changed due to simple_iv change.
        find_givs_in_stmt): Changed due to simple_iv change.
2006-01-06  Jeff Law  
2006-01-06  Jeff Law  
        PR ada/24994
        PR ada/24994
        * tree-cfg.c (bsi_replace): Rename final argument from
        * tree-cfg.c (bsi_replace): Rename final argument from
        PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
        PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
        change (stmt -> orig_stmt).
        change (stmt -> orig_stmt).
        * tree-eh.c (verify_eh_throw_stmt_node): New function.
        * tree-eh.c (verify_eh_throw_stmt_node): New function.
        (bsi_remove): Add new argument.  Remove EH information
        (bsi_remove): Add new argument.  Remove EH information
        if requested.
        if requested.
        (verify_eh_throw_table_statements): New function.
        (verify_eh_throw_table_statements): New function.
        (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
        (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
        updated.
        updated.
        * tree-optimize.c (execute_free_cfg_annotations): Verify
        * tree-optimize.c (execute_free_cfg_annotations): Verify
        the EH throw statement table after removing annotations.
        the EH throw statement table after removing annotations.
        * except.h (verify_eh_throw_table_statements): Prototype.
        * except.h (verify_eh_throw_table_statements): Prototype.
        * tree-flow.h (bsi_remove): Update prototype.
        * tree-flow.h (bsi_remove): Update prototype.
        * tree-vrp.c (remove_range_assertions): Add new argument to
        * tree-vrp.c (remove_range_assertions): Add new argument to
        bsi_remove call.
        bsi_remove call.
        * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
        * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
        * tree-complex.c (expand_complex_div_wide): Likewise.
        * tree-complex.c (expand_complex_div_wide): Likewise.
        * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
        * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
        * tree-tailcall.c (eliminate_tailcall): Likewise.
        * tree-tailcall.c (eliminate_tailcall): Likewise.
        * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
        * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
        * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
        * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
        * tree-nrv.c (tree_nrv): Likewise.
        * tree-nrv.c (tree_nrv): Likewise.
        * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
        * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
        * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
        * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
        (combine_blocks): Likewise.
        (combine_blocks): Likewise.
        * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
        * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
        * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
        * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
        (cleanup_control_flow): Likewise.
        (cleanup_control_flow): Likewise.
        (remove_forwarder_block): Likewise.
        (remove_forwarder_block): Likewise.
        * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
        * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
        * tree-sra.c (sra_replace): Likewise.
        * tree-sra.c (sra_replace): Likewise.
        * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
        * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
        (forward_propagate_single_use_vars): Likewise.
        (forward_propagate_single_use_vars): Likewise.
        * tree-ssa-dce.c (remove_dead_stmt): Likewise.
        * tree-ssa-dce.c (remove_dead_stmt): Likewise.
        * tree-inline.c (expand_call_inline): Likewise.
        * tree-inline.c (expand_call_inline): Likewise.
        * tree-vect-transform.c (vect_transform_loop): Likewise.
        * tree-vect-transform.c (vect_transform_loop): Likewise.
        * tree-outof-ssa.c (rewrite_trees): Likewise.
        * tree-outof-ssa.c (rewrite_trees): Likewise.
        * tree-cfg.c (make_goto_expr_edges): Likewise.
        * tree-cfg.c (make_goto_expr_edges): Likewise.
        (cleanup_dead_labels): Likewise.
        (cleanup_dead_labels): Likewise.
        (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
        (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
        (bsi_move_before, bsi_move_after): Likewise.
        (bsi_move_before, bsi_move_after): Likewise.
        (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
        (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
        (tree_redirect_edge_and_branch, tree_split_block): Likewise.
        (tree_redirect_edge_and_branch, tree_split_block): Likewise.
2006-01-06  Andrew Pinski  
2006-01-06  Andrew Pinski  
        PR tree-opt/25528
        PR tree-opt/25528
        * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
        * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
        and IMAGPART_EXPR.
        and IMAGPART_EXPR.
        * tree-flow-inline.h (var_can_have_subvars): Handle complex types
        * tree-flow-inline.h (var_can_have_subvars): Handle complex types
        on non gimple variables.  Also add checks at the top for decls and
        on non gimple variables.  Also add checks at the top for decls and
        mtags.
        mtags.
        * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
        * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
        complex types.
        complex types.
        * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
        * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
        and IMAGPART_EXPR for creating MUST_DEFs.
        and IMAGPART_EXPR for creating MUST_DEFs.
        (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
        (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
        and NAME_MEMORY_TAG separately from the DECLs.
        and NAME_MEMORY_TAG separately from the DECLs.
2006-01-06  Richard Guenther  
2006-01-06  Richard Guenther  
        * tree-dfa.c (mark_new_vars_to_rename): Create stmt
        * tree-dfa.c (mark_new_vars_to_rename): Create stmt
        annotation, if necessary.
        annotation, if necessary.
        * tree-ssa-pre.c (create_expression_by_pieces): Remove
        * tree-ssa-pre.c (create_expression_by_pieces): Remove
        redundant calls to update_stmt.
        redundant calls to update_stmt.
        * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
        * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
        Likewise.
        Likewise.
2006-01-05  Richard Henderson  
2006-01-05  Richard Henderson  
        * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
        * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
2006-01-05  Carlos O'Donell  
2006-01-05  Carlos O'Donell  
        * c-typeck.c: Update copyright date.
        * c-typeck.c: Update copyright date.
2006-01-05  Carlos O'Donell  
2006-01-05  Carlos O'Donell  
        * c-typeck.c (build_c_cast): Always warn when casting
        * c-typeck.c (build_c_cast): Always warn when casting
        from a pointer to an integer of different size, even if
        from a pointer to an integer of different size, even if
        the node was constant.
        the node was constant.
2006-01-05  Richard Guenther  
2006-01-05  Richard Guenther  
        PR tree-optimization/22555
        PR tree-optimization/22555
        * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
        * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
        if one structure field is an array.
        if one structure field is an array.
        * tree-ssa-operands.c (get_expr_operands): Continue scanning
        * tree-ssa-operands.c (get_expr_operands): Continue scanning
        operands even if we found a subvar, but ignore VOPs in this
        operands even if we found a subvar, but ignore VOPs in this
        case.
        case.
        * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
        * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
        for renaming.
        for renaming.
        * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
        * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
2006-01-05  Richard Earnshaw  
2006-01-05  Richard Earnshaw  
        PR middle-end/24998
        PR middle-end/24998
        * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
        * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
2006-01-05  Richard Guenther  
2006-01-05  Richard Guenther  
            Diego Novillo  
            Diego Novillo  
        * tree-pass.h (TODO_remove_unused_locals): Define.
        * tree-pass.h (TODO_remove_unused_locals): Define.
        * gimple-low.c (expand_var_p, remove_useless_vars,
        * gimple-low.c (expand_var_p, remove_useless_vars,
        pass_remove_useless_vars): Remove.  Update all users.
        pass_remove_useless_vars): Remove.  Update all users.
        * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
        * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
        (remove_unused_locals): New function.
        (remove_unused_locals): New function.
        * tree-flow.h (remove_unused_locals): Declare.
        * tree-flow.h (remove_unused_locals): Declare.
        * passes.c (execute_todo): Call remove_unused_locals if
        * passes.c (execute_todo): Call remove_unused_locals if
        TODO_remove_unused_locals is set.
        TODO_remove_unused_locals is set.
        * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
        * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
        * tree-ssa-dce.c (pass_dce): Likewise.
        * tree-ssa-dce.c (pass_dce): Likewise.
        * tree-outof-ssa.c (pass_del_ssa): Likewise.
        * tree-outof-ssa.c (pass_del_ssa): Likewise.
2006-01-05  Richard Guenther  
2006-01-05  Richard Guenther  
        * tree-flow.h (struct fieldoff): Decompose field to
        * tree-flow.h (struct fieldoff): Decompose field to
        type, size and decl.
        type, size and decl.
        * tree-ssa-alias.c (create_sft): Take type as parameter.
        * tree-ssa-alias.c (create_sft): Take type as parameter.
        (create_overlap_variables_for): Store type, size and decl
        (create_overlap_variables_for): Store type, size and decl
        in the fieldoff structure.
        in the fieldoff structure.
        * tree-ssa-structalias.c (fieldoff_compare): Adjust users
        * tree-ssa-structalias.c (fieldoff_compare): Adjust users
        of struct fieldoff.
        of struct fieldoff.
        (push_fields_onto_fieldstack): Likewise.
        (push_fields_onto_fieldstack): Likewise.
        (create_variable_info_for): Likewise.  Use offset for the
        (create_variable_info_for): Likewise.  Use offset for the
        SFT name if the decl is not available.
        SFT name if the decl is not available.
2006-01-04  Paul Brook  
2006-01-04  Paul Brook  
        * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
        * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
2006-01-04  Daniel Berlin  
2006-01-04  Daniel Berlin  
        * lambda-code.c (can_put_in_inner_loop): Relax
        * lambda-code.c (can_put_in_inner_loop): Relax
        restrictions.
        restrictions.
        (can_put_after_inner_loop): New function.
        (can_put_after_inner_loop): New function.
        (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
        (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
        (perfect_nestify): Change to make copies and modify uses.
        (perfect_nestify): Change to make copies and modify uses.
2006-01-04  Richard Henderson  
2006-01-04  Richard Henderson  
        Merge from gomp branch:
        Merge from gomp branch:
        * c-lex.c (c_lex_with_flags) : Smuggle pragma id
        * c-lex.c (c_lex_with_flags) : Smuggle pragma id
        via integer constant.
        via integer constant.
        (pragma_lex): Remove.
        (pragma_lex): Remove.
        * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
        * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
        rather than parsing it.
        rather than parsing it.
        * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
        * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
        handle_pragma_extern_prefix): Add %< %> quotes.
        handle_pragma_extern_prefix): Add %< %> quotes.
        (registered_pragmas): New.
        (registered_pragmas): New.
        (c_register_pragma_1): New.
        (c_register_pragma_1): New.
        (c_register_pragma): Use it.
        (c_register_pragma): Use it.
        (c_register_pragma_with_expansion): Likewise.
        (c_register_pragma_with_expansion): Likewise.
        (c_invoke_pragma_handler): New.
        (c_invoke_pragma_handler): New.
        (init_pragma): Use cpp_register_deferred_pragma directly for
        (init_pragma): Use cpp_register_deferred_pragma directly for
        pch_preprocess.
        pch_preprocess.
        * c-pragma.h (enum pragma_kind): New.
        * c-pragma.h (enum pragma_kind): New.
        (pragma_handler): New.
        (pragma_handler): New.
        (c_invoke_pragma_handler): Declare.
        (c_invoke_pragma_handler): Declare.
        * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
        * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
        CPP_PRAGMA_EOL.
        CPP_PRAGMA_EOL.
        * c-common.h (c_common_pch_pragma): Update decl.
        * c-common.h (c_common_pch_pragma): Update decl.
        * Makefile.in (c-parser.o): Update dependencies.
        * Makefile.in (c-parser.o): Update dependencies.
        (GTFILES): Add c-pragma.h.
        (GTFILES): Add c-pragma.h.
        * c-parser.c (struct c_token): Add pragma_kind.
        * c-parser.c (struct c_token): Add pragma_kind.
        (struct c_parser): Add in_pragma.
        (struct c_parser): Add in_pragma.
        (c_lex_one_token): Always initialize keyword and pragma_kind.
        (c_lex_one_token): Always initialize keyword and pragma_kind.
        Extract data for CPP_PRAGMA.
        Extract data for CPP_PRAGMA.
        (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
        (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
        (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
        (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
        Don't allow CPP_PRAGMA_EOL if in_pragma.
        Don't allow CPP_PRAGMA_EOL if in_pragma.
        (c_parser_consume_pragma): New.
        (c_parser_consume_pragma): New.
        (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
        (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
        (c_parser_skip_to_end_of_parameter): Likewise.
        (c_parser_skip_to_end_of_parameter): Likewise.
        (c_parser_skip_to_end_of_block_or_statement): Likewise.
        (c_parser_skip_to_end_of_block_or_statement): Likewise.
        (c_parser_skip_to_pragma_eol): New.
        (c_parser_skip_to_pragma_eol): New.
        (c_parser_external_declaration): Handle CPP_PRAGMA.
        (c_parser_external_declaration): Handle CPP_PRAGMA.
        (c_parser_compound_statement_nostart): Likewise.
        (c_parser_compound_statement_nostart): Likewise.
        (c_parser_statement_after_labels): Likewise.
        (c_parser_statement_after_labels): Likewise.
        (c_parser_pragma): New.
        (c_parser_pragma): New.
        (pragma_lex): Likewise.
        (pragma_lex): Likewise.
        (c_parser_pragma_pch_preprocess): New.
        (c_parser_pragma_pch_preprocess): New.
        (c_parser_new): Merge into ...
        (c_parser_new): Merge into ...
        (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
        (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
2006-01-04  Jeff Law  
2006-01-04  Jeff Law  
        PR ada/24994
        PR ada/24994
        * tree-cfg.c (bsi_replace): Remove the original statement
        * tree-cfg.c (bsi_replace): Remove the original statement
        from the EH throw statement table.
        from the EH throw statement table.
2006-01-04  Jakub Jelinek  
2006-01-04  Jakub Jelinek  
        * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
        * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
        make the prototype extern "C" and add throw ().
        make the prototype extern "C" and add throw ().
        PR target/25554
        PR target/25554
        * config/i386/i386.md (testqi_ext_3): Ensure len is positive
        * config/i386/i386.md (testqi_ext_3): Ensure len is positive
        and pos non-negative and pos + len <= 32.
        and pos non-negative and pos + len <= 32.
        (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
        (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
        drop pos + len < HOST_BITS_PER_WIDE_INT test.
        drop pos + len < HOST_BITS_PER_WIDE_INT test.
        (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
        (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
        PR c/25559
        PR c/25559
        * c-common.c (handle_vector_size_attribute): Reject zero vector size
        * c-common.c (handle_vector_size_attribute): Reject zero vector size
        as well as sizes not multiple of component size.
        as well as sizes not multiple of component size.
        PR debug/25562
        PR debug/25562
        * function.c (instantiate_expr): New function.
        * function.c (instantiate_expr): New function.
        (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
        (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
        walk its DECL_VALUE_EXPR with instantiate_expr.
        walk its DECL_VALUE_EXPR with instantiate_expr.
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
        * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
        DW_OP_deref{,_size} if address isn't going to be added.
        DW_OP_deref{,_size} if address isn't going to be added.
2006-01-04  Ben Elliston  
2006-01-04  Ben Elliston  
        * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
        * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
        * config/fp-bit.c: Likewise.
        * config/fp-bit.c: Likewise.
2006-01-03  Daniel Berlin  
2006-01-03  Daniel Berlin  
        * dominance.c: Add comment about why we use DFS numbering
        * dominance.c: Add comment about why we use DFS numbering
        of dominance tree.
        of dominance tree.
2006-01-03  Jakub Jelinek  
2006-01-03  Jakub Jelinek  
            Richard Henderson  
            Richard Henderson  
        Merge from gomp-branch:
        Merge from gomp-branch:
        * varasm.c (assemble_variable): Handle thread-local COMMON data.
        * varasm.c (assemble_variable): Handle thread-local COMMON data.
        * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
        * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
2006-01-03  Paolo Bonzini  
2006-01-03  Paolo Bonzini  
        PR rtl-optimization/25578
        PR rtl-optimization/25578
        * combine.c (combine_simplify_rtx, force_to_mode): Don't
        * combine.c (combine_simplify_rtx, force_to_mode): Don't
        pass a parameter to simplify_shift_const if changing ASHIFTRT
        pass a parameter to simplify_shift_const if changing ASHIFTRT
        to LSHIFTRT.
        to LSHIFTRT.
2006-01-03  Adrian Straetling  
2006-01-03  Adrian Straetling  
        * builtins.c (get_builtin_sync_mem): New function.
        * builtins.c (get_builtin_sync_mem): New function.
        (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
        (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
        expand_builtin_lock_test_and_set, expand_builtin_lock_release):
        expand_builtin_lock_test_and_set, expand_builtin_lock_release):
        Call get_builtin_sync_mem to generate mem rtx.
        Call get_builtin_sync_mem to generate mem rtx.
2006-01-03  Richard Guenther  
2006-01-03  Richard Guenther  
        PR c/25183
        PR c/25183
        * stmt.c (add_case_node): Make sure to clear overflow flags
        * stmt.c (add_case_node): Make sure to clear overflow flags
        from ranges.
        from ranges.
2006-01-03  Jakub Jelinek  
2006-01-03  Jakub Jelinek  
        Merge from gomp-branch.
        Merge from gomp-branch.
        * config/sparc/sync.md: New file.
        * config/sparc/sync.md: New file.
        * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
        * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
        UNSPECV_LDSTUB): New constants.
        UNSPECV_LDSTUB): New constants.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
        * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
        * config/sparc/predicates.md (memory_reg_operand): New predicate.
        * config/sparc/predicates.md (memory_reg_operand): New predicate.
        * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
        * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
        prototype.
        prototype.
2006-01-03  Roger Sayle  
2006-01-03  Roger Sayle  
        * combine.c (reg_subword_p): New predicate to test whether the
        * combine.c (reg_subword_p): New predicate to test whether the
        destination of a set refers to a subword/piece of a register.
        destination of a set refers to a subword/piece of a register.
        (try_combine): Generalize the code to merge the setting of a
        (try_combine): Generalize the code to merge the setting of a
        pseudo to a constant followed by a set of a subword of that
        pseudo to a constant followed by a set of a subword of that
        register to a constant.
        register to a constant.
2006-01-03  Kazu Hirata  
2006-01-03  Kazu Hirata  
        * basic-block.h (control_flow_graph): Change the type of
        * basic-block.h (control_flow_graph): Change the type of
        x_label_to_block_map to VEC(basic_block,gc) *.
        x_label_to_block_map to VEC(basic_block,gc) *.
        * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
        * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
        set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
        set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
        * tree-ssa-propagate.c (cfg_blocks): Change the type to
        * tree-ssa-propagate.c (cfg_blocks): Change the type to
        VEC(basic_block,heap) *.
        VEC(basic_block,heap) *.
        (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
        (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
        ssa_prop_fini): Adjust the uses of cfg_blocks.
        ssa_prop_fini): Adjust the uses of cfg_blocks.
2006-01-03  Steven Bosscher  
2006-01-03  Steven Bosscher  
        * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
        * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
        COMPONENT_REFs.
        COMPONENT_REFs.
        * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
        * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
        hashing trees instead of a pointer hash.
        hashing trees instead of a pointer hash.
        (mem_attrs_htab_eq): Do a deep compare instead of a pointer
        (mem_attrs_htab_eq): Do a deep compare instead of a pointer
        compare for MEM_EXPR.
        compare for MEM_EXPR.
        PR rtl-optimization/25130
        PR rtl-optimization/25130
        * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
        * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
        when comparing MEMs for GCSE
        when comparing MEMs for GCSE
2006-01-03  Ben Elliston  
2006-01-03  Ben Elliston  
        * targhooks.h (default_decimal_float_supported_p): Declare.
        * targhooks.h (default_decimal_float_supported_p): Declare.
        * targhooks.c (default_decimal_float_supported_p): Define.
        * targhooks.c (default_decimal_float_supported_p): Define.
        * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
        * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
        `default_decimal_float_supported_p'.
        `default_decimal_float_supported_p'.
        * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
        * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
2006-01-02  Adam Nemet  
2006-01-02  Adam Nemet  
        * combine.c (apply_distributive_law ): Check
        * combine.c (apply_distributive_law ): Check
        TRULY_NOOP_TRUNCATION.
        TRULY_NOOP_TRUNCATION.
2006-01-02  Geoffrey Keating  
2006-01-02  Geoffrey Keating  
        * dwarf2out.c (have_switched_text_section): Delete.
        * dwarf2out.c (have_switched_text_section): Delete.
        (have_multiple_function_sections): New.
        (have_multiple_function_sections): New.
        (have_location_lists): Make 'bool'.
        (have_location_lists): Make 'bool'.
        (add_AT_loc_list): Use 'true' not '1'.
        (add_AT_loc_list): Use 'true' not '1'.
        (dwarf2out_switch_text_section): Set have_multiple_function_sections.
        (dwarf2out_switch_text_section): Set have_multiple_function_sections.
        (output_loc_list): Use have_multiple_function_sections.
        (output_loc_list): Use have_multiple_function_sections.
        (output_ranges): Likewise.
        (output_ranges): Likewise.
        (dwarf2out_begin_function): Set have_multiple_function_sections if
        (dwarf2out_begin_function): Set have_multiple_function_sections if
        necessary.
        necessary.
        (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
        (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
        Check function_section rather than DECL_SECTION_NAME.
        Check function_section rather than DECL_SECTION_NAME.
        (dwarf2out_finish): Use have_multiple_function_sections.
        (dwarf2out_finish): Use have_multiple_function_sections.
        Don't clear have_location_lists.
        Don't clear have_location_lists.
2006-01-02  Eric Botcazou  
2006-01-02  Eric Botcazou  
            Jan Hubicka  
            Jan Hubicka  
        * cfglayout.c (fixup_reorder_chain): Remove kludge for the
        * cfglayout.c (fixup_reorder_chain): Remove kludge for the
        case of conditional jump jumping to the next instruction.
        case of conditional jump jumping to the next instruction.
        * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
        * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
        cases of conditional jump jumping to the next instruction.
        cases of conditional jump jumping to the next instruction.
2006-01-02  Jan Hubicka  
2006-01-02  Jan Hubicka  
        * i386.c (*_cost): Add COSTS_N_INSNS.
        * i386.c (*_cost): Add COSTS_N_INSNS.
        (ix86_rtx_costs): Do not use COSTS_N_INSNS.
        (ix86_rtx_costs): Do not use COSTS_N_INSNS.
2006-01-02  Paolo Bonzini  
2006-01-02  Paolo Bonzini  
        PR target/25259
        PR target/25259
        * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
        * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
2006-01-02  Volker Reichelt  
2006-01-02  Volker Reichelt  
        * config/arm/arm.c (all_fpus): Fix comment typo.
        * config/arm/arm.c (all_fpus): Fix comment typo.
        * config/darwin.c: Likewise.
        * config/darwin.c: Likewise.
        * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
        * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
        * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
        * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
        * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
        * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
2006-01-01  David Edelsohn  
2006-01-01  David Edelsohn  
        * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
        * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
        (rs6000_split_compare_and_swapqhi): New.
        (rs6000_split_compare_and_swapqhi): New.
        * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
        * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
        (sync_compare_and_swapqhi_internal): New.
        (sync_compare_and_swapqhi_internal): New.
        * config/rs6000/rs6000-protos.h: Declare.
        * config/rs6000/rs6000-protos.h: Declare.
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.