OSDN Git Service

* config/alpha/alpha.c: Include libfuncs.h
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f337538..c6c25de 100644 (file)
+2009-08-09  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c: Include libfuncs.h
+       (avms_asm_output_extern): New function.
+       (alpha_init_libfuncs): Init some decc libfuncs.
+       * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
+       * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
+       (DO_CRTL_NAMES): Define.
+       (LIB_SPEC): Remove.
+       * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
+       (LONG_TYPE_SIZE): Define.
+       (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
+       (SUBTARGET_SWITCHES): Define malloc64 switch.
+       (TARGET_DEFAULT): Default MASK_MALLOC64 set.
+       (MASK_RETURN_ADDR): Define.
+       doc/invoke.texi (mmalloc64): Document switch.
+
+2009-08-09  Olivier Hainque  <hainque@adacore.com>
+            Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (struct machine_function): New flag for VMS,
+       uses_condition_handler.
+       (alpha_expand_builtin_establish_vms_condition_handler): New expander.
+       (alpha_expand_builtin_revert_vms_condition_handler): New expander.
+       (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
+       and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
+       (code_for_builtin): New insn codes for the new alpha_builtins.
+       (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
+       (alpha_sa_size): Account for uses_condition_handler.
+       (alpha_expand_prologue): Likewise.
+       (alpha_start_function): Likewise.
+       (alpha_expand_epilogue): Likewise.
+       * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
+       establish/revert expanders.
+       * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
+       * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
+       New expander, resorting to the alpha.c associated function.
+       (builtin_revert_vms_condition_handler): Likewise.
+       * config/alpha/vms-gcc_shell_handler.c: New file. Implements
+       __gcc_shell_handler, the static VMS condition handler used as
+       an indirection wrapper to the current dynamically established
+       handler.
+       * config/alpha/vms-unwind.h: Complete rewrite.
+       * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
+       * config/alpha/vms.h (MD_UNWIND_SUPPORT):
+       
+2009-08-09  Eric Botcazou  <botcazou@adacore.com>
+            Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (alpha_links): Add 'target' field.
+       (alpha_need_linkage): Handle aliases.  Return function symbol.
+       (alpha_use_linkage): Rename 'linkage' argument to 'func'.
+       Use ultimate alias target for the linkage name.
+       * config/alpha/alpha.md (movmemdi): Use the symbol returned
+       by alpha_need_linkage for the function symbol.
+       (setmemdi): Likewise.
+
+2009-08-09  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
+       * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
+       (ASM_WEAKEN_LABEL): Define.
+       (CRT_CALL_STATIC_FUNCTION): Define.
+       (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
+       (ENDFILE_SPEC): Define.
+       (INIT_SECTION_ASM_OP): Define.
+       * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
+       * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
+       crtend.o crtendS.o.
+       (MULTILIB_OSDIRNAMES): Define.
+       (shlib_version): Define.
+       (SHLIB_EXT): Define.
+       (SHLIB_OBJS): Define.
+       (SHLIB_NAME): Define.
+       (SHLIB_MULTILIB): Define.
+       (SHLIB_INSTALL): Define.
+       (SHLIB_SYMVEC): Define.
+       (SHLIB_SYMVECX2): Define.
+       (SHLIB_LINK): Define.
+
+2009-08-09  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (alpha_initialize_trampoline):
+       Initialize VMS trampoline IAW ABI for bounded procedure calls.
+       (alpha_start_function): Emit transfer address on nested functions
+       for VMS trampoline call.
+       * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
+       since no longer used.
+       * config/alpha/vms-tramp.asm: Remove.
+       * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
+       since now only data initialized at runtime.
+
+2009-08-09  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
+       (LINK_GCC_C_SEQUENCE_SPEC): Define.
+       (MD_EXEC_PREFIX): Remove, no longer used.
+       (MD_STARTFILE_PREFIX): Likewise.
+       (INCLUDE_DEFAULTS): Likewise.
+       * config/alpha/t-vms:
+       (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
+
+2009-08-09  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/41016
+       * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification
+       bug.
+       (operand_precision): Remove.
+       (integral_operand_p): Likewise.
+       (recognize_single_bit_test): Adjust.
+
+2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * c-common.c (c_fully_fold_internal): Issue a warning if a binary
+       operation overflows.  Likewise non-cast unary arithmetic.
+       If one arm of a conditional expression is always taken,
+       inhibit evaluation warnings for the other arm.  Likewise inhibit
+       evaluation warnings for the second && or || operand if the first
+       operand is enough to determine the result.
+       * c-typeck.c (build_conditional_expr): Apply the same inhibition
+       rules here.
+       (build_binary_op): Prevent duplicate evaluation warnings.
+
+2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
+       and destination have different modes, Use promote_mode to
+       determine the signedness of the conversion.  Assert that the
+       promoted source mode matches the destination mode.  Don't pass
+       the destination and destination mode to expand_expr if the source
+       mode is different.  Simplify conversion logic.
+
+2009-08-09  Ira Rosen  <irar@il.ibm.com>
+
+       PR tree-optimization/41008
+       * tree-vect-loop.c (vect_is_simple_reduction): Get operands
+       from condition only in case it's a comparison. Adjust checks.   
+
+2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
+       * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
+       * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
+       (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
+       (dump_cand): Handle them.
+       (struct iv_cand): New members COST_STEP and AINC_USE.
+       (stmt_after_increment): Likewise.
+       (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
+       callers changed.  Use gimple_uid comparison instead of scanning.
+       (add_candidate_1): When looking for identical candidates, take
+       AINC_USE into account.  Set it for new candidates.
+       (force_expr_to_var_cost): Cast target_spill_cost to int.
+       (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
+       All callers changed.  Check for availability of autoinc addressing
+       modes, both in general for a given mode, and in the specific use
+       case.
+       (get_computation_cost_at): New argument CAN_AUTOINC.  All callers
+       changed.
+       (get_computation_cost): Likewise.
+       (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
+       add_autoinc_candidates): New static functions.
+       (add_candidate): Call add_autoinc_candidates for candidates based on
+       a USE_ADDRESS use.
+       (find_iv_candidates): Call set_autoinc_for_original_candidates.
+       (determine_use_iv_cost_address): If we have an autoinc candidate at
+       the matching use, verify autoinc is possible and subtract the cost
+       of the candidate's step from the cost.
+       (determine_iv_cost): Record the cost of the increment in the COST_STEP
+       member of the candidate.
+       (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
+       determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
+
+2009-08-09  Douglas B Rupp  <rupp@gnat.com>
+
+       * config.build (ia64-hp-*vms*): New target.
+       (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
+       with ia64-hp-*vms*.
+       * config.gcc (ia64-hp-*vms*): New target.
+       (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
+       with ia64-hp-*vms*.
+       * config.host (ia64-hp-*vms*): New target.
+       (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
+       with ia64-hp-*vms*.
+
+2009-08-08  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40991
+       * tree-ssa-pre.c (eliminate): Delay purging EH edges.
+
+2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
+       mode check.  Do truncations in an integer mode.
+       (force_to_mode): Handle subregs for all mode types.  Only do
+       arithmetic simplifications on integer modes.
+
+2009-08-07  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40999
+       * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
+       (maybe_fold_reference): Lookup constant initializers.
+       (fold_gimple_assign): Likewise.
+
+2009-08-07  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (useless_type_conversion_p_1): Only for types
+       that require structural equality defer to the langhook.
+
+2009-08-07  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
+       comments.
+       (struct ipa_pass_through_data): New type.
+       (struct ipa_ancestor_jf_data): New type.
+       (union jump_func_value): Removed field formal_id, added fields
+       pass_through and ancestor.
+       (struct ipa_param_call_note): Changed type of formal_id to int from
+       unsigned.
+       * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
+       operations jump functions and ancestor jump functions.
+       (compute_complex_pass_through): New function.
+       (compute_scalar_jump_functions): Call compute_complex_pass_through,
+       reflect changes in the jump function strucutre.
+       (update_jump_functions_after_inlining): Ignore complex pass-through
+       and ancestor jump functions.
+       * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
+       polynomial pass-through with operation jump functions.
+
+2009-08-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
+       fde->dw_fde_begin as begin label instead of hot/cold label.
+       Use LLSDAC label instead of LLSDA for second section lsda.
+       (dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
+       label instead of LLSDA if it is true.
+       (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
+       callers.
+       * except.c (add_call_site, dw2_size_of_call_site_table): Add
+       SECTION argument.  Use it as index into crtl->eh.call_site_record
+       array.
+       (dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
+       use it to determine how to print table entries instead of using
+       #ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
+       label instead of normal begin label as base.
+       (sjlj_assign_call_site_values): Adjust add_call_site caller.
+       (convert_to_eh_region_ranges): When doing hot/cold partitioning,
+       ensure no EH range spans between sections and that landing pads
+       are always in the corresponding section.
+       (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
+       for crtl->eh.call_site_record being an array rather than scalar.
+       (output_one_function_exception_table): New function, copied
+       from output_function_exception_table.  Adjust
+       dw2_size_of_call_site_table, dw2_output_call_site_table
+       callers.  For SECOND section use *C suffixed labels.
+       (output_function_exception_table): Call
+       output_one_function_exception_table and, when doing hot/cold
+       partitioning, also another time for the second section.
+       * opts.c: Include except.h.
+       (decode_options): Allow -freorder-blocks-and-partition with
+       exceptions, unless SJLJ or TARGET_UNWIND_INFO.
+       * Makefile.in (opts.o): Depend on $(EXCEPT_H).
+       * function.h (struct rtl_eh): Change call_site_record from
+       scalar into array of 2 elements.
+
+2009-08-07  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (count_formal_params_1): New function.
+       (ipa_get_vector_of_formal_parms): New function.
+       (get_vector_of_formal_parm_types): New function.
+       (ipa_modify_formal_parameters): New function.
+       (ipa_modify_call_arguments): New function.
+       (index_in_adjustments_multiple_times_p): New function.
+       (ipa_combine_adjustments): New function.
+       (ipa_dump_param_adjustments): New function.
+       * ipa-prop.h (struct ipa_parm_adjustment): New type.
+       (ipa_get_vector_of_formal_parms): Declare.
+       (ipa_modify_formal_parameters): Declare.
+       (ipa_modify_call_arguments): Declare.
+       (ipa_combine_adjustments): Declare.
+       (ipa_dump_param_adjustments): Declare.
+       (build_ref_for_offset): Declare.
+       * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
+       * tree-sra.c: Include ipa-prop.c.
+       (build_ref_for_offset): Make public. 
+
+2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>
+
+       * gcc/doc/extend.texi (__builtin_extract_return_address)
+       (__builtin_frob_return_address): Document.
+
+2009-08-06  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
+       (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
+       implementation on ARMv6-M.
+
+2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
+
+       * doc/extend.texi (pcs): Document new attribute for ARM.
+
+2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (pcs_attribute_args): Comment out unsupported attribute
+       variants.
+
+2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
+       warning ().
+
+2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
+
+2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
+
+       Merge ARM/hard_vfp_branch to trunk.
+
+       2009-08-04  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (libcall_eq): New function.
+       (libcall_hash): New function.
+       (add_libcall): New function.
+       (arm_libcall_uses_aapcs_base): New function.
+       (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
+       libcalls using the base PCS.
+       (arm_init_cumulative_args): Likewise.
+
+       2009-07-20  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
+       Use base ABI for conversion libfuncs between HFmode and SFmode.
+
+       2009-05-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
+       V4SImode as representatives of all 64-bit and 128-bit vector
+       types.  Allow vector types without vector modes.
+       (aapcs_vfp_is_call_or_return_candidate): Handle vector types
+       without vector modes like BLKmode.
+       (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
+       BLKmode.  Avoid unsupported vector modes or TImode moves for
+       non-TARGET_NEON.
+       (aapcs_vfp_allocate_return_reg): Likewise.
+       (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
+       V8QImode if TARGET_NEON || TARGET_IWMMXT.
+
+       2009-05-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arm/arm.c (arm_handle_pcs_attribute): New.
+       (arm_get_pcs_model): Pass attribute arguments to
+       arm_pcs_from_attribute.
+       (arm_init_cumulative_args): Use base AAPCS for conversions from
+       floating-point types to DImode.
+       (arm_attribute_table): Add pcs attribute.
+       (arm_handle_pcs_attribute): New.
+       * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
+       conversions from floating-point types to DImode, also declare them
+       to use base AAPCS and declare functions they call to use base
+       AAPCS and their RTABI names.
+
+       2009-05-12  Joseph Myers  <joseph@codesourcery.com>
+
+       * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
+       -mfloat-abi=hard not being supported for VFP.
+
+       2009-05-11  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
+       SYMBOL_REF to hard_libcall_value.
+
+       2009-03-05  Joseph Myers  <joseph@codesourcery.com>
+           Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
+       has been put on the stack, all remaining co-processory arguments for
+       that co-processor also go on the stack.
+
+       2009-03-05  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/arm/arm.c (arm_return_in_memory): Handle returning
+       vectors of suitable size in registers also for AAPCS case.
+
+       2009-01-13  Richard Earnshaw <rearnsha@arm.com>
+
+       * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
+
+       2008-12-09  Richard Earnshaw <rearnsha@arm.com>
+
+       ARM Hard-VFP calling convention
+       * target-def.h (TARGET_LIBCALL_VALUE): New hook.
+       * target.h (gcc_target): Add libcall_value to table of call hooks.
+       * targhooks.h (default_libcall_value): Default implementation.
+       * targhooks.c (default_libcall_value): Likewise.
+       * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
+       * optabs.c (expand_unop): Use it.
+       * expr.h (hard_libcall_value): Pass the function RTX through.
+       * calls.c (emit_library_call_value_1): Update call to 
+       hard_libcall_value.
+       * explow.c (hard_libcall_value): Use new target hook.
+       * testsuite/lib/target-supports.exp
+       (check_effective_target_arm_hard_vfp_ok): New hook.
+       (check_effective_target_arm_neon_ok): Improve test for neon
+       availability.
+       * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
+       * config/arm/arm.c: Include cgraph.h
+       (TARGET_FUNCTION_VALUE): Override default hook.
+       (arm_pcs_default): New variable.
+       (arm_override_options): Don't fault hard calling convention with VFP.
+       Add support for AAPCS variants.
+       (arm_function_value): Make static.  Handle AAPCS variants.
+       (arm_libcall_value): New function.
+       (arm_apply_result_size): Handle VFP registers in results.
+       (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
+       conventions.
+       (pcs_attribute_args): New variable.
+       (arm_pcs_from_attribute): New function.
+       (arm_get_pcs_model): New function.
+       (aapcs_vfp_cum_init): New function.
+       (aapcs_vfp_sub_candidate): New function.
+       (aapcs_vfp_is_return_candidate): New function.
+       (aapcs_vfp_is_call_candidate): New function.
+       (aapcs_vfp_allocate): New function.
+       (aapcs_vfp_allocate_return_reg): New function.
+       (aapcs_vfp_advance): New function.
+       (aapcs_cp_arg_layout): New variable.
+       (aapcs_select_call_coproc): New function.
+       (aapcs_select_return_coproc): New function.
+       (aapcs_allocate_return_reg): New function.
+       (aapcs_libcall_value): New function.
+       (aapcs_layout_arg): New function.
+       (arm_init_cumulative_args): Initialize AAPCS args data.
+       (arm_function_arg): Handle AAPCS variants using new interface.
+       (arm_arg_parital_bytes): Likewise.
+       (arm_function_arg_advance): New function.
+       (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
+       calling conventions.
+       (arm_setup_incoming_varargs): Handle new AAPCS args data.
+       * arm.h (NUM_VFP_ARG_REGS): Define.
+       (LIBCALL_VALUE): Update.
+       (FUNCTION_VALUE): Delete.
+       (FUNCTION_VALUE_REGNO_P): Add VFP regs.
+       (arm_pcs): New enum.
+       (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
+       (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
+       (FUNCTION_ARG_REGNO_P): Add VFP regs.
+       * arm-protos.h (arm_function_arg_advance): Add.
+       (aapcs_libcall_value): Add.
+       (arm_function_value): Delete.
+
+2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
+           H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/40957
+       * config/i386/i386.c (standard_sse_mode_p): Remove.
+       (standard_sse_constant_p): Return 2 for integer mode
+       vector_all_ones_operand when SSE2 is enabled.
+       (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
+       (ix86_expand_vector_move): Do not check for negative values from
+       standard_sse_constant_p.
+
+2009-08-06  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa.c (useless_type_conversion_p_1): Make function and
+       array type comparisons frontend independent.
+       * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
+       out array reference lower bound and element size operands.
+       (ao_ref_init_from_vn_reference): Properly compute the offset
+       for ARRAY_RANGE_REF.
+       (vn_reference_fold_indirect): Fill out array reference lower
+       bound and element size operands.
+       * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
+       a non gimple valued reference operand which can happen for
+       array reference lower bound or element size.
+       (create_component_ref_by_pieces_1): Properly generate the
+       element size operand for array references.
+
+2009-08-06  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40964
+       * tree.c (iterative_hash_host_wide_int): Export.
+       * tree.h (iterative_hash_host_wide_int): Declare.
+       * tree-ssa-structalias.c (heapvar_map): New struct.
+       (heapvar_map_eq): New function.
+       (heapvar_map_hash): Likewise.
+       (heapvar_lookup): Adjust.
+       (heapvar_insert): Likewise.
+       (make_constraint_from_heapvar): Allow multiple heap variables
+       per decl at different offsets.
+       (init_alias_heapvars): Adjust.
+
+2009-08-04  David Daney  <ddaney@caviumnetworks.com>
+
+       * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
+       * mips_output_sync_loop (mips_output_sync_loop): Only emit
+       trailing sync if TARGET_SYNC_AFTER_SC.
+
+2009-08-05  David Daney  <ddaney@caviumnetworks.com>
+
+       * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
+       compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
+       sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
+       sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
+       sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
+       sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
+       sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
+       sync_new_nand<mode>, sync_lock_test_and_set<mode>,
+       test_and_set_12): Rewrite calls to mips_output_sync_loop.
+       * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
+       the prototype declaration match the definition.
+       * gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
+       instructions explicitly.  Add barrier_before and operands
+       parameters.
+       * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
+       MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
+       MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
+       MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
+       MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
+       MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
+
+2009-08-05  Andrew Pinski  <pinskia@gmail.com>
+
+       * tree-ssa-alias.c: Fix intervals to use [) syntax.
+
+2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
+           Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
+
+       PR target/40906
+       * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
+       source operand.
+
+2009-08-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/40924
+       * dse.c (canon_address): Before calling cselib_expand_value_rtx
+       make sure canon_rtx (mem_address) isn't simpler than
+       canon_rtx (expanded_mem_address).
+
+2009-08-05  Li Feng  <nemokingdom@gmail.com>
+
+       * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
+       for each poly_bb_p.
+       (build_scop_drs): Build alias set for each SCoP.
+
+2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
+       * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
+       * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
+       (MIPS_ARCH_FLOAT_SPEC): Likewise.
+       (BASE_DRIVER_SELF_SPECS): Likewise.
+
+2009-08-04  Andrew Pinski  <pinskia@gmail.com>
+
+       * tree-ssa-alias.c: Fix some comment typos.
+
+2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
+       ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
+
+2009-08-03  Janis Johnson  <janis187@us.ibm.com>
+
+       PR c/39902
+       * simplify-rtx.c (simplify_binary_operation_1): Disable
+       simplifications for decimal float operations.
+
+2009-08-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/40943
+       * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
+       operand of INDIRECT_REF.
+
+2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
+       constants referencing TLS symbols.
+
+2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
+
+       * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
+       __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
+
+2009-08-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree.c (make_vector_type): Build a main variant first,
+       get the canonical one and then build the variant.
+       * tree-ssa.c (useless_type_conversion_p_1): Handle
+       fixed-point types.
+       (useless_type_conversion_p): Conversions to pointers to
+       incomplete record types are useless.
+
+2009-08-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
+       file will be created.
+       * omp-low.c (pass_diagnose_omp_blocks): Likewise.
+       * toplev.c (compile_file): Adjust comment.
+
+2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
+       * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
+       (sh_promote_function_mode): Fix typo.
+
+2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
+
+2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
+       declaration arguments.
+
+2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
+       of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
+       (ix86_split_ashl): Ditto.
+       (ix86_expand_vector_init_one_nonzero): Ditto.
+       (ix86_expand_vector_set): Ditto.
+       (ix86_expand_reduc_v4sf): Ditto.
+
+2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       * explow.c (promote_function_mode): Remove assert.
+       * config/sh/sh.c (sh_promote_function_mode): Declare.
+
+2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/pa/pa.c (pa_promote_function_mode): Declare.
+       Change to static.  Fix promote_mode call.
+
+       * gthr-dce.h (CONST_CAST2): Define if not defined.
+       (__gthread_setspecific): Use CONST_CAST2 to fix warning.
+
+       * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
+
+2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * expr.c (store_constructor): Use promote_decl_mode.  Remove
+       now write-only variable unsignedp.
+       (expand_expr_real_1): Use promote_decl_mode.
+       * expr.h (promote_function_mode, promote_decl_mode): New.
+       (promote_mode): Remove last argument.
+       * function.c (assign_temp): Drop last argument of promote_mode.
+       (assign_parm_find_data_types): Use promote_function_mode.
+       (assign_parm_setup_reg): Likewise.
+       (expand_function_end): Use promote_function_mode.
+       * calls.c (initialize_argument_information): Use promote_function_mode.
+       (precompute_arguments): Use promote_mode instead of checking if
+       only PROMOTE_FUNCTION_MODE is defined.
+       (expand_call): When making sibcall decisions, use promote_function_mode.
+       Below, remove an if for targetm.calls.promote_function_return and
+       and use promote_function_mode.
+       (emit_library_call_value_1): Use promote_function_mode, fix bug
+       where promote_mode was passed FOR_CALL == 0 for a return value in an
+       assertion.
+       * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
+       * explow.c (promote_function_mode, promote_decl_mode): New.
+       (promote_mode): Keep only the FOR_CALL == 0 case.
+       * combine.c (setup_incoming_promotion): Remove test of
+       promote_function_args.  Use promote_function_mode.
+       * stmt.c (expand_value_return): Use promote_decl_mode.
+       (expand_decl): Use promote_decl_mode.
+
+       * expr.c (store_constructor): Use promote_decl_mode.  Remove
+       now write-only variable unsignedp.
+       (expand_expr_real_1): Use promote_decl_mode.
+       * expr.h (promote_function_mode, promote_decl_mode): New.
+       (promote_mode): Remove last argument.
+       * function.c (assign_temp): Drop last argument of promote_mode.
+       (assign_parm_find_data_types): Use promote_function_mode.
+       (assign_parm_setup_reg): Likewise.
+       (expand_function_end): Use promote_function_mode.
+       * calls.c (initialize_argument_information): Use promote_function_mode.
+       (precompute_arguments): Use promote_mode instead of checking if
+       only PROMOTE_FUNCTION_MODE is defined.
+       (expand_call): When making sibcall decisions, use promote_function_mode.
+       Below, remove an if for targetm.calls.promote_function_return and
+       and use promote_function_mode.
+       (emit_library_call_value_1): Use promote_function_mode, fix bug
+       where promote_mode was passed FOR_CALL == 0 for a return value in an
+       assertion.
+       * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
+       * explow.c (promote_function_mode, promote_decl_mode): New.
+       (promote_mode): Keep only the FOR_CALL == 0 case.
+       * combine.c (setup_incoming_promotion): Remove test of
+       promote_function_args.  Use promote_function_mode.
+       * stmt.c (expand_value_return): Use promote_decl_mode.
+       (expand_decl): Use promote_decl_mode.
+
+       * explow.c (promote_function_mode): Just call the target hook.
+       * targhooks.c (default_promote_function_mode,
+       default_promote_function_mode_always_promote): New.
+       * targhooks.h (default_promote_function_mode,
+       default_promote_function_mode_always_promote): Declare.
+       * target.h (promote_function_args, promote_function_return): Remove.
+       (promote_function_mode): New.
+       * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
+       TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+       (TARGET_PROMOTE_FUNCTION_MODE): New.
+       (TARGET_CALLS): Adjust.
+       * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
+       TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
+
+       * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
+       * config/s390/s390.c (s390_promote_function_mode): ... here,
+       with pointer handling.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+
+       * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
+       * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
+       with pointer handling.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+       
+       * config/sh/sh-protos.h (sh_promote_function_mode): New.
+       * config/sh/sh.c (sh_promote_function_mode): New.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+
+       * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
+       * config/cris/cris.c (cris_promote_function_mode): ... here.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
+
+       * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
+       * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
+
+       * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
+       * config/arm/arm.c (arm_promote_function_mode): ... here, without
+       complex type handling.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+
+       * config/pa/pa.c (pa_promote_function_mode): New.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define.
+       (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+
+       * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
+       TARGET_PROMOTE_FUNCTION_RETURN): Remove.
+       (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
+       * config/xtensa/xtensa.c: Likewise.
+       * config/stormy16/stormy16.c: Likewise.
+       * config/iq2000/iq2000.c: Likewise.
+       * config/rs6000/rs6000.c: Likewise.
+       * config/picochip/picochip.c: Likewise.
+       * config/arc/arc.c: Likewise.
+       * config/mcore/mcore.c: Likewise.
+       * config/score/score.c: Likewise.
+       * config/mips/mips.c: Likewise.
+       * config/bfin/bfin.c: Likewise.
+       * config/ia64/ia64.c: Likewise (disabled though).
+
+       * config/frv/frv.h: Remove pointless remark.
+
+       * doc/tm.texi (PROMOTE_FUNCTION_MODE,
+       TARGET_PROMOTE_FUNCTION_ARGS,
+       TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
+       (TARGET_PROMOTE_FUNCTION_MODE): ... this.
+
+2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * doc/invoke.texi (-fgraphite-force-parallel): Renamed
+       -floop-parallelize-all.
+       * toplev.c (process_options): Rename flag_graphite_force_parallel to
+       flag_loop_parallelize_all.
+       * tree-ssa-loop.c (gate_graphite_transforms): Same.
+       * graphite.c (graphite_transform_loops): Same.
+       * common.opt: Same.
+       * graphite-poly.c (apply_poly_transforms): Same.
+
+2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR tree-optimization/40914
+       * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
+       if set, then check the delta field of the PMF record.
+       (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
+       (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
+       call is stored in the delta.
+
+2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * config/mips/mips.md (*clear_upper32_dext): New pattern.
+
+2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/bsd.h (ASM_BYTE): New define.
+       * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
+       * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
+       .byte.  Use fputs or putc instead of fprintf where appropriate.
+       * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
+       fputs or putc instead of fprintf where appropriate.
+       * config/i386/i386elf.h: Ditto.
+       * config/i386/sysv4.h: Ditto.
+       
+       * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
+       * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
+       (*tls_global_dynamic_64): Ditto.
+
+2009-07-31  Christian Bruel  <christian.bruel@st.com>  
+
+       * gcc/config.gcc (sh*-*-elf): test with_libgloss.
+       
+2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm.c (arm_arm_address_cost): Fix typo. 
+       Remove dead code for MINUS.
+
+2009-07-31  Anthony Green  <green@moxielogic.com>
+
+       * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
+       $r12 in prologue.
+       (moxie_expand_epilogue): Ditto for epilogue.
+       (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
+       incoming arguments.
+       (moxie_function_arg): Ditto.
+       (moxie_pass_by_reference): Ditto.
+       (moxie_arg_partial_bytes): Ditto.
+       * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
+       (FUNCTION_ARG_ADVANCE) Ditto.
+       (REG_PARM_STACK_SPACE) Ditto.
+       (FUNCTION_ARG_REGNO_P) Dito.
+
+       * config.gcc: Add moxie linux config support.
+       * gcc/config/moxie/uclinux.h: New file.
+
+2009-07-31  DJ Delorie  <dj@redhat.com>
+
+       * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
+       (UNSPECV_SP_SWITCH_E): New.
+       (sp_switch_1): Change to an unspec.
+       (sp_switch_2): Change to an unspec.  Don't use post-inc when we
+       replace $r15.
+       * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
+       reference the new stack's address
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
+       graphite-clast-to-gimple.o, graphite-dependences.o,
+       graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
+       graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
+       (graphite-blocking.o,
+       graphite-clast-to-gimple.o, graphite-dependences.o,
+       graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
+       graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
+       * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
+       * cfgloop.h (struct loop): Add can_be_parallel field.
+       * common.opt (fgraphite-identity): Moved up.
+       (fgraphite-force-parallel): New flag.
+       * graphite.c: Rewrite.
+       * graphite.h: Rewrite.
+       * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
+       after Graphite.
+       * toplev.c (graphite_out_file): New file descriptor.
+       (graphite_in_file): New.
+       (process_options): flag_graphite_force_parallel cannot be used without
+       Graphite.
+       * tree-ssa-loop.c: Include toplev.h.
+       (gate_graphite_transforms): Enable flag_graphite for
+       flag_graphite_force_parallel.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * ChangeLog.graphite: New.
+       * graphite-blocking.c: New.
+       * graphite-clast-to-gimple.c: New.
+       * graphite-clast-to-gimple.h: New.
+       * graphite-dependences.c: New.
+       * graphite-dependences.h: New.
+       * graphite-interchange.c: New.
+       * graphite-poly.c: New.
+       * graphite-poly.h: New.
+       * graphite-ppl.c: New.
+       * graphite-ppl.h: New.
+       * graphite-scop-detection.c: New.
+       * graphite-scop-detection.h: New.
+       * graphite-sese-to-poly.c: New.
+       * graphite-sese-to-poly.h: New.
+       * sese.c: New.
+       * sese.h: New.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-chrec.c (evolution_function_right_is_integer_cst): New.
+       * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
+       (scev_is_linear_expression): Return false if the evolution is not
+       affine multivariate.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
+       * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-data-ref.c (debug_data_references): New.
+       (debug_data_reference): New.
+       * tree-data-ref.h (debug_data_references): Declared.
+       (debug_data_reference): Declared.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-data-ref.c (stmt_simple_memref_p: Removed.
+       * tree-data-ref.h (scop_p): Removed.
+       (struct data_reference): Remove field scop.
+       (DR_SCOP): Removed.
+       (stmt_simple_memref_p): Removed.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
+       * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
+       basic block empty.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * doc/invoke.texi (-fgraphite-force-parallel): Documented.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * doc/invoke.texi (-fgraphite-identity): Documented.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-scalar-evolution.c: Fix comment.
+       (instantiate_scev_1): Return unknow from scev instantiation if the
+       result is not above instantiate_below.
+
+2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
+       static anymore.  Instantiate the symbols that may have been introduced
+       by chrec_apply.
+       * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
+       Declared.
+
+2009-07-30  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (mep_asm_init_sections): Add section flags and
+       .vliw directive to VLIW sections.
+
+2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
+       New variables.
+       ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
+       (AUTOHEADER): New variable.
+       ($(srcdir)/cstamp-h.in): Use it.
+
+2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
+           Pat Haugen  <pthaugen@us.ibm.com>
+           Revital Eres <ERES@il.ibm.com>
+
+       * config/rs6000/vector.md (VEC_F): Add VSX support.
+       (VEC_A): Ditto.
+       (VEC_N): Ditto.
+       (mov<mode>): Ditto.
+       (vector_load_<mode>): Ditto.
+       (vector_store_<mode>): Ditto.
+       (vector GPR move split): Ditto.
+       (vec_reload_and_plus_<mptrsize>): Ditto.
+       (vec_reload_and_reg_<mptrsize>): Ditto.
+       (add<mode>3): Ditto.
+       (sub<mode>3): Ditto.
+       (mul<mode>3): Ditto.
+       (neg<mode>2): Ditto.
+       (abs<mode>2): Ditto.
+       (smin<mode>3): Ditto.
+       (smax<mode>3): Ditto.
+       (vector_eq<mode>): Ditto.
+       (vector_gt<mode>): Ditto.
+       (vector_ge<mode>): Ditto.
+       (vector_gtu<mode>): Ditto.
+       (vector_select_<mode>_uns): Ditto.
+       (vector_eq_<mode>_p): Ditto.
+       (vector_gt_<mode>_p): Ditto.
+       (vector_ge_<mode>_p): Ditto.
+       (vector_gtu_<mode>_p): Ditto.
+       (cr6_test_for_zero): Ditto.
+       (cr6_test_for_zero_reverse): Ditto.
+       (cr6_test_for_lt): Ditto.
+       (cr6_test_for_lt_reverse): Ditto.
+       (xor<mode>3): Ditto.
+       (ior<mode>3): Ditto.
+       (and<mode>3): Ditto.
+       (one_cmpl<mode>2): Ditto.
+       (nor<mode>2): Ditto.
+       (andc<mode>2): Ditto.
+       (float<VEC_int<mode>2): Ditto.
+       (unsigned_float<VEC_int><mode>2): Ditto.
+       (fix_trunc<mode><VEC_int>2): Ditto.
+       (fixuns_trunc<mode><VEC_int>2): Ditto.
+       (vec_init<mode>):
+       (vec_set<mode>): Ditto.
+       (vec_extract<mode>): Ditto.
+       (vec_interleave_highv4sf): Ditto.
+       (vec_interleave_lowv4sf): Ditto.
+       (vec_realign_load_<mode>): Ditto.
+       (vec_shl_<mode>): Ditto.
+       (vec_shr_<mode>): Ditto.
+       (div<mode>3): New patterns for VSX.
+       (vec_interleave_highv2df): Ditto.
+       (vec_interleave_lowv2df): Ditto.
+       (vec_pack_trunc_v2df): Ditto.
+       (vec_pack_sfix_trunc_v2df): Ditto.
+       (vec_pack_ufix_trunc_v2df): Ditto.
+       (vec_unpacks_hi_v4sf): Ditto.
+       (vec_unpacks_lo_v4sf): Ditto.
+       (vec_unpacks_float_hi_v4si): Ditto.
+       (vec_unpacku_float_lo_v4si): Ditto.
+       (vec_unpacku_float_hi_v4si): Ditto.
+       (vec_unpacks_float_lo_v4si): Ditto.
+       (movmisalign<mode>): Ditto.
+       (vector_ceil<mode>2): New patterns for vectorizing math library.
+       (vector_floor<mode>2): Ditto.
+       (vector_btrunc<mode>2): Ditto.
+       (vector_copysign<mode>3): Ditto.
+
+       * config/rs6000/predicates.md (easy_vector_constant_msb): New
+       predicate for setting the high bit in each word, used for copysign.
+
+       * config/rs6000/ppc-asm.h (f19): Whitespace.
+       (f32-f63): Define if VSX.
+       (v0-v31): Define if Altivec.
+       (vs0-vs63): Define if VSX.
+
+       * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
+
+       * config/rs6000/power7.md: New file, provide tuning parameters for
+       -mcpu=power7.
+
+       * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
+       (rs6000_cpu_cpp_builtins): Ditto.
+       (altivec_overloaded_builtins): Ditto.
+       (altivec_resolve_overloaded_builtin): Ditto.
+
+       * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
+       debug switch to disable vectorizing simple math builtin
+       functions.
+
+       * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
+       Vectorize simple math builtin functions.
+       (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
+       hook to vectorize math builtins.
+       (rs6000_override_options): Enable -mvsx on -mcpu=power7.
+       (rs6000_builtin_conversion): Add VSX/power7 support.
+       (rs6000_builtin_vec_perm): Ditto.
+       (vsplits_constant): Add support for loading up a vector constant
+       with just the high bit set in each part.
+       (rs6000_expand_vector_init): Add VSX/power7 support.
+       (rs6000_expand_vector_set): Ditto.
+       (rs6000_expand_vector_extract): Ditto.
+       (rs6000_emit_move): Ditto.
+       (bdesc_3arg): Ditto.
+       (bdesc_2arg): Ditto.
+       (bdesc_1arg): Ditto.
+       (rs6000_expand_ternop_builtin): Ditto.
+       (altivec_expand_builtin): Ditto.
+       (rs6000_expand_unop_builtin): Ditto.
+       (rs6000_init_builtins): Ditto.
+       (altivec_init_builtins): Ditto.
+       (builtin_function_type): Ditto.
+       (rs6000_common_init_builtins): Ditto.
+       (rs6000_handle_altivec_attribute); Ditto.
+       (rs6000_mangle_type): Ditto.
+       (rs6000_vector_mode_supported_p): Ditto.
+       (rs6000_mode_dependent_address): Altivec addresses with AND -16
+       are mode dependent.
+
+       * config/rs6000/vsx.md: New file for VSX support.
+
+       * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
+       identifing values with just the most significant bit set.
+       (enum rs6000_builtins): Add builtins for VSX.  Add simple math
+       vectorized builtins.
+
+       * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
+       (UNSPEC_VRFIM): Delete.
+       (splitter for loading up vector with most significant bit): New
+       splitter for vectorizing copysign.
+       (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
+       vectorizing simple math functions.
+       (altivec_vrfip): Add support for vectorizing simple math functions.
+       (altivec_vrfim): Ditto.
+       (altivec_copysign_v4sf3): New insn for Altivec copysign support.
+
+       * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
+       (power7.md, vsx.md): Include for power7 support.
+       (copysigndf3): Use VSX instructions if -mvsx.
+       (negdf2_fpr): Ditto.
+       (absdf2_fpr): Ditto.
+       (nabsdf2_fpr): Ditto.
+       (adddf3_fpr): Ditto.
+       (subdf3_fpr): Ditto.
+       (muldf3_fpr): Ditto.
+       (divdf3_fpr): Ditto.
+       (fix_truncdfdi2_fpr): Ditto.
+       (cmpdf_internal1): Ditto.
+       (fred, fred_fpr): Convert into expander/insn to add VSX support.
+       (btruncdf2, btruncdf2_fpr): Ditto.
+       (ceildf2, ceildf2_fpr): Ditto.
+       (floordf2, floordf2_fpr): Ditto.
+       (floatdidf2, floatdidf2_fpr): Ditto.
+       (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
+       (fmsubdf4_fpr): Ditto.
+       (fnmadddf4_fpr_1): Ditto.
+       (fnmadddf4_fpr_2): Ditto.
+       (fnmsubdf4_fpr_1): Ditto.
+       (fnmsubdf4_fpr_2): Ditto.
+       (fixuns_truncdfdi2): Add expander for VSX support.
+       (fix_truncdfdi2): Ditto.
+       (fix_truncdfsi2): Ditto.
+       (ftruncdf2): Ditto.
+       (btruncsf2): Whitespace.
+       (movdf_hardfloat32): Add support for VSX registers.
+       (movdf_softfloat32): Ditto.
+       (movdf_hardfloat64): Ditto.
+       (movdf_hardfloat64_mfpgpr): Ditto.
+       (movdf_softfloat64): Ditto.
+       (movti splitters): Add check for vector registers supporting
+       TImode in the future.
+       (bpermd): Add power7 bpermd instruction.
+
+       * config/rs6000/altivec.h (vec_div): Define if VSX.
+       (vec_mul): Ditto.
+       (vec_msub): Ditto.
+       (vec_nmadd): Ditto.
+       (vec_nearbyint): Ditto.
+       (vec_rint): Ditto.
+       (vec_sqrt): Ditto.
+       (all predicates): Use the generic builtin function, and not the V4SF
+       specific function so that the predicates will work with VSX's V2DF.
+       (vec_all_*): Ditto.
+       (vec_any_*): Ditto.
+
+       * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
+       Document new VSX functions and types.
+
+       * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
+       switches.
+
+       * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
+       "wa", and "j" constraints.  Modify "v" to talk about Altivec
+       instead of just vector.
+
+2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR debug/26475
+       * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
+       location for phi arguments.
+       (rewrite_update_phi_arguments): Find locations for reaching defs.
+       * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
+       Add location to add_phi_arg calls.
+       * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
+       * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
+       split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
+       * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
+       create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
+       * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
+       * tree-phinodes.c (make_phi_node): Initialize location.
+       (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
+       (add_phi_arg): Add location parameter.
+       (remove_phi_arg_num): Move location when moving phi argument.
+       * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
+       location.
+       * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
+       slpeel_update_phi_nodes_for_guard1,
+       slpeel_update_phi_nodes_for_guard2,
+       slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
+       vect_loop_versioning): Set locations.
+       * tree-parloops.c (create_phi_for_local_result,
+       transform_to_exit_first_loop, create_parallel_loop): Add locations.
+       * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
+       * tree-vect-loop.c (get_initial_def_for_induction,
+       vect_create_epilog_for_reduction, vect_finalize_reduction): Add
+       locations.
+       * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
+       (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
+       (gimple_phi_arg_set_location): New.  Set locus.
+       (gimple_phi_arg_has_location): New.  Check for locus.
+       (redirect_edge_var_map_location): New.  Return locus from var_map.
+       * tree-vect-data-refs.c (vect_setup_realignment): Set location.
+       * tree-ssa-phiopt.c (conditional_replacement): Set locus when
+       combining PHI arguments.
+       (cond_store_replacement): Set location.
+       * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
+       * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
+       scop_add_exit_phis_edge): Add locations.
+       * tree-cfgcleanup.c (remove_forwarder_block,
+       remove_forwarder_block_with_phi): Add locations.
+       * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
+       * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
+       locations.
+       * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
+       * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
+       flush_pending_stmts): Add source location.
+       * lambda-code.c (perfect_nestify): Maintain location stack with argument
+       stack to preserve locations.
+       * tree-vect-stmts.c (vectorizable_load): Add location.
+       * tree-inline.c (copy_phis_for_bb): Copy locus.
+       (setup_one_parameter): Add call locus to inlined parameter stmts.
+       (initialize_inlined_parameters): Pass in call location as parameter
+       assignment locus.
+       (tree_function_versioning): Pass location to setup_one_parameter.
+       * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
+       * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
+       copy and edge lists.
+       (insert_partition_copy_on_edge, insert_value_copy_on_edge,
+       insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
+       locus parameter and override the stmt default if provided.
+       (new_elim_graph, clear_elim_graph, delete_elim_graph,
+       elim_graph_add_edge, elim_graph_remove_succ_edge,
+       FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
+       elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
+       eliminate_phi):  Add locus info in elimination graph for each edge and
+       value copy.
+       (insert_backedge_copies): Copy locus if present.
+       * tree-flow.h (struct _edge_var_map): Add locus field.
+       * tree-switch_conversions.c (fix_phi_nodes): Add locations.
+       * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
+       add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
+       locations.
+       * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
+       
+2009-07-30  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/40570
+       * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
+       use inlining loops.
+
+2009-07-30  Razya Ladelsky <razya@il.ibm.com>
+
+       * ssa-loop-manip.c: Include langhooks.h.
+       (rewrite_phi_with_iv): New.
+       (rewrite_all_phi_nodes_with_iv): New.
+       (canonicalize_loop_ivs): Move here from tree-parloops.c.
+       Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
+       * tree-parloops.c (loop_parallel_p): Move out all conditions
+       except dependency check.
+       (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
+       (gen_parallel_loop): Call canonicalize_loop_ivs without
+       reduction_list argument.
+       (build_new_reduction): New.
+       (gather_scalar_reductions): New.
+       (try_get_loop_niter): New.
+       (try_create_reduction_list): New.
+       (parallleize_loops): Change the parallel conditions check.
+       * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
+       * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
+
+2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * opt-functions.awk (opt_args): Allow argument to be enclosed in
+       curly braces.
+       * doc/options.texi (Option properties):  Mention new quoting syntax.
+
+2009-07-29  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/alpha.c (alpha_start_function):
+       Handle VMS_DEBUG_MAIN_POINTER
+       * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
+       * doc/invoke.texi: Document -mdebug-main switch.
+
+2009-07-29  Richard Henderson  <rth@redhat.com>
+
+       * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
+       (cgraph_create_edge_including_clones): Likewise.
+       * tree-inline.c (copy_bb): Operate on the correct edges
+       when updating the callgraph.
+
+2009-07-29  Douglas B Rupp  <rupp@gnat.com>
+
+       * config/alpha/vms-cc.c: Deleted.
+       * config/alpha/vms-ld.c: Deleted.
+       * config/alpha/t-vms64: Moved to config/vms
+       * config/alpha/vms-crt0-64.c: Moved to config/vms
+       * config/alpha/vms-crt0.c: Moved to config/vms
+       * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
+       * config/alpha/vms-psxcrt0.c: Moved to config/vms
+       * config/alpha/xm-vms.h: Moved to config/vms
+       * config/alpha/x-vms: Moved to config/vms
+       * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
+       config/vms/t-vms.
+       * config/vms/t-vms: Moved here from config/alpha. Alpha specific
+       parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
+       (version): Set.
+       * config/vms/t-vms64: Moved here from config/alpha
+       * config/vms/vms-crt0-64.c: Moved here from config/alpha.
+       (argc,argv,envp): Enforce 32bit malloc'ing.
+       * config/vms/vms-psxcrt0-64.c: Likewise.
+       * config/vms/vms-crt0.c: Moved here from config/alpha.
+       * config/vms/vms-psxcrt0.c: Likewise.
+       * config/vms/vms-crtl-64.h: New file.
+       * config/vms/vms-crtl.h: New file.
+       * config/vms/vms.opt: New file.
+       * config/vms/xm-vms64.h: New file.
+       * config/vms/xm-vms.h: Moved here from config/alpha.
+       (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
+       Set.
+       * config/vms/x-vms: Moved here from config/alpha.
+       (version, VMS_EXTRA_PARTS): Moved to t-vms.
+       (vms-ld.o, vms-cc.o): Removed.
+       (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
+
+2009-07-29  Douglas B Rupp  <rupp@gnat.com>
+
+       * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
+       correct stack (obvious VMS fix).
+
+2009-07-29  Douglas B Rupp  <rupp@gnat.com>
+
+       * dwarf2out.c (output_file_names): Output VMS style file name, size,
+       date, version info if VMS_DEBUGGING_INFO defined.
+       * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
+       size, date calculating code moved here.
+
+2009-07-29  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
+       do_push/do_pop.
+
+2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/40577
+       * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
+       to DImode when generating insq_le insn.
+
+2009-07-28  Douglas B Rupp  <rupp@gnat.com>
+
+       * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
+       New macro set for VMS_DEBUGGGING_INFO.
+       (AT_string_form): Use it.
+
+2009-07-28  DJ Delorie  <dj@redhat.com>
+
+       * config/mep/mep.c (vtext_section): New.
+       (vftext_section): New.
+       (ftext_section): New.
+       (mep_select_section): Add support for functions.
+       (mep_unique_section): Likewise.
+       (mep_asm_init_sections): Likewise.
+       (mep_encode_section_info): Remove it from here.
+
+       * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
+
+2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
+
+       * tree.h (TREE_DEPRECATED): Document it is used for types too.
+       (TYPE_VECTOR_OPAQUE): Use default_def_flag
+
 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
 
        * dwarf2out.c (output_file_names): Test new macro
        (mep_expand_va_start): Likewise.
 
 2009-07-27  Olivier Hainque  <hainque@adacore.com>
-            Douglas B Rupp  <rupp@gnat.com>
+           Douglas B Rupp  <rupp@gnat.com>
 
        * convert.c (convert_to_pointer): Don't assume the target
        pointer type is POINTER_SIZE long. Fetch its precision instead.
 
 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
 
-       * cfgcleanup.c (old_insns_match_p): Handle the case of empty
-       blocks.
+       * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
        
 2009-07-25  Martin Jambor  <mjambor@suse.cz>