+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
+ instead of both an ARGLIST and a result TYPE. Handle these C99
+ comparison functions as "polymorphic" builtins. Also handle
+ lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
+ (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
+ Move handling of BUILT_IN_ISUNORDERED from here to there.
+
+2004-06-19 Richard Henderson <rth@redhat.com>
+
+ * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
+ * c-gimplify.c: Remove unnecessary prototypes.
+ (c_gimplify_stmt): Merge into ...
+ (c_gimplify_expr): ... here. Don't play with prep_stmt.
+ * c-semantics.c (prep_stmt): Remove.
+ * gimplify.c (annotate_one_with_locus): Break out from ...
+ (annotate_all_with_locus): ... here.
+ (gimplify_expr): Add locus to expressions even if pre/post queues
+ are not present.
+
+2004-06-19 Richard Henderson <rth@redhat.com>
+
+ PR target/15941
+ * function.c (assign_parms): If not padding upward or intentionally
+ forcing upward padding, take offset_rtx into account when determining
+ the alignment for stack_parm.
+
+2004-06-19 Richard Henderson <rth@redhat.com>
+
+ PR target/15550
+ * ifcvt.c (noce_try_move): Recognize all generated instructions.
+
+2004-06-19 Jan Hubicka <jh@suse.cz>
+
+ * function.c (free_after_compilation): Do not free computed_goto_common*.
+ * function.h (struct function): Kill computed_goto_common*.
+ * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
+ * tree-cfg.c (disband_implicit_edges): Do not forward across the
+ commonized computed goto.
+
+2004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
+ in binutils.
+
+2004-06-19 Andrew Pinski <apinski@apple.com>
+
+ PR c++/15721
+ * toplev.c (wrapup_global_declarations): Do not check
+ TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
+ cgraph_varpool_node's needed field.
+
+2004-06-19 Jan Hubicka <jh@suse.cz>
+ Steven Bosscher <stevenb@suse.de>
+
+ CFG transparent RTL expansion:
+ * Makefile.in (cfgexpand.o): New object file.
+ (builtins.o): Add dependency on basic-block.h
+ * builtins.c: Include basic-block.h
+ (entry_of_function): New function.
+ (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
+ * cfgexpand.c: New file.
+ * expr.c (execute_expand, pass_expand): Kill.
+ * pass.c (rest_of_compilation): Do not build CFG unless called from
+ coverage code.
+ * tree-cfg.c (delete_tree_cfg): Rename to..
+ (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
+ * tree-flow.h (delete_tree_cfg_annotations): Declare.
+ (dleete_tree_cfg): Kill.
+ * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
+ (execute_del_cfg): Rename to...
+ (execute_free_datastructures): This one...
+ (pass_del_cfg): Rename to...
+ (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
+ (init_tree_optimization_passes): Make cfg build and profiling to happen
+ unconditionally.
+
+2004-06-19 Steven Bosscher <stevenb@suse.de>
+
+ * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
+ inserting the cache variables.
+
+ * tree-mudflap.c: Include headers to make basic_block available.
+ Move functions around such that related functions are near each
+ other. Add prototypes for all static functions. Add comments
+ briefly explaining what IR the mudflap1 and mudflap2 work on and
+ what they do.
+ (mudflap_function_decls): Rename to execute_mudflap_function_decls.
+ (mudflap_function_ops): Rename to execute_mudflap_function_ops.
+ (pass_mudflap_1, pass_mudflap_2): Update.
+ (mf_decl_cache_locals): Make it work on the CFG instead of the saved
+ function tree.
+ (mf_build_check_statement_for): Make it work on the CFG.
+ (mf_xform_derefs_1): Likewise. Cleanup code style.
+ (mf_xform_derefs): Likewise.
+
+2004-06-19 Jan Hubicka <jh@suse.cz>
+
+ * tree-cfg.c (label_to_block): Invent the label destination for
+ undefined labels.
+ (cleanup_dead_labels): Update table in the case label_to_block added
+ new label.
+
+2004-06-18 Richard Henderson <rth@redhat.com>
+
+ 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.
+ * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
+
+2004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * tree-ssa.c (raise_value): Removed.
+ (get_eq_name, check_phi_redundancy): New functions.
+ (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
+
+2004-06-18 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
+ UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
+ constant folding for unordered comparison tree nodes. If both
+ operands are real constants, call fold_relational_const. If either
+ operand is a NaN, evaluate the other for side-effects and return a
+ constant. Optimize (double)float1 CMP (double)float2 into the
+ equivalent float1 CMP float2.
+ (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
+ ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
+ LTGT_EXPR>: Call fold_relational_const for constant operands.
+ (fold_relational_const): Add support for unordered comparison tree
+ nodes. Don't constant fold "ordered" floating point comparisons
+ against NaN if when flag_trapping_math is set.
+
2004-06-19 Jakub Jelinek <jakub@redhat.com>
* fold-const.c (build_range_check): If !in_p and recursive call
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>