+2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
+ pointer when thumb backtracing is on.
+
+ * config/fp-bit.c (abort): Revert change.
+
+2005-04-27 Ian Lance Taylor <ian@airs.com>
+
+ * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
+
+2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-dce.c: Fix a comment typo.
+
+2005-04-27 David S. Miller <davem@davemloft.net>
+
+ * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
+ Kill setjmpless_size. current_function_calls_setjmp is completely
+ computed when we are called, so just use the optimized size value
+ instead of using REG_SAVE_AREA notes.
+ (optimize_save_area_alloca): Delete....
+ * rtl.h (optimize_save_area_alloca): Likewise...
+ * passes.c (rest_of_compilation): and don't call it any more.
+ * reg-notes.def (SAVE_AREA): Delete.
+
+2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/fp-bit.c (abort): Add noreturn attribute.
+
+ * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
+ gcc_unreachable as appropriate.
+ (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
+ * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
+ ASM_OUTPUT_REG_POP): Likewise.
+
+2005-04-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-complex.c (expand_vector_operations_1): Do not build
+ VIEW_CONVERT_EXPR's for the lhs.
+
+2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
+ unnecessary noncanonical RTL handling.
+ * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
+ gcc_assert and gcc_unreachable.
+
+ * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
+ gcc_unreachable as appropriate.
+ (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
+ * config/arm/arm.c (arm_override_options, arm_compute_func_type,
+ use_return_insn, const_ok_for_op, arm_gen_constant,
+ arm_canonicalize_comparison, legitimize_pic_address,
+ thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
+ arm_cirrus_insn_p, cirrus_reorg, minmax_code,
+ load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
+ emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
+ arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
+ move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
+ dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
+ fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
+ output_call, output_mov_long_double_fpa_from_arm,
+ output_mov_long_double_arm_from_fpa,
+ output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
+ output_move_double, arithmetic_instr, shift_op, int_log2,
+ output_return_instruction, arm_output_function_prologue,
+ arm_output_epilogue, arm_output_function_epilogue,
+ emit_multi_reg_push, arm_get_frame_offsets,
+ arm_compute_initial_elimination_offset, arm_expand_prologue,
+ arm_print_operand, arm_assemble_integer, get_arm_condition_code,
+ arm_final_prescan_insn, arm_init_iwmmxt_builtins,
+ arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
+ thumb_compute_initial_elimination_offset,
+ thumb_output_function_prologue, thumb_load_double_from_address,
+ thumb_output_move_mem_multiple, thumb_reload_out_hi,
+ arm_emit_vector_const, arm_dbx_register_number): Likewise.
+ * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
+ * config/arm/arm.md (thumb_extendhisi2,
+ *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
+ *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
+ thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
+ *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
+ * config/arm/cirrus.md (*cirrus_arm_movdi,
+ *cirrus_movdf_hard_insn): Likewise.
+ * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
+
+2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
+ (num_ssa_names): Use VEC_length.
+ (ssa_names): Use VEC_index.
+ * tree-ssanames.c (ssa_names): Change the type to
+ VEC(tree,gc).
+ (init_ssanames, fini_ssa_names, make_ssanames,
+ release_ssa_name): Update uses of ssa_names.
+
+ * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
+ Use fold_buildN instead of fold (buildN (...)).
+
+2005-04-27 Devang Patel <dpatel@apple.com>
+
+ * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
+
+2005-04-27 Matt Thomas <matt@3am-software.com>
+ Jan-Benedict Glaw <jbglaw@microdata-pos.de>
+
+ * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
+ (vax_output_mi_thunk): Ditto.
+ (vax_notice_cc_update): Ditto.
+ (INDEX_REGISTER_P): Add trailing \.
+ (BASE_REGISTER_P): Add trailing \.
+ (legitimate_address_p): Whitespace cleanup. Remove trailing \.
+
+2005-04-27 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-ssa-propagate.c (set_rhs): Check operand of
+ ADDR_EXPR for gimpliness, too.
+
+2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-pre.c: Fix a comment typo.
+
+2005-04-27 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/21171
+ * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
+ record address uses if the reference is volatile.
+
+2004-04-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-complex.c (expand_vector_operation): New, extracted from
+ expand_vector_operations_1.
+ (tree_vec_extract): Build a NOP_EXPR.
+ (expand_vec_parallel): Do not care about returning the correct type.
+ (expand_vector_operations_1): Call expand_vector_operation.
+ Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
+
+ * tree-complex.c (gate_expand_vector_operations): New.
+ (pass_lower_vector_ssa): Use it.
+ * tree-optimize.c (init_tree_optimization_passes): Include
+ pass_lower_vector_ssa.
+ * tree-vect-transform.c (vect_min_worthwhile_factor): New.
+ (vectorizable_operation): Use it.
+ * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
+ integer modes for the vector type.
+
+ * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
+ * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
+ Do not cope with UNITS_PER_SIMD_WORD == 0.
+ * tree-vectorizer.c (get_vectype_for_scalar_type): Check
+ if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
+ (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
+ * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
+ * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
+ * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
+ * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
+
+ * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
+ * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
+ * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
+
+ * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
+ (UNITS_PER_SIMD_WORD): New.
+
+2005-04-27 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
+ gcc_unreachable as appropriate.
+ (ia64_expand_load_address, ia64_expand_tls_address,
+ ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
+ ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
+ next_scratch_gr_reg, ia64_initial_elimination_offset,
+ ia64_expand_prologue, ia64_expand_epilogue,
+ ia64_output_dwarf_dtprel, ia64_print_operand,
+ ia64_register_move_cost, first_instruction, rws_access_regno,
+ update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
+ ia64_sched_init, ia64_variable_issue,
+ ia64_first_cycle_multipass_dfs_lookahead_guard,
+ ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
+ ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
+ process_for_unwind_directive, ia64_hpux_file_end): Likewise.
+ * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
+ * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
+ * config/ia64/predicates.md (got_symbolic_operand,
+ sdata_symbolic_operand): Likewise.
+ * config/ia64/vect.md (vcondv2sf): Likewise.
+
+2005-04-27 Matt Thomas <matt@3am-software.com>
+
+ * config/vax/vax.c (legitimate_constant_address_p): New. Formerly
+ CONSTANT_ADDRESS_P in config/vax/vax.h
+ (legitimate_constant_p): Added. Formerly CONSTANT_P in vax.h.
+ (INDEX_REGISTER_P): New.
+ (BASE_REGISTER_P): New.
+ (indirectable_constant_address_p): New. Adapted from
+ INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
+ (indirectable_address_p): New. Adapted from
+ INDIRECTABLE_ADDRESS_P in vax.h.
+ (nonindexed_address_p): New. Adapted from
+ GO_IF_NONINDEXED_ADDRESS in vax.h.
+ (index_temp_p): New. Adapted from INDEX_TERM_P in vax.h.
+ (reg_plus_index_p): New. Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
+ (legitimate_address_p): New. Adapted from
+ GO_IF_LEGITIMATE_ADDRESS in vax.h.
+ (vax_mode_dependent_address_p): New. Adapted from
+ GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
+ * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
+ legitimate_constant_address_p.
+ (CONSTANT_P): Use legitimate_constant_p.
+ (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
+ (INDIRECTABLE_ADDRESS_P): Removed.
+ (GO_IF_NONINDEXED_ADDRESS): Removed.
+ (INDEX_TEMP_P): Removed.
+ (GO_IF_REG_PLUS_INDEX): Removed.
+ (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
+ definitions, depending on whether REG_OK_STRICT is defined.
+ (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
+ Two definitions, depending on whether REG_OK_STRICT is defined.
+ * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
+ added.
+ (legitimate_constant_p): Prototype added.
+ (legitimate_address_p): Prototype added.
+ (vax_mode_dependent_address_p): Prototype added.
+
+2005-04-27 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
+
+2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/21213
+ * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
+ transparent union.
+
+2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/20740
+ * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
+ assertion failures, if __gcc_host_wide_int__ is not properly
+ defined.
+ (init_dynamic_diag_info): Give errors, not assertion failures, if
+ location_t, tree or __gcc_host_wide_int__ are not properly
+ defined.
+
+2005-04-26 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
+ n_iv_uses, iv_use, n_iv_cands, iv_cand,
+ tree_ssa_iv_optimize_init, record_use, add_candidate_1,
+ prepare_decl_rtl, free_loop_data,
+ tree_ssa_iv_optimize_finalize): Use the VEC API instead of
+ VARRAY.
+
+ * tree.h (tree_phi_node): Add a comment about the order of PHI
+ arguments.
+
+2005-04-26 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
+
+2005-04-26 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/mips.mips.c (mips_legitimize_tls_address): Use
+ gcc_unreachable.
+
+ * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
+ * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
+ * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
+
+ * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
+ 'abort'.
+
+2005-04-26 Jeff Law <law@redhat.com>
+
+ * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
+ (op_iter_init_must_and_may_def): Likewise.
+ (unmodifiable_var_p): Move to a later point in the file.
+ * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
+ * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
+ (dse_record_phis): Directly check for virtual operands rather than
+ using need_imm_uses_for.
+ (dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
+ store has multiple V_{MAY,MUST}_DEF operands.
+
2005-04-26 Andrew MacLeod <amacleod@redhat.com>
- * tree-cfg.c (bsi_replace): Delink immediate uses for the original stmt.
+ * tree-cfg.c (bsi_replace): Delink immediate uses for the original
+ stmt.
2005-04-26 Kazu Hirata <kazu@cs.umass.edu>