Commit Graph

68415 Commits

Author SHA1 Message Date
David Daney
6bca4ff625 re PR libgcj/18220 (Test case libjava.lang/Process_3 does not end if "sed" not available)
2005-05-17  David Daney  <ddaney@avtrex.com>

	PR libgcj/18220
	* testsuite/libjava.lang/Process_3.java (run):  Exit on error.

From-SVN: r99877
2005-05-18 01:00:16 +00:00
GCC Administrator
b4cbb63176 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r99871.2
2005-05-18 00:16:34 +00:00
Daniel Berlin
dde60f606c Update maintainers
From-SVN: r99862
2005-05-17 23:00:18 +00:00
H.J. Lu
271bed0e99 re PR libstdc++/19664 (libstdc++ headers should have pop/push of the visibility around the declarations)
2005-05-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR C++/19664
	* decl2.c (determine_visibility): Don't set visibility to
	hidden if it has been set explicitly by user.

From-SVN: r99861
2005-05-17 14:47:13 -07:00
Zdenek Dvorak
684aaf29c0 timevar.def (TV_SCEV_CONST): New timevar.
* 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.

From-SVN: r99860
2005-05-17 20:28:30 +00:00
Mike Stump
7dc5e63544 Remove typo.
From-SVN: r99859
2005-05-17 20:13:02 +00:00
Ziemowit Laski
6e95543072 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.

From-SVN: r99858
2005-05-17 20:11:44 +00:00
Ziemowit Laski
38b9c8c3a9 Yet more Objective-C++...
* objc-act.c (objc_finish_try_stmt): Add return value.
        (objc_build_synchronized): Likewise.

        * objc-act.c (objc_is_gcable_type): Add.
        (objc_substitute_decl): Add.
        (objc_build_ivar_assignment): Add.
        (objc_build_global_assignment): Add.
        (objc_build_strong_cast_assignment): Add.
        (objc_is_ivar_reference_p): Add.
        (objc_is_global_reference_p): Add.
        (objc_generate_write_barrier): Add.
        (objc_rewrite_function_call): Add.
        (objc_gimplify_expr): Add Objective-C++ support.
        * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise.
        (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Add.
        (INIT_TYPE_OBJC_INFO): Add Objective-C++ support.
        (DUP_TYPE_OBJC_INFO): Likewise.
        (struct imp_entry): Add field has_cxx_cdtors.
        (struct imp_entry *imp_list): Add OCTI_UMSG_FAST_DECL,
        OCTI_METH_LIST_TEMPL, OCTI_METH_PROTO_LIST_TEMPL,
        OCTI_IVAR_LIST_TEMPL, OCTI_ASSIGN_IVAR_DECL,
        OCTI_ASSIGN_IVAR_FAST_DECL, OCTI_ASSIGN_GLOBAL_DECL,
        OCTI_ASSIGN_STRONGCAST_DECL.
        (umsg_fast_decl): Add.
        (objc_assign_ivar_decl): Add.
        (objc_assign_ivar_fast_decl): Add.
        (objc_assign_global_decl): Add.
        (objc_assign_strong_cast_decl): Add.
        (objc_method_list_ptr): Add.
        (objc_method_proto_list_ptr): Add.
        (objc_ivar_list_ptr): Add.

        * objc-act.c (should_call_super_dealloc): Add.
        (OBJC_VERSION): Bump to 6.
        (objc_is_gcable_type): Add.
        (objc_substitute_decl): Add.
        (objc_build_ivar_assignment): Add.
        (objc_build_global_assignment): Add.
        (objc_build_strong_cast_assignment): Add.
        (objc_is_gcable_p): Add.
        (objc_is_ivar_reference_p): Add.
        (objc_is_global_reference_p): Add.
        (generate_shared_structures): Add flags parameter.
        (objc_generate_cxx_ctor_or_dtor): Add.
        (objc_generate_cxx_cdtors): Add.
        (add_class): Add name parameter.
        (objc_types_share_size_and_alignment): Add.
        (comp_proto_with_proto): Add strict parameter.
        (CLS_HAS_CXX_STRUCTORS): Add.
        (TAG_ASSIGNIVAR): Add.
        (TAG_ASSIGNGLOBAL): Add.
        (TAG_ASSIGNSTRONGCAST): Add.
        (TAG_MSGSEND_FAST): Add.
        (TAG_ASSIGNIVAR_FAST): Add.
        (TAG_CXX_CONSTRUCT): Add.
        (TAG_CXX_DESTRUCT): Add.
        (OBJC_LOOKUP_CLASS): Add.
        (OBJC_LOOKUP_NO_SUPER): Add.
        (objc_finish_file): Add pch support.
        (objc_finish_implementation): Add Objective-C++ support.
        (synth_module_prologue): Likewise.
        (synth_module_prologue): Add fast dispatching.
        (objc_get_class_reference): Add Objective-C++ support.
        (objc_generate_write_barrier): Likewise.
        (next_sjlj_build_enter_and_setjmp): Likewise.
        (objc_begin_try_stmt): Likewise.
        (build_next_objc_exception_stuff): Add fast ivar support.
        (build_private_template): Mark the record as used so debug
        information is generated.
        (build_protocol_template): Add Objective-C++ support.
        (objc_method_parm_type) Likewise.
        (objc_generate_cxx_ctor_or_dtor): Likewise.
        (objc_generate_cxx_cdtors): Likewise.
        (build_protocol_initializer): Likewise.
        (build_category_template): Likewise.
        (build_class_template): Likewise.
        (build_method_list_template): Likewise.
        (build_category_initializer): Likewise.
        (build_shared_structure_initializer): Likewise.
        (objc_finish_message_expr): Likewise.
        (build_objc_method_call): Add fast dispatch support.
        (lookup_method_static): Add support to end search at superclasses.
        (add_method_to_hash_list): Add strict parameter to
        comp_proto_with_proto.
        (objc_add_method): Likewise.
        (objc_add_method): Also set the interface_value.
        (add_instance_variable): Add Objective-C++ support.
        (objc_is_public): Likewise.
        (start_class): Likewise.
        (continue_class): Likewise.
        (encode_aggregate_within): Likewise.
        (start_method_def): Likewise.
        (objc_start_function): Clear current_function_returns_value
        and current_function_returns_null.
        (really_start_method): Add Objective-C++ support.
        (objc_finish_method_definition): Add warning for missing
        [super dealloc].
        (finish_objc): Add Objective-C++ support.
        (generate_objc_image_info): Likewise.
        (objc_lookup_ivar): Likewise.
        * objc-act.h (TYPE_HAS_OBJC_INFO): Likewise.
        (INIT_TYPE_OBJC_INFO): Likewise.
        (DUP_TYPE_OBJC_INFO): Likewise.

From-SVN: r99857
2005-05-17 20:07:08 +00:00
Eric Botcazou
3193108e90 sparc.md (movhi): Do not test constness of operand #1 twice.
* 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.

From-SVN: r99856
2005-05-17 20:06:11 +00:00
Ziemowit Laski
e58a9aa1f6 Yet more Objective-C++...
* cp-objcp-common.h (cxx_get_alias_set): Move from
        here...
        (cxx_warn_unused_global_decl): Likewise.
        (cp_expr_size): Likewise.
        (cp_tree_size): Likewise.
        (cp_var_mod_type_p): Likewise.
        (cxx_initialize_diagnostics): Likewise.
        (cxx_types_compatible_p): Likewise.
        * cp-tree.h: to here.
        (do_poplevel): Add.
        * lex.c (D_OBJC): Add.
        (init_reswords): Add.
        * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
        * parser.c: Add c-common.h include.
        * pt.c: Add c-common.h and cp-objcp-common.h includes.
        (template_args_equal): Use objc_comptypes as well.
        (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
        * semantics.c (do_poplevel): Remove static.

        * decl.c (objc_mark_locals_volatile): Don't change decls that are
        already ok.
        * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
        Objective C++ early enough.
        * lex.c (struct resword reswords): Add Objective-C++ support.
        * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
        (cp_parser_objc_message_receiver): Add.
        (cp_parser_objc_message_args): Likewise.
        (cp_parser_objc_message_expression): Likewise.
        (cp_parser_objc_encode_expression): Likewise.
        (cp_parser_objc_defs_expression): Likewise.
        (cp_parser_objc_protocol_expression): Likewise.
        (cp_parser_objc_selector_expression): Likewise.
        (cp_parser_objc_expression): Likewise.
        (cp_parser_objc_visibility_spec): Likewise.
        (cp_parser_objc_method_type): Likewise.
        (cp_parser_objc_protocol_qualifiers): Likewise.
        (cp_parser_objc_typename): Likewise.
        (cp_parser_objc_selector_p): Likewise.
        (cp_parser_objc_selector): Likewise.
        (cp_parser_objc_method_keyword_params): Likewise.
        (cp_parser_objc_method_tail_params_opt): Likewise.
        (cp_parser_objc_interstitial_code): Likewise.
        (cp_parser_objc_method_signature): Likewise.
        (cp_parser_objc_method_prototype_list): Likewise.
        (cp_parser_objc_method_definition_list): Likewise.
        (cp_parser_objc_class_ivars): Likewise.
        (cp_parser_objc_identifier_list): Likewise.
        (cp_parser_objc_alias_declaration): Likewise.
        (cp_parser_objc_class_declaration): Likewise.
        (cp_parser_objc_protocol_declaration): Likewise.
        (cp_parser_objc_protocol_refs_opt): Likewise.
        (cp_parser_objc_superclass_or_category): Likewise.
        (cp_parser_objc_class_interface): Likewise.
        (cp_parser_objc_class_implementation): Likewise.
        (cp_parser_objc_end_implementation): Likewise.
        (cp_parser_objc_declaration): Likewise.
        (cp_parser_objc_try_catch_finally_statement): Likewise.
        (cp_parser_objc_synchronized_statement): Likewise.
        (cp_parser_objc_throw_statement): Likewise.
        (cp_parser_objc_statement): Likewise.
        (cp_parser_primary_expression): Add Objective-C++.
        (cp_parser_statement): Likewise.
        (cp_parser_declaration): Likewise.
        (cp_parser_simple_type_specifier): Likewise.
        (cp_parser_type_name): Likewise.
        (cp_parser_parameter_declaration_list): Likewise.
        (cp_parser_member_declaration) Likewise.
        * tree.c: Include debug.h.
        * typeck.c (composite_pointer_type): Add Objective-C++ support.
        (finish_class_member_access_expr): Likewise.
        (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
        (build_modify_expr): Allow objc to generate write barriers.

        * Make-lang.in (cp/tree.o): Add debug.h.
        * tree.c (lvalue_p_1, case CONST_DECL): Add.

From-SVN: r99855
2005-05-17 20:05:24 +00:00
Zdenek Dvorak
b4838d2947 trans-types.c (gfc_array_range_type): New variable.
* trans-types.c (gfc_array_range_type): New variable.
	(gfc_init_types): Initialize gfc_array_range_type.
	(gfc_get_array_type_bounds): Use gfc_array_range_type.

From-SVN: r99854
2005-05-17 20:05:07 +00:00
Zdenek Dvorak
d7bf3bcf99 tree-ssa-loop-ivopts.c (find_bivs, [...]): Apply expand_simple_operations to bases of the ivs.
* 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.

From-SVN: r99853
2005-05-17 20:02:56 +00:00
Ziemowit Laski
98273e5afb Yet more Objective-C++...
* Make-lang.in (objcp/objcp-lang.o): Add tree-gimple.h
        (objcp/objcp-decl.o): Likewise.
        (objcp/objcp-act.o): Likewise.
        * objcp-lang.c (LANG_HOOKS_GIMPLIFY_EXPR): Add.

From-SVN: r99852
2005-05-17 20:00:33 +00:00
Ziemowit Laski
26515aa9df Yet more Objective-C++...
* objc.dg/method-5.m: Update.
        * objc.dg/method-6.m: Update.
        * objc.dg/method-7.m: Update.
        * objc.dg/method-9.m: Update.
        * objc.dg/try-catch-2.m: Update.

From-SVN: r99851
2005-05-17 19:59:15 +00:00
Zdenek Dvorak
38965eb29c tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the merged block.
* 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.

From-SVN: r99850
2005-05-17 19:55:53 +00:00
Zdenek Dvorak
6c878b231d cfgloop.h (just_once_each_iteration_p): Declaration changed.
* cfgloop.h (just_once_each_iteration_p): Declaration changed.
	* cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
	const.

From-SVN: r99849
2005-05-17 19:48:50 +00:00
Zdenek Dvorak
8d18c628dd ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
* 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.

From-SVN: r99848
2005-05-17 19:41:38 +00:00
Kazu Hirata
9caf90a8ea tree-into-ssa.c (update_ssa): Clean up by shortening the live range of DFS.
* tree-into-ssa.c (update_ssa): Clean up by shortening the
	live range of DFS.

From-SVN: r99847
2005-05-17 19:10:19 +00:00
Hans-Peter Nilsson
221ca26767 cris.md (ncond, [...]): Remove separate define_code_attr.
* 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.

From-SVN: r99846
2005-05-17 18:53:11 +00:00
Mark Mitchell
a3a02333fa struct-layout-1_generate.c (iterative_hash): Remove little-endian optimizations.
* gcc.dg/compat/struct-layout-1_generate.c (iterative_hash):
	Remove little-endian optimizations.

From-SVN: r99844
2005-05-17 18:25:58 +00:00
Roger Sayle
b22327455d * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
From-SVN: r99843
2005-05-17 18:01:17 +00:00
Andreas Jaeger
a0f94629e9 unit.c (get_unit): Mark argument as unused.
* io/unit.c (get_unit): Mark argument as unused.
	(init_units): Avoid warning about signed comparision.

From-SVN: r99842
2005-05-17 19:02:38 +02:00
Steven Bosscher
e21aff8abe cgraph.h (cgraph_node): Add 'lowered' state.
* 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.

Co-Authored-By: Dale Johannesen <dalej@apple.com>
Co-Authored-By: Jan Hubicka <jh@suse.cz>
Co-Authored-By: Stuart Hastings <stuart@apple.com>

From-SVN: r99840
2005-05-17 16:56:32 +00:00
Andreas Jaeger
8f2a14065c configure.ac: Add additional warning flags.
* configure.ac: Add additional warning flags.
	* configure: Regenerate.

	* io/write.c (calculate_G_format): Remove unused parameter.
	(output_float): Remove unused parameter.
	(write_float): Change callers.
	(nml_write_obj): Avoid signed warning.
	Make variable const to support -Wwrite-strings.

	* io/unix.c (fd_alloc, mmap_open, mmap_sfree, mem_sfree,
	mem_truncate): Mark argument as unused.

	* io/unit.c (get_unit): Mark argument as unused.
	(init_units): Avoid warning about signed comparision.

	* io/transfer.c (next_record_r): Remove unused parameter.
	(next_record_w): Remove unused parameter.
	(next_record): Change callers.
	(iolength_transfer): Mark arguments as unused.

	* io/open.c: Add initializer.

	* io/list_read.c (read_character): Mark argument as unused.
	(nml_match_name): Add const to make compile with -Wwrite-strings.

	* io/format.c: Add initializer.

From-SVN: r99839
2005-05-17 18:54:58 +02:00
Nathan Sidwell
2ba99e3da1 * unwind-dw2-fde-darwin.c: Include tsystem.h.
From-SVN: r99838
2005-05-17 16:47:49 +00:00
Jeff Law
a564d0f1e9 Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
* 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.

	* g++.dg/tree-ssa/pr18414.C: New test.
	* gcc.dg/tree-ssa/pr18414.C: New test.
	* gcc.dg/tree-ssa/pr17141-1.C: New test.
	* gcc.dg/tree-ssa/pr17141-2.C: New test.

From-SVN: r99837
2005-05-17 10:28:07 -06:00
Nathan Sidwell
79d0dfa314 unwind-dw2-fde-glibc.c (base_from_cb_data, [...]): Use gcc_assert and gcc_unreachable as appropriate.
* 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.

From-SVN: r99835
2005-05-17 15:37:47 +00:00
Daniel Jacobowitz
d0f11b1653 * 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.

From-SVN: r99834
2005-05-17 15:12:27 +00:00
Daniel Jacobowitz
7032df40d1 configure.ac: Remove spaces around assignment to gcc_cv_ld_sysroot.
* configure.ac: Remove spaces around assignment to
	gcc_cv_ld_sysroot.
	* configure: Regenerated.

From-SVN: r99833
2005-05-17 15:00:26 +00:00
Richard Guenther
1f76e41766 generate-random.c: Do not include libiberty.h.
2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>

 	* gcc.dg/compat/generate-random.c: Do not include
 	libiberty.h.
 	* gcc.dg/compat/generate-random_r.c: Likewise.

From-SVN: r99832
2005-05-17 14:28:49 +00:00
David Edelsohn
df01da3748 aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
* config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
        * config/rs6000/rs6000.c (rs6000_explicit_options): Add
        aix_struct_ret.
        (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
        Modify aix_struct_return variable, not target_flags.
        (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
        (rs6000_return_in_memory): Test aix_struct_return.
        * config/rs6000/rs6000.opt (maix-struct-return): Convert to
        independent variable.  Report mxl-compat.

From-SVN: r99831
2005-05-17 10:25:07 -04:00
Bernd Schmidt
4193ce7321 * config/bfin/bfin.md (eh_return): Add missing DONE.
From-SVN: r99830
2005-05-17 13:10:26 +00:00
Ian Lance Taylor
fcf48de7bd read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr field.
* read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
	field.
	(mode_attr_index): Remove check for defined attribute.  Remove
	infile parameter.  Change all callers.
	(apply_mode_maps): Add unknown parameter.  Change caller.  Always
	return after finding attribute.
	(apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
	callers.
	(apply_macro_traverse): Set mtd->unknown_mode_attr.
	(read_rtx): Use mtd.unknown_mode_attr to check for an undefined
	attribute used for a mode.

From-SVN: r99829
2005-05-17 12:50:32 +00:00
Paolo Bonzini
6c2a63a3ed add tree-ssa-math-opts.c for real
From-SVN: r99828
2005-05-17 12:10:19 +00:00
Paolo Bonzini
954cba2d6b Makefile.am (Makefile.deps): Do not create native.list and bytecodes.list.
2005-05-17  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.am (Makefile.deps): Do not create native.list and
	bytecodes.list.
	(all_native_compiled_dirs, all_java_dirs): Compute dir list here.

From-SVN: r99827
2005-05-17 10:26:27 +00:00
Paolo Bonzini
f8912a553a Makefile.in: Add tree-ssa-math-opts.c.
gcc:
2005-05-17  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.in: Add tree-ssa-math-opts.c.
	* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
	* fold-const.c (distribute_real_division): New.
	(fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
	* tree-pass.h (pass_cse_reciprocals): New.
	* tree-optimize.c (init_tree_optimization_passes): Run it.
	* tree-ssa-math-opts.c: New file.
	* doc/passes.texi: Document the new pass.

gcc/testsuite:
2005-05-17  Paolo Bonzini  <bonzini@gnu.org>

	* gcc.dg/fold-div-1.c, gcc.dg/recip-1.c, gcc.dg/recip-2.c: New.

From-SVN: r99826
2005-05-17 09:55:44 +00:00
Richard Guenther
fb664a2cba re PR middle-end/21595 (__builtin_constant_p(&"Hello"[0]) is true for C but not for C++)
2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>

	PR middle-end/21595
	* builtins.c (fold_builtin_constant_p): Handle
	&"string cst"[0] as constant.

	* g++.dg/tree-ssa/builtin1.C: New testcase.

From-SVN: r99825
2005-05-17 09:00:03 +00:00
Richard Henderson
64e6863ed5 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
From-SVN: r99824
2005-05-17 01:15:41 -07:00
Paolo Bonzini
34bab46d1a configure.ac (--enable-libgcj-multifile): Remove.
2005-05-11  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (--enable-libgcj-multifile): Remove.

	* Makefile.am (all_native_compiled_source_files,
	(all_native_compiled_dirs, all_java_dirs, all_java_lo_files,
	all_libgcj_lo_files, all_xlib_lo_files,
	all_java_deps_files, all_java_stamp_files,
	all_java_filelist_files): New variables.
	(EXTRA_DIST): New Automake variable.
	(CLEANFILES): Add .stamp, .list and .lo files.
	(%.list, %.lo, %.stamp, Makefile.deps): New rules.
	(classes.stamp): Depend on $(all_java_stamp_files).
	(libgcj.la): Pass $(libgcj_la_LIBADD) to the linker without
	going through write_entries_to_file.

	(all_java_source_files, all_property_files): Move earlier.
	(libgcj_la_OBJECTS, javao_files, xlib_javao_files,
	all_java_class_files): Remove.
	(gtk_awt_peer_sources): Rename to...
	(gtk_awt_peer_source_files): ... this.  Adjust throughout.

	(ONESTEP): Remove.
	(libgcj0_convenience_la_SOURCES): Remove Java source files.
	(libgcj0_convenience_la_LIBADD): Add $(all_libgcj_lo_files).
	(libgcj0_convenience_la_DEPENDENCIES): Likewise.
	(libgcj_la_SOURCES): Remove.
	(lib_gnu_awt_xlib_la_SOURCES): Remove Java source files.
	(lib_gnu_awt_xlib_la_LIBADD): Add $(all_xlib_lo_files).
	(lib_gnu_awt_xlib_la_DEPENDENCIES): Likewise.

	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libltdl/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r99823
2005-05-17 07:33:39 +00:00
Jakub Jelinek
f23b850118 re PR c++/21454 (const array doesn't live in the rodata section in C++)
PR c++/21454
	* decl.c (maybe_deduce_size_from_array_init): Call
	cp_apply_type_quals_to_decl after completing array type.

	* g++.dg/opt/const4.C: New test.

From-SVN: r99817
2005-05-17 08:51:48 +02:00
Jakub Jelinek
7cbd12b88f re PR middle-end/21492 (ICE in try_crossjump_to_edge)
PR middle-end/21492
	* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
	src2 if src2 has been split.

	* g++.dg/opt/crossjump1.C: New test.

From-SVN: r99816
2005-05-17 08:48:19 +02:00
Jakub Jelinek
c477e13bd7 re PR tree-optimization/21610 (ICE in make_decl_rtl)
PR tree-optimization/21610
	* c-typeck.c (decl_constant_value_for_broken_optimization): If not
	returning DECL, call unshare_expr.

	* gcc.c-torture/compile/20050516-1.c: New test.

From-SVN: r99815
2005-05-17 08:45:49 +02:00
Hans-Peter Nilsson
22c3c0917f cris.md: Unquote preparation and output statements.
* config/cris/cris.md: Unquote preparation and output statements.
 	(BWD, WD, BW): New, mode-macros.
	(S, s, m, mm, nbitsm1): New, mode-attrs.
	(szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
	(u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
	code-attrs.
	("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
	("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
	("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
	"*cmp_swapexthi".
	("cmp<mode>"): Replace "cmphi" and "cmpqi".
	("movdi"): Move misplaced head comment regarding necessity of
	movdi from movsi to here.
	("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
	"*mov_sidehi_biap".
	("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
	("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
	"*mov_sideqi_biap_mem".
	("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
	"*mov_sidehi_mem".
	("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
	"*clear_sidehi_biap" and "*clear_sideqi_biap".
	("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
	and "*clear_sideqi".
	("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
	"*ext_sidehisi_biap".
	("*ext_side<mode>si"): Replace "*ext_sideqisi" and
	"*ext_sidehisi".
	("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
	("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
	("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
	("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
	("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
	"zero_extendqisi2".
	("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
	"*op_sidehi_biap" and "*op_sidesi_biap".
	("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
	"*op_sidesi".
	("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
	"*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
	("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
	"*op_swap_sidehi" and "*op_swap_sidesi".
	("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
	in the N alternative of "subqi3".
	("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
	"*extophisi_side_biap".
	("*extop<mode>si_side"): Replace "*extopqisi_side" and
	"*extophisi_side".
	("*extop<mode>si_swap_side_biap"): Replace
	"*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
	("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
	"*extophisi_swap_side".
	("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
	("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
	"*extophisi_swap".
	("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
	"mulqihi3", "mulhisi3" and "mulhisi3".
	("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
	("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
	"umulsi3_highpart".
	("xor<mode>3"): Replace "xorhi3" and "xorqi3".
	("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
	("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
	("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
	("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
	("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
	"*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
	("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
	"*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
	("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
	("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
	("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
	"*ashlhi_lowpart".
	("abs<mode>2"): Replace "abshi2" and "absqi2".
	("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
	"bleu".
	("b<ocond>"): Replace "bgt" and "ble".
	("b<rcond>"): Replace "blt" and "bge".
	("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
	"*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
	"*bleu_reversed".
	("*b<ocond>_reversed"): Replace "*bgt_reversed" and
	"*ble_reversed".
	("*b<rcond>_reversed"): Replace "*blt_reversed" and
	"*blt_reversed".
	("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
	"sne".
	("s<rcond>"): Replace "sge" and "slt".
	("s<ocond>"): Replace "sgt" and "sle".
	("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
	[rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
	("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
	clear.w [rx=rx+i] and clear.b [rx=rx+i].

From-SVN: r99814
2005-05-17 06:37:06 +00:00
Jakub Jelinek
b96917bffe varasm.c (struct constant_descriptor_tree): Add hash field.
* varasm.c (struct constant_descriptor_tree): Add hash field.
	(const_desc_hash): Just return hash field.
	(const_desc_eq): If hash values are different, return 0 immediately.
	(output_constant_def): Compute hash field of temporary key, use
	htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
	newly built constant descriptor.
	(lookup_constant_def): Compute hash field of temporary key, use
	htab_find_with_hash instead of htab_find.

From-SVN: r99813
2005-05-17 08:34:48 +02:00
Jakub Jelinek
8de1f441bb re PR fortran/15080 (Forall bounds not calculated correctly (forall_3.f90))
PR fortran/15080
	* trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
	arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
	of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
	just that as index.
	(generate_loop_for_rhs_to_temp): Likewise.
	(compute_overall_iter_number): Add INNER_SIZE_BODY argument.
	It non-NULL, add it to body.
	(allocate_temp_for_forall_nest_1): New function, split from
	allocate_temp_for_forall_nest.
	(allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
	propagate it down to compute_overall_iter_number.  Use
	allocate_temp_for_forall_nest_1.
	(gfc_trans_assign_need_temp): Remove COUNT2.  Call
	compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
	allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
	and generate_loop_for_temp_to_lhs.
	(gfc_trans_pointer_assign_need_temp): Adjust calls to
	allocate_temp_for_forall_nest.
	(gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
	stmtblock_t.  Call compute_overall_iter_number just once, then
	allocate_temp_for_forall_nest_1 twice with the same size.
	Initialize mask indexes if nested_forall_info != NULL.
	(gfc_trans_where_2): Initialize mask indexes before calling
	gfc_trans_nested_forall_loop.

	* gfortran.fortran-torture/execute/forall_3.f90: Remove comment
	about the test failing.
	* gfortran.fortran-torture/execute/where_7.f90: New test.
	* gfortran.fortran-torture/execute/where_8.f90: New test.

From-SVN: r99812
2005-05-17 08:31:51 +02:00
Richard Henderson
2b5bf0e27e sse.md (mulv4si3): New.
* config/i386/sse.md (mulv4si3): New.

        * lib/target-supports.exp (check_effective_target_vect_int_mul): Add
        i?86 and x86_64.

From-SVN: r99811
2005-05-16 21:33:42 -07:00
Tom Tromey
9d9bd40fb6 Charset.java (encode, decode): Synchronize on 'this', not the class.
* java/nio/charset/Charset.java (encode, decode): Synchronize on
	'this', not the class.

From-SVN: r99810
2005-05-17 01:52:02 +00:00
GCC Administrator
e5b58ee301 Daily bump.
[[Split portion of a mixed commit.]]

From-SVN: r99806.2
2005-05-17 00:16:38 +00:00
Hans-Peter Nilsson
39fbb17b22 cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and tests for noncanonical versions of reg+constant and...
* config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
	tests for noncanonical versions of reg+constant and
	reg+reg*{1,2,4}.

From-SVN: r99803
2005-05-17 00:07:54 +00:00
Richard Henderson
af47810aed re PR tree-optimization/21399 (libstdc++ 12077.cc ICE)
PR tree-opt/21399
        * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
        maybe_clean_eh_stmt; take old stmt parameter.  Update EH
        region data structure to match replacement.
        * tree-flow.h: Update to match.
        * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
        * tree-ssa-dom.c (optimize_stmt): Likewise.
        * tree-ssa-pre.c (eliminate): Likewise.
        * tree-ssa-propagate.c (substitute_and_fold): Likewise.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r99801
2005-05-16 16:14:02 -07:00