+2004-08-12 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/extend.texi (AltiVec builtins): Fix description for recent
+ changes. Update operation list to match current support.
+
+2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (struct s390_frame_layout): New struct as element
+ of struct machine_function.
+ (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
+ changed all uses.
+ (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
+ changed all uses.
+ (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
+ (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
+ (s390_frame_area, s390_register_info): New functions.
+ (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
+ for base register.
+ (s390_return_addr_rtx, s390_return_address_offset)
+ (s390_va_start, s390_gimplify_va_arg)
+ (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
+ layouts.
+ (s390_frame_info): Functionality partly moved to s390_register_info.
+ Made adaptions for new stack layout.
+ (save_gprs, restore_gprs): Changed meaning of second parameter and
+ adapted all callers.
+
+ * config/s390/s390.h (s390_backchain_string): New global variable.
+ (MASK_BACKCHAIN): Removed definition.
+ (TARGET_BACKCHAIN): Changed check.
+ (TARGET_KERNEL_BACKCHAIN): New macro.
+ (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
+ (TARGET_OPTIONS): Added "backchain", "no-backchain" and
+ "kernel-backchain".
+ (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
+
+ * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
+ as condition. Adjusted for new stack layout.
+
+ * doc/invoke.texi: Added documentation for new option
+ "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
+ "-mno-backchain".
+
+2004-08-12 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
+ (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
+
+2004-08-12 David Daney <ddaney@avtrex.com>
+
+ * java/gcj.texi: Add subsection on signal usage.
+
+2004-08-12 David Edelsohn <edelsohn@gnu.org>
+
+ * expr.c (move_by_pieces): Set alignment for move to minimum of
+ MOVE_MAX_PIECES mode alignment and the largest non-slow mode
+ alignment, but not less than the original alignment.
+ (move_by_pieces_ninsns): Same.
+ (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
+ (store_by_pieces_1): Same.
+
+2004-08-12 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/16867
+ * tree.c (is_global_var): New function.
+ (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
+ Call is_global_var.
+ * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
+ Update all users.
+ (is_global_var): Declare.
+ * tree-dfa.c (dump_variable): Display global and addressable
+ attributes.
+ (add_referenced_var): Clarify documentation when marking
+ variables call-clobbered.
+ * tree-flow-inline.h (is_call_clobbered): Call is_global_var
+ instead of needs_to_live_in_memory.
+ (mark_call_clobbered): If the variable is a tag, mark it
+ DECL_EXTERNAL.
+ * tree-gimple.c (is_gimple_reg): Don't check for
+ TREE_ADDRESSABLE.
+ (is_gimple_non_addressable): Likewise.
+ * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
+ needs to be marked call-clobbered.
+ (setup_pointers_and_addressables): Call is_global_var instead
+ of needs_to_live_in_memory.
+ * tree-ssa-dce.c (need_to_preserve_store): Remove.
+ Update all users with is_global_var.
+ (mark_stmt_if_obviously_necessary): Fix processing of aliased
+ stores. Don't check the virtual definitions. Rather, check
+ whether the store is going into global memory.
+ (find_obviously_necessary_stmts): Get the symbol from the PHI
+ result.
+ * tree-ssa-operands.c (get_call_expr_operands): Do not add
+ clobbering may-defs if the call does not have side effects.
+
+2004-08-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/16276
+ * output.h (default_function_rodata_section,
+ default_no_function_rodata_section): New prototypes.
+ * target.h (struct gcc_target): Add asm_out.function_rodata_section.
+ * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
+ (TARGET_ASM_OUT): Add it.
+ * varasm.c (default_function_rodata_section,
+ default_no_function_rodata_section): New functions.
+ * final.c (final_scan_insn): Call
+ targetm.asm_out.function_rodata_section instead of
+ readonly_data_section.
+ * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
+ * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
+ * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
+ * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
+ Likewise.
+ * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
+ * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
+ Likewise.
+ * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
+ Likewise.
+ * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
+ * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
+ * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
+
+2004-08-12 Paul Brook <paul@codesourcery.com>
+
+ * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
+ frame info.
+ * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
+ DWARF2_UNWIND_INFO.
+
+2004-08-12 Ben Elliston <bje@au.ibm.com>
+
+ PR target/16286
+ * config/rs6000/altivec.h: Change vector to __vector throughout.
+ (Except for the `vector' macro itself).
+
+2004-08-12 Zack Weinberg <zack@codesourcery.com>
+
+ * genpreds.c: Add capability to generate predicate bodies as
+ well as function prototypes. Write function prototypes for
+ the generic predicates too.
+ (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
+ (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
+ (write_match_code, write_predicate_expr, write_one_predicate_function)
+ (parse_option): New functions.
+ (output_predicate_decls): Delete.
+ (main): Read the machine description, process DEFINE_PREDICATE or
+ DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
+ as appropriate.
+
+ * genrecog.c (struct decision_test): Replace index with
+ struct pred_data pointer.
+ (next_index): Remove, unused.
+ (pred_table, preds, special_mode_pred_table): Delete.
+ (compute_predicate_codes, process_define_predicate): New functions.
+ (validate_pattern, add_to_sequence, write_switch): Update for
+ new data structures.
+ (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
+ Check both error_count and have_error.
+
+ * gensupport.c (in_fname, first_predicate): New globals.
+ (define_pred_queue, define_pred_tail): New RTL-pattern queue.
+ (predicate_table, last_predicate, old_pred_table)
+ (old_special_pred_table): New statics.
+ (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
+ (add_predicate, init_predicate_table): New functions.
+ (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
+ (init_md_reader_args_cb): Use the global in_fname. No need to zero
+ it or max_include_len. Call init_predicate_table.
+ (read_rtx): Run the predicate queue after the attribute queue
+ but before all the others.
+ * gensupport.h (in_fname, struct pred_data, first_predicate)
+ (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
+ * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
+ (DEFINE_SPECIAL_PREDICATE): New RTL codes.
+ * dummy-conditions.c: Don't include bconfig.h, system.h,
+ coretypes.h, tm.h, or system.h. Do include stddef.h.
+ Duplicate declaration of struct c_test from gensupport.h.
+
+ * Makefile.in (OBJS-common): Add insn-preds.o.
+ (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
+ (insn-preds.c, insn-preds.o): New rules.
+ (s-preds): Also generate insn-preds.c.
+ (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
+ Update dependencies.
+ (print-rtl.o, print-rtl1.o): Correct dependencies.
+
+ * recog.h: Delete prototypes of predicate functions.
+
+ * doc/md.texi (Predicates): New section with complete
+ documentation of operand/operator predicates. Remove some
+ incomplete documentation of predicates from other places.
+ * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
+ PREDICATE_CODES; indicate that both are deprecated in favor
+ of define_predicate/define_special_predicate.
+
+ * config/ia64/ia64.c: All predicate function definitions moved
+ to ia64.md, except
+ (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
+ (ia64_expand_load_address, ia64_expand_move):
+ Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
+
+ * config/ia64/ia64.md: All predicates now defined here.
+ (symbolic_operand): Is now a special predicate.
+
+ * config/ia64/ia64.h: Declare ia64_section_threshold.
+ (PREDICATE_CODES): Delete.
+
+2004-08-12 Richard Henderson <rth@redhat.com>
+
+ * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
+ * c-semantics.c (add_stmt): Set it.
+ * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
+ before instantiating a variable sized type.
+
+2004-08-12 Richard Henderson <rth@redhat.com>
+
+ * stor-layout.c (round_up, round_down): Move ...
+ * fold-const.c (round_up, round_down): ... here. Use
+ multiple_of_p to avoid any arithmetic at all.
+
+2004-08-12 Richard Henderson <rth@redhat.com>
+
+ * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
+ (gimplify_init_ctor_preeval_1): New.
+ (gimplify_init_ctor_preeval): New.
+ (gimplify_init_ctor_eval): New.
+ (gimplify_init_constructor): Use them. Always gimplify the LHS
+ object first.
+
+2004-08-12 Ziemowit Laski <zlaski@apple.com>
+
+ (This patch is part of merge of objc-improvements-branch
+ into mainline.)
+
+ * doc/frontends.texi: Mention Objective-C++ in addition to
+ Objective-C.
+ * doc/install.texi: Add 'obj-c++' to list of configurable
+ languages.
+ * doc/invoke.texi: Rename Objective-C option headings to
+ indicate they also apply to Objective-C++. List file
+ extensions for Objective-C++ sources. Mention that
+ ObjC and ObjC++ compilations may also use C and C++ options,
+ respectively. Point users to doc/standards.texi for
+ further info on ObjC and ObjC++.
+ * doc/sourcebuild.texi: Mention the objcp/ directory and
+ the Objective-C++ sources it contains.
+ * doc/standards.texi: Update link to Apple ObjC site;
+ add link to gcc readings.html WWW doc.
+
+2004-08-12 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
+ and 2004-07-14 changes.
+
+2004-08-12 Paul Brook <paul@codesourcery.com>
+
+ * doc/invoke.texi: Fix typo.
+
+2004-08-11 Devang Patel <dpatel@apple.com>
+
+ * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
+ and -no_dead_strip_inits_and_terms.
+ (LINK_SPEC): Same.
+ * doc/invoke.texi (Darwin Options): Document -dead_strip and
+ -no_dead_strip_inits_and_terms.
+
+2004-08-11 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
+ (arm_load_pic_register): ... to this.
+ * config/arm/arm.c (arm_finalize_pic): Rename ...
+ (arm_load_pic_register): ... to this. Always output insns at the
+ current location. Load via low reg in thumb mode.
+ (arm_expand_prologue): Call arm_load_pic_register.
+ (thumb_expand_prologue): Ditto.
+ * config/arm/arm.h (FINALIZE_PIC): Remove.
+ * config/arm/arm.md (builtin_setjmp_receiver): Call
+ arm_load_pic_register.
+
+2004-08-11 Paul Brook <paul@codesourcery.com>
+
+ * arm.c (thumb_force_lr_save): Add prototype.
+ (thumb_compute_save_reg_mask): New function.
+ (thumb_find_work_register): New function.
+ (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
+ (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
+ Don't clobber r3 when removing pretend args.
+ (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
+ (thumb_output_function_prologue): Use new functions.
+ (thumb_set_return_address): Use thumb_compute_save_reg_mask.
+ * arm.h (THUMB_REG_PUSHED_P): Remove.
+
+2004-08-11 James E Wilson <wilson@specifixinc.com>
+
+ PR rtl-optimization/16490
+ * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
+ global_live_at_end for new basic block if already set for other blocks.
+
+2004-08-11 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
+
+ * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
+ (mfcr rlwinm rlwinm patterns): Set length to 12.
+
+2004-08-11 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
+ get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
+ (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
+ (start_ssa_stmt_operands): Delete.
+ * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
+ struct stmt_operands_d.
+ (build_ssa_operands): New extern entry point.
+ * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
+ building code, replace with create_ssa_artficial_load_stmt().
+ * tree-ssa-operands.c (struct voperands_d): Delete.
+ (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
+ (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
+ (free_uses, free_defs, free_vuses, free_v_may_defs,
+ free_v_must_defs): Remove dealloc parameter.
+ (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
+ (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
+ finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
+ vector comparisons, ssa_name reuse, and allocations here.
+ (verify_start_operands): Delete.
+ (finalize_ssa_stmt_operands): Set new operands by calling finalize
+ routines.
+ (start_ssa_stmt_operands): Move from tree-flow-inline.h.
+ (append_def, append_usei): Simplify to simple accumulation.
+ (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
+ duplicates and simple accumulation.
+ (free_ssa_operands): Free vectors in a stmt_operand structure.
+ (build_ssa_operands): New. Create a new stmt_operand structure from
+ a stmt and an old set of stmt_operands.
+ (get_stmt_operands): Simplify and call build_ssa_operands.
+ (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
+ get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
+ add_call_read_ops): Don't pass prev_vops around anymore.
+ (note_addressable): Return if no stmt annotation.
+ (copy_virtual_operands): Access v_may_def operands through a struct.
+ (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
+ hash tables without treating the stmt as a real stmt.
+ * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
+ v_may_def def and use through a struct instead of 2 array elements.
+ (struct v_may_def_optype_d): Use v_may_def_operand_type.
+ (struct stmt_operands_d): New. Struct for storing all operand vectors.
+
+2004-08-11 Nick Clifton <nickc@redhat.com>
+
+ * config/arm/arm.c (arm_is_longcall_p): Update comment describing
+ this funciton's behaviour. Return true when the current function
+ has a section attribute and -mlong-calls is in effect.
+ * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
+ short-call marker when -mlong-calls is in effect and the function
+ has a section attribute.
+
+2004-08-10 Zack Weinberg <zack@codesourcery.com>
+
+ * stmt.c (expand_return): If asked to return the RESULT_DECL,
+ just call expand_value_return on result_rtl.
+
+2004-08-10 Richard Henderson <rth@redhat.com>
+
+ * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
+ * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
+ * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
+ (add_location_or_const_value_attribute): ... not here. Use
+ loc_descriptor_from_tree if possible.
+ (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
+ Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
+ values specially.
+ (loc_descriptor_from_tree): New. Update callers.
+ * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
+ * gimplify.c (gimplify_decl_expr): Lower variable sized types to
+ pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
+ (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
+ and BUILT_IN_STACK_RESTORE.
+ (gimplify_expr): Lower DECL_VALUE_EXPR decls.
+ * stmt.c (expand_stack_alloc): Remove.
+ * tree-mudflap.c (mx_register_decls): Don't look for
+ BUILT_IN_STACK_ALLOC.
+ * tree-nested.c (convert_local_reference): Likewise.
+ * tree.h (DECL_VALUE_EXPR): New.
+
+2004-08-10 Richard Henderson <rth@redhat.com>
+
+ * stor-layout.c (round_up): Check for 0/1 before dividing.
+ (round_down): Likewise.
+
+ * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
+
+2004-08-09 Mark Mitchell <mark@codesourcery.com>
+
+ * config.gcc (arm*-*-eabi*): New target.
+ * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
+ (TARGET_LIB_INT_CMP_BIASED): Likewise.
+ * expmed.c (expand_divmod): Try a two-valued divmod function as a
+ last resort.
+ * gthr.h: Remove bogus tokens at end of #pragma.
+ * optabs.c (expand_twoval_binop_libfunc): New function.
+ (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
+ (prepare_float_lib_cmp): Try reversing the condition.
+ (debug_optab_libfuncs): New function.
+ * optabs.h (expand_twoval_binop_libfunc): Declare.
+ * config/arm/arm.c (arm_init_libfuncs): New function.
+ (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
+ (TARGET_INIT_LIBFUNCS): Define it.
+ * config/arm/arm.h (TARGET_BPABI): New macro.
+ * config/arm/arm-protos.h
+ (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
+ * config/arm/bpabi.S: New file.
+ * config/arm/bpabi.c: Likewise.
+ * config/arm/bpabi.h: Likewise.
+ * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
+ (__aeabi_drsub): Likewise.
+ (__aeabi_dsub): Likewise.
+ (__aeabi_dadd): Likewise.
+ (__aeabi_ui2d): Likewise.
+ (__aeabi_i2d): Likewise.
+ (__aeabi_f2d): Likewise.
+ (__aeabi_dmul): Likewise.
+ (__aeabi_ddiv): Likewise.
+ (__aeabi_cdrcmple): Likewise.
+ (__aeabi_cdcmpeq): Likewise.
+ (__aeabi_cdcmple): Likewise.
+ (__aeabi_dcmpeq): Likewise.
+ (__aeabi_dcmplt): Likewise.
+ (__aeabi_dcmple): Likewise.
+ (__aeabi_dcmpge): Likewise.
+ (__aeabi_dcmpgt): Likewise.
+ (__aeabi_dcmpun): Likewise.
+ (__aeabi_d2iz): Likewise.
+ (__aeabi_d2uiz): Likewise.
+ (__aeabi_d2f): Likewise.
+ * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
+ (__aeabi_frsub): Likewise.
+ (__aeabi_fsub): Likewise.
+ (__aeabi_fadd): Likewise.
+ (__aeabi_ui2f): Likewise.
+ (__aeabi_i2f): Likewise.
+ (__aeabi_fmul): Likewise.
+ (__aeabi_fdiv): Likewise.
+ (__aeabi_cfrcmple): Likewise.
+ (__aeabi_cfcmpeq): Likewise.
+ (__aeabi_cfcmple): Likewise.
+ (__aeabi_fcmpeq): Likewise.
+ (__aeabi_fcmplt): Likewise.
+ (__aeabi_fcmple): Likewise.
+ (__aeabi_fcmpge): Likewise.
+ (__aeabi_fcmpgt): Likewise.
+ (__aeabi_fcmpun): Likewise.
+ (__aeabi_f2iz): Likewise.
+ (__aeabi_f2uiz): Likewise.
+ * config/arm/lib1funcs.asm (ARM_CALL): New macro.
+ (__aeabi_uidivmod): New function or alias.
+ (__aeabi_idivmod): Likewise.
+ (__aeabi_idiv0): Likewise.
+ (__aeabi_ldiv0): Likewise.
+ (__aeabi_llsr): Likewise.
+ (__aeabi_lasr): Likewise.
+ (__aeabi_llsl): Likewise.
+ (bpabi.S): Include it.
+ * config/arm/libgcc-bpabi.ver: New file.
+ * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
+ (LINK_SPEC): Remove.
+ * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
+ __aeabi_ulcmp.
+ * config/arm/t-bpabi: New file.
+ * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
+ (TARGET_LIB_INT_CMP_BIASED): Likewise.
+
+2004-08-10 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
+ * config/rs6000/rs6000.md (clrmemsi): New pattern.
+ * config/rs6000/rs6000.c (expand_block_clear): New function.
+ (expand_block_move): Convert alignment to bits. Use SImode and
+ HImode for unaligned addresses if not STRICT_ALIGNMENT.
+
+2004-08-10 Caroline Tice <ctice@apple.com>
+
+ * varasm.c (unlikely_section_label): New global variable.
+ (unlikely_text_section_name): New global variable.
+ (text_section): Remove alignment statement.
+ (unlikely_text_section): Remove alignment statement; use
+ unlikely_section_label rather than hard-coded string.
+ (assemble_start_function): Initialize unlikely_section_label and
+ unlikely_text_section_name; make sure cold section is properly
+ aligned at start of function; output unlikely_section_label if
+ appropriate.
+
+2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
+ * config/s390/s390.c (s390_canonicalize_comparison): New function.
+ * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
+ * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
+ "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
+ ("*tmqi_mem"): Remove SUBREG from pattern.
+ ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
+ ("*andsi3_cconly"): Likewise.
+
+2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/16909
+ * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
+
+2004-08-10 Janis Johnson <janis187@us.ibm.com>
+
+ * doc/sourcebuild.texi (compat testing): Document available test
+ framework commands. Use the preferred spelling of DejaGnu.
+
+2004-08-10 Daniel Berlin <dberlin@dberlin.org>
+
+ * lambda.h: Add matrix type, and prototypes for remainder of
+ matrix and vector functions.
+ (lambda_vector_mult_const): New function.
+ (lambda_vector_negate): Ditto.
+ (lambda_vector_add): Ditto.
+ (lambda_vector_add_mc): Ditto.
+ (lambda_vector_copy): Ditto.
+ (lambda_vector_zerop): Ditto.
+ (lambda_vector_equal): Ditto.
+ (lambda_vector_min_nz): Ditto.
+ (lambda_vector_first_nz): Ditto.
+ (lambda_vector_matrix_mult): Ditto.
+ * lambda-mat.c: New file.
+ * Makefile.in (lambda-mat.o): New.
+
+2004-08-10 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
+ after linking stmt into the program.
+ (bsi_remove): Don't call modify_stmt.
+ * tree-complex.c (update_complex_assignment,
+ expand_complex_comparison): Call modify_stmt after changing the stmt.
+ * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
+ removing the stmt.
+ * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
+ the stmt, and only if needed.
+ * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
+ expression.
+ (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
+ (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
+ (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
+ (eliminate_redundant_computations): Don't pass an annotation. Call
+ modify_stmt rather than setting the annotation directly.
+ (record_equivalences_from_stmt): Remove unused local 'j'.
+ (cprop_operand): Take a stmt rather than an annotation as a parameter.
+ Call modify_stmt.
+ (cprop_into_stmt): Pass stmt rather than annotation.
+ (update_rhs_and_lookup_avail_expr): Call modify_stmt.
+ * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
+ modify_stmt.
+ * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
+
+2004-08-10 Jason Merrill <jason@redhat.com>
+
+ PR middle-end/16948
+ * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
+ the RESULT_DECL.
+
+2004-08-10 Geoffrey Keating <geoffk@apple.com>
+
+ * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
+ hash function.
+
+2004-08-10 Roger Sayle <roger@eyesopen.com>
+
+ * config/mips/mips.md: New reciprocal square root patterns that
+ match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
+
+2004-08-10 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm-protos.h (arm_set_return_address,
+ thumb_set_return_address): Add prototypes.
+ * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
+ * config/arm/arm.c (arm_compute_func_type,
+ use_return_insn, arm_compute_save_reg0_reg12_mask,
+ arm_compute_save_reg_mask, arm_output_function_prologue,
+ arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
+ current_function_calls_eh_return.
+ (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
+ old eh code.
+ (arm_set_return_address, thumb_set_return_address): New functions.
+ * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
+ ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
+ * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
+ (epilogue): Use the stackadj register.
+ (eh_return, arm_eh_return, thumb_eh_return): New pattern.
+
+2004-08-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/3144
+ * expr.c (move_by_pieces_ninsns): Add max_size argument.
+ (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
+ (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
+ (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
+ but using MOVE_RATIO.
+ (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
+ (can_store_by_pieces): Change max_size type to unsigned int.
+ (store_by_pieces_1): Likewise. Pass max_size to
+ move_by_pieces_ninsns.
+ * config/s390/s390.h (STORE_BY_PIECES_P): Define.
+ * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
+ to move_by_pieces_ninsns.
+ (STORE_BY_PIECES_P): Define.
+ * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
+ to move_by_pieces_ninsns.
+ * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
+
+ * config/i386/i386.h (CLEAR_RATIO): Define.
+
+2004-08-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (expand_expr_real_1): Add back code that was not dead.
+
+2004-08-09 Andrew Pinski <apinski@apple.com>
+
+ * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
+ which is found to be compatible before returning the aliasing set.
+
+2004-08-09 Daniel Jacobowitz <dan@debian.org>
+
+ * ggc-zone.c (struct alloc_zone): Add statistics counters.
+ (always_collect): New flag.
+ (ggc_alloc_zone_1): Update statistics support. Don't include
+ overhead in allocated counter.
+ (sweep_pages): Update allocated counter for large pages. Don'y
+ include overhead.
+ (ggc_collect_1): Always collect.
+ (ggc_collect): Honor always_collect flag. Sum all zones to decide
+ whether to collect.
+ (SCALE, LABEL): New macros.
+ (ggc_print_statistics): Add statistics support.
+
+2004-08-09 Roger Sayle <roger@eyesopen.com>
+
+ * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
+ (init_expmed): Fix potential overrun problem with "all.reg".
+ (expand_sdiv2_pow2): Add an alternate implementation for signed
+ division, if the target provides a suitable conditional move insn.
+
+2004-08-09 Paul Brook <paul@codesourcery.com>
+ Richard Henderson <rth@redhat.com>
+
+ * unwind-dw2.c (uw_install_context_1): Update target saved stack
+ pointer.
+
+2004-08-09 Geoffrey Keating <geoffk@apple.com>
+
+ * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
+ Check DATA limit only if there's no AS limit. Ignore insanely
+ low DATA limits.
+ (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
+ but take care that the AS limit isn't overrun.
+ * doc/invoke.texi: Update documentation of min-heapsize parameter.
+
+2004-08-09 Jeff Law <law@redhat.com>
+
+ * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
+ (tree-ssa-threadupdate.o): Add dependencies.
+ * tree-ssa-threadupdate.c: New file.
+ * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
+ (rewrite_vars_out_of_ssa): Remove prototype.
+ (cleanup_tree_cfg): Returns a bool.
+ * tree.h (thread_through_all_blocks): Prototype.
+ * tree-outof-ssa.c (SSANORM_*): Move into here.
+ (remove_ssa_form): Now static.
+ (rewrite_vars_out_of_ssa): Kill.
+ * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
+ * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
+ (remove_ssa_form, register_partitions_for_vars): Kill declarations.
+ * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
+ anything was changed.
+ * tree-phinodes.c (add_phi_arg): Get the block for the PHI
+ from the PHI's annotation rather than the edge associated with
+ the new argument.
+ * tree-ssa-dom.c (redirection_edges): Kill.
+ (redirect_edges_and_update_ssa_graph): Kill.
+ (tree_ssa_dominator_optimize): Do not reset forwardable flag
+ for blocks anymore. Do not initialize redirection_edges.
+ Call thread_through_all_blocks. Simplify code for cleanup
+ of the CFG and iterating. No longer call cleanup_tree_cfg
+ outside the iteration loop.
+ (thread_across_edge): No longer mess with forwardable blocks.
+
+2004-08-09 Zack Weinberg <zack@codesourcery.com>
+
+ * explow.c (memory_address): Use memory_address_p.
+ * recog.c (general_operand): Likewise.
+ * regrename.c: No need to define REG_OK_STRICT.
+
+2004-08-09 Steven Bosscher <stevenb@suse.de>
+
+ * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
+ New timers.
+ * gcse.c: Include timevar.h.
+ (const_prop_count, copy_prop_count): Rename to global_const_prop_count
+ and global_copy_prop_count.
+ (local_const_prop_count, local_copy_prop_count): New static globals.
+ (gcse_main): Set the right timevar for each pass.
+ (cprop_jump): Increment global_const_prop_count when a constant is
+ propagated. Add "GLOBAL" to dump output.
+ (cprop_insn): Increment global_const_prop_count when a constant is
+ propagated, or global_copy_prop_count when a copy is propagated.
+ (do_local_cprop): Likewise for local_const_prop_count and
+ local_copy_prop_count.
+ (one_cprop_pass): Initialize const/cprop counters to zero.
+ Print out results of local and global const/cprop separately.
+ (bypass_block): Break over-length line.
+ * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
+ for bb-reorder.o and tracer.o.
+
+2004-08-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in (GTFILES): Remove stmt.c
+ (stmt.o): Do not depend on gt-stmt.h.
+ * emit-rtl.c (emit_line_note): Do not call
+ set_file_and_line_for_stmt.
+ * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
+ do everything.
+ * function.c (free_after_parsing): Do not free STMT field.
+ (allocate_struct_function): Do not call init_stmt_for_function.
+ (assign_stack_temp_for_type): Do not accept values of keep
+ other than 0 or 1.
+ (init_temp_slots): Do not initialize removed variables.
+ * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
+ and X_VAR_TEMP_SLOT_LEVEL fields.
+ * rtl.h (set_file_and_line_for_stmt): Remove.
+ * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
+ struct stmt_status, cond_stack, case_stack, nesting_stack,
+ nesting_depth, emit_locus, set_file_and_line_for_stmt,
+ same_case_target_p, init_stmt_for_function, emit_nop,
+ expand_start_cond, expand_start_elseif, expand_start_else,
+ expand_elseif, expand_end_cond): Remove.
+ (preserve_subexpressions_p): Remove references to CFUN->STMT.
+ (expand_start_case, expand_end_case_type): Remove, merge into...
+ (expand_case): ... this one, including other bits from
+ expand_expr_real_1. Inline same_case_target_p. Turn members
+ of CASE_STACK into local variables.
+ (emit_case_bit_tests): Inline same_case_target_p.
+ (add_case_node): Add HEAD argument, return new head of the list,
+ do not handle default label here.
+ * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
+ expand_start_elseif, current_nesting_level, expand_start_case,
+ expand_end_case_type, expand_end_case, add_case_node,
+ init_stmt_for_function, expand_elseif): Remove prototypes.
+ (expand_case): Add prototype.
+
+2004-08-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (expand_expr_real_1): Use optab_for_tree_code.
+
+2004-08-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * expr.c (var_rtx): Remove.
+ (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
+ LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
+ TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
+ Abort.
+ (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
+ * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
+ * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
+
+2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
+ Ayal Zaks <zaks@il.ibm.com>
+
+ * common.opt (freschedule-modulo-scheduled-loops): New flag.
+ * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
+ * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
+ when -freschedule-modulo-scheduled-loops flag is not specified.
+ (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
+ add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
+ More accurate placing of insn in row of partial schedule.
+ (ps_insn_find_column): New function.
+ * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
+ * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
+ (schedule_region): Use sched_is_disabled_for_current_region_p.
+ * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
+
2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_expand_clrmem): Revert the last
2004-08-07 Jason Merrill <jason@redhat.com>
- * gimplify.c (gimplify_call_expr): Make return in memory explicit.
- (gimplify_modify_expr_rhs): Likewise.
+ Make return in memory explicit.
+ * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
+ (assign_parm_find_data_types): Remove code for old front end
+ invisible reference handling.
+ (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
+ (expand_function_end): Likewise.
+ * gimplify.c (gimplify_return_expr): Handle a dereferenced
+ RESULT_DECL.
+ * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
+ (declare_return_variable): Handle DECL_BY_REFERENCE.
+ * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
+ (cp_genericize_r): Use convert_from_reference.
+ Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
+ (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
+
* c-common.c (c_warn_unused_result): Check TREE_USED before
warning about a CALL_EXPR with an unused value.
(CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
2004-08-06 Roman Zippel <zippel@linux-m68k.org>
-
- * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
- * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
- pre_dec_operand.
- * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
- pattern until reload is finished to allow better code generation
- and split them completely into separate instrunctions.
- (*andsi3_split): New pattern.
+
+ * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
+ * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
+ pre_dec_operand.
+ * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
+ pattern until reload is finished to allow better code generation
+ and split them completely into separate instrunctions.
+ (*andsi3_split): New pattern.
2004-08-05 Mark Mitchell <mark@codesourcery.com>
(dllimport): Likewise.
* doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
handle_dll_attribute.
-
+
2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* tree-ssa-loop-manip.c: New file.
* objc/objc-act.c (get_super_receiver): Update calls to
build_compound_expr.
-2004-07-12 Paolo Bonzini <bonzini@gnu.org>
+2004-07-18 Paolo Bonzini <bonzini@gnu.org>
* config/sh/sh.c (sh_use_dfa_interface): Remove.
(TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to