OSDN Git Service

* config/i386/predicates.md (zero_extended_scalar_load_operand):
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 684b6cd..bfafc2a 100644 (file)
@@ -1,3 +1,692 @@
+2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/predicates.md (zero_extended_scalar_load_operand):
+       Use CONST_VECTOR_NUNITS to determine number of elements.
+
+2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
+       (U, W): Constraints are now deprecated and will be removed if we
+       run out of letters.     
+       * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
+       the file.
+       ("prefetch"): Add the stcmh instruction for prefetching.
+       * config/s390/s390.c (s390_symref_operand_p): Function moved. No
+       changes.
+       (s390_short_displacement): Return always true if compiling for
+       machines not providing the long displacement facility.
+       (s390_mem_constraint): Support the new constraint letter Z.
+       (s390_check_qrst_address): New function.
+
+2009-07-21  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_legitimize_arg): Leave control registers
+       alone too.
+
+2009-07-21  Jason Merrill  <jason@redhat.com>
+
+       * c-common.c (max_tinst_depth): Increase default to 1024.
+
+2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
+       (vec_unpacku_float_lo_v4si): Ditto.
+
+2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/40811
+       * config/i386/sse.md (sse2_cvtudq2ps): New expander.
+       (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
+       (builtin_description): Add __builtin_ia32_cvtudq2ps.
+       (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
+
+2009-07-21  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/40813
+       * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
+       it.
+
+2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
+       with a NOP_EXPR if needed.
+
+2009-07-21  Paul Brook <paul@codesourcery.com>
+
+       * tree-vectorizer.c (increase_alignment): Handle nested arrays.
+       Terminate debug dump with newline.
+
+2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
+       Cast "1" to unsigned HOST_WIDE_INT.
+       (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
+       deposit length to the maximum length - lsb.  Extend length if
+       HOST_BITS_PER_WIDE_INT is 32.
+
+2009-07-20  Olatunji Ruwase <tjruwase@google.com>
+
+       * cgraph.h (constant_pool_htab): New function.
+       (constant_descriptor_tree): Move from varasm.c.
+       * varasm.c (constant_pool_htab): New function.
+       (constant_descriptor_tree): Move to cgraph.h.
+
+2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
+
+       * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
+
+2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
+
+       * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
+       $(VARRAY_H).
+
+2009-07-20  Xinliang David Li  <davidxl@google.com>
+
+       * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
+
+2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (move_type): Add arith.
+       (type): Handle arith.
+       (zero_extendsidi2): Rename this into ...
+       (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
+       (zero_extendsidi2): New expander.
+       (*zero_extendsidi2_dext): New pattern.
+
+2009-07-20  Nick Clifton  <nickc@redhat.com>
+
+       * config.gcc (mips64-*-*): Add definition of tm_defines in order
+       to set MIPS_ABI_DEFAULT.
+       * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
+
+2009-07-20  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-object-size.c (addr_object_size): Handle unions with
+       array in it as last field of structs in __bos (, 1) as __bos (, 0).
+
+       PR tree-optimization/40792
+       * tree.c (build_function_type_skip_args): Remove bogus assert.
+
+2009-07-20  Jan Hubicka  <jh@suse.cz>
+           Martin Jambor  <mjambor@suse.cz>
+
+       * cgraph.h (combined_args_to_skip): New field.
+       * cgraph.c (cgraph_create_virtual_clone): Properly handle
+       combined_args_to_skip and args_to_skip.
+       * tree-inline.c (update_clone_info): New function.
+       (tree_function_versioning): Call update_clone_info.
+       * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
+       functions.
+       (cgraph_materialize_all_clones): More extensive dumping, working
+       with combined_args_to_skip rather than args_to_skip.
+
+2009-07-20  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vectorizer.h (vectorizable_condition): Add parameters.
+       * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
+       (get_initial_def_for_reduction): Likewise.
+       (vectorizable_reduction): Skip the check of first operand in case
+       of COND_EXPR. Add check that it is outer loop vectorization if
+       nested cycle was detected. Call vectorizable_condition() for 
+       COND_EXPR. If reduction epilogue cannot be created do not fail for
+       nested cycles (if it is not double reduction). Assert that there
+       is only one type in the loop in case of COND_EXPR. Call
+       vectorizable_condition() to vectorize COND_EXPR.
+       * tree-vect-stmts.c (vectorizable_condition): Update comment.
+       Add parameters. Allow nested cycles if called from 
+       vectorizable_reduction(). Use reduction vector variable if provided.
+       (vect_analyze_stmt): Call vectorizable_reduction() before
+       vectorizable_condition().
+       (vect_transform_stmt): Update call to vectorizable_condition().
+
+2009-07-20  Christian Bruel  <christian.bruel@st.com>
+       
+       * config/sh/sh.opt (-mfmovd): Resurrect and document.
+       * doc/invoke.texi (-mfmovd): Likewise.
+       * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
+       
+2009-07-20  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
+       when handling SSA name.
+
+2009-07-19  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/40676
+       * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
+       virtual PHIs in empty BBs.
+
+2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
+       re-expanded the compound use gen_lowpart instead to convert to the
+       desired mode.
+
+2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
+       OUTER_CONST arguments.
+       <LSHIFTRT>: Use them to allow widening if the bits shifted in from
+       the new wider mode will be masked off.
+       (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
+
+2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
+       high-order bits are zero.
+
+2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * combine.c (simplify_shift_const_1): Split code to determine
+       shift_mode into ...
+       (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
+       new bits shifted in are identical to the old sign bit.
+
+2009-07-18  Richard Guenther  <rguenther@suse.de>
+
+       PR c/40787
+       * gimplify.c (gimplify_call_expr): Reject code using results from
+       functions returning void.
+
+2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * doc/md.texi: Document the new PowerPC "es" constraint.
+       Document that "m" can include automodified addresses on this target,
+       and explain how %U must be used.  Extend the "Q" and "Z" documentation
+       to suggest "es" as well as "m".
+       * config/rs6000/constraints.md (es): New memory constraint.
+       (Q, Z): Update strings to match new documentation.
+
+2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
+       offset from virtual_stack_vars_rtx and arg_pointer_rtx.
+       * config/rs6000/predicates.md (volatile_mem_operand): Use
+       offsettable_nonstrict_memref_p.
+       * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
+       (*floatunssidf2_internal): Likewise.
+       (*fix_truncdfsi2_internal): Likewise.
+       (*fix_trunctfsi2_internal): Likewise.
+
+2009-07-17  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
+       atmega32u2 devices.
+       * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
+
+2009-07-17  Richard Guenther  <rguenther@suse.de>
+
+       PR c/40401
+       * tree-pass.h (pass_diagnose_omp_blocks): Declare.
+       (pass_warn_unused_result): Likewise.
+       (TODO_set_props): Remove.
+       * omp-low.c (diagnose_omp_structured_block_errors): Change to
+       run as a pass.
+       (pass_diagnose_omp_blocks): Define.
+       * c-decl.c (pop_file_scope): Do not finalize the CU here.
+       (c_gimple_diagnostics_recursively): Remove.
+       (finish_function): Do not call it.
+       (c_write_global_declarations): Continue after errors.
+       Finalize the CU here.
+       * c-gimplify.c (c_genericize): Do not gimplify here.
+       * c-common.c (c_warn_unused_result): Move ...
+       * tree-cfg.c (do_warn_unused_result): ... here.
+       (run_warn_unused_result): New function.
+       (gate_warn_unused_result): New function.
+       (pass_warn_unused_result): New pass.
+       * c-common.h (c_warn_unused_result): Remove.
+       * flags.h (flag_warn_unused_result): Declare.
+       * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
+       * opts.c (flag_warn_unused_result): Initialize to false.
+       * toplev.c (compile_file): Add comment.
+       * omp-low.c (create_omp_child_function): Do not register
+       the function with the frontend.
+       (diagnose_omp_structured_block_errors): Prepare to be
+       called as optimization pass.
+       (gate_diagnose_omp_blocks): New function.
+       (pass_diagnose_omp_blocks): New pass.
+       * cgraph.h (cgraph_optimize): Remove.
+       (cgraph_analyze_function): Likewise.
+       * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
+       * cgraphunit.c (cgraph_lower_function): Lower nested functions
+       before their parents here.
+       (cgraph_finalize_function): Not here.
+       (cgraph_analyze_function): Gimplify functions here.
+       (cgraph_finalize_compilation_unit): Continue after errors.
+       Optimize the callgraph from here.
+       (cgraph_optimize): Make static.
+       * langhooks.c (write_global_declarations): Finalize the CU.
+       * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
+       (gimplify_function_tree): Assert we gimplify only once.
+       Set PROP_gimple_any property.
+       * tree-nested.c (gimplify_all_functions): New function.
+       (lower_nested_functions): Gimplify all nested functions.
+       * gimple.h (diagnose_omp_structured_block_errors): Remove.
+       * passes.c (init_optimization_passes): Add pass_warn_unused_result
+       and pass_diagnose_omp_blocks after gimplification.  Do not
+       set TODO_set_props on all_lowering_passes.
+       (execute_one_pass): Do not handle TODO_set_props.
+       * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
+       (gimplify.o): Add tree-pass.h dependency.
+       * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
+       (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
+       (unsave_r): Likewise.
+       * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
+       temporary variable.
+
+2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * doc/service.texi (Service): Restore previously removed link,
+       which isn't broken after all.
+
+2009-07-17  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40321
+       * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
+       PHI nodes to the maximal set.
+       (make_values_for_phi): Add PHI arguments to the maximal set.
+       (execute_pre): Dump PHI_GEN and the maximal set.
+
+2009-07-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/40780
+       * gimplify.c (gimplify_conversion): Don't change non-conversions into
+       VIEW_CONVERT_EXPR.
+
+2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * doc/extend.texi (Nested Functions): Replace broken link with
+       textual reference.
+       * doc/service.texi (Service): Remove broken link.
+
+2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/40781
+       * builtins.c (expand_builtin_memcmp): Use loc instead of
+       EXPR_LOCATION (exp).
+       (expand_builtin_strncmp): Likewise.
+
+2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
+           Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       PR 40435 
+       * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
+       builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
+       tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
+       c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
+       calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
+       tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
+       tree-inline.c, c-common.c, c-common.h, gimple.c,
+       tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
+       convert.c: Add location argument to fold_{unary,binary,ternary},
+       fold_build[123], build_call_expr, build_size_arg,
+       build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
+       fold_build1_initializer, fold_build2_initializer,
+       fold_build3_initializer, fold_build_call_array,
+       fold_build_call_array_initializer, fold_single_bit_test,
+       omit_one_operand, omit_two_operands, invert_truthvalue,
+       fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
+       combine_comparisons, fold_builtin_*, fold_call_expr,
+       build_range_check, maybe_fold_offset_to_address, round_up,
+       round_down.
+
+2009-07-16  Jason Merrill  <jason@redhat.com>
+
+       PR libstdc++/37907
+       * c-common.c (c_common_reswords): Add __is_standard_layout
+       and __is_trivial.
+       * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
+       * doc/implement-cxx.texi: New.
+       * doc/gcc.texi: Include it.
+
+2009-07-16  DJ Delorie  <dj@redhat.com>
+
+       * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
+       compares that may be indirectly affected by previous instructions.
+
+2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (do_mpc_arg2): New.
+       (fold_builtin_2): Fold builtin cpow.
+       * real.h (HAVE_mpc_pow): New.
+
+2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
+
+       * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
+       comparison to skip unprofitable schedule
+
+2009-07-16  Simon Baldwin  <simonb@google.com>
+
+       * gcc.c (option_map): New flag -no-canonical-prefixes.
+       * (display_help): Print help text for new flag.
+       * (process_command): Move options translation and language specifics
+       and handle new flag early.  Use it to set a function pointer to a
+       prefix builder.  Replace make_relative_prefix calls with calls to
+       the function pointed to.  Ignore new flag in regular options handling.
+       * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
+
+2009-07-15  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.md (sibcall_internal): Change register to avoid
+       argument registers.
+       (sibcall_value_internal): Likewise.
+
+2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/40710
+       * resource.c (mark_target_live_regs): Reset DF problem to LR.
+
+2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (*extenddi_truncate<mode>,
+       *extendsi_truncate<mode>): Change type attribute to move_type
+       with shift_shift.  Split out code handling exts from here ...
+       (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
+       pattern.
+       (*extendhi_truncateqi): Change type attribute to move_type with
+       shift_shift.  Split out code handling exts from here ...
+       (*extendhi_truncateqi_exts): ... to this new pattern.
+
+2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
+       instead of "and" with inverted sign bit mask value.  Use
+       "nonimmediate_operand" for operand 1 and operand 2 predicate.
+       Allocate registers only for operand 4 and operand 5.
+
+2009-07-15  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/40747
+       * fold-const.c (fold_cond_expr_with_comparison): When folding
+       < and <= to MIN, make sure the MIN uses the same type as the
+       comparison's operands.
+
+2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (ior_xor): New code iterator.
+       (split for ior/xor with shift and zero-extend): New split pattern.
+       * arm/predicates.md (subreg_lowpart_operator): New special predicate.
+
+2009-07-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
+       offset member.
+
+2009-07-15  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/40753
+       * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
+
+2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
+       handle 2.6.30 kernel.
+
+2009-07-15  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.md (sibcall_internal): Change register to allow
+       for 24-bit addresses.
+       (sibcall_value_internal): Likewise.
+
+2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
+       
+       * doc/invoke.texi: Added descriptions of the  scheduling heuristics
+       that are enabled/disabled by the flags introduced by a previous patch.
+       
+2009-07-14  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.md (sibcall_internal): Include non-toggling
+       non-jmp case.
+       (sibcall_value_internal): Likewise.
+
+2009-07-14  Taras Glek  <tglek@mozilla.com>
+           Rafael Espindola  <espindola@google.com>
+
+       * doc/sourcebuild.texi: Document install-plugin target.
+       * configure.ac: Added install-plugin target to language makefiles.
+       * configure: Regenerate.
+       * Makefile.in: (install-plugin): Install more headers,
+       depend on lang.install-plugin.
+
+2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
+
+       * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
+       translation.
+       
+2009-07-14  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_vliw_jmp_match): New function.
+       * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
+       * config/mep/mep.md (sibcall_internal): Change test from
+       mep_vliw_mode_match to mep_vliw_jmp_match.
+       (sibcall_value_internal): Likewise.
+
+2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/sse.md (copysign<mode>3): New expander.
+       * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
+       * config/i386/i386.c (ix86_build_signbit_mask): Make public.
+       Use ix86_build_const_vector.
+       (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
+       IX86_BUILTIN_CPYSGNPD.
+       (builtin_description): Add __builtin_ia32_copysignps and
+       __builtin_ia32_copysignpd.
+       (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
+       and BUILT_IN_COPYSIGNF.
+
+2009-07-13  Jason Merrill  <jason@redhat.com>
+
+       * builtins.c (can_trust_pointer_alignment): New fn.
+       (get_pointer_alignment): Factor it out from here.
+       * tree.h: Declare it.
+
+2009-07-14  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/predicates.md (offsettable_mem_operand): Test
+       RTX_AUTOINC class.
+
+2009-07-14  Dodji Seketeli  <dodji@redhat.com>
+
+       PR debug/40705
+       PR c++/403057
+       * dwarf2.out.c (gen_type_die_with_usage): Added comment.
+
+2009-07-14  Richard Guenther  <rguenther@suse.de>
+           Andrey Belevantsev <abel@ispras.ru>
+
+       PR middle-end/40745
+       * cfgexpand.c (partition_stack_vars): Do not bother to update
+       alias information when not optimizing.
+
+2009-07-14  Richard Guenther  <rguenther@suse.de>
+           Andrey Belevantsev <abel@ispras.ru>
+
+       * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
+       (pt_solution_set): Likewise.
+       * tree-ssa-alias.c (refs_may_alias_p_1): Export.
+       * tree-ssa-structalias.c (pt_solution_set): New function.
+       * final.c (rest_of_clean_state): Free SSA data structures.
+       * print-rtl.c (print_decl_name): Remove.
+       (print_mem_expr): Implement in terms of print_generic_expr.
+       * alias.c (ao_ref_from_mem): New function.
+       (rtx_refs_may_alias_p): Likewise.
+       (true_dependence): Query alias-export info.
+       (canon_true_dependence): Likewise.
+       (write_dependence_p): Likewise.
+       * tree-dfa.c (get_ref_base_and_extent): For void types leave
+       size unknown.
+       * emit-rtl.c (component_ref_for_mem_expr): Remove.
+       (mem_expr_equal_p): Use operand_equal_p.
+       (set_mem_attributes_minus_bitpos): Do not use
+       component_ref_for_mem_expr.
+       * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
+       (update_alias_info_with_stack_vars): Likewise.
+       (partition_stack_vars): Call update_alias_info_with_stack_vars.
+       * tree-ssa.c (delete_tree_ssa): Do not release SSA names
+       explicitly nor clear stmt operands.
+       Free the decl-to-pointer map.
+       * tree-optimize.c (execute_free_datastructures): Do not free
+       SSA data structures here.
+       * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
+       * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
+       (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
+       dependencies.
+       (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
+
+2009-07-13  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
+       unrolling at the right iteration count.
+
+       * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
+       calculations.
+
+2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
+       
+       * haifa-sched.c (rank_for_schedule): Introduced flags to
+       enable/disable individual scheduling heuristics.
+       * common.opt: Introduced flags to enable/disable individual
+       heuristics in the scheduler.    
+       * doc/invoke.texi: Introduced flags to enable/disable individual
+       heuristics in the scheduler.
+       
+2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
+       config/i386/mingw-tls.c.
+       * config/i386/mingw-tls.c: Removed.
+
+2009-07-13  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
+       checks access only relevant statements.
+       (vectorizable_reduction): Likewise.
+
+2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
+       just for 32-bit case.
+
+2009-07-12  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/40585
+       * except.c (expand_resx_expr): When there already is resume
+       instruction, produce linked list.
+       (build_post_landing_pads): Assert that resume is empty.
+       (connect_post_landing_pads): Handle resume lists.
+       (dump_eh_tree): Dump resume list.
+
+2009-07-12  Ira Rosen  <irar@il.ibm.com>
+
+       * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
+       with additional argument.
+       * tree-vectorizer.h (enum vect_def_type): Add
+       vect_double_reduction_def.
+       (vect_is_simple_reduction): Add argument.
+       * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
+       indentation.
+       (vect_analyze_scalar_cycles_1): Detect double reduction. Call
+       vect_is_simple_reduction with additional argument.
+       (vect_analyze_loop_operations): Handle exit phi nodes in case of
+       double reduction.
+       (reduction_code_for_scalar_code): Handle additional codes by
+       returning ERROR_MARK for them. Fix comment and indentation.
+       (vect_is_simple_reduction): Fix comment, add argument to specify
+       double reduction. Detect double reduction.
+       (get_initial_def_for_induction): Fix indentation.
+       (get_initial_def_for_reduction): Fix comment and indentation.
+       Handle double reduction. Create initial definitions that do not
+       require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
+       (vect_create_epilog_for_reduction): Fix comment, add argument to
+       handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
+       epilogue result extraction. Create double reduction phi node and
+       replace relevant uses.
+       (vectorizable_reduction): Call vect_is_simple_reduction with
+       additional argument. Fix indentation. Update epilogue code treatment
+       according to the changes in reduction_code_for_scalar_code. Check
+       for double reduction. Call vect_create_epilog_for_reduction with
+       additional argument.
+       * tree-vect-stmts.c (process_use): Handle double reduction, update
+       documentation.
+       (vect_mark_stmts_to_be_vectorized): Handle double reduction.
+       (vect_get_vec_def_for_operand): Likewise.
+
+2009-07-12  Danny Smith  <dansmister@gmail.com>
+
+       * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
+       dllexport if !TREE_PUBLIC.
+       (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
+
+2009-07-11  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
+       (avr_extra_arch_macro) Remove declatation.
+       * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
+       (avr_extra_arch_macro) Declare as static.
+       * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
+
+2009-07-11  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/48388
+       * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
+
+2009-07-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/40713
+       * dwarf2out.c (dw_fde_struct): Add in_std_section and
+       cold_in_std_section bits.
+       (dwarf2out_begin_prologue): Initialize them.
+       (dwarf2out_finish): Don't emit FDE range into .debug_ranges
+       if already covered by text_section or cold_text_section range.
+
+       PR rtl-optimization/40667
+       * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
+       * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
+       * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
+       * config/i386/i386.c (ix86_minimum_alignment): New function.
+       * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
+       * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
+       * emit-rtl.c (gen_reg_rtx): Likewise.
+       * function.c (assign_parms): Likewise.  If nominal_type needs
+       bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
+       rather than passed_type's alignment.
+
+       PR target/40668
+       * function.c (assign_parm_setup_stack): Adjust
+       MEM_OFFSET (data->stack_parm) if promoted_mode is different
+       from nominal_mode on big endian.
+
+2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
+
+2009-07-10  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
+
+2009-07-10  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
+       attribute.
+       (thumb2_cbnz): Likewise.
+
+2009-07-10  David Daney  <ddaney@caviumnetworks.com>
+
+       PR target/39079
+       * config.gcc (supported_defaults): Add synci.
+       (with_synci): Add validation.
+       (all_defaults): Add synci.
+       * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
+       ISA_HAS_SYNCI.
+       (synci): Same.
+       * config/mips/mips.opt (msynci): New option.
+       * config/mips/mips.c (mips_override_options): Warn on use of
+       -msynci for targets that do now support it.
+       * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
+       msynci.
+       * gcc/doc/invoke.texi (-msynci): Document the new option.
+       * doc/install.texi (--with-synci): Document the new option.
+
 2009-07-10  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/40496
        * dwarf2asm.c: Include dwarf2.h.
 
 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
-        
+
        * haifa-sched.c (insn_finishes_cycle_p): New static function.
-        (max_issue): Use it.
-        * sched-int.h (struct sched_info: insn_finishes_block_p): New
-        scheduler hook.
-        * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
-        (region_sched_info): Update.
-        * sched-ebb.c (ebb_sched_info): Update.
-        * modulo-sched.c (sms_sched_info): Update.
+       (max_issue): Use it.
+       * sched-int.h (struct sched_info: insn_finishes_block_p): New
+       scheduler hook.
+       * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
+       (region_sched_info): Update.
+       * sched-ebb.c (ebb_sched_info): Update.
+       * modulo-sched.c (sms_sched_info): Update.
        * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
 
 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
 
 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
 
-       * simplify-rtx.c (simplify_binary_operation_1) <AND>: Transform (and
-        (truncate)) into (truncate (and)).
+       * simplify-rtx.c (simplify_binary_operation_1) <AND>:
+       Transform (and (truncate)) into (truncate (and)).
 
 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
 
 
 2009-07-07  Duncan Sands  <baldrick@free.fr>
 
-        * final.c (pass_clean_state): Give the pass a name.
-        * passes.c (pass_rest_of_compilation): Likewise.
-        * tree-optimize.c (pass_all_optimizations): Likewise.
+       * final.c (pass_clean_state): Give the pass a name.
+       * passes.c (pass_rest_of_compilation): Likewise.
+       * tree-optimize.c (pass_all_optimizations): Likewise.
 
 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
 
 
 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
 
-       * cgraphunit.c: Replace %J by an explicit location. Update all
-       calls.
+       * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
        * c-decl.c: Likewise.
        * function.c: Likewise.
        * varasm.c: Likewise.
 
 2009-07-06  Diego Novillo  <dnovillo@google.com>
 
-       * tree-pretty-print.c (dump_generic_node): Protect
-       against NULL op0.
+       * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
        (debug_tree_chain): Handle cycles.
 
 2009-07-06  Nick Clifton  <nickc@redhat.com>
        (TARGET_CPU_CPP_BUILTINS): Define
        __FMOVD_ENABLED__ if TARGET_FMOVD is true.
        * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
-       two fmov instructions depending upon whether TARGET_FMOVD is
-       enabled.
+       two fmov instructions depending upon whether TARGET_FMOVD is enabled.
        (split for DF load from memory into register): Also handle
        MEMs which consist of REG+DISP addressing.
        (split for DF store from register to memory): Likewise.
 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR target/40587
-       * ira.c (build_insn_chain): Use DF_LR_OUT instead of
-       df_get_live_out.
+       * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
 
 2009-07-03  Richard Guenther  <rguenther@suse.de>
 
 2009-07-03  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/34163
-       * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to
-       (T2)t +- (T2)x if t +- x is known to not overflow and
-       the conversion widens the operation.
+       * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
+       if t +- x is known to not overflow and the conversion widens the
+       operation.
        * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
 
 2009-07-03  Jan Hubicka  <jh@suse.cz>
        (vect_finalize_reduction): Handle subtraction, fix comments.
        (vectorizable_reduction): Handle nested cycles. In case of nested
        cycle keep track of the reduction variable position. Call 
-       vect_is_simple_reduction with additional parameter. Use original 
+       vect_is_simple_reduction with additional parameter. Use original
        statement code in reduction epilogue for nested cycle. Call
        vect_create_epilog_for_reduction with additional parameter.
        * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
 2009-06-01  Ira Rosen  <irar@il.ibm.com>
 
        PR tree-optimization/39129
-       * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
+       * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
        printed message.
-       (vect_do_peeling_for_loop_bound): Use 
+       (vect_do_peeling_for_loop_bound): Use
        LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
        LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
        (vect_loop_versioning): Likewise.
        (vect_create_cond_for_alias_checks): Fix indentation.
-       * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
+       * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
        macros.
        (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
        (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
-       * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
+       * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
        "control flow in loop".
-       (vect_estimate_min_profitable_iters): Use 
+       (vect_estimate_min_profitable_iters): Use
        LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
        LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
        * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
        (vect_create_data_ref_ptr): Don't mention array dimension in printing.
-       * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
-       statement belongs to a group of strided accesses with the exact code 
+       * tree-vect-stmts.c (vectorizable_store): Replace the check that the
+       statement belongs to a group of strided accesses with the exact code
        check.
        (vectorizable_load): Likewise.
        * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".