1. 17 May, 2005 40 commits
    • Yet more Objective-C++... · 6e955430
              * 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
      Ziemowit Laski committed
    • Yet more Objective-C++... · 38b9c8c3
              * 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
      Ziemowit Laski committed
    • sparc.md (movhi): Do not test constness of operand #1 twice. · 3193108e
      	* 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
      Eric Botcazou committed
    • Yet more Objective-C++... · e58a9aa1
              * 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
      Ziemowit Laski committed
    • trans-types.c (gfc_array_range_type): New variable. · b4838d29
      	* 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
      Zdenek Dvorak committed
    • tree-ssa-loop-ivopts.c (find_bivs, [...]): Apply expand_simple_operations to bases of the ivs. · d7bf3bcf
      	* 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
      Zdenek Dvorak committed
    • Yet more Objective-C++... · 98273e5a
              * 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
      Ziemowit Laski committed
    • Yet more Objective-C++... · 26515aa9
              * 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
      Ziemowit Laski committed
    • tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the merged block. · 38965eb2
      	* 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
      Zdenek Dvorak committed
    • cfgloop.h (just_once_each_iteration_p): Declaration changed. · 6c878b23
      	* cfgloop.h (just_once_each_iteration_p): Declaration changed.
      	* cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
      	const.
      
      From-SVN: r99849
      Zdenek Dvorak committed
    • ggc-page.c (ggc_alloc_stat): Record amount of memory allocated. · 8d18c628
      	* 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
      Zdenek Dvorak committed
    • tree-into-ssa.c (update_ssa): Clean up by shortening the live range of DFS. · 9caf90a8
      	* tree-into-ssa.c (update_ssa): Clean up by shortening the
      	live range of DFS.
      
      From-SVN: r99847
      Kazu Hirata committed
    • cris.md (ncond, [...]): Remove separate define_code_attr. · 221ca267
      	* 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
      Hans-Peter Nilsson committed
    • struct-layout-1_generate.c (iterative_hash): Remove little-endian optimizations. · a3a02333
      	* gcc.dg/compat/struct-layout-1_generate.c (iterative_hash):
      	Remove little-endian optimizations.
      
      From-SVN: r99844
      Mark Mitchell committed
    • * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs. · b2232745
      From-SVN: r99843
      Roger Sayle committed
    • unit.c (get_unit): Mark argument as unused. · a0f94629
      	* io/unit.c (get_unit): Mark argument as unused.
      	(init_units): Avoid warning about signed comparision.
      
      From-SVN: r99842
      Andreas Jaeger committed
    • cgraph.h (cgraph_node): Add 'lowered' state. · e21aff8a
      
      	* 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
      Steven Bosscher committed
    • configure.ac: Add additional warning flags. · 8f2a1406
      	* 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
      Andreas Jaeger committed
    • * unwind-dw2-fde-darwin.c: Include tsystem.h. · 2ba99e3d
      From-SVN: r99838
      Nathan Sidwell committed
    • Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h. · a564d0f1
      
      	* 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
      Jeff Law committed
    • unwind-dw2-fde-glibc.c (base_from_cb_data, [...]): Use gcc_assert and… · 79d0dfa3
      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
      Nathan Sidwell committed
    • * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start) · d0f11b16
      	(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
      Daniel Jacobowitz committed
    • configure.ac: Remove spaces around assignment to gcc_cv_ld_sysroot. · 7032df40
      	* configure.ac: Remove spaces around assignment to
      	gcc_cv_ld_sysroot.
      	* configure: Regenerated.
      
      From-SVN: r99833
      Daniel Jacobowitz committed
    • generate-random.c: Do not include libiberty.h. · 1f76e417
      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
      Richard Guenther committed
    • aix.h (TARGET_ALTIVEC_VRSAVE): Delete. · df01da37
              * 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
      David Edelsohn committed
    • * config/bfin/bfin.md (eh_return): Add missing DONE. · 4193ce73
      From-SVN: r99830
      Bernd Schmidt committed
    • read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr field. · fcf48de7
      	* 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
      Ian Lance Taylor committed
    • add tree-ssa-math-opts.c for real · 6c2a63a3
      From-SVN: r99828
      Paolo Bonzini committed
    • Makefile.am (Makefile.deps): Do not create native.list and bytecodes.list. · 954cba2d
      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
      Paolo Bonzini committed
    • Makefile.in: Add tree-ssa-math-opts.c. · f8912a55
      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
      Paolo Bonzini committed
    • re PR middle-end/21595 (__builtin_constant_p(&"Hello"[0]) is true for C but not for C++) · fb664a2c
      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
      Richard Guenther committed
    • * config/i386/sse.md (mulv16qi3, mulv2di3): New. · 64e6863e
      From-SVN: r99824
      Richard Henderson committed
    • configure.ac (--enable-libgcj-multifile): Remove. · 34bab46d
      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
      Paolo Bonzini committed
    • re PR c++/21454 (const array doesn't live in the rodata section in C++) · f23b8501
      	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
      Jakub Jelinek committed
    • re PR middle-end/21492 (ICE in try_crossjump_to_edge) · 7cbd12b8
      	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
      Jakub Jelinek committed
    • re PR tree-optimization/21610 (ICE in make_decl_rtl) · c477e13b
      	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
      Jakub Jelinek committed
    • cris.md: Unquote preparation and output statements. · 22c3c091
      	* 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
      Hans-Peter Nilsson committed
    • varasm.c (struct constant_descriptor_tree): Add hash field. · b96917bf
      	* 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
      Jakub Jelinek committed
    • re PR fortran/15080 (Forall bounds not calculated correctly (forall_3.f90)) · 8de1f441
      	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
      Jakub Jelinek committed
    • sse.md (mulv4si3): New. · 2b5bf0e2
              * 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
      Richard Henderson committed