OSDN Git Service

* timevar.def (TV_SCEV_CONST): New timevar.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d52b729..4d9766b 100644 (file)
@@ -1,3 +1,241 @@
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * timevar.def (TV_SCEV_CONST): New timevar.
+       * tree-optimize.c (init_tree_optimization_passes): Add
+       pass_scev_cprop.
+       * tree-pass.h (pass_scev_cprop): Declare.
+       * tree-scalar-evolution.c (scev_const_prop): New function.
+       * tree-scalar-evolution.h (scev_const_prop): Declare.
+       * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
+       New.
+       * tree-cfg.c (replace_uses_by): Export.
+       * tree-flow.h (replace_uses_by): Declare.
+
+2005-05-17  Mike Stump  <mrs@apple.com>
+
+       Yet more Objective-C++...
+
+       * c-common.h (objc_finish_try_stmt): Add.
+       (objc_build_synchronized): Add.
+       (objc_generate_write_barrier): Add.
+       * stub-objc.c (objc_build_synchronized): Add return value.
+       (objc_finish_try_stmt): Likewise.
+       (objc_generate_write_barrier): Add.
+
+       * c-common.h (objc_rewrite_function_call): Add.
+       * c-typeck.c (build_function_call): Allow objc to rewrite
+       FUNCTION_DECLs.
+       (build_modify_expr): Allow objc to generate write barriers.
+       * c.opt (Wassign-intercept): Add.
+       (Wstrict-selector-match): Add.
+       (fobjc-call-cxx-cdtors): Add.
+       (fobjc-direct-dispatch): Add.
+       (fobjc-gc): Add.
+       * dbxout.c (get_lang_number): Add Objective-C++ support.
+       * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
+       (-Wstrict-selector-match): Likewise.
+       (-fobjc-direct-dispatch): Likewise.
+       (-Wassign-intercept): Likewise.
+       (Overall Options): Likewise.
+       * gengtype.c (get_output_file_with_visibility): Likewise.
+       * stub-objc.c (objc_rewrite_function_call): Add.
+       * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
+
+       * c-common.c (flag_objc_exceptions): Remove.
+       (flag_objc_sjlj_exceptions): Remove.
+       * c-decl.c (objc_mark_locals_volatile): Don't change decls
+       that are already ok.
+       * c-opts.c (c_common_handle_option, case
+       OPT_fobjc_exceptions): Remove.
+       (case OPT_fobjc_sjlj_exceptions): Remove
+       * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
+       (fobjc-exceptions): Likewise.
+       (fobjc-sjlj-exceptions): Likewise.
+       * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
+       (OFFS_ASSIGNIVAR_FAST): Add.
+       
+2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.md (movhi): Do not test constness
+       of operand #1 twice.
+       (movsi): Likewise.
+       (movdi): Unconditionally accept zero as second operand
+       when the first is memory.
+       (movdi_insn_sp32): Handle above case.
+       (DImode splitter): Use predicates.
+       (DImode splitter): Use const_zero_operand predicate.
+       (movsf_insn): Swap 2 alternatives.
+
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
+       expand_simple_operations to bases of the ivs.
+       (tree_int_cst_sign_bit): Export.
+       * tree-flow.h (expand_simple_operations): Declare.
+       * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
+       tree_int_cst_sign_bit.
+       (expand_simple_operations): Export.
+       * tree.h (tree_int_cst_sign_bit): Declare.
+
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
+       merged block.
+       (replace_uses_by): New function.
+       (tree_merge_blocks): Eliminate the phi nodes in the merged block.
+       * tree-flow.h (fold_stmt_inplace): Declare.
+       * tree-ssa-ccp.c (fold_stmt_inplace): New function.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
+       info after cfg cleanup.
+
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * cfgloop.h (just_once_each_iteration_p): Declaration changed.
+       * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
+       const.
+
+2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
+       * ggc-zone.c (ggc_alloc_zone_1): Ditto.
+       * timevar.c (timevar_ggc_mem_total): New variable.
+       (GGC_MEM_BOUND): New constant.
+       (get_time): Record ggc memory status.
+       (timevar_accumulate): Accumulate amount of ggc memory.
+       (timevar_print): Print consumption of ggc memory.
+       * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
+       TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
+       TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
+       * timevar.h (struct timevar_time_def): Add ggc_mem field.
+       (timevar_ggc_mem_total): Declare.
+
+2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-into-ssa.c (update_ssa): Clean up by shortening the
+       live range of DFS.
+
+2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.md (ncond, ocode, rcond): Remove separate
+       define_code_attr.
+       ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
+       ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
+       ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
+       ("s<ocond:code>"): Rename from respectively "b<ncond>",
+       "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
+       "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
+       "s<rcond>" and "s<ocond>".
+       ("b<ocond:code>", "*b<ocond:code>_reversed")
+       ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
+       output statement section.
+
+2005-05-17  Roger Sayle  <roger@eyesopen.com>
+
+       * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
+
+2005-05-17  Steven Bosscher  <stevenb@suse.de>
+           Stuart Hastings <stuart@apple.com>
+           Jan Hubicka  <jh@suse.cz>
+           Dale Johannesen  <dalej@apple.com>
+
+       * cgraph.h (cgraph_node): Add 'lowered' state.
+       (cgraph_lower_function): Declare.
+       * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
+       (cgraph_lower_function): New function.
+       (cgraph_create_edges): Deal with lowered function bodies.
+       (verify_cgraph_node): Likewise.
+       (cgraph_analyze_function): Do lowering job.
+       (cgraph_build_static_cdtor): Likewise.
+       * function.h (struct function): Add saved_eh and saved_cfg.
+       * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
+       * tree-cfg.c (fold_cond_expr_cond): Export.
+       * tree-flow.h (fold_cond_expr_cond): Declare.
+       * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
+       pointer-set.
+       (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
+       in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
+       callee_cfun, block, eh_region, eh_region_offset.
+       (inlining_p): New predicate.
+       (remap_decl): Update for new inline_data; declare newly created inline
+       vars in low gimple way.
+       (copy_body_r): Update for new datastructure, simplify some of handling
+       when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
+       deal with RESX_EXPRs.
+       (copy_bb): New.
+       (copy_edges_for_bb): Likewise.
+       (remap_decl_1): New.
+       (copy_cfg_body): New.
+       (copy_generic_body): Rewrite to work on low gimple.
+       (copy_body): Turn into simple wrapper around copy_cfg_body.
+       (setup_one_parameter): Insert new statements into given basic block.
+       (initialize_initialized_parameters): Likewise, reorganize way things are
+       gimplified.
+       (declare_return_variable): Update for new inline data datastructure.
+       (inline_forbidden_p): Work on low gimple.
+       (estimate_num_insns): Likewise.
+       (expand_call_inline): Work on CFG.
+       (push_cfun, pop_cfun): New functions.
+       (cfun_stack): New stack.
+       (add_lexical_block): New function.
+       (gimple_expand_calls_inline): Work on basic block.
+       (optimize_inline_calls): Likewise.
+       (clone_body, save_body, unsave_ewpr_now): Update for new
+       datastructures.
+       (declare_inline_vars): Work on block instead of bind_expr.
+       (inlining_p): New predicate.
+       * tree-inline.h (push_cfun, pop_cfun): Declare.
+       * tree-optimize.c: Include except.h
+       (all_lowering_passes): New variable.
+       (execute_fixup_cfg, pass_fixup_cfg): New pass.
+       (init_tree_optimization_passes): Move some to all_lowering_passes.
+       (tree_lowering_passes): New function.
+       (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
+
+2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * unwind-dw2-fde-darwin.c: Include tsystem.h.
+
+2005-05-17  Jeff Law  <law@redhat.com>
+
+       * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
+       * tree-ssa-forwprop.c: Include langhooks.h.
+       (forward_propagate_addr_expr_into_variable_array_index): New.
+       (forward_propagate_addr_expr): New.
+       (tree_ssa_forward_propagate_single_use_vars): Loop over all
+       the statements in the block instead of just the last statement.
+       Call forward_propagate_addr_expr as needed.
+       (pass_forwprop): Update the SSA graph after forward propagation is
+       complete.
+
+2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * unwind-dw2-fde-glibc.c (base_from_cb_data,
+       _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
+       appropriate.
+       * unwind-dw2-fde.c (__deregister_frame_info_bases,
+       base_from_object, fde_split, end_fde_sort): Likewise.
+       * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
+       execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
+       uw_init_context_1): Likewise.
+       * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
+       _Unwind_Resume_or_Rethrow): Likewise.
+       * unwind-pe.h (__gxx_abort): Do not define.
+       (size_of_encoded_value, base_of_encoded_value,
+       read_encoded_value_with_base): Use gcc_unreachable.
+       * unwind.h (_Unwind_GetTextRelBase): Likewise.
+
+2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
+       (cfi_end): New macros.
+       (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
+       (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
+       an eight byte stack frame.
+       (__NR_tkill): Define.
+       (__div0): Use gettid tkill on GNU/Linux.
+       (_arm_return): Add CFI.
+       (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
+
 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * configure.ac: Remove spaces around assignment to