+2004-06-24 Frank Ch. Eigler <fche@redhat.com>
+
+ * tree-mudflap.c (mx_register_decls): Add third (type) argument
+ to synthesized __mf_unregister call.
+
+2004-06-24 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/15239
+ * expmed.c (expand_mult): Remove artificial restriction on the
+ maximum cost of a synthetic multiplication sequence.
+
+2004-06-24 Eric Christopher <echristo@redhat.com>
+
+ * combine.c (distribute_notes): Don't delete sets to
+ global register variables.
+
+2004-06-24 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
+ (ffs_rex64): New splitter.
+ (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
+
+2004-06-24 Andrew Pinski <apinski@apple.com>
+
+ * config/darwin7.h (MATH_LIBRARY): Remove.
+ (LIB_SPEC): Define.
+ * config/darwin.h (MATH_LIBRARY): Define always to empty.
+ (LIB_SPEC): Only define if not already defined.
+
+2004-06-24 Revital Eres <eres@il.ibm.com>
+
+ * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
+ shifts of induction variable.
+ (iv_shift): New function.
+
+2004-06-24 Richard Henderson <rth@redhat.com>
+
+ * gimplify.c (gimplify_body): Watch for body vanishing.
+
+2004-06-24 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (record_dominating_conditions): New function.
+ (dom_opt_finalize_block, get_eq_expr_value): Use it.
+
+2004-06-24 Richard Sandiford <rsandifo@redhat.com>
+
+ * calls.c (shift_returned_value): Fix handling of non-integer
+ TYPE_MODEs.
+
+2004-06-24 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
+ * system.h (DEFAULT_MAIN_RETURN): Poison.
+ * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
+
+2004-06-24 Ben Elliston <bje@au.ibm.com>
+
+ * doc/cfg.texi (Edges): Fix typo.
+
+2004-06-24 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
+
+2004-06-23 Andrew Pinski <apinski@apple.com>
+
+ PR middle-end/15988
+ * fold-const.c (fold_convert): Types which are compatible
+ can be converted with only a NOP_EXPR.
+
+2004-06-24 Alan Modra <amodra@bigpond.net.au>
+
+ * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
+ pass raw n_named_args to it.
+ * targhooks.c: Formatting.
+ (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
+
+2004-06-23 Richard Henderson <rth@redhat.com>
+
+ * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
+ non-constant size check. Gimplify the type too. Tidy building
+ BUILT_IN_STACK_ALLOC call.
+
+2004-06-23 Roger Sayle <roger@eyesopen.com>
+
+ * c-common.c (expand_unordered_cmp): Delete.
+ (expand_tree_builtin): Delete.
+ * c-common.h (expand_tree_builtin): Delete function prototype.
+ * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
+
+2004-06-23 Richard Henderson <rth@redhat.com>
+
+ * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
+ COMPONENT_REF variable fields unless they're non-constant.
+
+2004-06-23 Robert Millan <robertmh@gnu.org>
+
+ * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
+ * config/i386/linux.h: Allow overriding of LINK_EMULATION,
+ DYNAMIC_LINKER and register names in sc_ structure.
+ * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
+ * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
+ * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
+ * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
+
+ * config/kfreebsdgnu.h: Remove.
+ * config/t-kfreebsd-gnu: Likewise.
+ * config/i386/kfreebsdgnu.h: Likewise.
+
+2004-06-23 Eric Christopher <echristo@redhat.com>
+
+ * fold-const.c (make_range): Cleanup type checking through function.
+ Remove orig_type. Replace with checks to exp_type and arg0_type.
+ Clarify comment when converting from unsigned to signed.
+
+2004-06-23 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
+ * config/mips/mips.md: Remove R3000 scheduling description.
+ * config/mips/3000.md: New file.
+
+2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
+ (s390_emit_jump): Likewise.
+ * config/s390/s390.c (s390_emit_compare): New function.
+ (s390_emit_jump): Likewise.
+ * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
+ "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
+ "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
+ and s390_emit_jump.
+ ("cjump"): Remove, replace by ...
+ ("*cjump_64", "*cjump_31"): ... these insns. Improve length default.
+ ("icjump", "*icjump_64", "*icjump_31"): Likewise.
+ ("trap"): Fix type attribute.
+ ("conditional_trap"): Use s390_emit_compare.
+ ("doloop_si"): Remove, replace by ...
+ ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
+ Merge existing splitter into insn_and_split. Improve length default.
+ ("doloop_di"): Merge with existing splitter into insn_and_split.
+ ("doloop"): Adapt.
+ ("jump"): Convert to expander. Use s390_emit_jump.
+ ("*jump_64", "*jump_31"): New insns. Improve length default.
+
+2004-06-23 Wu Yongwei <adah@sh163.net>
+
+ * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
+ (__gthr_i486_lock_cmp_xchg): New inline assembly function.
+ (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
+ suitable function for interlocked compare-and-exchange.
+ (__gthread_mutex_trylock): Use
+ __GTHR_W32_InterlockedCompareExchange.
+ (__gthread_mutex_init_function, __gthread_mutex_lock,
+ __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
+ initial counter value to work correctly under Windows 95.
+ * config/i386/gthr-win32.c: Adjust include order.
+ Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
+ gthr-win32.h.
+ (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
+ __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
+ to match inline versions in gthr-win32.h.
+
+2004-06-23 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
+ (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
+ (insvdi_rshift_rlwimi_p): New function.
+ * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
+ (extendsfdf2): Convert to define_insn_and_split.
+ * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
+
+2004-06-23 Andrew Pinski <apinski@apple.com>
+
+ * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
+ type qualifiers at all.
+ If both of the type domains are null and the new element type is
+ the same as one of the, return the one which the element type.
+ matches.
+ Do not call qualify_type on the new type.
+
+2004-06-23 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
+
+2004-06-23 Roger Sayle <roger@eyesopen.com>
+
+ * convert.c (strip_float_extension): Skip both NOP_EXPR and
+ CONVERT_EXPR floating point extensions.
+
+2004-06-23 Diego Novillo <dnovillo@redhat.com>
+
+ * Makefile.in (tree-vn.o): New.
+ (tree-ssa-pre.o): Don't depend on RTL_H.
+ * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
+ * tree-flow.h (struct var_ann_d): Remove field expr_set.
+ (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
+ vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
+ * tree-optimize.c (execute_init_datastructures): New local function.
+ (pass_init_datastructures): New local variable.
+ (init_tree_optimization_passes): Sequence pass_init_datastructures.
+ * tree-pretty-print.c (MASK_POINTER): Remove.
+ (dump_generic_node): Handle VALUE_HANDLE.
+ * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
+ Update callers to use new function names.
+ Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
+ variable annotations.
+ * tree-ssa.c (init_tree_ssa): Call vn_init.
+ (delete_tree_ssa): Call vn_delete.
+ * tree-vn.c: New file.
+ * tree.c (tree_size): Handle VALUE_HANDLE.
+ (tree_node_structure): Likewise.
+ (iterative_hash_expr): Likewise.
+ * tree.def (VALUE_HANDLE): New code.
+ * tree.h (struct tree_value_handle): New.
+ (VALUE_HANDLE_ID): Define.
+ (VALUE_HANDLE_EXPR_SET): Define.
+ (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
+ (union tree_node): Add struct tree_value_handle.
+
+2004-06-23 Andrew Pinski <apinski@apple.com>
+
+ * c-typeck.c (composite_type):
+ <case POINTER_TYPE>: Build a qualified type of
+ the new type.
+ <case ARRAY_TYPE>: Likewise.
+ <case FUNCTION_TYPE>: Likewise.
+
+2004-06-23 Pat Haugen <pthaugen@us.ibm.com>
+
+ PR optimization/15633
+ * value-prof.c (divmod_fixed_value_transform): Compute probability
+ of taking optimal path and pass along to gen_ routine.
+ (mod_pow2_value_transform): Same.
+ (mod_subtract_transform): Same.
+ (gen_divmod_fixed_value): Add new probability parameter.
+ Add probability to newly created jump.
+ (gen_mod_pow2): Same.
+ (gen_mod_subtract): Same.
+
+2004-06-23 Richard Earnshaw <rearnsha@arm.com>
+
+ * PR target/15948
+ * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
+ one and two.
+
+2004-06-23 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/15927
+ * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
+ reload if CLASS is BASE_REGS.
+
+2004-06-23 Richard Sandiford <rsandifo@redhat.com>
+
+ * gengtype-yacc.y (option): Avoid use of non-constant struct
+ initializer.
+
+2004-06-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ * doc/extend.texi (Function Attributes): Alphabetize.
+
+2004-06-23 Richard Henderson <rth@redhat.com>
+
+ * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call.
+ Use gimplify_and_add.
+ * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt.
+ * gimplify.c (build_and_jump, gimplify_exit_expr,
+ gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup,
+ gimplify_stmt, gimplify_expr): Likewise.
+ (shortcut_cond_expr): Handle NULL arms of COND_EXPR.
+ (gimplify_statement_list): Remove NULL entries.
+ (gimplify_to_stmt_list): Handle NULL results.
+ (gimplify_type_sizes): Add list_p argument.
+ (gimplify_one_sizepos): Don't use internal pre/post queue.
+ * tree-gimple.h (gimplify_type_sizes): Update.
+
+2004-06-22 Eric Christopher <echristo@redhat.com>
+
+ * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns.
+
+2004-06-22 Pat Haugen <pthaugen@us.ibm.com>
+
+ * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge
+ when redirecting back edges.
+
+ * cfghooks.c (split_block): Call make_single_succ_edge so that edge
+ count/probability are set correctly.
+
+2004-06-22 Richard Henderson <rth@redhat.com>
+
+ * c-typeck.c (emit_side_effect_warnings): Ignore error marks.
+ (c_finish_stmt_expr): Likewise.
+
+ * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New.
+ (ix86_return_in_memory): Move SSE vector return warning ...
+ (ix86_struct_value_rtx): ... here. New.
+
+2004-06-22 Richard Henderson <rth@redhat.com>
+
+ * tree.def (VTABLE_REF): Remove.
+ (OBJ_TYPE_REF): New.
+ (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
+ * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
+ * fold-const.c (non_lvalue): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ (gimplify_call_expr): Use is_gimple_call_addr.
+ * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
+ * langhooks.h (fold_obj_type_ref): New.
+ * tree-gimple.c (is_gimple_call_addr): New.
+ * tree-gimple.h (is_gimple_call_addr): Declare.
+ * tree-inline.c (inlinable_function_p): Fix merge error.
+ (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
+ * tree-pretty-print.c (dump_generic_node): Likewise.
+ (print_call_name): Handle OBJ_TYPE_REF.
+ * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
+ * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
+ * tree.h (OBJ_TYPE_REF_EXPR): New.
+ (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
+ * doc/c-tree.texi (VTABLE_REF): Remove.
+ * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
+
+2004-06-22 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/16026
+ * function.c (assign_parms): Don't abort for overaligned PARALLEL.
+
+2004-06-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * Makefile.in (distclean): Don't try to remove empty directories.
+
+2004-06-22 Richard Sandiford <rsandifo@redhat.com>
+
+ PR target/15869
+ * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
+
+2004-06-22 Alexandre Oliva <aoliva@redhat.com>
+
+ * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
+ operands.
+
+2004-06-22 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
+ global, rename rs6000_legitimate_offset_address_p.
+ (rs6000_legitimate_address_p): Adjust calls to it.
+ (lmw_operation): Ditto.
+ (stmw_operation): Ditto.
+ * config/rs6000/rs6000-protos.h: Declare it.
+ * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
+ instead of offsettable_memref_p.
+
+2004-06-22 Dale Johannesen <dalej@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
+ [reg+reg] mode for TFmode memory accesses.
+ (rs6000_eliminate_indexed_memrefs): New.
+ (rs6000_emit_move): Call preceding for TImode and TFmode.
+
+2004-06-22 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-cfg.c (pass_warn_function_return): It needs
+ CFG, not SSA.
+
+2004-06-22 Nathan Sidwell <nathan@codesourcery.com>
+
+ * doc/invoke.texi (Machine Dependent Options): Alphabetize.
+ (Submodel Options): Likewise.
+
+2004-06-21 Andrew Pinski <apinski@apple.com>
+
+ Radar #: 3701874
+ * c-decl.c (push_file_scope): Return early if we already
+ have a file scope.
+
+2004-06-21 Geoffrey Keating <geoffk@apple.com>
+
+ * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
+ * c-common.h (flag_pch_preprocess): Declare.
+ (c_common_pch_pragma): Likewise.
+ * c-common.c (flag_pch_preprocess): New.
+ * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
+ (c_common_pch_pragma): New.
+ * c-ppoutput.c (cb_read_pch): New.
+ (init_pp_output): Support -fpch-preprocess.
+ * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
+ * c.opt (fpch-preprocess): New.
+ * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
+ * doc/cppopts.texi: Document -fpch-preprocess.
+ * doc/invoke.texi (Precompiled Headers): Mention that
+ -fpreprocessed is safe for PCH. Mention that if an option is
+ listed as safe that doesn't mean it does what you expect.
+
+2004-06-22 Ben Elliston <bje@au.ibm.com>
+
+ * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
+
+2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * Makefile.in (gimplify.o): Add cgraph.h.
+ * alias.c (adjust_offset_for_component_ref): Use
+ component_ref_field_offset.
+ * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
+ * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
+ (gimplify_decl_stmt): Call gimplify_type_sizes for type.
+ For decl, call gimplify_one_sizepos and use statement list.
+ (gimplify_compound_literal_expr): New arg PRE_P.
+ Add statement to PRE_P list and return DECL.
+ (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
+ gimplify_compound_literal_expr.
+ * c-tree.h (getdecls): Deleted.
+ * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
+ (build_array_ref): Add two operands for ARRAY_REF.
+ (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
+ COMPOUND_LITERAL_EXPR.
+ * coverage.c (tree_coverage_counter_ref): Add new operands
+ for ARRAY_REF.
+ * emit-rtl.c (component_ref_for_mem_expr): Add new operand
+ for COMPONENT_REF.
+ (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
+ and array_ref_element_size.
+ (widen_memory_access):Use component_ref_field_offset.
+ * explow.c (update_nonlocal_goto_save_area): Add two operands
+ for ARRAY_REF.
+ * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
+ (component_ref_field_offset): Likewise.
+ (get_inner_reference): Use them.
+ (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
+ * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
+ (fold_read_from_constant_string): Use array_ref_low_bound.
+ Verify that result is a character type.
+ (build_fold_indirect_ref): Add two operands for ARRAY_REF.
+ * function.c (expand_function_start): Likewise.
+ * gimple-low.c (expand_var_p): Delete duplicated line.
+ * gimplify.c: Add static decls for local functions.
+ (cgraph.h): Now included.
+ (create_tmp_var): Remove check for ARRAY_TYPE.
+ (copy_if_shared_r): Look at bounds and sizes of types.
+ (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
+ (gimplify_exit_expr, shortcut_cond_expr): Likewise.
+ (gimplify_save_expr, gimple_push_cleanup): Likewise.
+ (gimplify_init_constructor): Likewise.
+ WANT_VALUE now bool.
+ If empty list with no result wanted, return GS_UNHANDLED.
+ Add additional operands for ARRAY_REF and COMPONENT_REF.
+ (canonicalize_component_ref): Convert to &array[L].
+ (gimplify_array_ref_to_plus): Use array_ref_element_size and
+ array_ref_lower_bound.
+ (build_addr_expr_with_type, build_addr_expr): New functions.
+ (gimplify_compound_lval): WANT_LVALUE now bool.
+ Major rework to allow handle_component_p and initialize and
+ gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
+ COMPONENT_REF.
+ (gimplify_array_ref): Deleted.
+ (gimplify_self_mod_expr): WANT_VALUE now bool.
+ (gimplify_modify_expr): Gimplify to_p and from_p later.
+ Factor out code into gimplify_modify_expr_rhs and call twice.
+ Move variable-size code earlier and handle PLACEHOLDER_EXPR.
+ (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
+ (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
+ (gimplify_expr, case ARRAY_REF): Delete special case.
+ Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
+ IMAGPART, and REALPART the same way.
+ (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
+ (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
+ Call alloc_stmt_list instead of build_empty_stmt.
+ Deal with _REF that's volatile.
+ (gimplify_type_sizes, gimplify_one_sizepos): New functions.
+ (unshare_body, unvisit_body): New functions.
+ (gimplify_body): Call them.
+ * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
+ * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
+ * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
+ * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
+ like ARRAY_REF.
+ (verify_expr, case ADDR_EXPR): Use handled_component_p.
+ * tree-dfa.c (get_virtual_var): Likewise.
+ * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
+ New cases to dump new operands; likewise for ARRAY_RANGE_REF.
+ * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
+ * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
+ and INDIRECT_REF.
+ (get_base_address): Use handled_component_p.
+ * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
+ * tree-inline.c (walk_tree): Walk more things for types and decls.
+ * tree-mudflap.c (mf_build_check_statement_for): Add new operands
+ for ARRAY_REF and COMPONENT_REF.
+ (mx_xform_derefs_1): Clean up usage of decl sizes.
+ * tree-nested.c (build_addr): Use handled_component_p.
+ (walk_stmts, case CATCH_EXPR): Add missing "break".
+ (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
+ (finalize_nesting_tree_1): Likewise.
+ (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
+ and process additional operands.
+ (convert_local_reference): Likewise.
+ * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
+ ARRAY_RANGE_REF similarly to ARRAY_REF.
+ * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
+ like RECORD_TYPE.
+ (dump_generic_node, case COMPONENT_REF): Print offset operand.
+ (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
+ and print lower bound and element size for both.
+ (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
+ * tree-sra.c (csc_build_component_ref): Add new operand.
+ (scalarize_call_expr): Use get_base_address.
+ * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
+ (maybe_fold_offset_to_array_ref): Rework to handle input having an
+ ARRAY_REF, refine handling of lower bound, and add new operands
+ for ARRAY_REF.
+ (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
+ (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
+ (maybe_fold_stmt_addition): Only handle constant lower bound.
+ * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
+ Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
+ Look at new offset operand of COMPONENT_REF.
+ * tree-ssa.c (set_is_used): Use handled_component_p.
+ * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
+ (stabilize_reference, case COMPONENT_REF): Likewise.
+ (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
+ (recompute_tree_invariant_for_addr_expr): Completely rework to
+ be more precise. Also set TREE_SIDE_EFFECTS.
+ (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
+ (build2_stat, build3_stat, build4_stat): For references,
+ propagate TREE_THIS_VOLATILE.
+ (get_unwidened): Add new operand for COMPONENT_REF.
+ (get_narrower): Likewise; use host_integerp for DECL_SIZE.
+ * tree.def (COMPONENT_REF): Add new operand.
+ (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
+ * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
+ (component_ref_field_offset): Likewise.
+ * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
+ (alpha_gimplify_va_arg): Likewise.
+ * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
+ * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
+ * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
+ * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
+ * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
+ Likewise.
+ * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
+ * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
+ * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
+ Likewise.
+ (xstormy16_expand_builtin_va_arg): Likewise.
+ * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
+ * objc/objc-act.c (generate_static_references): Likewise.
+ (generate_strings, build_method_prototype_list_template): Likewise.
+ (generate_protocol_list): Likewise.
+
+2004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR rtl-optimization/14782
+ * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
+ the address checks for secondary reloads for loads from and stores
+ to floating-point registers.
+ * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
+ in the address check. Move work around for ELF32 targets to
+ GO_IF_LEGITIMATE_ADDRESS.
+ (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
+ correctly aligned for DImode loads and stores. Don't allow long
+ SFmode displacements on ELF32.
+
+2004-06-21 Richard Henderson <rth@redhat.com>
+
+ PR rtl-opt/16114
+ * cse.c (merge_equiv_classes): Also rehash in response to
+ delete_reg_equiv changes.
+ (rehash_using_reg): Don't exclude REGs from rehashing.
+
+2004-06-21 Richard Henderson <rth@redhat.com>
+
+ * c-common.def (RETURN_STMT): Remove.
+ * c-common.h (RETURN_STMT_EXPR): Remove.
+ (c_expand_return, build_return_stmt): Remove.
+ (c_common_stmt_codes): Remove RETURN_STMT.
+ * c-dump.c (dump_next_stmt): Remove.
+ (c_dump_tree): Remove RETURN_STMT.
+ * c-decl.c (finish_function): Use c_finish_return.
+ * c-parse.in (stmt): Likewise.
+ * c-gimplify.c (gimplify_return_stmt): Remove.
+ (c_gimplify_expr): Remove RETURN_STMT.
+ * c-pretty-print.c (pp_c_statement): Likewise.
+ * c-semantics.c (build_return_stmt): Remove.
+ * c-tree.h (c_finish_return): Declare.
+ * c-typeck.c (c_finish_return): Rename from c_expand_return.
+ Return void. Build RETURN_EXPR directly.
+ * tree-dump.h (dump_next_stmt): Remove.
+
+2004-06-21 Zack Weinberg <zack@codesourcery.com>
+
+ * c-decl.c (start_function): Don't call make_decl_rtl. Don't
+ look at TREE_ADDRESSABLE of symbol name.
+
+2004-06-21 Kelley Cook <kcook@gcc.gnu.org>
+
+ PR target/15551
+ * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
+ (allocate_stack_worker): Make unspec_volatile.
+ (allocate_stack_worker_rex64): Likewise.
+ (allocate_stack_worker_postreload): Likewise.
+ (allocate_stack_worker_rex64_postreload): Likewise.
+
+2004-06-21 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR optimization/15982
+ * tree-ssa-pre.c: Update a few comments and todos to
+ reflect constants change.
+ (get_value_handle): Constants now value number to themselves.
+ (lookup): Constants lookup to themselves.
+ (add_to_value): Adjust to always be on.
+ (set_contains_value): Adjust for constants change.
+ (find_leader): Ditto.
+ (phi_translate): 'r' nodes are never ANTIC right now.
+ (valid_in_set): Ditto.
+ (get_expr_set): New function.
+ (find_or_generate_expression): New function, broken out from
+ insert_aux.
+ (create_expression_by_pieces): Ditto, plus additional
+ machinery to handle complex values.
+ (compute_avail): Remove dead RETURN_EXPR handling.
+
+2004-06-21 Steven Bosscher <stevenb@suse.de>
+
+ * config/i386/i386.c: Include insn-codes.h
+ * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
+ define here.
+ * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
+ DIRFLAG_REG): New define_constants. Use them everywhere.
+
+2004-06-21 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
+
+2004-06-21 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
+ (SUPPORT_SH4_SINGLE): Likewise.
+ (TARGET_SWITCHES): Break out switches for cpu subtargets:
+ (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
+ (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
+ (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
+ (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
+ (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
+ (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
+ (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
+ (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
+ (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
+ (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
+ (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
+ (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
+ (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
+ * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
+ (TARGET_DEFAULT): Likewise.
+ * config/sh/t-elf: Amend comment.
+ * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
+ * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
+ * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
+ * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
+ * config/sh/t-mlib-sh4-single: Likewise.
+ * config/sh/t-mlib-sh4-single-only: Likewise.
+ * config/sh/t-mlib-sh5-32media: Likewise.
+ * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
+ * config/sh/t-mlib-sh5-64media: Likewise.
+ * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
+ * config/sh/t-mlib-sh5-compact: Likewise.
+ * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
+ * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
+ (MULTILIB_CPUS): Define.
+ (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
+ (MULTILIB_MATCHES): Use some shell code to calculate it.
+ (MULTILIB_EXCEPTIONS): Change to ml/m1.
+ * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
+ * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
+ (LINK_DEFAULT_CPU_EMUL): Don't redefine.
+ (NO_PROFILE_COUNTERS): Define to 1.
+ * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
+ (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
+ * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
+ (MULTILIB_MATCHES): Don't zap.
+ (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
+ * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
+ (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
+ (MULTILIB_RAW_DIRNAMES): Define.
+ (MULTILIB_DIRNAMES): Use it.
+ * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
+ (sh*linux configurations): Merge into:
+ (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu,
+ --with-multilib-list options. Support sh-superh-elf configuration.
+ (sh*-netbsd*): Use SELECT_SH* macros.
+ (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
+ Merge sh*-*-netbsd* configurations into sh-elf configurations.
+ * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
+ * config/sh/t-monolib: Likewise.
+
+2004-06-21 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
+ not imply FPA.
+
+2004-06-21 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (operand_equal_p): Pass flags in recursive calls for
+ binary and relational operations. Add support for TRUTH_ANDIF_EXPR,
+ TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
+ * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
+ ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
+ and TRUTH_XOR_EXPR.
+
+2004-06-21 Paolo Bonzini <bonzini@gnu.org>
+
+ * rtlanal.c (may_trap_p): Mark LTGT as trapping.
+
+2004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * tree-alias-common.h (struct tree_alias_ops): Change ip and
+ ip_partial to unsigned int.
+
+2004-06-21 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (verify_sequence_points): Export.
+ (c_expand_expr_stmt): Move to c-typeck.c.
+ * c-common.h (c_expand_expr_stmt): Remove.
+ (verify_sequence_points): Declare.
+ * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
+ * c-parse.in (for_init_stmt, stmt): Likewise.
+ * c-tree.h (c_finish_expr_stmt): Declare.
+ (c_tree_expr_nonnegative_p): Remove.
+ * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
+ (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
+ (emit_side_effect_warnings): New.
+ (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it.
+ (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions.
+ Use emit_side_effect_warnings.
+ (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
+ * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
+ * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
+ with void initializer.
+ (gimplify_target_expr): Handle void BIND_EXPR initializer.
+ * tree-inline.c (estimate_num_insns_1): Fix type lookup for
+ INIT_EXPR and MODIFY_EXPR.
+ * objc/objc-act.c (build_module_descriptor): Use add_stmt
+ instead of c_expand_expr_stmt.
+
+2004-06-21 Paolo Bonzini <bonzini@gnu.org>
+
+ * fold-const.c (fold_cond_expr_with_comparison):
+ New function, extracted from fold.
+ (fold): Extract code to fold A op B ? A : C, use
+ it to fold A op B ? C : A. Really optimize
+ A & N ? N : 0 where N is a power of two. Avoid
+ relying on canonicalization and recursion for
+ foldings of COND_EXPR to happen.
+
+2004-06-20 David Ayers <d.ayers@inode.at>
+
+ * objc/objc-act.h (get_object_reference): Rename to
+ get_protocol_reference.
+ (super_type): Rename to objc_super_type.
+ (selector_type): Rename to objc_selector_type.
+ (id_type): Rename to objc_id_type.
+ (instance_type): Rename to objc_instance_type.
+ (protocol_type): Rename to objc_protocol_type.
+ (IS_ID): Update reference to id_type.
+ * objc/objc-act.c (get_object_reference): Rename to
+ get_protocol_reference; add documentation; update references to
+ id_type.
+ (lookup_method_in_protocol_list): Rename class_meth to
+ is_class; add documentation.
+ (finish_message_expr): Rename is_class to class_tree.
+ (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
+ next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
+ build_next_objc_exception_stuff, get_arg_type_list,
+ build_objc_method_call): Update references to id_type.
+ (synth_module_prologue, build_objc_symtab_template,
+ build_selector_reference_decl, build_selector,
+ build_selector_translation_table, build_typed_selector_reference,
+ get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
+ synth_self_and_ucmd_args): Update references to selector_type.
+ (build_private_template, build_ivar_reference): Update references
+ to instance_type.
+ (synth_module_prologue, build_protocol_reference,
+ build_protocol_expr, start_protocol): Update references to
+ protocol_type.
+ (synth_module_prologue, get_arg_type_list, build_objc_method_call):
+ Update references to super_type.
+ * c-parse.in: (typespec_nonreserved_nonattr): Update
+ references to get_object_reference.
+ * objc/objc-tree.def: Add C mode identifier sequence.
+
+2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * loop-invariant.c: New file.
+ * Makefile.in (loop-invariant.o): New.
+ * cfgloop.h (global_cost_for_size, init_set_costs,
+ move_loop_invariants): Declare.
+ * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
+ functions.
+ (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
+ variables.
+ * common.opt (floop-optimize2, fmove-loop-invariants): New options.
+ * loop-init.c (loop_optimizer_init): Call init_set_costs.
+ * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
+ (rest_of_compilation): Check flag_loop_optimize2.
+ * toplev.c (process_options): Handle flag_loop_optimize2.
+ * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
+ * doc/passes.texi (loop-invariant.c): Document.
+
+2004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
+
+2004-06-20 Richard Henderson <rth@redhat.com>
+
+ * stmt.c (warn_if_unused_value): Add locus argument.
+ * tree.h (warn_if_unused_value): Update decl.
+ * c-typeck.c (internal_build_compound_expr): Update call.
+ * c-gimplify.c (gimplify_expr_stmt): Likewise.
+
+2004-06-20 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/16089
+ * builtins.c (entry_of_function): Move to ...
+ * cfgrtl.c (entry_of_function): Here and make non-static.
+ * integrate.c (emit_initial_value_sets): Use entry_of_function.
+ * rtl.h (entry_of_function): Prototype.
+
+2004-06-20 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
+ (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
+ TARGET_DECOMPOSE_LEA.
+
+2004-06-20 Richard Henderson <rth@redhat.com>
+
+ * c-common.h (add_decl_stmt): Move to cp-tree.h.
+ * c-decl.c (finish_decl): Don't use add_decl_stmt.
+ * c-parse.in: Likewise.
+ * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
+ (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
+ * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
+
+2004-06-20 Richard Henderson <rth@redhat.com>
+
+ * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
+ * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
+ CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
+ (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
+ * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
+ * c-pretty-print.c (pp_c_statement): Similarly.
+ * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
+ gimplify_if_stmt): Move to cp-gimplify.c.
+ (c_genericize, c_gimplify_expr): Don't call them.
+ * c-semantics.c (push_cleanup): Move to cp/semantics.c.
+ * c-typeck.c (push_cleanup): New.
+ (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
+ c_finish_if_stmt): Use COND_EXPR.
+ * tree.h (CLEANUP_EH_ONLY): Update documentation.
+
+2004-06-20 Zack Weinberg <zack@codesourcery.com>
+
+ * c-common.h (has_c_linkage): New interface.
+ * c-cppbuiltin.c: Include target.h.
+ (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
+ __PRAGMA_EXTERN_PREFIX when appropriate.
+ * c-pragma.c: Include target.h.
+ Document clarified semantics of symbol-renaming #pragmas.
+ (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
+ (maybe_apply_renaming_pragma): Rewrite according to clarified
+ semantics. Always recognize, but do not necessarily execute.
+ (init_pragma): Unconditionally register symbol-renaming pragmas.
+ * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
+ and HANDLE_PRAGMA_EXTERN_PREFIX.
+ * target.h (struct gcc_target): Add handle_pragma_redefine_extname
+ and handle_pragma_extern_prefix flags.
+ * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
+ and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
+ * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
+ * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
+ not HANDLE_PRAGMA_REDEFINE_EXTNAME.
+ (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
+ (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
+ * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
+ not HANDLE_PRAGMA_EXTERN_PREFIX.
+ (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
+ * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
+ into one section "Symbol-Renaming Pragmas"; clarify; document
+ adjusted semantics.
+
+ * builtins.c (expand_builtin): Do not issue error for a builtin
+ with no special case code and no DECL_ASSEMBLER_NAME; just do the
+ library call.
+ * c-decl.c (builtin_function): Don't call make_decl_rtl.
+ * c-objc-common.c (has_c_linkage): Stub implementation.
+ * cgraphunit.c (cgraph_expand_function)
+ (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
+
2004-06-19 Roger Sayle <roger@eyesopen.com>
* builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
2004-06-18 Richard Henderson <rth@redhat.com>
- PR c++/16036
+ PR c++/16036
* gimple-low.c (lower_function_body): Generate return statement for
fall off the end of the function here ...
* tree-cfg.c (make_edges): ... instead of here.
UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
catch_count_stack, exc_binding_stack, if_nesting_count,
blk_nesting_count, objc_enter_block, objc_exit_block,
- objc_declare_variable, val_stack_push, val_stack_pop,
+ objc_declare_variable, val_stack_push, val_stack_pop,
objc_build_try_enter_fragment, objc_build_extract_expr,
objc_build_try_exit_fragment, objc_build_extract_fragment,
- objc_build_try_prologue, objc_build_try_epilogue,
+ objc_build_try_prologue, objc_build_try_epilogue,
objc_build_catch_stmt, objc_build_catch_epilogue,
objc_build_finally_prologue, objc_build_finally_epilogue,
objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
* tree-ssa-operands.h (struct def_optype_d): Change underlying type.
(struct use_optype_d): Change underlying type.
(def_operand_p, use_operand_p): New types for pointers to operands.
- (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
+ (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly.
- (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
+ (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand
pointer types.
(SET_USE, SET_DEF): New macros to set operands from their pointer.
(SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
* tree.h (duplicate_ssa_name): Declare.
2004-06-17 David Ayers <d.ayers@inode.at>
-
+
* c-parse.in: Unify Objective-C token names.
2004-06-17 Zack Weinberg <zack@codesourcery.com>