+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