aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog2149
1 files changed, 2148 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 37f33bbe79d..56d9d74b62a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,2150 @@
+2007-03-14 Sebastian Pop <sebastian.pop@inria.fr>
+
+ * tree-loop-linear.c (gather_interchange_stats): For multidimensional
+ arrays, multiply the access strides by the size of the sub-array.
+ * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
+
+2007-03-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
+ the configured assembler supports the sahf mnemonic.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+ * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
+ emit "sahf" or ".byte\t0x9e" as asm template.
+
+2007-03-14 Michael Meissner <michael.meissner@amd.com>
+
+ PR 31018
+ * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
+ option to replace hard coded TARGET_xxx in md file.
+ (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
+ (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
+ (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
+ (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
+ (X86_TUNE_NOT_UNPAIRABLE): Ditto.
+ (X86_TUNE_NOT_VECTORMODE): Ditto.
+ (TUNE_SHORTEN_X87_SSE): Use new tuning option.
+ (TUNE_AVOID_VECTOR_DECODE): Ditto.
+ (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
+ (TUNE_SLOW_IMUL_IMM8): Ditto.
+ (TUNE_MOVE_M1_VIA_OR): Ditto.
+ (TUNE_NOT_UNPAIRABLE): Ditto.
+ (TUNE_NOT_VECTORMODE): Ditto.
+
+ * config/i386/i386.c (ix86_tune_features): Fill in new tuning
+ options.
+
+ * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
+ tuning options instead of hard coded TARGET_xxx.
+ (fix ssemode peephole2's): Ditto.
+ (imul peephole2's): Ditto.
+ (movsi_or): Ditto.
+ (movdi_or_rex64): Ditto.
+ (move peephole2): Ditto.
+ (not peephole2's): Ditto.
+
+2007-03-14 Dirk Mueller <dmueller@suse.de>
+
+ * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
+ * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
+ * c-parser.c (c_parser_if_body): Always add an empty statement in case
+ of empty body.
+ * c-parser.c (c_parser_do_statement): Warn about empty body in
+ do/while statement.
+ * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
+ * doc/invoke.texi (-Wempty-body): Update documentation.
+
+2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/21438
+ * c-common.h (warn_for_div_by_zero): Declare.
+ * c-common.c (warn_for_div_by_zero): Define.
+ * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
+ warning.
+
+2007-03-14 Richard Sandiford <richard@codesourcery.com>
+
+ * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
+ to PREFIX and STANDARD_PREFIX.
+
+2007-03-14 Richard Sandiford <richard@codesourcery.com>
+ Phil Edwards <phil@codesourcery.com>
+
+ * gthr-vxworks.h: Add an extern "C" wrapper for C++.
+ (__gthread_once_t): Remove busy field for RTPs.
+ (__GTHREAD_ONCE_INIT): Update accordingly.
+
+2007-03-14 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/invoke.texi: Document VxWorks options.
+
+2007-03-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
+
+2007-03-13 Seongbae Park <seongbae.park@gmail.com>
+
+ PR tree-optimization/30590
+ * tree-nrv.c (tree_nrv): Check for the partial update of the
+ return value.
+
+2007-03-13 Alexandre Oliva <aoliva@redhat.com>
+
+ * flags.h (flag_random_seed): Remove declaration, in favor of...
+ * toplev.h (get_random_seed, set_random_seed): ... these.
+ * tree.c (get_file_function_name): Use the former.
+ * opts.c (common_handle_option): Use the latter.
+ * toplev.c
+
+2007-03-13 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR middle-end/31127
+ * cse.c (cse_find_path): Do not bail out if a basic block that
+ we already visited now becomes part of a path that starts at a
+ different basic block. Just disallow this, to make sure we
+ visit each basic block at most once.
+
+2007-03-13 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold attributes,
+ when profile esitmate is present, calls with very low frequency are
+ cold.
+
+2007-03-13 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/30730
+ PR tree-optimization/26900
+ * tree-ssa-loop-niter.c: Include gmp.h.
+ (bounds): New type.
+ (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
+ split_to_var_and_offset, determine_value_range,
+ bound_difference_of_offsetted_base, refine_bounds_using_guard,
+ bound_difference, bounds_add, bounds_negate,
+ number_of_iterations_ne_max, dump_affine_iv): New functions.
+ (number_of_iterations_ne, number_of_iterations_lt_to_ne,
+ assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
+ difference of initial and final value of control iv to validate
+ results.
+ (number_of_iterations_cond): Add loop parameter. Determine bounds
+ on the difference of the extremes of the control iv. Add dumps.
+ (expand_simple_operations): Handle phi nodes.
+ (simplify_using_initial_conditions): Do not record used conditions.
+ (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
+ Do not set additional_info.
+ (implies_nonnegative_p, implies_ge_p): Removed.
+ (derive_constant_upper_bound): Do not use parameter `additional'.
+ (record_estimate): Parameter `additional' removed. Parameter
+ `i_bound' added. Do not call derive_constant_upper_bound.
+ (record_nonwrapping_iv): Use derive_constant_upper_bound to
+ bound the number of iterations estimate.
+ (estimate_numbers_of_iterations_loop): Pass the estimate from
+ the number of iterations analysis to record_estimate.
+ * tree.h (multiple_of_p): Declare.
+ * tree-scalar-evolution.c (expression_expensive_p): Removed.
+ (scev_const_prop): Do not check expression_expensive_p.
+ * fold-const.c (multiple_of_p): Exported.
+ * double-int.c (double_int_mask): Exported.
+ * double-int.h (double_int_mask): Declare.
+ * tree-flow.h (struct tree_niter_desc): Removed additional_info
+ field. Added max field.
+
+2007-03-13 David Taylor <taylor@candd.org>
+
+ PR driver/12448:
+ * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
+ default -MQ.
+
+2007-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/31123
+ * pa.md (vdepi_ior): Don't allow zero length deposit. Likewise for
+ two unamed patterns.
+
+2007-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.opt (mcx16, msahf): New options.
+ * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
+ (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
+
+ * config/i386/driver-i386.c (bit_LAHF_LM): New define.
+ (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
+ Output -mcx16 and -msahf options when corresponding bit is set.
+
+ * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
+ and -msahf options.
+
+2007-03-13 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.ac: Test for assembler tolerance to # 0 "".
+ * configure, config.in: Rebuilt.
+ * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
+
+2007-03-13 Geoffrey Keating <geoffk@apple.com>
+
+ * doc/invoke.texi (Spec Files): Update for '%{,' spec.
+
+ * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
+ (handle_syscall): Handle direct system calls.
+ * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
+
+2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/invoke.texi: Fix cpp.info cross-reference.
+ * doc/passes.texi: Fix gcc.info cross-reference.
+
+2007-03-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/30835
+ * lambda-code.c (can_convert_to_perfect_nest): Check whether
+ bb_for_stmt is not NULL before accessing it.
+
+2007-03-12 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
+ some multilibs.
+
+2007-03-12 Brooks Moses <brooks.moses@codesourcery.com>
+
+ PR 30635
+ * doc/install.texi: Document --enable-stage1-languages
+
+2007-03-12 Steven Bosscher <steven@gcc.gnu.org>
+
+ * tree-pass.h (pass_into_cfg_layout_mode,
+ pass_outof_cfg_layout_mode): Declare.
+ * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
+ pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
+ * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
+ (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
+
+2007-03-12 Seongbae Park <seongbae.park@gmail.com>
+
+ * c-decl.c (warn_variable_length_array): New function.
+ Refactored from grokdeclarator to handle warn_vla
+ and handle unnamed array case.
+ (grokdeclarator): Refactored VLA warning case.
+ * c.opt (Wvla): New flag.
+ * doc/invoke.texi (Wvla): New warning.
+
+2007-03-12 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
+ (TARGET_SECTION_TYPE_FLAGS): New.
+
+2007-03-12 Richard Henderson <rth@redhat.com>
+
+ * config/darwin.c (machopic_reloc_rw_mask): New.
+ * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
+ * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
+
+2007-03-12 Mark Mitchell <mark@codesourcery.com>
+
+ * cppdefault.c (cpp_EXEC_PREFIX): New variable.
+ * cppdefault.h (cpp_PREFIX): Document.
+ (cpp_PREFIX_len): Likewise.
+ (cpp_EXEC_PREFIX): New variable.
+ * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
+ * c-incpath.c (add_standard_paths): Correct logic for relocating
+ paths within prefix.
+
+2007-03-12 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
+ fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
+ mode macro.
+ (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
+ fix_truncdfdi_sse using SSEMODEF mode macro.
+ (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
+ fix_truncdfsi_sse using SSEMODEF mode macro.
+ (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
+ (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
+
+2007-03-12 Richard Sandiford <richard@codesourcery.com>
+
+ * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
+ elfos.h to tm_file.
+
+2007-03-12 Olga Golovanevsky <olga@il.ibm.com>
+
+ * tree.h : Add multiple_of_p declaration.
+ * fold-const.c (multiple_of_p): Make multiple_of_p public.
+ * ipa-type-escape.c (results_of_malloc): Redundant.
+ (visited_stmts): New. Visited stmt for walk_use_def_chains.
+ (cast_type): Extended with new members.
+ (check_cast): Returns cast_type.
+ (cast): New structure for data of walk_use_def_chains.
+ (is_malloc_result, is_cast_from_non_pointer_1,
+ is_cast_from_non_pointer,
+ is_array_access_through_pointer_and_index): New functions.
+ (look_for_casts): Returns cast types.
+ (check_call): Returns void.
+ (okay_pointer_operation): Use support of pointer plus index,
+ pointer plus constant and allow all multiplications.
+
+2007-03-11 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31115
+ * tree-vrp.c (extract_range_from_binary_expr): Make sure
+ the shift count is positive and non-anti-range for RSHIFT_EXPR.
+ A shift count of zero is not special as with *_DIV_EXPR.
+ (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
+ direction.
+
+2007-03-11 Ian Lance Taylor <iant@google.com>
+
+ * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
+ the *_DIV_EXPR codes correctly with overflow infinities.
+
+2007-03-11 Ira Rosen <irar@il.ibm.com>
+
+ * tree-data-ref.c (analyze_offset): Add a return value (bool) to
+ indicate success/failure of the analysis. Add negation to subtrahend
+ in case of subtraction. Fail if both operands contain constants.
+ (create_data_ref): Fail if analyze_offset fails.
+
+2007-03-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (frndintxf2): Rename to ...
+ (rintxf2): ... this. Remove expander having same name.
+ (rintsf2, rintdf2): Implement using SSEMODEF macro.
+ (roundsf2, rounddf2): Ditto.
+ (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
+ (lround<mode>di2, lround<mode>si2): Ditto.
+
+2007-03-11 Steven Bosscher <steven@gcc.gnu.org>
+
+ * lower-subreg.c: Include except.h.
+ (decompose_multiword_subregs): Verify that the only control flow
+ insns we can split are loads to multi-words pseudos.
+ Handle breaking such blocks after splitting, instead of calling
+ find_many_sub_basic_blocks.
+
+ * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
+ on the new basic block. Add a lengthy comment explaining why we
+ thought this was necessary.
+ * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
+
+2007-03-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/30924
+ * tree.c (walk_type_fields): Recurse into the element type of
+ ARRAY_TYPEs if there is a pointer set.
+
+2007-03-10 Dirk Mueller <dmueller@suse.de>
+
+ * c-common.c (warn_logical_operator): Fix condition.
+
+2007-03-10 Tobias Schlüter <tobi@gcc.gnu.org>
+
+ * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
+ quotation mark.
+ * config/darwin.c (machopic_select_section): Remove superfluous
+ argument in call to categorize_decl_for_section. Remove unused
+ variable shlib.
+
+2007-03-10 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (glibc_header_dir): Set using with_build_sysroot if
+ defined.
+ * configure: Regenerate.
+
+2007-03-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/31101
+ * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
+ (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
+ (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
+ Add LABEL_NUSES to emitted label.
+ * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
+ branch probability value to emitted jump insn.
+ * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
+ Do not check life information and do not re-arrange input operands
+ for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
+
+2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
+ the change of decode_asm_operands.
+
+2007-03-10 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * mode-switching.c (create_pre_exit): Skip blockage insn.
+
+2007-03-09 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-pass.h (TODO_update_smt_usage): Remove.
+ Update all users.
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
+ argument SOME.
+ Update all users.
+
+2007-03-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.c (attr_length_call): Revise condition for long pc-relative branch.
+ (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long local
+ calls on the SOM target. Don't use "LONG_PIC_PCREL" call sequence on
+ SOM target.
+
+2007-03-09 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c: Document %{, in big comment at top.
+ (input_suffix_matches): Remove special handling for .s and
+ .S.
+ (input_spec_matches): New.
+ (handle_braces): Handle %{,.
+ (validate_switches): ',' indicates a value which is not a switch.
+ * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
+ to detect assembler input.
+ * config/i386/sol2.h (CPP_SPEC): Likewise.
+ * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
+ * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
+ * config/rs6000/lynx.h (ASM_SPEC): Likewise.
+ * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
+ * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
+ -m64 causes deployment target to default to 10.5.
+ * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
+
+2007-03-09 Richard Henderson <rth@redhat.com>
+
+ PR target/26090
+ * target.h (targetm.asm.out.reloc_rw_mask): New.
+ * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
+ (TARGET_ASM_OUT): Use it.
+ * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
+ * varasm.c (categorize_decl_for_section): Remove shlib argument;
+ use the new reloc_rw_mask target hook instead.
+ (default_section_type_flags_1): Merge into...
+ (default_section_type_flags): ... here.
+ (decl_readonly_section_1): Merge into...
+ (decl_readonly_section): ... here.
+ (default_elf_select_section_1): Merge into...
+ (default_elf_select_section): ... here.
+ (default_unique_section_1): Merge into...
+ (default_unique_section): ... here.
+ (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
+ (default_select_rtx_section): Use it.
+ (default_elf_select_rtx_section): Likewise.
+ * output.h: Update to match.
+ * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
+ * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
+ (TARGET_ASM_RELOC_RW_MASK): New.
+ * config/i386/i386.c (x86_64_elf_select_section): Adjust call
+ to categorize_decl_for_section.
+ (x86_64_elf_unique_section): Likewise.
+ * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
+ TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
+ (TARGET_ASM_RELOC_RW_MASK): New.
+ * config/ia64/ia64.c (ia64_rwreloc_select_section,
+ ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
+ (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
+ (TARGET_RWRELOC): Remove.
+ (ia64_section_type_flags): Adjust call to default_section_type_flags.
+ * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
+ * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
+ (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
+ (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
+ (rs6000_xcoff_select_section): Use decl_readonly_section.
+ (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
+ * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
+ (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
+ (TARGET_SECTION_TYPE_FLAGS): Remove.
+ * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
+
+2007-03-09 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold_comparison): Remove compile-time evaluation of
+ complex constant equality/inequality comparisons for here.
+ (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
+ known at compile-time or can be simplified to a scalar comparison.
+ (fold_relational_const): Move compile-time evaluation of complex
+ constant equality/inequality comparisons to here.
+
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ PR rtl-optimization/30643
+ * cse.c (cse_insn): Recompute dest_hash after insert_regs for
+ dest_addr_elt.
+ (fold_rtx): Recurse, like before 2006-11-03.
+
+2007-03-09 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
+ m32c-pragma.o.
+
+2007-03-09 Aldy Hernandez <aldyh@redhat.com>
+
+ PR tree-optimization/30375
+ * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
+ LHS of statements is not the same.
+ * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
+
+2007-03-09 Chao-ying Fu <fu@mips.com>
+
+ * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
+ REV 2.
+ * doc/invoke.texi (-mdspr2): Document new option.
+ * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
+ New unspec for DSP REV 2.
+ (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
+ these instructions are extended in DSP REV 2.
+ (mips-dspr2.md): Include.
+ * config/mips/mips.opt (mdspr2): New option.
+ * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
+ MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
+ MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
+ (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
+ (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
+ (dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
+ (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
+ and 2 builtins.
+ (bdesc_map): Add one field of unsupported_target_flags.
+ (bdesc_arrays): Update entries to have extra fields. Add
+ dsp_32only_bdesc.
+ (mips_init_builtins): Initialize new function types.
+ Check unsupported_target_fileds to filter out builtins.
+ * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
+ TARGET_DSPR2.
+ (ASM_SPEC): Pass mdspr2 to the assembler.
+ * config/mips/mips-dspr2.md: New file.
+
+2007-03-09 Sa Liu <saliu@de.ibm.com>
+
+ * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
+
+2007-03-09 Ian Lance Taylor <iant@google.com>
+
+ * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
+ argument) like -Wstrict-overflow=2.
+ * doc/invoke.texi (Warning Options): Update documentation.
+
+2007-03-09 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/17946
+ * doc/invoke.texi (-Wlogical-op): Document.
+ * common.opt (-Wlogical-op): New.
+ * c-common.h (warn_logical_operator): Declare.
+ * c-common.c (warn_logical_operator): Define.
+ * c-typeck.c (parser_build_binary_op): Call
+ warn_logical_operator.
+
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
+ * final.c (final_scan_insn): Test for non-"" file name.
+
+2007-03-09 Sebastian Pop <sebastian.pop@inria.fr>
+
+ * doc/loop.texi: Document the Omega linear constraints solver.
+ * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
+ omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
+ omega-hash-table-size, omega-max-keys, and
+ omega-eliminate-redundant-constraints.
+ * tree-pass.h (pass_check_data_deps): Declared.
+ * omega.c: New.
+ * omega.h: New.
+ * timevar.def (TV_CHECK_DATA_DEPS): Declared.
+ * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
+ pass_check_data_deps): New.
+ * tree-data-ref.c (init_data_ref): Remove declaration.
+ (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
+ (analyze_array): Renamed init_array_ref, move up initializations.
+ (init_data_ref): Renamed init_pointer_ref. Moved before its call.
+ Removed arguments that are set to NULL.
+ (analyze_indirect_ref): Correct indentation, correct call to
+ init_pointer_ref.
+ (object_analysis): Call init_array_ref instead of analyze_array.
+ (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
+ (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
+ of DR_ACCESS_FNS_ADDR.
+ (init_omega_eq_with_af, omega_extract_distance_vectors,
+ omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
+ ddr_consistent_p): New.
+ (compute_affine_dependence): Check consistency of ddrs when
+ flag_check_data_deps is passed.
+ (analyze_all_data_dependences): Uncomment.
+ (tree_check_data_deps): New.
+ * tree-data-ref.h: Include omega.h.
+ (DR_ACCESS_FNS_ADDR): Removed.
+ (data_dependence_relation): Add inner_loop.
+ (DDR_INNER_LOOP): New.
+ * common.opt (fcheck-data-deps): New.
+ * tree-flow.h (tree_check_data_deps): Declare.
+ * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
+ (OBJS-common): Depend on omega.o.
+ (omega.o): Define.
+ * passes.c (pass_check_data_deps): Scheduled.
+ * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
+ PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
+ PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
+ PARAM_VECT_MAX_VERSION_CHECKS,
+ PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
+
+2007-03-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/30904
+ PR middle-end/31058
+ * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
+ the same way as *_DIV_EXPR.
+
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * recog.c (decode_asm_operands): No mixed declarations and code.
+
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
+ * rtl.def (ASM_INPUT): Add location.
+ * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
+ (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
+ (decode_asm_operands): Add loc operand.
+ (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
+ * stmt.c (expand_asm): Rename to...
+ (expand_asm_loc): ... this. Add locus argument. Pass it on to
+ gen_rtx_ASM_INPUT_loc.
+ (expand_asm_expr): Adjust.
+ * recog.c (decode_asm_operands): Add loc operand.
+ (check_asm_operands, extract_insn): Adjust.
+ * reload1.c (maybe_fix_stack_asms): Likewise.
+ * final.c (asm_insn_count): Likewise.
+ (final_scan_insn): Output # line before and after asm.
+
+2007-03-09 Daniel Berlin <dberlin@dberlin.org>
+
+ * tree-ssa-structalias.c (variable_info): Remove
+ finished_solution.
+ (new_var_info): Ditto.
+ (shared_bitmap_info_t): New structure.
+ (shared_bitmap_table): New variable.
+ (shared_bitmap_hash): New function.
+ (shared_bitmap_eq): Ditto
+ (shared_bitmap_lookup): Ditto.
+ (shared_bitmap_add): Ditto.
+ (merge_smts_into): Change to take bitmap directly.
+ (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
+ (init_alias_vars): Init shared bitmap hashtable.
+ (delete_points_to_sets): Delete shared bitmap hashtable.
+ * tree-ssa-operands.c (add_virtual_operand): Partially revert the
+ is_aliased removal as a change that was still necessary was
+ deleted.
+
+2007-03-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (override_options): Conditionally disable
+ x86_sahf for 64bit targets only.
+
+2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C/31072
+ * c-decl.c (merge_decls): Don't call make_var_volatile.
+ * varasm.c (make_var_volatile): Remove.
+ * output.h (make_var_volatile): Remove.
+
+2007-03-08 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/31085
+ * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
+
+2007-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
+ llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
+ ATTR_CONST_NOTHROW_LIST.
+
+ * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
+ FIX_TRUNC_EXPR.
+
+2007-03-08 Diego Novillo <dnovillo@redhat.com>
+
+ * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
+
+2007-03-08 Geoffrey Keating <geoffk@apple.com>
+
+ PR 31013
+ * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
+ is declared.
+ * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
+ passed, use shared libgcc.
+
+2007-03-08 Roger Sayle <roger@eyesopen.com>
+
+ * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
+ instead of calling build2 with a GIMPLE_MODIFY_STMT.
+ (honor_protect_cleanup_actions, lower_try_finally_switch):
+ Likewise.
+ * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
+ ifc_temp_var): Likewise.
+ * tree-inline.c (setup_one_parameter): Likewise.
+ * tree-mudflap.c (mf_decl_cache_locals,
+ mf_build_check_statement_for): Likewise.
+ * tree-nested.c (init_tmp_var, save_tmp_var,
+ finalize_nesting_tree_1): Likewise.
+ * tree-outof-ssa.c (insert_copy_on_edge,
+ insert_backedge_copies): Likewise.
+ * tree-profile.c (tree_gen_edge_profiler,
+ tree_gen_ic_profiler): Likewise.
+ * tree-scalar-evolution.c (scev_const_prop): Likewise.
+ * tree-sra.c (sra_build_assignment): Likewise.
+ * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
+ * tree-ssa-math-opts.c (insert_reciprocals,
+ execute_cse_sincos_1): Likewise.
+ * tree-tailcall.c (adjust_accumulator_values,
+ adjust_return_value): Likewise.
+ * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
+ * tree-vect-transform.c (vect_create_data_ref_ptr,
+ bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
+ vect_create_epilog_for_reduction, vectorizable_reduction,
+ vectorizable_call, vectorizable_conversion,
+ vectorizable_assignment, vectorizable_operation,
+ vectorizable_type_demotion, vect_gen_widened_results_half,
+ vect_permute_store_chain, vectorizable_store,
+ vect_setup_realignment, vect_permute_load_chain,
+ vectorizable_load, vectorizable_condition,
+ vect_create_cond_for_align_checks): Likewise.
+ * tree-vrp.c (build_assert_expr_for): Likewise.
+
+2007-03-08 Ian Lance Taylor <iant@google.com>
+
+ * tree-vrp.c: Include "intl.h".
+ (usable_range_p): New static function.
+ (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
+ overflowed values, juts set *strict_overflow_p.
+ (compare_values): Only return -2 if one of the operands is not a
+ constant.
+ (compare_ranges): Call usable_range_p.
+ (compare_range_with_value): Likewise.
+ (vrp_evaluate_conditional_warnv): Rename from
+ vrp_evaluate_conditional. Make static. Change all callers.
+ (vrp_evaluate_conditional): New function.
+ (simplify_div_or_mod_using_ranges): Issue warning about reliance
+ on signed overflow.
+ (simplify_abs_using_ranges): Likewise.
+ (simplify_stmt_for_jump_threading): Add within_stmt parameter.
+ * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
+ within_stmt parameter.
+ * tree-ssa-propagate.c (fold_predicate_in): Update call to
+ vrp_evaluate_conditional.
+ * tree-ssa-threadedge.c
+ (record_temporary_equivalences_from_stmts_at_dest): Change
+ simplify parameter to take a second tree parameter.
+ (simplify_control_stmt_condition): Likewise.
+ (thread_across_edge): Likewise.
+ * tree-flow.h (vrp_evaluate_conditional): Update declaration.
+ (thread_across_edge): Likewise.
+ * gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
+
+2007-03-08 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (TARGET_SAHF): New define.
+ * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
+ Also enable for m_K8, m_AMDFAM10 and m_CORE2.
+ (x86_sahf): New global variable.
+ (override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
+ pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
+ nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
+ in processor flags. Do not unconditionally disable TARGET_USE_SAHF
+ for 64-bit.
+ (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
+ (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
+ when expanding fcomi/sahf based tests.
+ (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
+ expanding sahf based alternative. Emit sahf based sequence when
+ optimizing for code size.
+ * config/i386/i386.md (x86_sahf_1): Do not disable for
+ TARGET_64BIT, enable for TARGET_SAHF.
+
+2007-03-08 Martin Michlmayr <tbm@cyrius.com>
+
+ * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
+ spurious whitespace from error message.
+
+2007-03-08 Volker Reichelt <reichelt@netcologne.de>
+
+ PR c++/30852
+ * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
+
+2007-03-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * c-decl.c (grokdeclarator): Disable warnings for anonymous
+ bitfields.
+ * tree-sra.c (instantiate_element): Propagate disabled warnings
+ from the element itself to the created variable.
+
+2007-03-07 Richard Henderson <rth@redhat.com>
+
+ PR target/30848
+ * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
+ silently fix up the stack in the case of a missing register.
+
+2007-03-07 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
+
+2007-03-07 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
+ New.
+ (phase1_vrs): Use them.
+ (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
+ (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
+ __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
+ (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
+ __gnu_Unwind_Restore_WMMXC if required.
+ (_Unwind_VRS_Pop): Implement iWMMXt support.
+ * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
+ gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
+ gnu_Unwind_Save_WMMXC): Define.
+
+2007-03-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (vxworks_override_options): Declare.
+ (VXWORKS_OVERRIDE_OPTIONS): Use it.
+ * config/vxworks.c: Include target.h and toplev.h.
+ (vxworks_override_options): New function.
+ * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
+
+2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (override_options): Don't emit an error when
+ -mstack-size is used without providing -mstack-guard.
+ (s390_emit_prologue): Choose stack_guard value automatically if not
+ provided via command line.
+ * doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
+
+2007-03-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/i386/i386.c (output_set_got): Add a GOT initialization
+ sequence for VxWorks PIC.
+ (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
+ around labels as well as symbols. Use gotoff_operand instead
+ of local_symbolic_operand.
+ (legitimize_pic_address): Use gotoff_operand instead of
+ local_symbolic_operand. Use @GOT accesses for labels as
+ well as symbols.
+ (ix86_output_addr_diff_elt): Use PC-relative rather than
+ GP-relative offsets for VxWorks PIC.
+ (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
+ no_new_pseudos. Check whether the returned register is op0.
+ * config/i386/i386.md (tablejump): Use PC-relative rather than
+ GP-relative offsets for VxWorks PIC.
+ * config/i386/predicates.md (gotoff_operand): New predicate.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
+ before defining.
+ * config/vxworks-dummy.h: New file.
+ * config/i386/i386.h: Include it.
+
+2007-03-07 Alexandre Oliva <aoliva@redhat.com>
+
+ * dwarf2out.c (is_inlined_entry_point): New
+ (add_high_low_attributes): Emit DW_AT_entry_pc along with
+ DW_AT_ranges if the first subblock is the entry point.
+
+2007-03-06 David Daney <ddaney@avtrex.com>
+
+ * doc/install.texi (mips-*-*): Change recommended binutils
+ version.
+
+2007-03-06 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
+ ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
+ devices.
+ * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
+ * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2007-03-06 Jan Hubicka <jh@suse.cz>
+
+ * errors.h (warning, error, fatal, internal_error): Mark as cold.
+ * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions
+ are hot.
+ (probably_cold_bb_p): Cold functions are cold.
+ (probably_never_executed_bb_p): Cold functions are cold.
+ (tree_bb_level_predictions): Predict calls to cold functions as not
+ taken.
+ (compute_function_frequency): Check hot/cold attributes.
+ * function.h (function_frequency): Update comments.
+ * predict.def (PRED_COLD_FUNCTION): Predict cold function.
+ * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
+ (c_common_att): Add cold and hot.
+
+ * doc/extend.texi (hot,cold attributes): Document.
+
+2007-03-06 Andrew Haley <aph@redhat.com>
+
+ * function.c (expand_function_end): Move blockage to just after we
+ emit the label for the naked return from the function.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
+ before redefining.
+
+2007-03-06 Jan Hubicka <jh@suse.cz>
+
+ * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
+ loaded for constant large models. Non-large 64bit PIC can do.
+ * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
+ * cmodel.h: Add LARGE PIC.
+ * i386.md (UNSPEC_PLTOFF): New.
+ (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
+ needed.
+ (*call_1_rex64): Disable for large models.
+ (*call_1_rex64_large): New.
+ (*call_value_1_rex64): Disable for large models.
+ (*call_value_1_rex64_large): New.
+ (set_rip_rex4): New.
+ (set_got_offset_rex64): New.
+ * predicates.md (constant_call_address_operand): For large model
+ constant calls are not possible.
+ * i386-protos.h (construct_plt_address): Declare.
+ * i386.c (override_options): Accept large models.
+ (ix86_expand_prologue): Expand large PIC GOT pointer load.
+ (legitimate_constant_p): Add new UNSPECs.
+ (legitimate_pic_operand_p): Likewise.
+ (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
+ (legitimize_pic_address): Do easy RIP relative way for TLS only for
+ non-large model.
+ (output_pic_addr_const): Add PLTOFF.
+ (ix86_output_addr_diff_elt): Output 64bit tables when needed.
+ (ix86_expand_move): Legitimize pic address when in PIC mode.
+ (construct_plt_address): New function.
+ (ix86_expand_call): Offload the address to register and use GOT pointer
+ for large model.
+ * invoke.texi (mcmodel=large): Update documentation.
+
+2007-03-06 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (x86_use_leave, x86_push_memory,
+ x86_zero_extend_with_and, x86_movx, x86_double_with_add,
+ x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
+ x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
+ x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
+ x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
+ x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
+ x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
+ x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
+ x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
+ x86_partial_reg_dependency, x86_memory_mismatch_stall,
+ x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
+ x86_sse_partial_reg_dependency, x86_sse_split_regs,
+ x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
+ x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
+ x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
+ x86_schedule, x86_use_bt, x86_pad_returns,
+ x86_use_xchgb): Merge into ...
+ (ix86_tune_features): ... here. New array.
+ (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
+ x86_bswap): Merge into ...
+ (ix86_arch_features): ... here. New array.
+ (x86_3dnow_a): Remove.
+ (x86_accumulate_outgoing_args): Make static.
+ (x86_arch_always_fancy_math_387): Make static.
+ (ix86_tune_mask, ix86_arch_mask): Move ...
+ (override_options): ... to local variables here. Apply the
+ appropriate mask to each element of ix86_arch_features and
+ ix86_tune_features. Adjust TARGET_CMOVE and TARGET_USE_SAHF
+ as were done in the old macros.
+ (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
+ * config/i386/i386.h (x86_use_leave, x86_push_memory,
+ x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
+ x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
+ x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
+ x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
+ x86_read_modify_write, x86_read_modify, x86_split_long_moves,
+ x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
+ x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
+ x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
+ x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
+ x86_partial_reg_dependency, x86_memory_mismatch_stall,
+ x86_accumulate_outgoing_args, x86_prologue_using_move,
+ x86_epilogue_using_move, x86_decompose_lea,
+ x86_arch_always_fancy_math_387, x86_shift1,
+ x86_sse_partial_reg_dependency, x86_sse_split_regs,
+ x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
+ x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
+ x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
+ x86_use_incdec, x86_pad_returns, x86_bswap,
+ x86_partial_flag_reg_stall): Remove.
+ (enum ix86_tune_indices): New.
+ (ix86_tune_features): New.
+ (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
+ TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
+ TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
+ TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
+ TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
+ TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
+ TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
+ TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
+ TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
+ TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
+ TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
+ TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
+ TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
+ TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
+ TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
+ TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
+ TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
+ TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
+ TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
+ TARGET_EXT_80387_CONSTANTS): Use it.
+ (enum ix86_arch_indices): New.
+ (ix86_arch_features): New.
+ (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
+ TARGET_BSWAP): Use it.
+ (ix86_tune_mask, ix86_arch_mask): Remove.
+
+2007-03-06 Joseph Myers <joseph@codesourcery.com>
+
+ PR bootstrap/31020
+ * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
+ Define using $${sysroot_headers_suffix}.
+ * configure: Regenerate.
+ * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
+ multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
+ defined.
+ * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
+ * gcc.c (print_sysroot_headers_suffix): New.
+ (option_map): Include --print-sysroot-headers-suffix.
+ (display_help): Mention -print-sysroot-headers-suffix.
+ (process_command): Handle -print-sysroot-headers-suffix.
+ (do_spec_1): Append multilib directory to include-fixed path if
+ sysroot suffixes in use.
+ (main): Handle -print-sysroot-headers-suffix.
+ * Makefile.in (start.encap): Don't depend on xlimits.h
+ (xlimits.h): Remove.
+ (stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
+ limits.h for each multilib in fixinc_list.
+ (fixinc_list, s-fixinc_list): New.
+ (stmp-fixinc): Depend on fixinc_list. If not copying headers,
+ generate them for each multilib in fixinc_list.
+ (stmp-fixproto): Use include-fixed. Run fixproto for each
+ multilib in fixinc_list.
+ (mostlyclean): Don't remove xlimits.h.
+ (clean): Remove include-fixed.
+ (real-install-headers-tar, real-install-headers-cpio,
+ real-install-headers-cp): Don't copy include, only include-fixed.
+ (install-mkheaders): Depend on fixinc_list. Don't depend on
+ xlimits.h. Save limits.h files for each multilib in fixinc_list.
+ Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
+ SYSTEM_HEADER_DIR setting in mkheaders.conf.
+
+2007-03-06 Jan Hubicka <jh@suse.cz>
+
+ * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
+ NANs easilly.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * configure.ac: Allow tm_file to contain build-directory files.
+ * configure: Regenerate.
+ * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
+ * config/m68k/t-uclinux (sysroot-suffix.h): New target.
+ * config/m68k/print-sysroot-suffix.sh: New file.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
+ of pic_offset_table_rtx if reload_completed.
+ (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
+ PIC_OFFSET_TABLE_REGNUM.
+ * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
+ return true.
+ (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
+ (m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
+ functions that call eh_return.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
+ functions that need a constant pool.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ PR target/28181
+ * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
+ (m68k_preferred_reload_class): Likewise.
+ * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
+ (SECONDARY_RELOAD_CLASS): Define.
+ (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
+ (LIMIT_RELOAD_CLASS): Delete.
+ * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
+ registers from storing bytes.
+ (m68k_secondary_reload_class): New function.
+ (m68k_preferred_reload_class): Likewise.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.c (m68k_save_reg): Remove special case for
+ leaf functions.
+ (m68k_expand_prologue): Likewise.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k-protos.h (output_sibcall): Declare.
+ (mips_expand_epilogue): Add a bool parameter.
+ (m68k_legitimize_sibcall_address): Declare.
+ * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
+ (m68k_expand_epilogue): Add a parameter to select between sibling
+ and normal epilogues. Only generate a return for the latter.
+ (m68k_ok_for_sibcall_p): New function.
+ (m68k_legitimize_sibcall_address, output_sibcall): New functions.
+ * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
+ (sibcall_value, *sibcall_value): Likewise.
+ (*call, *call_value): Require !SIBLING_CALL_P.
+ (epilogue): Update call to m68k_expand_epilogue.
+ (sibcall_epilogue): New pattern.
+ * config/m68k/predicates.md (const_call_operand): Say that this
+ predicate applies to sibling calls too.
+ (sibcall_operand): New predicate.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
+ alternatives as movsi_cf.
+ (movsf_cf_hard): Add commentary.
+
+2007-03-06 Kazu Hirata <kazu@codesourcery.com>
+ Richard Sandiford <richard@codesourcery.com>
+
+ * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
+ (m68k_movem_pattern_p, m68k_output_movem): Likewise.
+ (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
+ * config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
+ as being live on exit from an interrupt function.
+ (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
+ * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
+ (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
+ (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
+ (m68k_interrupt_function_p): Globalize.
+ (m68k_compute_frame_layout): Remove reverse mask code.
+ (m68k_emit_movem, m68k_set_frame_related): New functions.
+ (m68k_output_function_prologue): Delete in favor of...
+ (m68k_expand_prologue): ...this new function.
+ (m68k_output_function_epilogue): Delete in favor of...
+ (m68k_expand_epilogue): ...this new function.
+ (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
+ functions.
+ (print_operand): Handle %?.
+ * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
+ (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
+ (prologue, epilogue): New patterns.
+ (return): Turn into a define_expand.
+ (*return): New pattern, derived from old "return" pattern. Use rte
+ rather than rts for interrupt functions. Only use rtd if the pop
+ count is nonzero.
+ (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
+ (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
+ (link, *link, unlink, *unlink, load_got): Likewise.
+
+2007-03-06 Richard Sandiford <richard@codesourcery.com>
+
+ PR target/23482
+ PR target/17114
+ * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
+ (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
+ (m68k_matches_q_p, m68k_matches_u_p): Likewise.
+ * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
+ and m68k_matches_u_p.
+ (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
+ (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
+ (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
+ (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
+ (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
+ (REG_STRICT_P): New macro.
+ (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
+ PCREL_GENERAL_OPERAND_OK.
+ (REG_OK_FOR_BASE_P): Merge definitions. Use REG_STRICT_P and
+ m68k_legitimate_base_reg_p.
+ (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
+ (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
+ (PIC_CASE_VECTOR_ADDRESS): Update comment.
+ * config/m68k/m68k.c (m68k_address): New structure.
+ (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
+ (m68k_decompose_index, m68k_legitimate_constant_address_p)
+ (m68k_jump_table_ref_p, m68k_decompose_address)
+ (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
+ (m68k_matches_u_p): New functions.
+ (print_operand_address): Rewrite to use m68k_decompose_index.
+
+2007-03-05 David Taylor <dtaylor@emc.com>
+
+ * gcc.c: Correct copyright date in --version output.
+
+2007-03-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md: In unamed move patterns, disparge copies between general
+ and floating point registers using '?' modifier. Don't include 'f'
+ constraint for register preferences in DImode, SImode, HImode and
+ QImode patterns. Likewise for 'r' in DFmode and SFmode patterns.
+ Remove constraints for copies between general and floating registers
+ in soft-float DFmode pattern.
+ (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
+ floating register.
+ (movsf): Likewise.
+
+2007-03-05 Mike Stump <mrs@apple.com>
+
+ * c-common.c (targetcm): Add.
+ * c-opts.c (c_common_handle_option): Handle language specific
+ target options.
+ * opts.c (handle_option): Verify language for target options, if
+ any are given.
+ * opth-gen.awk: Add CL_LANG_ALL.
+ * target-def.h (TARGET_HANDLE_C_OPTION): Add.
+ (TARGETCM_INITIALIZER): Add.
+ * target.h (struct gcc_targetcm): Add.
+ (targetcm): Add.
+ * targhooks.c (default_handle_c_option): Add.
+ * targhooks.h (default_handle_c_option): Add.
+ * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
+
+ * config/darwin.opt (iframework): Add.
+ * config/darwin.h (TARGET_HAS_TARGETCM): Add.
+ * config/darwin-c.c (handle_c_option): Add.
+ (TARGET_HANDLE_C_OPTION): Add.
+ (targetcm): Add.
+ * doc/invoke.texi (Darwin Options): Add -iframework.
+
+2007-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
+ conversion.
+
+2007-03-05 Ian Lance Taylor <iant@google.com>
+
+ * c.opt (fgnu89-inline): New option.
+ * c-opts.c (c_common_post_options): Set default value for
+ flag_gnu89_inline.
+ * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
+ (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
+ inline functions.
+ (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
+ (grokdeclarator, start_function): Likewise.
+ * c-cppbuiltin.c (c_cpp_builtins): Define either
+ __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
+ * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
+ (C Dialect Options): Document -fgnu89-inline.
+ * doc/extend.texi (Function Attributes): Explain what the
+ gnu_inline attribute does.
+ * doc/cpp.texi (Common Predefined Macros): Document
+ __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
+
+2007-03-05 Ian Lance Taylor <iant@google.com>
+
+ PR tree-optimization/31034
+ * tree-vrp.c (extract_range_from_assert): Don't try to handle a
+ half-range if the other side is an overflow infinity.
+
+2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
+ (bfin*-linux-uclibc*): New configuration.
+ * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
+ defining.
+ * config/bfin/linux.h: New file.
+ * config/bfin/libgcc-bfin.ver: New file.
+ * config/bfin/t-bfin-uclinux: New file.
+ * config/bfin/t-bfin-linux: New file.
+ * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
+ (TARGET_OS_CPP_BUILTINS): New macro.
+
+2007-03-05 Richard Guenther <rguenther@suse.de>
+
+ * fold-const.c (fold_binary): Remove duplicate folding
+ of comparison of non-null ADDR_EXPR against null.
+
+2007-03-05 Richard Guenther <rguenther@suse.de>
+ Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/26420
+ * tree-vectorizer.c (vectorize_loops): Bail out early if there
+ are no loops in the function. Only print the number of
+ vectorized loops if it is greater than zero or we are supposed
+ to print information about unvectorized loops.
+
+2007-03-05 Revital Eres <eres@il.ibm.com>
+
+ * gcc.dg/var-expand1.c: New test.
+ * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
+ when an accumulator is expanded.
+
+2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR other/30465
+ * c-common.c (convert_and_check): Don't give warnings for
+ conversion if 'expr' already overflowed.
+
+2007-03-04 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/30744
+ * fold-const.c (fold_comparison): Enforce type consistency when
+ transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
+
+2007-03-04 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-address.c (create_mem_ref): Do not put an expression
+ containing a cast to the base of TARGET_MEM_REF.
+
+2007-03-04 Martin Michlmayr <tbm@cyrius.com>
+
+ * tree.c (tree_contains_struct_check_failed): Remove spurious
+ whitespace from error message.
+
+2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR target/30406
+ * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
+ instead of precision.
+
+2007-03-04 Roman Zippel <zippel@linux-m68k.org>
+ Nathan Sidwell <nathan@codesourcery.com>
+
+ * emit-rtl.c (find_auto_inc): New.
+ (try_split): recreate REG_INC notes,
+ Use regular for loops rather than whiles.
+
+2007-03-03 Andreas Schwab <schwab@suse.de>
+
+ * configure.ac (HAVE_AS_REL16): Move test back to correct place.
+ * configure: Regenerate.
+
+2007-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
+ flag_rounding_math, not flag_unsafe_math_optimizations.
+
+ * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
+ fold_build2.
+ * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
+ alpha_fold_vector_minmax): Likewise.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
+ * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
+
+2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
+ (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
+ if the lhs has side-effects.
+ <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.h (TUNEMASK): Remove define.
+ (ARCHMASK): Remove define.
+ (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
+ Use ix86_arch_mask variable instead of ARCHMASK.
+ * config/i386/i386.c (override_options): Ditto.
+ (standard_80387_constant_p): Ditto.
+
+2007-03-02 Ian Lance Taylor <iant@google.com>
+
+ Used signed infinities in VRP.
+ * tree-vrp.c (uses_overflow_infinity): New static function.
+ (supports_overflow_infinity): New static function.
+ (make_overflow_infinity): New static function.
+ (negative_overflow_infinity): New static function.
+ (positive_overflow_infinity): New static function.
+ (is_negative_overflow_infinity): New static function.
+ (is_positive_overflow_infinity): New static function.
+ (is_overflow_infinity): New static function.
+ (overflow_infinity_range_p): New static function.
+ (compare_values_warnv): New function split out of compare_values.
+ (compare_value): Call it.
+ (set_value_range_to_nonnegative): Add overflow_infinity
+ parameter. Change caller.
+ (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
+ Change callers.
+ (vrp_expr_computes_nonzero): Likewise.
+ (compare_ranges, compare_range_with_value): Likewise.
+ (compare_name_with_value, compare_names): Likewise.
+ (vrp_evaluate_conditional): Likewise.
+ (set_value_range): Handle infinity
+ (vrp_operand_equal_p, operand_less_p): Likewise.
+ (extract_range_from_assert): Likewise.
+ (vrp_int_const_binop): Likewise.
+ (extract_range_from_binary_expr): Likewise.
+ (extract_range_from_unary_expr): Likewise.
+ (extract_range_from_comparison): Likewise.
+ (extract_range_from_expr): Likewise.
+ (dump_value_range): Likewise.
+ (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
+ (test_for_singularity): Likewise.
+ (vrp_int_const_binop): Remove inline qualifier.
+ (adjust_range_with_scev): Add comment.
+ * tree-flow.h (vrp_evaluate_conditional): Update declaration.
+
+2007-03-02 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-structalias.c (could_have_pointers): Tidy.
+ (get_constraint_for): Likewise.
+ (do_structure_copy): Likewise.
+ (find_func_aliases): Fix references to MODIFY_EXPR.
+ (intra_create_variable_infos): Tidy.
+ * tree-ssa-operands.c (add_virtual_operand): Add argument
+ IS_CALL_SITE.
+ When adding members of alias sets, if IS_CALL_SITE is true and
+ the symbol is not call-clobbered, skip it.
+ Adjust all callers.
+
+2007-03-02 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
+ entry by means of emit_insn_at_entry.
+
+2007-03-02 Richard Henderson <rth@redhat.com>
+
+ * expr.h (promoted_input_arg): Remove decl.
+ * function.c (promoted_input_arg): Merge into ...
+ * combine.c (setup_incoming_promotions): ... only caller.
+ Rearrange to avoid double loop.
+
+2007-03-02 Ben Elliston <bje@au.ibm.com>
+ Peter Bergner <bergner@vnet.ibm.com>
+ Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/dfp.md: New file.
+ * config/rs6000/rs6000.md: Include dfp.md.
+ (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
+ * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
+ and TDmode decimal float modes in FP registers.
+ (num_insns_constant): Likewise.
+ (rs6000_legitimate_offset_address_p): Likewise.
+ (rs6000_legitimize_address): Likewise.
+ (rs6000_legitimize_reload_address): Likewise.
+ (rs6000_legitimate_address): Likewise.
+ (rs6000_emit_move): Likewise.
+ (function_arg_boundary): Likewise.
+ (function_arg_advance): Likewise.
+ (rs6000_darwin64_record_arg_recurse): Likewise.
+ (function_arg): Likewise.
+ (rs6000_gimplify_va_arg): Likewise.
+ (rs6000_split_multireg_move): Likewise.
+ (rs6000_output_function_epilogue): Likewise.
+ (rs6000_output_function_epilogue): Likewise.
+ (rs6000_register_move_cost): Likewise.
+ (rs6000_function_value): Likewise.
+ (rs6000_libcall_value): Likewise.
+
+2007-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
+
+2007-03-02 Richard Sandiford <richard@codesourcery.com>
+
+ * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
+ Use $MULTIDIR to choose between the kernel and RTP headers,
+ and use $WIND_BASE and $WIND_USR to locate them.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (override_options): Put initialization of
+ ix86_tune_mask and ix86_arch_mask to the correct place.
+
+2007-03-02 Uros Bizjak <ubizjak@gmail.com>
+ Michael Meissner <michael.meissner@amd.com>
+
+ PR target/31019
+ * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
+ (ARCHMASK): Define.
+ (TARGET_CMOVE): Use ARCHMASK.
+ (TARGET_CMPXCHG): Ditto.
+ (TARGET_CMPXCHG8B): Ditto.
+ (TARGET_XADD): Ditto.
+ (TARGET_BSWAP): Ditto.
+ * config/i386/i386.c (ix86_tune_mask): New global variable.
+ (ix86_arch_mask): Ditto.
+ (override_options): Initialize ix86_tune_mask and
+ ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
+ target_flags.
+
+2007-03-02 Ben Elliston <bje@au.ibm.com>
+
+ PR 30992
+ * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
+
+2007-03-02 Joseph Myers <joseph@codesourcery.com>
+
+ * target.h (init_dwarf_reg_sizes_extra): New target hook.
+ * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
+ * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
+ * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
+ hook.
+ * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
+ rs6000_init_dwarf_reg_sizes_extra): New.
+ * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
+ SPE register high parts.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add install-pdf target as
+ copied from automake v1.10 rules.
+ * configure.ac: Add install-pdf to target list.
+ * configure: Regenerate.
+
+2007-03-01 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
+ modes to LDRD for DImode.
+ (output_move_double): Fixup out of range ldrd/strd.
+ (vfp_secondary_reload_class): Rename...
+ (coproc_secondary_reload_class): ... to this. Add wb argument.
+ * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
+ coproc_secondary_reload_class for CLASS_IWMMXT.
+ (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
+ * arm-protos.h (coproc_secondary_reload_class): Update prototype.
+
+2007-03-01 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-prefetch.c (determine_unroll_factor): Bound the unroll
+ factor by the estimated number of iterations.
+ (loop_prefetch_arrays): Do not prefetch in loops that iterate less than
+ prefetch latency.
+
+ * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
+ decode_caches_intel, detect_caches_intel): New functions.
+ (host_detect_local_cpu): Use detect_caches_amd and
+ detect_caches_intel.
+
+2007-03-01 Richard Henderson <rth@redhat.com>
+
+ * expr.c (emit_move_complex_push): Export.
+ (emit_move_complex_parts): Split out from ...
+ (emit_move_complex): ... here.
+ * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
+ * config/i386/i386.md (movcdi): New.
+
+2007-03-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
+ size of mode1 to check for tieable modes in MMX case.
+
+2007-03-01 Richard Sandiford <richard@codesourcery.com>
+
+ * Makefile.in (rtlanal.o): Depend on tree.h.
+ * rtl.h (offset_within_section_p, split_const): Declare.
+ * rtlanal.c: Include tree.h.
+ (offset_within_block_p): New function, taken from
+ mips_offset_within_object_p.
+ (split_const): New function, taken from mips_split_const.
+ * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
+ Declare.
+ * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
+ (CONSTANT_ADDRESS_P): Only accept legitimate constants.
+ (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
+ * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
+ (m68k_illegitimate_symbolic_constant_p): New function.
+ * config/m68k/m68k.md (movsi): Remove misleading predicates.
+ If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
+ symbolic constant that might be outside the symbol's section,
+ move the symbol first and then add the offset.
+ * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
+ Override.
+ * config/mips/mips.c (mips_split_const): Delete.
+ (mips_offset_within_object_p): Delete.
+ (mips_symbolic_constant_p): Use offset_within_section_p and
+ split_const instead of mips_offset_within_object_p and
+ mips_split_const.
+ (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
+ (mips_legitimize_const_move, print_operand_reloc)
+ (mips_dangerous_for_la25_p): Use split_const instead of
+ mips_split_const.
+
+2007-02-28 Eric Christopher <echristo@apple.com>
+
+ * Makefile.in (install-include-dir): Don't rm -rf include.
+
+2007-02-28 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30364
+ * fold-const.c (fold_binary): Do not associate expressions
+ with more than one variable for integer types that do not wrap.
+
+2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
+
+ * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
+ Delete, and replace with...
+ (fold_builtin_call_array): This. Update callers to use it.
+ * fold-const.c (fold_build_call_list): Delete, and replace with...
+ (fold_build_call_array): This.
+ (fold_build_call_list_initializer): Delete, and replace with...
+ (fold_build_call_array_initializer): This.
+ * tree.h: Update declarations to reflect above changes.
+
+ * c-typeck.c (build_function_call): Store converted arguments
+ in a stack-allocated array instead of building a list.
+ (convert_arguments): Store arguments in the array passed in as an
+ argument, and return the actual number of arguments.
+ * c-format.c: (check_function_format): Pass arguments in an
+ array instead of a list.
+ * c-common.c (check_function_nonnull): Likewise.
+ (check_function_sentinel): Likewise.
+ (check_function_arguments): Likewise.
+ * c-common.h: Update declarations to reflect above changes.
+
+2007-02-28 Jan Hubicka <jh@suse.cz>
+
+ * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
+ PRED_NEGATIVE_RETURN): Update outcomes.
+
+2007-02-28 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * calls.c (emit_library_call_value_1): Handle partial registers
+ correctly when building up CALL_INSN_FUNCTION_USAGE.
+
+2007-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa/predicates.md (move_src_operand): Allow zero for mode.
+ * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
+ move pattern.
+
+2007-02-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30970
+ * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
+ *movv2df_internal): Enable pattern only for valid operand
+ combinations.
+ * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
+ tie only 128bit modes. For MMX registers, tie only 64bit modes.
+
+2007-02-27 Mike Stump <mrs@apple.com>
+
+ * config/darwin-crt3.c: Avoid compilation when compiling for a
+ kext multilib.
+
+2007-02-27 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
+ FIXED_INCLUDE_DIR.
+ (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
+ for fixed headers and limits.h.
+ (install-include-dir, install-headers-tar, install-headers-cpio,
+ install-headers-cp, real-install-headers-tar,
+ real-install-headers-cpio, real-install-headers-cp): Handle
+ include-fixed as well as include.
+ (install-mkheaders): Don't install files that go only in include
+ not include-fixed.
+ * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
+ from GCC_INCLUDE_DIR.
+ * gcc.c (process_command): Remove special -BstageN/ handling.
+ (do_spec_1): Add include-fixed directories.
+
+2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
+ _smulsi3_highpart.
+ * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
+ New functions.
+ * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
+ patterns.
+
+2007-02-27 Mark Mitchell <mark@codesourcery.com>
+
+ * c-common.c (get_priority): Add check for
+ SUPPORTS_INIT_PRIORITY.
+
+2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
+
+ * config/bfin/bfin.c: Include "cfglayout.h".
+ (MAX_LSETUP_DISTANCE): New macro.
+ (struct loop_info): New members incoming, incoming_src and
+ incoming_dest. Delete member predecessor.
+ (length_for_loop): New function.
+ (bfin_optimize_loop): Handle more different loop structures.
+ (bfin_discover_loop): Rework detection of predecessor blocks by
+ examining incoming edges.
+ (bfin_discover_loops, bfin_free_loops): New functions, broken out of
+ bfin_reorg_loops.
+ (bfin_reorder_loops): New function.
+ (bfin_reorg_loops): Use these three new functions.
+
+ * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
+ REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
+ (CONSTRAINT_LEN): Add entry for 'q'.
+ (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
+ Add 'q' constraints.
+ (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
+ (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
+
+ * config/bfin/bfin.md (add_with_carry): New pattern.
+ (s_or_u, su_optab, su_modifier): New code macros/attrs.
+ (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
+ <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
+ support unsigned multiplies too. Removed incorrect commutativity from
+ operand 1 constraint where appropriate.
+ (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
+ patterns.
+ (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
+ <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
+ New patterns.
+ (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
+ usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
+ usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
+ usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
+ usmulhisi_hh_huh): New patterns.
+
+ * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
+ lshifthi3): Fix output template to use half reg for operand 2.
+
+ * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
+ instead of R2.
+
+ * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
+
+2007-02-27 Andreas Schwab <schwab@suse.de>
+
+ * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
+
+2007-02-27 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (last_basic_block_p): Remove.
+ (tree_estimate_probability): Update return heuristic for commonized
+ return blocks.
+
+2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
+
+2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/include/gcc-common.texi (versionsubtitle): New macro.
+ * doc/cpp.texi: Standardize title page.
+ * doc/cppinternals.texi: Likewise.
+ * doc/gcc.texi: Standardize title page, remove version number
+ from copyright page.
+ * doc/gccint.texi: Likewise.
+ * doc/install.texi: Standardize title page, add table of
+ contents.
+
+2007-02-26 Jan Hubicka <jh@suse.cz>
+
+ * predict.def: Set outcomes according to more recent results.
+ (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
+ Remove dead predictors.
+ * predict.c (return_prediction): Fix pasto.
+
+2007-02-27 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
+ change; avoid a memory leak when returning early.
+
+2007-02-26 Mark Mitchell <mark@codesourcery.com>
+
+ * c-decl.c (static_ctors): Move to c-common.c.
+ (static_dtors): Likewise.
+ (finish_function): Use c_record_cdtor_fn.
+ (build_cdtor): Move to c-common.c.
+ (c_write_global_declarations): Use c_build_cdtor_fns.
+ * c-common.h (static_ctors): Declare.
+ (static_dtors): Likewise.
+ (c_record_cdtor_fn): Likewise.
+ (c_build_cdtor_fns): Likewise.
+ * c-common.c (static_ctors): New variable.
+ (static_dtors): Likewise.
+ (c_record_cdtor_fn): New function.
+ (build_cdtor): Move from c-decl.c
+ (c_build_cdtor_fns): New function.
+
+ * output.h (assemble_addr_to_section): Declare.
+ (get_cdtor_priority_section): Likewise.
+ * varasm.c (assemble_addr_to_section): New function.
+ (get_cdtor_priority_section): Likewise.
+ (default_named_section_asm_out_destructor): Use them.
+ (destor_dtor_section_asm_out_destructor): Likewise.
+ (default_named_section_asm_out_constructor): Likewise.
+ (default_ctor_section_asm_out_constructor): Likewise.
+ * config.gcc (*-*-vxworks*): Include vxworks.o.
+ * config/t-vxworks (vxworks.o): New target.
+ * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
+ (TARGET_ASM_CONSTRUCTOR): Define.
+ (TARGET_ASM_DESTRUCTOR): Likewise.
+ (vxworks_asm_out_constructor): Declare.
+ (vxworks_asm_out_destructor): Likewise.
+
+ * c-common.c (get_priority): Check that we have not just an
+ INTEGER_CST, but an integer constant with integeral type.
+
+2007-02-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR tree-optimization/30938
+ * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
+ use &dt[nargs-1] instead of &dt[nargs] in the call to
+ vect_is_simple_use().
+
+2007-02-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
+ from register elimination as PRE_MODIFY / POST_MODIFY increments.
+ Do not attempt to handle MEM inside auto-inc expressions.
+ * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
+ of a register modified by an auto-inc expression. However, do handle
+ elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
+ (elimination_effects): Prohibit elimination of a register modified
+ by an auto-inc expression. Disable register elimination rules whose
+ target register is modified by an auto-inc expression with variable
+ increment.
+
+2007-02-25 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
+ off-by-one error.
+ (array_at_struct_end_p): New function.
+ (idx_infer_loop_bounds): Use it.
+ (estimate_numbers_of_iterations_loop): Export.
+ * predict.c (predict_loops): Use estimated_loop_iterations_int.
+ Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
+ (tree_estimate_probability): Call record_loop_exits.
+ * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
+ (estimated_loop_iterations, estimated_loop_iterations_int,
+ estimated_loop_iterations_tree): New functions.
+ (analyze_siv_subscript_cst_affine,
+ compute_overlap_steps_for_affine_1_2,
+ analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
+ (analyze_miv_subscript): Use estimated_loop_iterations_tree.
+ * predict.def (PRED_LOOP_ITERATIONS): Update comment.
+ (PRED_LOOP_ITERATIONS_GUESSED): New.
+ * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
+ * cfgloop.h (estimate_numbers_of_iterations_loop,
+ estimated_loop_iterations_int): Declare.
+
+2007-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/extend.texi: Document optional priority argument to
+ constructors and destructors.
+ * tree.c (init_priority_for_decl): Adjust GTY markers.
+ (init_ttree): Use priority-info hash functions for
+ init_priority_for_decl.
+ (tree_map_eq): Rename to ...
+ (tree_map_base_eq): ... this.
+ (tree_map_marked_p): Rename to ...
+ (tree_map_base_marked_p): ... this.
+ (tree_map_base_hash): New function.
+ (decl_init_priority_lookup): Rework.
+ (decl_fini_priority_lookup): New function.
+ (decl_priority_info): New function.
+ (decl_init_priority_insert): Use it.
+ (decl_fini_priority_insert): Likewise.
+ (decl_restrict_base_lookup): Adjust for refactoring of tree_map
+ hierarchy.
+ (decl_restrict_base_insert): Likewise.
+ (decl_debug_expr_insert): Likewise.
+ (decl_value_expr_lookup): Likewise.
+ (decl_value_expr_insert): Likewise.
+ * tree.h (priority_type): New type.
+ (decl_init_priority_lookup): Use priority_type.
+ (decl_fini_priority_lookup): New function.
+ (decl_init_priority_insert): Use priority_type.
+ (decl_fini_priority_insert): New function.
+ (DECL_HAS_INIT_PRIORITY): Tweak comments.
+ (DECL_INIT_PRIORITY): Likewise.
+ (SET_DECL_INIT_PRIORITY): Add comment.
+ (DECL_FINI_PRIORITY): New macro.
+ (SET_DECL_FINI_PRIORITY): Likewise.
+ (DEFAULT_INIT_PRIORITY): Document.
+ (MAX_INIT_PRIORITY): Likewise.
+ (MAX_RESERVED_INIT_PRIORITY): Likewise.
+ (tree_map_base): New type.
+ (tree_map_base_eq): New function.
+ (tree_map_base_hash): Likewise.
+ (tree_map_base_marked_p): Likewise.
+ (tree_map): Inherit from tree_map_base.
+ (tree_map_eq): Make it a macro.
+ (tree_map_marked_p): Likewise.
+ (tree_int_map): Inherit from tree_map_base.
+ (tree_int_map_eq): Make it a macro.
+ (tree_int_map_hash): Likewise.
+ (tree_int_map_marked_p): Likewise.
+ (tree_priority_map): New type.
+ (tree_priority_map_eq): New macro.
+ (tree_priority_map_hash): Likewise.
+ (tree_priority_map_marked_p): Likewise.
+ * varasm.c (emults_decl): Adjust for refactoring of tree_map
+ hierarchy.
+ (emutls_common_1): Likewise.
+ * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
+ * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
+ of tree_map hierarchy.
+ * tree-cfg.c (move_stmt_r): Likewise.
+ (new_label_mapper): Likewise.
+ * c-tree.h (c_expand_body): Move to ...
+ * c-common.h (c_expand_body): ... here.
+ * c-decl.c (c_expand_body): Move to ...
+ * c-common.c (c_expand_body): ... here.
+ (c_common_attribute_table): Allow 1 argument for the constructor
+ and destructor attributes.
+ (get_priority): New function.
+ (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
+ (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
+
+2007-02-24 Jan Hubicka <jh@suse.cz>
+
+ PR middle-end/30509
+ * tree-inline.c (copy_bb): Produce exact copy of EH info when copying for inlining.
+
+2007-02-24 Uros Bizjak <ubizjak@gmail.com>
+ Jan Hubicka <jh@suse.cz>
+
+ PR target/30778
+ * i386.c (counter_mode): New function.
+ (expand_set_or_movmem_via_loop): Use it.
+ (expand_movmem_epilogue): Likewise; fix pasto.
+ (ix86_expand_movmem): Do emit guard even for constant counts.
+ (ix86_expand_setmem): Likewise.
+
+2007-02-25 Nick Clifton <nickc@redhat.com>
+
+ * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
+ (JUMP_TABLES_IN_TEXT_SECTION): Define.
+
+2007-02-24 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30770
+ * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
+ count argument with 0x10, not with 0x16.
+ (expand_setmem_epilogue): Ditto.
+
+2007-02-24 Mike Stump <mrs@apple.com>
+
+ * config/i386/i386.c (output_pic_addr_const): Stubify optimized
+ symbols.
+
+2007-02-24 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/30951
+ * fold-const.c (fold_binary): Fold x +- CST op x for
+ EQ_EXPR and NE_EXPR.
+
+2007-02-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.md (muldi3): Force subregs to registers in 64-bit expander.
+
+2007-02-24 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (decide_is_function_needed): Honor
+ -fkeep-inline-functions.
+
+2007-02-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_modf): New.
+ (fold_builtin_2): Use it.
+
+2007-02-24 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * loop-iv.c (implies_p): Detect additional cases where A implies B.
+ (determine_max_iter): Take additional LOOP arg; all callers changed.
+ Lose broken logic dealing with PLUS. Try to limit the upper bound by
+ one using simplifications.
+ (simplify_using_initial_values): Return if the expression becomes
+ invalid due to altered regs.
+
+2007-02-23 DJ Delorie <dj@redhat.com>
+
+ * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
+
+2007-02-23 Mike Stump <mrs@apple.com>
+
+ * tlink.c (scan_linker_output): Parse linker messages from
+ darwin9's linker better.
+
+2007-02-23 Steve Ellcey <sje@cup.hp.com>
+
+ PR debug/29614
+ * varpool.c (varpool_assemble_pending_decls): Set
+ varpool_last_needed_node to null.
+
+2007-02-23 DJ Delorie <dj@redhat.com>
+
+ * config/i386/i386.c (ix86_data_alignment): Don't specify an
+ alignment bigger than the object file can handle.
+
+2007-02-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/30825
+ * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
+ zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
+ (*movsf_1): Penalize MMX moves.
+
+2007-02-23 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
+ 2^32-1 or more times unless flag_unsafe_loop_optimizations.
+
+ * loop-iv.c (determine_max_iter): Moved in front of its sole user.
+
+2007-02-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
+ (fold_builtin_1): Use them.
+ * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
+ BUILT_IN_SIGNIFICAND.
+
+2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (bdesc_1arg): Initialize
+ IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
+ "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
+ (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
+ and IX86_BUILTIN_MOVSLDUP.
+
+2007-02-22 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/30841
+ * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
+
+2007-02-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_frexp): New.
+ (fold_builtin_2): Use it.
+
+2007-02-22 Mark Mitchell <mark@codesourcery.com>
+
+ * doc/invoke.texi (Spec Files): Document getenv spec function.
+
+ * gcc.c (getenv_spec_function): New function.
+ (static_spec_functions): Add it.
+ * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
+ (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
+ header files.
+
+2007-02-22 Michael Matz <matz@suse.de
+
+ PR c++/29433
+ * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
+ (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
+
+2007-02-22 Ian Lance Taylor <iant@google.com>
+
+ PR debug/30898
+ * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
+ (mem_loc_descriptor): Call it.
+
+2007-02-22 Zdenek Dvorak <dvorakz@suse.cz>
+ Ira Rosen <irar@il.ibm.com>
+
+ * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
+
+2007-02-22 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/30843
+ * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
+ stores only after all the group is vectorized.
+
+2007-02-22 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/30858
+ * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
+ in the reduction cycle have a single use in the loop.
+ * tree-vectorizer.h (relevant): Add documentation.
+
+2007-02-20 Mike Stump <mrs@apple.com>
+
+ * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
+ * configure: Regenerate.
+
+2007-02-21 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
+
+ Change the defaults of some parameters and options.
+ * config/spu/spu-protos.h (spu_optimization_options): Declare.
+ * config/spu/spu.c (spu_optimization_options): Add.
+ (spu_override_options): Change params in spu_optimization_options.
+ * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
+
+ Register 127 is only 16 byte aligned when used as a frame pointer.
+ * config/spu/spu-protos.h (spu_init_expanders): Declare.
+ * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
+ HARD_FRAME_POINTER_REGNUM.
+ (spu_legitimate_address): Use regno_aligned_for_reload.
+ (regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
+ aligned when frame_pointer_needed is true.
+ (spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
+ to 8 bits.
+ * config/spu/spu.h (INIT_EXPANDERS): Define.
+
+ Make sure shift and rotate instructions have valid immediate operands.
+ * config/spu/predicates.md (spu_shift_operand): Remove.
+ * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
+ * config/spu/constraints.md (W, O): Extend range.
+ * config/spu/spu.md (umask, nmask): Define.
+ (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
+ lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
+ rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
+ rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
+ spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
+ (lshr<mode>3_reg): Fix rtl description.
+
+ Make sure mulhisi immediate operands are valid.
+ * config/spu/predicates.md (imm_K_operand): Add.
+ * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
+
+ Generate constants using fsmbi and andi.
+ * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
+ (print_operand, spu_split_immediate, classify_immediate,
+ fsmbi_const_p): Handle IC_FSMBI2.
+
+ Correctly handle a CONST_VECTOR containing symbols.
+ * config/spu/spu.c (print_operand): Handle HIGH correctly.
+ (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
+ (immediate_load_p): Allow symbols that use 2 instructions to create.
+ (classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
+ with symbols when flag_pic is set.
+ (const_vector_immediate_p): New.
+ (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
+ accept a CONST_VECTOR with symbols.
+ (spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
+ accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
+ correctly.
+ * config/spu/spu.md (high, low): Delete.
+ (low_<mode>): Define.
+
+ Remove INTRmode and INTR_REGNUM, which didn't work.
+ * config/spu/spu.c (spu_conditional_register_usage): Remove reference
+ of INTR_REGNUM.
+ * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
+ set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
+ peephole2 pattern): Don't use INTR or 131.
+ (movintrcc): Delete.
+ * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
+ CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
+ * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
+ (UNSPEC_SET_INTR): Add.
+ * config/spu/spu-modes.def (INTR): Remove.
+
+ More accurate warnings about run-time relocations.
+ * config/spu/spu.c (reloc_diagnostic): Test in_section.
+
+ Correctly warn about immediate arguments to specific intrinsics.
+ * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
+ (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
+ the instruction predicate.
+
+ Fix tree check errors with latest update.
+ * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
+ CALL_EXPR_ARG.
+ (spu_expand_builtin): Use CALL_EXPR_FN.
+
+ Add missing specific intrinsics.
+ * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
+ si_bislede.
+ * config/spu/spu_internals.h: Ditto.
+
+ Fix incorrect operand modifiers.
+ * config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
+ * config/spu/spu.md (xor<mode>3): Change %S to %J.
+
+ Optimize one case of zero_extend of a vec_select.
+ * config/spu/spu.md (_vec_extractv8hi_ze): Add.
+
+ Accept any immediate for hbr.
+ * config/spu/spu.md (hbr): Change s constraints to i.
+
2007-02-21 Paul Brook <paul@codesourcery.com>
* config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
@@ -109,7 +2256,7 @@
intrinsics.
2007-02-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
- DJ Delorie <dj@redhat.com>
+ DJ Delorie <dj@redhat.com>
PR other/30824
* diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...