Commit Graph

65173 Commits

Author SHA1 Message Date
James E Wilson
b5425e756b re PR rtl-optimization/27761 (combine miscompiles)
PR rtl-optimization/27761
	* combine.c (try_combine): Don't create a useless garbage SET
	if PATTERN (i2) is a PARALLEL.  If added_sets_1, save
	PATTERN (i1) resp. SET from i1src to i1dest in i1pat
	and use it to prevent accidental modification of i1src.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r119785
2006-12-12 16:03:39 +01:00
Ira Rosen
a3895f55f7 tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check for stores with gaps.
* tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check
	for stores with gaps.
	* tree-vect-transform.c (vect_permute_store_chain): Create
	interleave_high or interleave_low according to the endianess.

From-SVN: r119779
2006-12-12 13:07:39 +00:00
Richard Guenther
8e3dc7a344 re PR middle-end/30147 (ICE in fold_convert with -O2)
2006-12-12  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30147
	* fold-const.c (fold_read_from_constant_string): Only fold read
	from constant string if the result type is integer.

	* gfortran.fortran-torture/compile/pr30147.f90: New testcase.

From-SVN: r119776
2006-12-12 12:13:48 +00:00
Olivier Hainque
527a08917e t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.
* config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA.

From-SVN: r119773
2006-12-12 11:09:53 +00:00
Olivier Hainque
c0da9742e5 vxlib.c: Extract tls related routines into ...
* config/vxlib.c: Extract tls related routines into ...
	* config/vxlib-tls.c: New file. 
	* config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA.

From-SVN: r119771
2006-12-12 11:05:54 +00:00
Manuel López-Ibáñez
253e0d15a5 decl.c (build_enumerator): Update error message to match C front-end.
2006-12-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* decl.c (build_enumerator): Update error message to match C
	front-end.

From-SVN: r119770
2006-12-12 10:40:39 +00:00
Sa Liu
32fb22af5d spu.opt (mfixed-range): New option.
* config/spu/spu.opt (mfixed-range): New option.
	* config/spu/spu.h (spu_fixed_range_string): Declare.
	* config/spu/spu.c (spu_override_options): Handle -mfixed-range.
	(fix_range): New function.
	* doc/invoke.texi (SPU Options): Document -mfixed-range.
	* testsuite/gcc.target/spu/fixed-range.c: New.
	* testsuite/gcc.target/spu/fixed-range-bad.c: Ditto.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>

From-SVN: r119768
2006-12-12 15:55:50 +11:00
H.J. Lu
c47c29c896 re PR middle-end/17982 (stop calling assemble_external before final assembly output time)
2006-12-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/17982
	PR middle-end/20218
	* cgraphunit.c (cgraph_optimize): Remove call to
	process_pending_assemble_externals.

	* config/elfos.h (ASM_OUTPUT_EXTERNAL): New.

	* config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed.

	* config/ia64/ia64.c (ia64_asm_output_external): Rewritten.
	(ia64_hpux_add_extern_decl): Removed.
	(ia64_hpux_file_end): Likewise.
	(extern_func_list): Likewise.
	(extern_func_head): Likewise.

	* output.h (assemble_external): Update comments.
	(default_elf_asm_output_external): New.
	(maybe_assemble_visibility): New.

	* toplev.c (compile_file): Update comment.

	* varasm.c (assemble_external): Always put it on
	pending_assemble_externals.
	(maybe_assemble_visibility): Make it extern and return int.
	(default_elf_asm_output_external): New.

From-SVN: r119764
2006-12-11 19:58:52 -08:00
Daniel Berlin
864abd46ca tree-ssa-structalias.c (handle_ptr_arith): Return false when we can't handle the pointer arithmetic.
2006-12-11  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (handle_ptr_arith): Return false when we
	can't handle the pointer arithmetic.

From-SVN: r119763
2006-12-12 03:44:25 +00:00
Diego Novillo
38635499e9 [multiple changes]
2006-12-11  Diego Novillo  <dnovillo@redhat.com>

	* doc/tree-ssa.texi: Update documentation for virtual operands
	and the use of push_stmt_changes/pop_stmt_changes.
	* doc/invoke.texi: Remove documentation for params
	global-var-threshold.
	Update documentation on max-aliased-vops.

	* tree-into-ssa.c: Cleanup comments, variables and
	spacing in various functions.
	(regs_to_rename): Declare.
	(mem_syms_to_rename): Declare.
	(dump_update_ssa): Declare.
	(debug_update_ssa): Declare.
	(dump_names_replaced_by): Declare.
	(debug_names_replaced_by): Declare.
	(dump_def_blocks): Declare.
	(debug_def_blocks): Declare.
	(dump_defs_stack): Declare.
	(debug_defs_stack): Declare.
	(dump_currdefs): Declare.
	(debug_currdefs): Declare.
	(mark_def_sites): Do not handle virtual operands.
	(compute_idf): Rename from find_idf.  Update users.
	(register_new_def): Make local.  Convert second argument
	to 'tree'.
	Use BLOCK_DEFS_STACK directly.
	If pushing a non-register, also push the underlying
	symbol.
	(rewrite_stmt): Do not handle virtual operands.
	(dump_tree_ssa): Call dump_def_blocks, dump_defs_stack,
	dump_currdefs and dump_tree_ssa_stats.
	(dump_tree_ssa_stats): Also dump REPL_TBL.
	(replace_use): Remove.  Update all users to call SET_USE
	instead.
	(rewrite_blocks): Move code to free memory to
	fini_ssa_renamer.
	(mark_def_site_blocks): Move initialization code to
	init_ssa_renamer.
	(init_ssa_renamer): New.
	(fini_ssa_renamer): New.
	(rewrite_into_ssa): Call them.
	(prepare_block_for_update): Process SSA_OP_ALL_USES first
	and SSA_OP_ALL_DEFS later.  Do not process virtual
	operands separately.
	(dump_update_ssa): Call dump_decl_set.
	(init_update_ssa): Initialize regs_to_rename and
	mem_syms_to_rename.
	Call init_ssa_renamer.
	(delete_update_ssa): Call fini_ssa_renamer.
	Free blocks_with_phis_to_rewrite.
	(mark_sym_for_renaming): If the variable has
	sub-variables, also mark them.
	If the variable belongs to a partition, also mark it.
	(mark_set_for_renaming): Call mark_sym_for_renaming on
	every symbol in the set.
	(switch_virtuals_to_full_rewrite): Call
	mark_set_for_renaming.
	(update_ssa): Separate syms_to_rename into regs_to_rename
	and mem_syms_to_rename.

	* tree-dump.c (dump_options): Add TDF_MEMSYMS.
	* tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS.
	(debug_generic_stmt): Likewise.
	(debug_tree_chain): Likewise.
	(dump_symbols): New.
	(dump_generic_node): Check for TDF_MEMSYMS.
	Handle MEMORY_PARTITION_TAG.
	If the statement references memory and TDF_MEMSYMS is
	given, call dump_symbols.
	Indicate default names with (D).
	(dump_vops): Update for new virtual operator format.

	* tree.c (init_ttree): Add MEMORY_PARTITION_TAG to
	tree_contains_struct.
	(tree_code_size): Handle MEMORY_PARTITION_TAG.
	(tree_node_structure): Likewise.
	(needs_to_live_in_memory): Handle SSA names.
	* tree.h (MTAG_P): Likewise.
	(struct tree_memory_partition_tag): Declare.
	(MPT_SYMBOLS): Define.
	(union tree_node): Add field 'mpt'.
	* treestruct.def (TS_MEMORY_PARTITION_TAG): Define.
	* tree.def (MEMORY_PARTITION_TAG): Define.

	* tree-pass.h (TDF_MEMSYMS): Define.

	* params.h (GLOBAL_VAR_THRESHOLD): Remove.

	* tree-ssa-alias.c: Include pointer-set.h
	(struct alias_map_d): Remove fields total_alias_vops,
	grouped_p and may_aliases.  Update all users.
	(struct mp_info_def): Declare.
	(mp_info_t): New type.
	(get_smt_for): Rename from get_tmt_for.  Update all
	users.
	(add_may_alias): Add argument ALREADY_ADDED.  If given,
	use it to avoid adding duplicate entries to alias sets.
	(replace_may_alias): Remove.  Update all users.
	(total_alias_vops_cmp): Remove.  Update all users.
	(group_aliases_into): Remove.  Update all users.
	(tree_pointer_compare): Remove.  Update all users.
	(compact_name_tags): Remove.  Update all users.
	(group_aliases): Remove.  Update all users.
	(mark_non_addressable): Move from tree-flow-inline.h.
	Remove the symbol from the partition holding it, if
	needed.
	(dump_mp_info): New.
	(debug_mp_info): New.
	(sort_mp_info): New.
	(create_partition_for): New.
	(rewrite_alias_set_for): New.
	(compute_memory_partitions): New.
	(compute_may_aliases): Call it.
	(init_alias_info): If computing aliases for the first
	time, mark every memory symbol for renaming.
	(have_common_aliases_p): New.
	(compute_flow_insensitive_aliasing): Call it.
	(setup_pointers_and_addressables): Do not cache
	num_referenced_vars.
	For register promoted symbols, mark their former
	partition for renaming.
	(maybe_create_global_var): Only create .GLOBAL_VAR if
	there are no call-clobbered variables and a mix of pure
	and non-pure functions were found.
	(may_alias_p): Tidy comments.
	(create_tag_raw): Remove unused variable new_type.
	(dump_alias_info): call dump_memory_partitions.
	(dump_points_to_info_for): Call dump_decl_set.
	(may_be_aliased): Tidy comments and formatting.

	* timevar.def (TV_MEMORY_PARTITIONING): Define.
	* tree-vectorizer.c (vect_memsyms_to_rename): Rename from
	vect_vnames_to_rename.  Set DECL_UIDs instead of SSA name
	versions in it.
	(slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs.
	* tree-vect-transform.c (vect_transform_loop): Call
	mark_set_for_renaming with vect_memsyms_to_rename.
	* tree-flow-inline.h (zero_imm_uses_p): New.
	(memory_partition): New.
	(set_memory_partition): New.
	(factoring_name_p): New.
	(symbol_mem_tag): New.  Update every function that used
	to access the annotation directly.
	(set_symbol_mem_tag): Likewise.

	* tree-ssa-copy.c (may_propagate_copy): Allow copies
	between a partition and a symbol as long as the symbol
	belongs to the partition.
	(merge_alias_info): Ignore merge requests when memory
	partitions are involved.

	* tree-ssa.c (verify_ssa_name): Check that default
	definitions have empty defining statements.
	(verify_use): Remove argument IS_VIRTUAL.
	Don't call verify_ssa_name.
	(verify_phi_args): Call verify_ssa_name.
	(verify_flow_insensitive_alias_info): Handle MPTs.
	(verify_flow_sensitive_alias_info): Likewise.
	(verify_name_tags): Likewise.
	(verify_call_clobbering): Likewise.
	(verify_ssa): Check for VOPs only after aliasing
	information is available.
	Check virtuals and real operands separately.
	Call verify_ssa_name on every operand.
	(stmt_references_memory_p): Move to tree-ssa-operands.c.
	(walk_use_def_chains_1): Guard against NULL PHI
	arguments.

	* tree-ssa-operands.c (stmt_references_memory_p): Move from
	tree-ssa.c.
	(get_mpt_for): New.
	(dump_memory_partitions): New.
	(debug_memory_partitions): New.

	* tree-flow.h (struct var_ann_d): Add field mpt.
	(struct stmt_ann_d): Add bitfield references_memory.
	* Makefile.in (tree-ssa-structalias.o): Include
	pointer-set.h
	(tree-ssa-alias.o): Likewise.
	* tree-ssa-structalias.c: (update_alias_info): Use
	STORED_SYMS to determine which variables are being
	written to by the store operation.
	* tree-ssa-structalias.h (struct alias_info)
	<total_alias_vops>: Remove.  Update all users.
	<written_vars>: Change to a pointer set.  Update all
	users.
	<dereferenced_ptrs_store>: Likewise.
	<dereferenced_ptrs_load>: Likewise.
	(NUM_REFERENCES): Remove.  Update all users.
	(NUM_REFERENCES_CLEAR): Remove.  Update all users.
	(NUM_REFERENCES_INC): Remove.  Update all users.
	(NUM_REFERENCES_SET): Remove.  Update all users.

	* params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove.
	Update all users.
	(PARAM_MAX_ALIASED_VOPS): Set to 10.
	* tree-ssanames.c (make_ssa_name): Initialize
	SSA_NAME_IS_DEFAULT_DEF to 0.

2006-12-11  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-dse.c (aggregate_vardecl_d): New.
	(dse_global_data): Add aggregate_vardecl field.
	(dse_possible_dead_store_p): New.
	Add prev_defvar variable.
	Allow immediate uses and previous immediate uses to differ
	if they are setting different parts of the whole.
	(get_aggregate_vardecl): New.
	(dse_record_partial_aggregate_store): New.
	(dse_whole_aggregate_clobbered_p): New.
	(dse_partial_kill_p): New.
	(dse_optimize_stmt): Abstract code checking a possible dead store
	into new function dse_possible_dead_store_p().
	Call dse_maybe_record_aggregate_store().
	When checking whether a STMT and its USE_STMT refer to the
	same memory address, check also for partial kills that clobber
	the whole.
	Move some variable definitions to the block where they are used.
	(aggregate_vardecl_hash): New.
	(aggregate_vardecl_eq): New.
	(aggregate_vardecl_free): New.
	(aggregate_whole_store_p): New.
	(tree_ssa_dse): Initialize and free aggregate_vardecl.
	Mark which aggregate stores we care about.

2006-12-11  Andrew Macleod  <amacleod@redhat.com>

	* tree-ssa-operands.h (struct vuse_element_d): Declare.
	(vuse_element_t): Declare.
	(struct vuse_vec_d): Declare.
	(vuse_vec_p): Declare.
	(VUSE_VECT_NUM_ELEM): Define.
	(VUSE_VECT_ELEMENT_NC): Define.
	(VUSE_ELEMENT_PTR_NC): Define.
	(VUSE_ELEMENT_VAR_NC): Define.
	(VUSE_VECT_ELEMENT): Define.
	(VUSE_ELEMENT_PTR): Define.
	(VUSE_ELEMENT_VAR): Define.
	(struct maydef_optype_d) <use_var>: Remove.
	<use_ptr>: Remove.
	<usev>: Add.
	(struct vuse_optype_d) <kill_var>: Remove.
	<use_ptr>: Remove.
	<usev>: Add.
	(struct mustdef_optype_d) <kill_var>: Remove.
	<use_ptr>: Remove.
	<usev>: Add.
	(VUSE_OP_PTR): Add argument.  Use VUSE_ELEMENT_PTR.
	(VUSE_OP): Add argument.  Use VUSE_ELEMENT_PTR.
	(VUSE_NUM): Define.
	(VUSE_VECT): Define.
	(MAYDEF_OP_PTR): Add argument.  Use VUSE_OP_PTR.
	(MAYDEF_OP): Add argument.  Use VUSE_OP.
	(MAYDEF_NUM): Define.
	(MAYDEF_VECT): Define.
	(MUSTDEF_KILL_PTR): Use VUSE_OP_PTR.
	(MUSTDEF_KILL): Use VUSE_OP.
	(MUSTDEF_NUM): Define.
	(MUSTDEF_VECT): Define.
	(realloc_maydef): Declare.
	(realloc_vuse): Declare.
	(struct ssa_operand_iterator_d) <vuse_index>: Add.
	<mayuse_index>: Add.
	(LOADED_SYMS): Define.
	(STORED_SYMS): Define.
	(FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef.
	* tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE
	operators.
	* tree-pretty-print.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-flow-inline.h: Likewise.
	(op_iter_next_mustdef): New.
	* tree-ssa-operands.c: Likewise.
	(ALLOC_OPTYPE): Remove.
	Update all users.
	(alloc_def): New.
	(alloc_use): New.
	(alloc_maydef): New.
	(alloc_vuse): New.
	(alloc_mustdef): New.
	(realloc_maydef): New.
	(realloc_vuse): New.

2006-12-11  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-operands.c: Remove build_v_must_defs.
	(init_ssa_operands): Delete build_v_must_defs.
	(finalize_ssa_v_must_def_ops): Remove.
	(finalize_ssa_v_must_defs): Remove.
	(finalize_ssa_stmt_operands): Do not call
	finalize_ssa_v_must_defs.
	(start_ssa_stmt_operands): Do not check build_v_must_defs.
	(append_v_must_def): Delete.
	(copy_virtual_operands): Do not copy V_MUST_DEFs.
	(get_modify_expr_operands): Remove reference to V_MUST_DEF from
	comment.  Remove opf_kill_def.
	(build_ssa_operands): Remove references to v_must_defs.
	(copy_virtual_operands): Same.
	(copy_virtual_operands): Same.
	(fini_ssa_operands): Same.
	(free_ssa_operands): Same.
	(add_mustdef_op): Remove.
	Remove mustdef_optype_p.
	(alloc_mustdef): Remove.
	Remove references to V_MUST_DEFs in comment at top of file.
	(get_expr_operands): Remove opf_kill_def.
	(opf_kill_def): Remove.
	(add_virtual_operand): Remove opf_kill_def.
	(get_indirect_ref_operands): Same.
	(get_tmr_operands): Same.

	* tree-vectorizer.c (rename_variables_in_bb): Remove
	SSA_OP_ALL_KILLS.

	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove
	SSA_OP_ALL_KILLS.
	(check_loop_closed_ssa_stmt): Same.

	* tree-ssa.c (verify_def): Remove V_MUST_DEF from comment.
	(verify_use): Same.
	(verify_ssa): Remove V_MUST_DEFs traces.
	(verify_ssa): Remove SSA_OP_ALL_KILLS.

	* tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to
	SSA_OP_VMAYDEF.
	(rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS.
	(rewrite_stmt): Remove SSA_OP_ALL_KILLS.

	* tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF
	references.
	(MUSTDEF_OPS): Remove.
	(SSA_OP_VMUSTDEF): Remove.
	(FOR_EACH_SSA_MUSTDEF_OPERAND): Remove.
	(struct mustdef_optype_d): Remove.
	Remove mustdef_optype_p.
	(struct stmt_operands_d): Remove mustdef_ops.
	(ssa_operand_iterator_d): Remove mustdefs and mustkills.
	(SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF.
	(MUSTDEF_RESULT_PTR): Remove.
	(MUSTDEF_RESULT): Remove.
	(MUSTDEF_KILL_PTR): Remove.
	(MUSTDEF_KILL): Remove.
	(MUSTDEF_NUM): Remove.
	(MUSTDEF_VECT): Remove.
	(SSA_OP_VIRTUAL_KILLS): Remove.
	(SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS.
	(SSA_OP_VMUSTKILL): Remove.
	(SSA_OP_ALL_KILLS): Remove.
	(SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS.

	* tree-flow-inline.h (op_iter_init_def): Remove
	SSA_OP_VIRTUAL_KILLS.
	(delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS.

	* tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
	SSA_OP_VIRTUAL_KILLS.

	* tree-ssa-loop-im.c (determine_max_movement): Remove
	SSA_OP_VIRTUAL_KILLS.
	(gather_mem_refs_stmt): Same.
	(gather_mem_refs_stmt): Same.

	* tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete.
	(perform_tree_ssa_dce): Remove call to
	mark_really_necessary_kill_operand_phis.

	* tree-flow-inline.h (op_iter_init): Remove setting of mustdefs
	and mustkills.
	(op_iter_next_use): Do not check mustkills.
	(op_iter_next_def): Do not check mustdefs.
	(op_iter_next_tree): Do not check mustkills or mustdefs.
	(clear_and_done_ssa_iter): Do not set mustdefs or mustkills.
	(op_iter_next_maymustdef): Do not check mustkills.
	(op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL.
	(op_iter_init_mustdef): Remove.

	* tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to
	SSA_OP_VMAYDEF.

	* tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF.

	* tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments.
	(visit_assignment): Same.

	* tree-ssa-copy.c (copy_prop_visit_assignment): Same.

	* tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment.

	* tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF.

	* tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF.
	Remove kill_p variable.

	* tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs.
	(dump_dfa_stats): Remove code related to V_MUST_DEFs.
	(collect_dfa_stats_r): Do not set num_v_must_defs.
	(mark_new_vars_to_rename): Remove v_must_defs_{before,after}
	code.

	* tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to
	SSA_OP_VMAYUSE.

	* tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove
	SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL.

	* tree-ssa-propagate.c (stmt_makes_single_store): Remove
	SSA_OP_VMUSTDEF.

From-SVN: r119760
2006-12-11 20:48:51 -05:00
GCC Administrator
419cb3431b Daily bump.
From-SVN: r119757
2006-12-12 00:18:04 +00:00
Zdenek Dvorak
d453882913 re PR rtl-optimization/30113 (ICE in trunc_int_for_mode)
PR rtl-optimization/30113
	* loop-iv.c (implies_p): Require the mode of the operands to be
	scalar.

From-SVN: r119748
2006-12-11 21:29:44 +00:00
Diego Novillo
cfaab3a924 tree-ssa-operands.h (create_ssa_artificial_load_stmt): Rename from create_ssa_artficial_load_stmt.
* tree-ssa-operands.h (create_ssa_artificial_load_stmt):
	Rename from create_ssa_artficial_load_stmt.  Update all users.
	* tree-into-ssa.c (register_new_def): Make static.
	* tree.c (is_global_var): Handle SSA_NAMEs.
	* tree.h (SSA_NAME_IS_DEFAULT_DEF): Define.  Update all users
	that used to call gimple_default_def.
	* tree-ssa-operands.c (push_stmt_changes): New.
	(pop_stmt_changes): New.  Update every pass that modifies
	statements to bracket modifications with
	push_stmt_changes/pop_stmt_changes.
	(discard_stmt_changes): New.
	* tree-ssa-dom.c (stmts_to_rescan): Change to stack of
	'tree *' instead of 'tree'.  Update all users.
	* tree-flow-inline.h (zero_imm_uses_p): New.
	(symbol_mem_tag): New.  Update every function that used
	to access the annotation directly.
	(set_symbol_mem_tag): Likewise.
	* tree-dfa.c (dump_variable): Always show the escape mask.
	(mark_symbols_for_renaming): Rename from
	mark_new_vars_to_rename.  Update all users.
	Only mark to rename naked symbols in real and virtual
	operands.

From-SVN: r119746
2006-12-11 15:15:53 -05:00
Andreas Schwab
7f46c638e6 Fix changelog entry.
From-SVN: r119745
2006-12-11 19:11:38 +00:00
Andreas Schwab
86aa531238 varasm.c (elf_record_gcc_switches): Cast second argument of ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.
* varasm.c (elf_record_gcc_switches): Cast second argument of
	ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT.

From-SVN: r119744
2006-12-11 19:09:05 +00:00
Diego Novillo
9b3b55a105 * tree-scalar-evolution.c (scev_const_prop):
* tree-phinodes.c (remove_phi_node): Add argument
	RELEASE_LHS_P.  If given, release the SSA name on the LHS of
	the PHI node.
	Update all users.
	* tree-ssa-dce.c: Remove forward declarations for static
	functions.  Re-arrange functions bodies as needed.
	(find_obviously_necessary_stmts): Never mark PHI nodes as
	obviously necessary.

From-SVN: r119740
2006-12-11 12:50:53 -05:00
Carlos O'Donell
546447ae68 elf.h (MAX_OFILE_ALIGNMENT): Remove definition.
2006-12-11  Carlos O'Donell  <carlos@codesourcery.com>

	* config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition.

From-SVN: r119739
2006-12-11 17:31:48 +00:00
Jan Hubicka
34d85166bb value-prof.c (tree_stringops_transform): New.
* value-prof.c (tree_stringops_transform): New.
	(tree_value_profile_transformations): Require count to be non-zero;
	call stringop transform; reset stmt BSI after BB changed.
	(tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label.
	(interesting_stringop_to_profile_p, tree_stringop_fixed_value): New.
	(tree_stringops_values_to_profile): New.
	(tree_values_to_profile): Call tree_stringops_values_to_profile.
	* tree.h (build_string_literal): Tidy prototype.
	(validate_arglist, builtin_memset_read_str, get_pointer_alignment):
	Declare.
	* builtins.c (validate_arglist, builtin_memset_read_str,
	get_pointer_alignment): Export.

From-SVN: r119735
2006-12-11 14:19:11 +00:00
Uros Bizjak
fa283935de re PR target/30120 (silent miscompilation of argument passing)
PR target/30120
	Revert:
	2006-11-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.opt: New target option -mx87regparm.

	* config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno,
	float_in_x87: Add new variables. mmx_words, sse_words: Remove.
	(X87_REGPARM_MAX): Define.

	* config/i386/i386.c (override_options): Error out for
	-mx87regparm but no 80387 support.
	(ix86_attribute_table): Add x87regparm.
	(ix86_handle_cconv_attribute): Update comments for x87regparm.
	(ix86_comp_type_attributes): Check for mismatched x87regparm types.
	(ix86_function_x87regparm): New function.
	(ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
	point registers.
	(init_cumulative_args): Initialize x87_nregs and float_in_x87
	variables.
	(function_arg_advance): Process x87_nregs and x87_regno when
	floating point argument is to be passed in 80387 register.
	(function_arg): Pass XFmode arguments in 80387 registers for local
	functions.  Pass SFmode and DFmode arguments to local functions
	in 80387 registers when flag_unsafe_math_optimizations is set.

	* reg-stack.c (convert_regs_entry): Disable NaN load for
	stack registers that are used for argument passing.

	* doc/extend.texi: Document x87regparm function attribute.
	* doc/invoke.texi: Document -mx87regparm.

testsuite/ChangeLog:

	PR target/30120
	* gcc.target/i386/pr30120.c: New test.

	Revert:
	2006-11-15  Uros Bizjak  <ubizjak@gmail.com>

	* gcc.target/i386/x87regparm-1.c: New test.
	* gcc.target/i386/x87regparm-2.c: New test.
	* gcc.target/i386/x87regparm-3.c: New test.
	* gcc.target/i386/x87regparm-4.c: New test.

From-SVN: r119734
2006-12-11 15:06:07 +01:00
Jan Hubicka
8a4a83ed92 Move all varpool routines out of cgraph/cgraphunit to varpool.c
Move all varpool routines out of cgraph/cgraphunit to varpool.c
	* cgraph.c: Update comments.
	(cgraph_varpool_hash,
	cgraph_varpool_nodes, cgraph_varpool_last_needed_node
	cgraph_varpool_node_name, cgraph_varpool_node,
	cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node,
	cgraph_variable_initializer_availability): Move to
	varpool.c and drop cgraph_ prefixes.
	(cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue,
	cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl):
	move to varpool.c; drop cgraph_ prefix; make static.
	(dump_cgraph_varpool_node): Move to varpool.c under name
	dump_varpool_node.
	(dump_varpool, hash_varpool_node, eq_varpool_node,
	decide_is_variable_needed): Move to varpool.c
	(decl_assembler_name_equal): Move to tree.c.
	(availability_names): Rename to ...
	(cgraph_availability_names): ... this one.
	(dump_cgraph_node): Update.
	* cgraph.h: Reorder declarations now in varpool.c
	(cgraph_vailablity_names): Declare.
	(struct cgraph_varpool_node): Rename to ...
	(struct varpool_node): ... this one.
	(cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue,
	cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node,
	cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node,
	cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node,
	cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls,
	cgraph_variable_initializer_availability): Rename to ...
	(varpool_first_unanalyzed_node, varpool_nodes_queue,
	varpool_first_unanalyzed_node, varpool_node,
	varpool_node_for_asm, varpool_mark_needed_node,
	varpool_finalize_decl, varpool_enqueue_needed_node,
	varpool_assemble_pending_decls, variable_initializer_availability):
	Rename to ...
	* tree.c (decl_assembler_name_equal): Move here from cgraph.c.
	* tree.h (decl_assembler_name_equal): Declare.
	* omp-low.c (lower_omp_critical): Update.
	* ipa-reference (analyze_variable, static_execute): Likewise.
	* toplev.c (wrapup_global_declaration_2, compile_file): Update.
	* cgraphunit.c: Update comments.
	(cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name
	varpool_assembled_nodes_queue.
	(cgraph_varpool_analyze_pending_decls): Move to varpool.c under name
	varpool_analyze_pending_decls.
	(cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name
	varpool_remove_unreferenced_decls.
	(record_reference): Update.
	(cgraph_create_edges): Update.
	(record_referneces_in_initializer): New function.
	(cgraph_varpool_assemble_decl): Move to varpool.c under name
	varpool_assemble_decl; make global.
	(cgraph_varpool_assemble_pending_decls): Move to varpool.c under name
	varpool_assemble_pending_decls.
	(process_function_and_variable_attributes, cgraph_finalize_compilation_unit,
	struct cgraph_order_sort, cgraph_output_in_order,
	cgraph_function_and_variable_invisibility, cgraph_optimize,
	cgraph_increase_alignment): Update.
	* dwarf2out.c (decls_for_scope): Likewise.
	* ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise.
	* except.c (output_ttype): Likewise.
	* varasm.c (mark_decl_referenced): Likewise.
	(find_decl_and_mark_referenced, assemble_alias): update.
	* Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c
	* passes.c (rest_of_decl_compilation): Update.

	* cp/decl2.c (var_finalized_p): Update for renamed varpool functions.
	* fortran/f59-lang.c (gfc_expand_function): Update for renamed varpool functions.

From-SVN: r119731
2006-12-11 08:07:52 +00:00
Ira Rosen
ce133c3fa2 tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use GIMPLE_STMT_OPERAND.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use
	GIMPLE_STMT_OPERAND.
	* tree-vect-transform.c (vect_permute_store_chain): Likewise.
	(vect_setup_realignment): Likewise.

From-SVN: r119730
2006-12-11 07:54:35 +00:00
Sa Liu
cc8d70cd9d spu-elf.h (STARTFILE_SPEC): Update.
* config/spu/spu-elf.h (STARTFILE_SPEC): Update.
	(ENDFILE_SPEC): Likewise.
	* config/spu/spu.opt (mstdmain): New option.
	* config/spu/crti.asm: Remove.
	* config/spu/crtn.asm: Likewise.
	* config/spu/crt0.c: Likewise.
	* config/spu/crtend.c: Likewise.
	* config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files
	listed above.
	($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove.
	* doc/invoke.texi (SPU Options): Document -mstdmain.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>

From-SVN: r119727
2006-12-11 11:53:42 +11:00
GCC Administrator
ee2be80a8e Daily bump.
From-SVN: r119724
2006-12-11 00:18:20 +00:00
Zdenek Dvorak
a14865dbe0 loop.texi: Document number_of_latch_executions and number_of_cond_exit_executions.
* doc/loop.texi: Document number_of_latch_executions and
	number_of_cond_exit_executions.
	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
	chrec_is_positive, number_of_iterations_for_all_loops,
	scev_const_prop): Use number_of_latch_executions.
	(set_nb_iterations_in_loop): Do not increase the value of the
	number of iterations.
	(number_of_iterations_in_loop): Renamed to ...
	(number_of_latch_executions): ... this.
	(number_of_exit_cond_executions): New function.
	* tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration
	removed.
	(number_of_latch_executions, number_of_exit_cond_executions): Declare.
	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use
	number_of_latch_executions.
	* tree-data-ref.c (get_number_of_iters_for_loop): Use
	number_of_exit_cond_executions.
	* tree-vect-analyze.c (vect_get_loop_niters): Ditto.
	* cfgloop.h (struct loop): Improve description of the nb_iterations
	field.

	* gcc.dg/tree-ssa/loop-17.c: Update outcome.

From-SVN: r119718
2006-12-10 23:34:20 +00:00
Daniel Berlin
c7463db95a tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
2006-12-10  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id.
	(tree_pointer_compare): Remove.

From-SVN: r119714
2006-12-10 22:39:41 +00:00
Zdenek Dvorak
42fd6772c6 tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
* tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop.
	* loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP.
	* tree-loop-linear.c (linear_transform_loops): Ditto.
	* tree-ssa-loop-im.c (determine_lsm): Ditto.
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
	free_numbers_of_iterations_estimates): Ditto.
	* tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto.
	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables,
	tree_unroll_loops_completely): Ditto.
	* predict.c (predict_loops): Ditto.
	* tree-if-conv.c (main_tree_if_conversion): Ditto.
	* loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
	decide_unrolling_and_peeling): Ditto.
	* cfgloopmanip.c (unloop): Use delete_loop.
	(place_new_loop): Access larray vector instead of parray.
	(create_preheaders, force_single_succ_latches,
	fix_loop_structure): Use FOR_EACH_LOOP and delete_loop..
	* loop-doloop.c (doloop_optimize_loops): Ditto.
	* loop-invariant.c (move_loop_invariants): Ditto.
	* tree-cfg.c (replace_uses_by): Ditto.
	* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto.
	* tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
	Moved to ...
	* tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE):
	... here.
	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
	compute_overall_effect_of_inner_loop, chrec_is_positive): Use
	get_loop and get_chrec_loop.
	(number_of_iterations_for_all_loops): Use number_of_loops.
	(scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP.
	* tree-scalar-evolution.h (get_chrec_loop): New inline function.
	* cfgloopanal.c (mark_irreducible_loops): Use number_of_loops,
	and FOR_EACH_LOOP.
	* tree-chrec.c (evolution_function_is_invariant_rec_p,
	chrec_convert_1): Use get_loop and get_chrec_loop.
	* loop-init.c (loop_optimizer_init): Use number_of_loops.
	(loop_optimizer_init): Use FOR_EACH_LOOP.
	* tree-vectorizer.c (vect_loops_num): Removed.
	(vectorize_loops): Store number of loops locally.  Use
	FOR_EACH_LOOP and get_loop.
	* tree-vectorizer.h (vect_loops_num): Removed.
	* tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop.
	(find_data_references_in_loop): Do not set parallel_p.
	* tree-data-ref.h: Do not declare VEC(loop_p).
	* cfgloop.c (flow_loops_dump, mark_single_exit_loops,
	verify_loop_structure): Use FOR_EACH_LOOP.
	(flow_loops_free): Use FOR_EACH_LOOP, free larray vector.
	(initialize_loops_parallel_p): Removed.
	(flow_loops_find): Push the loops into a vector.
	(delete_loop): New function.
	(cancel_loop): Use delete_loop.
	* cfgloop.h: Declare VEC(loop_p).
	(struct loop): Remove parallel_p field.
	(struct loops): Replace num and parray field by larray vector.
	Remove shared_headers field.
	(delete_loop): Declare.
	(get_loop, get_loops, number_of_loops, fel_next, fel_init,
	FOR_EACH_LOOP): New.
	* doc/loop.tex: Document new accessor functions.

From-SVN: r119713
2006-12-10 22:17:15 +00:00
Andrew MacLeod
7290d709ef New out of ssa Coalescer.
2006-12-10  Andrew MacLeod  <amacleod@redhat.com>

	* common.opt (-ftree-lrs): Remove live range splitting option.
	* makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
	* opts.c (decode_options): Remove flag_tree_live_range_split.
	* tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
	* tree-flow-inline.h (single_imm_use_p): New.  Check for single use.
	* tree-outof-ssa.c: Remove header files which aren't needed.
	(SSANORM_*): Remove flags.
	(print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, 
	coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
	(coalesce_ssa_name): Move to tree-ssa-coalesce.c.
	(assign_vars): Use Basevar instead of root_var structure.
	(replace_def_variable): Dont do anything if def is replaceable.
	(remove_ssa_form): Integrate functional changes.
	(rewrite_out_of_ssa): Remove live-range_split option.
	* tree-ssa-coalesce.c: New File for ssa-name coalescing.
	(coalesce_cost): Calculate the cost of a coalesce.
	(coalesce_cost_bb): Calculate the coalesce cost within a BB.
	(coalesce_cost_edge): Calculate the coalesce cost on an edge.
	(pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
	(pop_best_coalesce): Remove the best coalesce from the list.
	(coalesce_pair_map_hash): Calculate coalesce pair hash.
	(coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
	(create_coalesce_list): Create a coalesce list object.
	(delete_coalesce_list): Free a coalesce list object.
	(find_coalesce_pair): Find matching pair in the coalesce list.
	(add_cost_one_coalesce): Add a coalesce to the "cost one" list.
	(add_coalesce): Add a coalesce to the coalesce list.
	(compare_pairs): Comparision function to determine pair sorted order.
	(num_coalesce_pairs): Number of coalesced pairs.
	(first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
	Coalesce pair iterator functions.
	(sort_coalesce_list): Sort coalesce pairs in order of expense.
	(dump_coalesce_list): Show coalesce list.
	(ssa_conflicts_new): Create an SSA conflict graph.
	(ssa_conflicts_delete): Delete an SSA conflict graph.
	(ssa_conflicts_test_p): Test for conflicts.
	(ssa_conflicts_add_one): Add a single conflict.
	(ssa_conflicts_add): Add a conflict pair.
	(ssa_conflicts_merge): Merge conflicts.
	(struct live_track_d): Struct for tracking live partitions.
	(new_live_track): Create new live_track object.
	(delete_live_track): Delete a live_track object.
	(live_track_remove_partition): Remove a partition from the live list.
	(live_track_add_partition): Add a partition from the live list.
	(live_track_clear_var): Take VAR from the live list.
	(live_track_live_p): Is var live?
	(live_track_process_use): Make var come alive.
	(live_track_process_def): Make var go dead, add conflicts.
	(live_track_init): Initialize to a live on exit set.
	(live_track_clear_base_vars): Clear live partitions.
	(build_ssa_conflict_graph): Build a conflict graph.
	(print_exprs): Common debug output routine.
	(abnormal_corrupt): Output info about a failed coalesce across an
	abnormal edge.
	(fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
	(create_outofssa_var_map): Create a var map and coalesce list.
	(attempt_coalesce): Coalesce a pair.
	(coalesce_partitions): Coalesce all pairs in a coalesce list.
	(coalesce_ssa_name): Entry point.  Determine what ssa_names to coalesce.
	* tree-ssa-live.c: Remove header files which aren't needed.
	(var_map_base_init): New.  Initialize a basevar list.
	(var_map_base_fini): New.  Finish a basevar list.
	(init_var_map): Initialize new fields.
	(delete_var_map): Free new fields.
	(var_union): Use renamed fields.
	(compact_var_map): Remove.
	(partition_to_view_init): Use renamed fields, change order of an if.
	(partition_view_fini): Use renamed fields.
	(partition_view_normal): Create basevar list if requested.
	(partition_view_bitmap): Create a view based on a bitmap of partitions.
	(change_partition_var): Use renamed fields.
	(create_ssa_var_map): Remove.
	(tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
	root_var_init): Remove.
	(partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
	delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
	compare_pairs, num_coalesce_pairs, first_partition_pair,
	end_partition_pair_p, next_partition_pair, sort_coalesce_list,
	pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
	build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
	tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
	(dump_var_map): Use renamed fields.
	* tree-ssa-live.h (struct  _var_map): Modify fields.
	(partition_to_var, version_to_var, var_to_partition): Use renamed 
	fields.
	(basevar_index): New.  Index of the base variable of a partition.
	(num_basevars): New.  Number of unique base variables in partition map.
	(register_ssa_partition): Use renamed fields.
	(struct tree_partition_associator_d): Remove.
	(tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
	tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
	root_var, root_var_first_partition, root_var_next_partition,
	root_var_dump, root_var_delete, root_var_remove_partition, 
	root_var_find, root_var_compact, root_var_decompact): Remove.
	(struct partition_pair, struct coalesce_list_d): Moved to 
	tree-ssa-coalesce.c
	* tree-ssa-ter.c: Remove header files which aren't needed.

From-SVN: r119711
2006-12-10 21:25:40 +00:00
Tobias Burnus
669353d549 gfortran.texi: Update Fortran 2003 section.
2006-12-10  Tobias Burnus  <burnus@net-b.de>

	* gfortran.texi: Update Fortran 2003 section.

From-SVN: r119710
2006-12-10 22:22:49 +01:00
Tobias Burnus
ee7e677fdd re PR fortran/23994 (PROTECTED attribute (F2003) is not implemented)
fortran/
2006-12-10  Tobias Burnus  <burnus@net-b.de>

    PR fortran/23994
    * interface.c (compare_actual_formal): PROTECTED is incompatible
with intent(out).
    * symbol.c (check_conflict): Check for PROTECTED conflicts.
      (gfc_add_protected): New function.
      (gfc_copy_attr): Copy PROTECTED attribute.
    * decl.c (match_attr_spec): Add PROTECTED support.
      (gfc_match_protected): New function.
    * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support.
    * gfortran.h (gfc_symbol): Add protected flag.
      Add gfc_add_protected prototype.
    * expr.c (gfc_check_pointer_assign): Add PROTECTED support.
    * module.c (ab_attribute, attr_bits, mio_symbol_attribute,
mio_symbol_attribute):
       Add PROTECTED support.
    * resolve.c (resolve_equivalence): Add PROTECTED support.
    * match.c (gfc_match_assignment,)gfc_match_pointer_assignment:
       Check PROTECTED attribute.
    * match.h: Add gfc_match_protected prototype.
    * parse.c (decode_statement): Match PROTECTED statement.
    * primary.c (match_variable): Add PROTECTED support.

testsuite/
2006-12-10  Tobias Burnus  <burnus@net-b.de>

    PR fortran/23994
    * gfortran.dg/protected_1.f90: New test.
    * gfortran.dg/protected_2.f90: New test.
    * gfortran.dg/protected_3.f90: New test.
    * gfortran.dg/protected_4.f90: New test.
    * gfortran.dg/protected_5.f90: New test.
    * gfortran.dg/protected_6.f90: New test.

From-SVN: r119709
2006-12-10 20:53:07 +01:00
Steven Bosscher
932ad4d9b5 cse.c: (struct cse_basic_block_data): Remove LAST field.
* cse.c: (struct cse_basic_block_data): Remove LAST field.
	(struct branch_path): Remove BRANCH and TAKEN fields. Add new
	BB field.
	(cse_visited_basic_blocks): New static bitmap.
	(cse_end_of_basic_block, cse_basic_block): Remove.
	(cse_find_path, cse_dump_path, cse_prescan_path,
	cse_extended_basic_block): New static functions.
	(cse_insn): Don't CSE over setjmp calls.  Use the CFG to find
	basic block boundaries.  Don't record jump equivalences here.
	Update the CFG after doing in-place replacement of the SET_SRC.
	(cse_main): Rewrite.  Look for extended basic block headers
	and call cse_extended_basic_block on them until all paths that
	start at this header are exhausted.
	(rest_of_handle_cse): Verify that the CFG is incrementally updated
	and correct after cse_main.
	Don't call delete_trivially_dead_insns, let cfgcleanup do that.
	(rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
	(pass_cse): Add TODO_verify_flow.
	(pass_cse2): Likewise.

From-SVN: r119706
2006-12-10 10:59:19 +00:00
Rask Ingemann Lambertsen
15447faef3 reload1.c (choose_reload_regs): Don't set byte offset when resolving subregs of hard regs.
2006-12-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>

	* reload1.c (choose_reload_regs): Don't set byte offset when
	resolving subregs of hard regs.

From-SVN: r119705
2006-12-10 10:37:48 +00:00
Zack Weinberg
566c6181e6 c-opts.c (c_common_parse_file): Unconditionally give a warning, suitable for the language, if set_yydebug is true.
* c-opts.c (c_common_parse_file): Unconditionally give a warning,
	suitable for the language, if set_yydebug is true.
	* c-pragma.h: Define enum pragma_omp_clause here.  Don't define
	YYDEBUG or declare yydebug.
	* c-parser.c (yydebug, enum pragma_omp_clause): Delete.
	* cp/parser.c: Likewise.

From-SVN: r119704
2006-12-10 05:09:29 +00:00
GCC Administrator
17c2c77545 Daily bump.
From-SVN: r119702
2006-12-10 00:18:39 +00:00
Paul Thomas
993ef28f82 re PR other/29975 ([meta-bugs] ICEs with CP2K)
2006-12-09  Paul Thomas <pault@gcc.gnu.org>

	PR fortran/29975
	PR fortran/30068
	PR fortran/30096
	* interface.c (compare_type_rank_if): Reject invalid generic
	interfaces.
	(check_interface1): Give a warning for nonreferred to ambiguous
	interfaces.
	(check_sym_interfaces): Check whether an ambiguous interface is
	referred to.  Do not check host associated interfaces since these
	cannot be ambiguous with the local versions.
	(check_uop_interface, gfc_check_interfaces): Update call to
	check_interface1.
	* symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding
	unambiguous procedures to generic interfaces.
	* gfortran.h (symbol_attribute): Added use_only and
	ambiguous_interfaces.
	* module.c (load_need): Set the use_only flag, if needed.
	* resolve.c (resolve_fl_procedure): Warn for nonreferred
	interfaces.
	* expr.c (find_array_section): Fix initializer array contructor.


2006-12-09  Paul Thomas <pault@gcc.gnu.org>
	    Tobias Burnus <burnus@gcc.gnu.org>

	PR fortran/29975
	PR fortran/30068
	* gfortran.dg/interface_4.f90: Test adding procedure to generic
	interface.
	* gfortran.dg/interface_5.f90: Test warning for not-referenced-to
	ambiguous interfaces.
	* gfortran.dg/interface_6.f90: Test invalid, ambiguous interface.
	* gfortran.dg/interface_7.f90: Test invalid, ambiguous interface.
	* gfortran.dg/interface_8.f90: Test warning for not-referenced-to
	ambiguous interfaces.
	* gfortran.dg/interface_1.f90: Change dg-error into a dg-warning.
	* gfortran.dg/array_initializer_2.f90: Add initializer array
	constructor test.

	PR fortran/30096
	* gfortran.dg/interface_9.f90: Test that host interfaces are
	not checked for ambiguity with the local version.

Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>

From-SVN: r119697
2006-12-09 21:13:29 +00:00
Paul Thomas
1027275d2e re PR fortran/29464 ([4.1 only] problem with duplicate USE, ONLY of procedure in INTERFACE)
2006-11-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29464
	* module.c (load_generic_interfaces): Add symbols for all the
	local names of an interface.  Share the interface amongst the
	symbols.
	* gfortran.h : Add generic_copy to symbol_attribute.
	* symbol.c (free_symbol): Only free interface if generic_copy
	is not set.

2006-11-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29464
	* gfortran.dg/module_interface_2.f90: New test.

From-SVN: r119696
2006-12-09 20:52:27 +00:00
Paul Thomas
4d4074e415 re PR fortran/29941 ([4.1 only] gfortran reports error with len of assumed size character array)
2006-12-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29941
	* resolve.c (resolve_function): Add LEN to the functions not
	checked for assumed size actual args.


2006-12-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29941
	* gfortran.dg/assumed_len.f90: New test.

From-SVN: r119695
2006-12-09 20:41:51 +00:00
Richard Guenther
8aa25857e0 implicit-typename1.C: Qualify types.
2006-12-09  Richard Guenther  <rguenther@suse.de>

	* g++.dg/warn/implicit-typename1.C: Qualify types.
	* g++.dg/parse/crash12.C: Likewise.
	* g++.dg/tree-ssa/pr22444.C: Likewise.

From-SVN: r119693
2006-12-09 17:40:13 +00:00
Jan Hubicka
efe75b6f9f cgraph.c: Update copyright.
* cgraph.c: Update copyright.
	* cgraph.h: Likewise
	(cgraph_update_pending_function): Remove prototype.
	* cgraphunit.c: Update copyright; update overall comment.
	(cgraph_assemble_pending_functions): Make local.

From-SVN: r119691
2006-12-09 15:36:55 +00:00
Maxim Kuvyrkov
448d5cc931 haifa-sched.c (schedule_block): Remove excessive sanity check.
2006-12-09  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	* haifa-sched.c (schedule_block): Remove excessive sanity check.

From-SVN: r119688
2006-12-09 13:05:44 +00:00
Tobias Burnus
a8feeaee72 array_2.f90: Added sqrt test.
2006-12-09  Tobias Burnus  <burnus@net-b.de>

       * gfortran.dg/array_2.f90: Added sqrt test.

From-SVN: r119687
2006-12-09 10:39:30 +01:00
Trevor Smigiel
a1c6e4b803 spu-protos.h (spu_split_immediate): Renamed from spu_split_address.
* config/spu/spu-protos.h (spu_split_immediate): Renamed from
        spu_split_address.
        (cpat_const_p, gen_cpat_const): Add.
        * config/spu/spu.c (immediate_class): New enum.
        (cpat_info, classify_immediate): New.
        (print_operand): Use S, D, T instead of F, G, H.  Use
        classify_immediate.  Handle cpat cases.
        (spu_split_immediate):  Renamed from spu_split_address.  Split all
        immediates that can be split.
        (immediate_load_p): Use classify_immediate.
        (spu_legitimate_constant_p): Accept everything except some cases of
        CONST_VECTOR.
        (spu_expand_move): Use spu_split_immedate.
        (fsmbi_const_p): Use classify_immediate.
        (cpat_const_p): New.
        (gen_cpat_const: New.
        * config/spu/constraints.md (j,k,l): New constraints for cpat
        instructions.
        * config/spu/spu.md (unnamed splitter): Change address splitter to
        handle all immediates.
        (_mov<mode>, _movdi, _movti): Handle i, j, k constraints for cpat
        instructions.
        (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns
        when possible.

From-SVN: r119682
2006-12-09 01:22:39 +00:00
GCC Administrator
c47169c6e6 Daily bump.
From-SVN: r119676
2006-12-09 00:18:33 +00:00
John David Anglin
920aeaf3da re PR target/30039 (HPPA: Incorrect code generated on 64bit host)
PR target/30039
	* pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
	patterns.  Correct length of high:DI instruction sequence.

From-SVN: r119669
2006-12-08 23:41:03 +00:00
Mike Stump
44f31fec96 t-darwin (TARGET_LIBGCC2_CFLAGS): Build libgcc with -mmacosx-version-min=10.4.
* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
	libgcc with -mmacosx-version-min=10.4.
	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
	G4 for 10.5+ unless doing kernel builds.

From-SVN: r119666
2006-12-08 22:22:51 +00:00
Uros Bizjak
4280a3e362 re PR target/30120 (silent miscompilation of argument passing)
PR target/30120
        * reg-stack.c (convert_regs_entry): Mark current argument passing
        registers as live.

        * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing
        of float arguments in x87 registers.

testsuite/ChangeLog:

        * gcc.target/i386/x87regparm-1.c: XFAIL.
        * gcc.target/i386/x87regparm-2.c: XFAIL.
        * gcc.target/i386/x87regparm-3.c: XFAIL.
        * gcc.target/i386/x87regparm-4.c: XFAIL.

From-SVN: r119663
2006-12-08 19:20:25 +01:00
Manuel López-Ibáñez
4efc447f98 2006-12-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* lib/target-supports.exp
	(check_effective_target_large_long_double): New.  
	* gcc.dg/Wconversion-real.c : Use it.  
	* gcc.dg/Wconversion-integer.c : Fix for targets where char is
	unsigned.

From-SVN: r119662
2006-12-08 18:14:21 +00:00
John David Anglin
fd13de7772 pa.h (LEGITIMATE_CONSTANT_P): Simplify.
* pa.h (LEGITIMATE_CONSTANT_P): Simplify.

From-SVN: r119661
2006-12-08 17:28:59 +00:00
Mark Shinwell
b9a76028a2 recog.c (mode_dependent_address_p): Identify pre-increment...
gcc/
	* recog.c (mode_dependent_address_p): Identify pre-increment,
	pre-decrement, post-increment and post-decrement addressing as always
	being mode-dependent.
	* config/m32c/m32c.c (m32c_mode_dependent_address): Delete.
	* config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete.
	* config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
	PRE_INC and POST_INC checks.
	* config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC,
	PRE_INC, POST_DEC and POST_INC cases.
	* config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
	Delete POST_INC and PRE_DEC cases.
	* config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
	no-op.
	* config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to
	no-op.
	* config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete
	PRE_INC and PRE_DEC cases.
	* config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
	(GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	* config/vax/vax.c (vax_mode_dependent_address_p): Delete
	auto-increment cases.
	* config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete
	auto-increment cases.
	* config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op.
	
	gcc/testsuite/
	* gcc.c-torture/execute/mode-dependent-address.c: New test.

From-SVN: r119660
2006-12-08 16:37:42 +00:00
Andrew MacLeod
00509c04ee New TER code.
2006-12-08  Andrew MacLeod  <amacleod@redhat.com>

	* Makefile.in: Add new file tree-ssa-ter.c.
	* tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, 
	free_temp_expr_table, add_value_to_version_list, 
	add_value_to_partition_list, remove_value_from_partition_list, 
	add_dependence, check_replaceable, finish_expr, mark_replaceable, 
	kill_expr, kill_virtual_exprs, find_replaceable_in_bb, 
	find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
	* tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
	prototypes.
	* tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
	(struct value_expr_d): Remove.
	(struct temp_expr_table_d): Rename fields, add explicit vector of
	replaceable expressions instead of sharing. Change value_expr_p's to 
	bitmap.  Delete free_list.
	(new_temp_expr_table): Rename fields, count number of ssa_names in
	each partition.
	(free_temp_expr_table): Rename field, free new fields.
	(new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
	add_info_to_list, remove_value_from_list): Delete.
	(version_to_be_replaced_p): New. Is an ssa-name replaceable?
	(make_dependent_on_partition): New. Set bit in version list, allocating
	a bitmap if need be.
	(add_to_partition_kill_list): New.  Set bit in the partition list,
	allocating a bitmap if need be.
	(remove_from_partition_kill_list): New.  Remove a bit from the
	partition list, free the bitmap if it is empty.
	(add_dependence): Use renamed field, cleanup. Don't add a dependence
	on partitions with only one member.
	(is_replaceable_p): New.  Split out replaceability check from 
	check_replaceable.
	(process_replaceable): New. Replacement code split from 
	check_replaceable.
	(check_replaceable): Removed.
	(finished_with_expr): Renamed from finish_expr.
	(kill_expr): Use renamed fields. Less parameters.
	(kill_virtual_exprs): Less parameters.
	(mark_replaceable): Use renamed fields.
	(find_replaceable_in_bb): Use renamed fields, cleanup.
	(find_replaceable_exprs): Use renamed routines, cleanup.
	(dump_replaceable_exprs): don;t go past end of ssa_names list.
	(debug_ter): New.  Debug routine to dump state.

From-SVN: r119657
2006-12-08 14:07:53 +00:00
Eric Botcazou
5848e34ae4 Fix ChangeLog.
From-SVN: r119656
2006-12-08 13:34:03 +00:00
Bernd Schmidt
96f46444e1 bfin.c (effective_address_32bit_p): Return true for anything involving the GOT.
* config/bfin/bfin.c (effective_address_32bit_p): Return true for
	anything involving the GOT.
	(bfin_adjust_cost): Don't take the REGNO of a MEM.
	(trapping_loads_p): Look inside the pattern of an insn to find the
	SET.
	* config/bfin/bfin.md (attr "type"): Add movcc.
	(insn_reservation "alu"): Likewise.
	(movsicc_insn1, movsicc_insn2): Change type to movcc.

From-SVN: r119655
2006-12-08 12:42:44 +00:00
Tobias Burnus
c3240b8d52 re PR fortran/27546 (IMPORT is broken)
fortran/
2006-12-08  Tobias Burnus  <burnus@net-b.de>

    PR fortran/27546
    * trans-decl.f90 (gfc_create_module_variable): Allow imported symbols
      in interface bodys in modules.

testsuite/
2006-12-08  Tobias Burnus  <burnus@net-b.de>

    PR fortran/27546
    * gfortran.dg/import4.f90: New test for IMPORT in modules.

From-SVN: r119651
2006-12-08 10:45:44 +01:00
Andrew Pinski
faf8957192 Correctly wrap my changelog entry.
From-SVN: r119650
2006-12-08 00:11:44 -08:00
Mark Mitchell
9ba7a2f292 re PR c++/29732 (ICE on invalid friend declaration)
PR c++/29732
	* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
	(explicit_class_specialization_p): Declare.
	* pt.c (explicit_class_specialization_p): New function.
	* parser.c (cp_parser_init_declarator): Check correct number of
	template parameters for in-class function definitions.
	(cp_parser_check_declrator_template_parameters): Stop looking for
	template classes when we find an explicit specialization.
	PR c++/29732
	* g++.dg/template/crash65.C: New test.
	* g++.dg/template/spec16.C: Tweak error markers.

From-SVN: r119649
2006-12-08 06:27:22 +00:00
Andrew Pinski
cf71109bd6 Add a PR reference for the patch which fixed PR 27558.
2006-04-20  Jakub Jelinek  <jakub@redhat.com>

        * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
        TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
        than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).

From-SVN: r119648
2006-12-07 20:50:02 -08:00
GCC Administrator
ed5f4ffb49 Daily bump.
From-SVN: r119642
2006-12-08 00:18:05 +00:00
Andrew Pinski
9838be08d0 spu-c.c (spu_build_overload_builtin): Delete.
2006-12-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu-c.c (spu_build_overload_builtin): Delete.
        (spu_resolve_overloaded_builtin): Check for non scalar instead
        of vector type and check the function call argument type also for non scalar.
        Call build_function_call instead of spu_build_overload_builtin.

2006-12-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * gcc.target/spu: New directory.
        * gcc.target/spu/spu.exp: New file.
        * gcc.target/spu/intrinsics-1.c: New test.

From-SVN: r119637
2006-12-07 15:40:46 -08:00
Trevor Smigiel
9dc5f9bad9 spu.c (array_to_constant): Correct the order of arguments to the calls of hwint_to_const_double.
* config/spu/spu.c (array_to_constant): Correct the order of arguments
	to the calls of hwint_to_const_double.

From-SVN: r119635
2006-12-07 22:11:51 +00:00
Lee Millward
baa5bf1141 re PR c++/29980 (ICE using attribute in invalid declaration)
PR c++/29980
        * cp_parser_elaborated_type_specifier: Check
        the return value of check_elaborated_type_specifier.

        * g++.dg/ext/attrib27.C: New test.
        * g++.dg/parse/struct-as-enum1.C: Adjust error markers.
        * g++.dg/parse/typedef5.C: Likewise.

From-SVN: r119633
2006-12-07 19:16:38 +00:00
Nick Clifton
f4ab891606 * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to elf_record_gcc_switches.
From-SVN: r119630
2006-12-07 17:44:10 +00:00
Mike Stump
e92df3ed98 * treelang/compile/var_defs.tree: Adjust.
From-SVN: r119628
2006-12-07 16:48:11 +00:00
Joseph Myers
ff4ecab8a5 * ru.po: New.
From-SVN: r119625
2006-12-07 16:45:47 +00:00
Andrew MacLeod
a3de5951ce expr.c (string_constant): Account for non-zero lower bound arrays.
2006-12-07  Andrew Macleod  <amacleod@redhat.com>

	* expr.c (string_constant): Account for non-zero lower bound arrays.

From-SVN: r119623
2006-12-07 14:39:37 +00:00
Richard Guenther
5eab7e7af0 builtins.c (expand_builtin_pow): Adjust predicates for pow to cbrt expansion to unsafe math and !HONOR_NANS for...
2006-12-07  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_pow): Adjust predicates for
	pow to cbrt expansion to unsafe math and !HONOR_NANS for
	negative base.

From-SVN: r119622
2006-12-07 14:24:11 +00:00
Jan Hubicka
e850f0281c i386.c (nocona_cost, [...]): Update preffered memcpy/memset codegen.
* i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset
	codegen.

From-SVN: r119620
2006-12-07 12:56:02 +00:00
Jan Hubicka
5daffcc76e tree-vrp.c (compare_values): Short circuit INTEGER_CST...
* tree-vrp.c (compare_values): Short circuit INTEGER_CST;
	use fold_constant_to_binary; tolerate wrong type constants.
	(value_intersect_p): Do just two tests.

From-SVN: r119619
2006-12-07 12:54:09 +00:00
Bernd Schmidt
58f7667965 bfin.c (print_operand): New modifier 'N' for constants.
* config/bfin/bfin.c (print_operand): New modifier 'N' for constants.
	* config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
	lshifthi3): Use it, and fix the order of alternatives.

From-SVN: r119616
2006-12-07 11:06:08 +00:00
Nick Clifton
e0d9d0ddb6 common.opt (record-gcc-switches): New command line switch.
* common.opt (record-gcc-switches): New command line switch.
* target.h (print_switch_type): New enum.
  (print_switch_fn_type): New typedef for a function pointer.
  (struct gcc_target): Add record_gcc_switches and record_gcc_switches_section fields.
* target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a default definition.
  (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default definition.
* toplev.c (print_single_switch): Simplify by providing a pointer to function that will format and output the switch appropriately.
  (print_switch_values): Likewise.
  (print_to_asm_out_file): New function.
  (print_to_stderr): New function.
  (init_asm_output): If flag_record_gcc_switches is set then if the target supports recording the switches then emit them into the assembler output file, otherwise tell the user that the switch is not supported.
* varasm.c (eld_record_gcc_switches): New function.  Example handler for the record_gcc_switches target hook.
* doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new target hook.
  (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise.
* doc/invoke.texi (-frecord-gcc-switches): Document.

From-SVN: r119615
2006-12-07 10:54:13 +00:00
Maxim Kuvyrkov
1d49ee6a79 re PR target/29794 (cc1 segfaults with -O3 -msched-control-spec)
2006-12-07  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR target/29794
	* sched-rgn.c (add_block1): Use correct initializer.

From-SVN: r119613
2006-12-07 10:02:35 +00:00
Richard Guenther
9f9195633a tree-vect-transform.c (vectorizable_call): Fix leftover of TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.
2006-12-07  Richard Guenther  <rguenther@suse.de>

	* tree-vect-transform.c (vectorizable_call): Fix leftover of
	TREE_OPERAND to GIMPLE_STMT_OPERAND conversion.

From-SVN: r119612
2006-12-07 09:38:37 +00:00
Tobias Burnus
70e7f689c3 re PR fortran/29711 ([4.2 only] error_print does not support %N$X)
2006-12-06  Tobias Burnus  <burnus@net-b.de>

       PR fortran/29711
       * error.c (error_print): Fix handling of printf-style position specifiers
         of the form "%3$d"

From-SVN: r119609
2006-12-07 10:15:41 +01:00
GCC Administrator
b68b36c4ef Daily bump.
From-SVN: r119606
2006-12-07 00:17:56 +00:00
Mark Mitchell
277264f80c re PR c++/29730 (ICE on invalid declaration of template member)
PR c++/29730
	* parser.c (cp_parser_init_declarator): Reject initialization of
	functions.
	PR c++/29730
	* g++.dg/template/crash64.C: New test.
	* g++.dg/parse/crash27.C: Adjust error markers.

From-SVN: r119601
2006-12-06 22:54:51 +00:00
Aldy Hernandez
66863d89a1 pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR not GIMPLE_MODIFY_STMT.
PR/30079
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR
	not GIMPLE_MODIFY_STMT.

From-SVN: r119600
2006-12-06 22:08:49 +00:00
Thomas Koenig
b4c811bd14 re PR libfortran/30009 ([4.1 only] Unformatted reads exceeding storage units gives EOF instead of ERR)
2006-12-06  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/30009
	PR libfortran/30056
	* gfortran.dg/read_eof_4.f90:  Add tests.
	* gfortran.dg/readwrite_unf_direct_eor_1.f90:  New test.
	* gfortran.dg/unf_read_corrupted_1.f90: New test.

2006-12-06  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/30009
	PR libfortran/30056
	* libgfortran.h:  Add ERROR_CORRUPT_FILE to error_codes.
	* runtime/error.c (translate_error):  Add handling for
	ERROR_CORRUPT_FILE.
	* io/transfer.c (read_block_direct):  Add comment about
	EOR for stream files.
	Remove test for no bytes left for direct access files.
	Generate an ERROR_SHORT_RECORD if the read was short.
	For unformatted sequential files:  Check endfile condition.
	Remove test for no bytes left.  End of file here means
	that the file structure has been corrupted.  Pre-position
	the file for the next record in case of error.
	(write_buf):  Whitespace fix.  Subtract the number of bytes
	written from bytes_left.

From-SVN: r119592
2006-12-06 19:25:44 +00:00
Jan Hubicka
6b3c76a98c tree-vrp.c (operand_less_p): New.
* tree-vrp.c (operand_less_p): New.
	(compare_values, value_inside_range): Rewrite in terms of
	operand_less_p.

From-SVN: r119583
2006-12-06 16:32:17 +00:00
Uros Bizjak
90c56b45eb i386.md (DIRFLAG_REG): Remove constant.
* config/i386/i386.md (DIRFLAG_REG): Remove constant.
	(type): Remove cld.
	(length_immediate): Do not depend on cld type attribute.
	(length_address): Ditto.
	(modrm): Ditto.
	(memory): Ditto.
	(cld): Remove insn pattern.
	(strmov_singleop): Do not use DIRFLAG_REG.
	(*strmovdi_rex_1): Ditto.
	(*strmovsi_1): Ditto.
	(*strmovsi_rex_1): Ditto.
	(*strmovhi_1): Ditto.
	(*strmovhi_rex_1): Ditto.
	(*strmovqi_1): Ditto.
	(*strmovqi_rex_1): Ditto.
	(rep_mov): Ditto.
	(*rep_movdi_rex64): Ditto.
	(*rep_movsi): Ditto.
	(*rep_movsi_rex64): Ditto.
	(*rep_movqi): Ditto.
	(*rep_movqi_rex64): Ditto.
	(strset_singleop): Ditto.
	(*strsetdi_rex_1): Ditto.
	(*strsetsi_1): Ditto.
	(*strsetsi_rex_1): Ditto.
	(*strsethi_1): Ditto.
	(*strsethi_rex_1): Ditto.
	(*strsetqi_1): Ditto.
	(*strsetqi_rex_1): Ditto.
	(rep_stos): Ditto.
	(*rep_stosdi_rex64): Ditto.
	(*rep_stossi): Ditto.
	(*rep_stossi_rex64): Ditto.
	(*rep_stosqi): Ditto.
	(*rep_stosqi_rex64): Ditto.
	(cmpstrnsi): Do not generate cld insn.
	(cmpstrnqi_nz_1): Do not use DIRFLAG_REG.
	(*cmpstrnqi_nz_1): Ditto.
	(*cmpstrnqi_nz_rex_1): Ditto.
	(cmpstrnqi_1): Ditto.
	(*cmpstrnqi_1): Ditto.
	(*cmpstrnqi_rex_1): Ditto.
	(strlenqi_1): Ditto.
	(*strlenqi_1): Ditto.
	(*strlenqi_rex_1): Ditto.

	* config/i386/geode.md (shift): Do not depend on cld type attribute.
	* config/i386/pentium.md (pent_cld): Remove insn reservation.
	* config/i386/athlon.md (athlon_decode): Do not depend on cld
	type attribute.
	* config/i386/ppro.md (ppro_cld): Remove insn reservation.
	* config/i386/k6.md (k6_alux_only): Do not depend on cld type
	attribute.
	(k6_alux_only_load): Ditto.
	(k6_alux_only_store): Ditto.

	* config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean.
	Do not emit cld instruction.
	(ix86_expand_setmem): Ditto.
	(ix86_expand_strlen): Do not emit cld instruction.

From-SVN: r119581
2006-12-06 15:56:10 +01:00
Bernd Schmidt
4b53c50816 bfin.c (bfin_rtx_costs): Add a number of new cases, tweak old ones.
* config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak
	old ones.

From-SVN: r119579
2006-12-06 12:45:36 +00:00
Diego Novillo
3a7f50dc49 gdbinit.in: Set complaints to 0.
* gdbinit.in: Set complaints to 0.

From-SVN: r119578
2006-12-06 06:24:41 -05:00
Uros Bizjak
ebb60f41d4 ChangeLog: Use tabs instead of spaces.
* ChangeLog: Use tabs instead of spaces.

From-SVN: r119576
2006-12-06 08:14:23 +01:00
Mark Mitchell
7f1ba716a2 re PR c++/29729 (ICE with template class in template function)
PR c++/29729
	* decl2.c (check_member_template): Move check for member
	templates in local classes to ...
	* parser.c (cp_parser_template_declaration_after_export):
	... here.
	PR c++/29729
	* g++.dg/template/crash63.C: New test.

From-SVN: r119575
2006-12-06 05:12:46 +00:00
Jan Hubicka
f75709c6f8 statistics.h (ALONE_PASS_MEM_STAT, [...]): New macros.
* statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO,
	ALONE_MEM_STAT_DECL): New macros.
	* bitmap.h: Include statistics.h
	(struct bitmap_head_def): Add variant with pointer to bitmap descriptor.
	(bitmap_initialize_stat): Rename from bitmap_initialize; add statistics.
	(bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare.
	* bitmap.c: Include hashtab.h
	(bitmap_descriptor): New.
	(bitmap_hash): New static variable
	(hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead):
	New static functions.
	(bitmap_register): New.
	(bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from,
	bitmap_obstack_release): Do accounting.
	(bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do
	accounting.
	(bitmap_gc_alloc_stat): Likewise.
	(bitmap_obstack_free, bitmap_find_bit): Do statictics.
	(print_statistics, dump_bitmap_statistics): New functions.
	* toplev.c (finalize): Dump bitmap statistics.

From-SVN: r119573
2006-12-06 01:37:38 +00:00
Bernd Schmidt
2372a06257 reload1.c (delete_output_reload): Count occurrences in CALL_INSN_FUNCTION_USAGE.
* reload1.c (delete_output_reload): Count occurrences in
	CALL_INSN_FUNCTION_USAGE.
	* rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without
	crashing at the end of the list.

From-SVN: r119571
2006-12-06 00:25:29 +00:00
GCC Administrator
e80dc930be Daily bump.
From-SVN: r119569
2006-12-06 00:17:45 +00:00
Daniel Berlin
9457b4248b Missed commit
From-SVN: r119564
2006-12-05 23:51:59 +00:00
Daniel Berlin
ff3add8dce tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
2006-12-05  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (set_used_smts): Re-fix pr29156.
	Optimize to avoid marking more SMT's as used when they aren't.

From-SVN: r119562
2006-12-05 23:46:28 +00:00
Eric Christopher
29c08d7c90 i386.c (x86_output_aligned_bss): Move out of COMMON_ASM_OP ifdef.
2006-12-05  Eric Christopher  <echristo@apple.com>

	* config/i386/i386.c (x86_output_aligned_bss): Move out
	of COMMON_ASM_OP ifdef.

From-SVN: r119560
2006-12-05 22:35:13 +00:00
Mark Mitchell
762397797c re PR c++/29728 (ICE on invalid initializer in template function)
PR c++/29728
	* decl.c (check_array_designated_initializer): New function.
	(maybe_deduce_size_from_array_init): Use it.
	(reshape_init_array): Likewise.
	PR c++/29728
	* g++.dg/template/crash62.C: New test.

From-SVN: r119558
2006-12-05 21:33:20 +00:00
Paul Thomas
8424e0d8b1 re PR fortran/30003 ([4.1 only] Expressions with side effects in array references)
2006-12-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/30003
	* trans-array.c (gfc_trans_create_temp_array): Set the section
	ends to zero.
	(gfc_conv_array_transpose): Likewise.
	(gfc_conv_section_startstride): Declare an expression for end,
	set it from a the array reference and evaluate it for the info
	structure. Zero the ends in the ss structure and set end, used
	in the bounds check, from the info structure.
	trans.h: Add and end array to the gfc_ss_info structure.

2006-12-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/30003
	* gfortran.dg/allocatable_function_1.f90: Increase the number
	of expected calls of free to 10; the lhs section reference is
	now evaluated so there is another call to bar.  Change the
	comment appropriately.
	* gfortran.dg/array_section_1.f90: New test.

From-SVN: r119556
2006-12-05 19:45:25 +00:00
Eric Christopher
742163c039 darwin.h (DARWIN_EXTRA_SPECS): New.
2006-12-05  Eric Christopher  <echristo@apple.com>

        * config/darwin.h (DARWIN_EXTRA_SPECS): New.
        (STARTFILE_SPEC): Use.
        (DARWIN_DYLIB1_SPEC): New.
        (DARWIN_CRT1_SPEC): New.
        * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use
        DARWIN_EXTRA_SPECS.
        * config/i386/darwin.h: Ditto.
        * config/rs6000/darwin.h: Ditto.

From-SVN: r119555
2006-12-05 19:40:54 +00:00
Paul Thomas
bab651ad74 re PR fortran/29912 ([4.1 only] Gfortran: string array functions behaving incorrectly...)
2006-12-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29912
	* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the
	lhs and rhs character lengths are not constant and equal for
	character array valued functions.

2006-12-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29912
	* gfortran.dg/char_result_12.f90: New test.

From-SVN: r119554
2006-12-05 19:32:59 +00:00
Daniel Berlin
66087ed002 Commit missing changelog entry
From-SVN: r119553
2006-12-05 19:31:51 +00:00
Brooks Moses
58660eb32c * doc/include/texinfo.tex: Update to version 2006-11-08.17.
From-SVN: r119551
2006-12-05 10:50:57 -08:00
Daniel Berlin
ae07b4632c tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
2006-12-05  Daniel Berlin  <dberlin@dberlin.org>

	* tree-vrp.c (pass_vrp): Remove PROP_smt_usage.
	* tree-complex.c (pass_lower_complex): Ditto.
	* tree-ssa-ccp.c (pass_ccp): Ditto.
	(pass_store_ccp): Ditto.
	* tree-ssa-dom.c (pass_dominator): Ditto.
	(pass_phi_only_cprop): Ditto.
	* tree-sra.c (pass_sra): Ditto.
	* tree-ssa-forwprop.c (pass_forwprop): Ditto.
	* tree-flow.h (updating_used_alone): Remove.
	(updating_used_alone): Ditto.
	* tree-ssa-alias.c (updating_used_alone): Remove variable.
	(lhs_may_store_to): Remove function.
	(recalculate_used_alone): Ditto.
	(compute_may_aliases): Remove used_alone calculation.
	* tree.h (struct tree_memory_tag): Remove is_used_alone and
	old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE.
	* tree-pass.h (PROP_smt_usage): Remove.
	* passes.c (execute_todo): Remove used alone recalculation.
	(execute_one_pass): Ditto.
	* tree-ssa-operands.c (add_virtual_operand): Remove used_alone
	stuff.

From-SVN: r119550
2006-12-05 18:39:13 +00:00
Zdenek Dvorak
c1ac94fbe9 re PR tree-optimization/14784 ([Tree-ssa] alias analysis deficiency)
PR tree-optimization/14784
	* tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix.

From-SVN: r119549
2006-12-05 18:26:20 +00:00
Aldy Hernandez
d5733d10bd Revert accidental change.
From-SVN: r119547
2006-12-05 17:53:35 +00:00
Aldy Hernandez
07beea0df3 Merge gimple-tuples-branch into mainline.
From-SVN: r119546
2006-12-05 17:26:05 +00:00
H.J. Lu
3b8aab767b config.host: Remove extra blank line.
2006-12-05  H.J. Lu  <hongjiu.lu@intel.com>

	* config.host: Remove extra blank line.

From-SVN: r119544
2006-12-05 08:04:35 -08:00
Bernd Schmidt
08bac9d89c config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if target is also an x86 variant.
* config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if
	target is also an x86 variant.

From-SVN: r119543
2006-12-05 15:45:51 +00:00
Richard Guenther
db3cf6bd4c i386.c (ix86_builtin_vectorized_function): Declare.
2006-12-05  Richard Guenther  <rguenther@suse.de>

	* config/i386/i386.c (ix86_builtin_vectorized_function): Declare.
	(TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
	(ix86_builtin_vectorized_function): New function to vectorize
	sqrt.

	* gcc.dg/vect/vect.exp: Add support for -fno-math-errno tests.
	* gcc.dg/vect/vect-pow-2.c: Rename to ...
	* gcc.dg/vect/no-math-errno-vect-pow-1.c: ... this.  Require
	vect_double, xfail for spu*-*-*.

From-SVN: r119542
2006-12-05 15:42:54 +00:00
Bernd Schmidt
708f30d603 bfin.c (output_file_start): Fix comment which referred to ia64_override_options.
* config/bfin/bfin.c (output_file_start): Fix comment which referred to
	ia64_override_options.

From-SVN: r119536
2006-12-05 10:35:36 +00:00
Jan Hubicka
bd9f1b4b91 cfgexpand.c (expand_one_var): Guard expand_one_stack_var by really_expand.
* cfgexpand.c (expand_one_var): Guard expand_one_stack_var by
	really_expand.

From-SVN: r119535
2006-12-05 10:15:28 +00:00
Bernd Schmidt
bbbc206e9f rtlanal.c (note_uses): Deal with SEQUENCEs.
* rtlanal.c (note_uses): Deal with SEQUENCEs.
	* config/bfin/bfin.c: Include "timevar.h".
	(bfin_flag_schedule_insns2, splitting_for_sched,
	bfin_flag_var_tracking): New variables.
	(print_operand): Handle '%!'.
	(override_options): Disable normal sched2 pass, instead set
	bfin_flag_schedule_insns2 for reorg to handle it.
	(output_file_start): Likewise for var-tracking.
	(bfin_optimize_loop): Take some care not to stumble over SEQUENCEs.
	(gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p):
	New functions.
	(bfin_reorg): Do second scheduling pass here, and call
	bfin_gen_bundles.  Use type_for_anomaly and trapping_loads_p instead
	of examining insns directly.  If bfin_flag_var_tracking, call
	var-tracking pass when done with everything else.
	* config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid.
	* config/bfin/bfin.md (UNSPEC_32BIT): New constant.
	(movsi_insn32): New pattern, with two new splits to create it
	before the final scheduling pass.
	(neghi2): Not a dsp32 insn, rather alu0.
	(movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn,
	movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2,
	extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2,
	mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2,
	ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2,
	movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low,
	movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
	ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3,
	addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3,
	subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3,
	addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3,
	flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi,
	flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3,
	flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts,
	flag_macv2hi_parts_acconly, flag_macinitv2hi_parts,
	flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl,
	mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3,
	lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store
	variants instead of ';'.
	(ror_one, rol_one): Likewise.  Make them dsp32 insns.
	(ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants.
	(align8, align16, align24): Now named patterns; also using '%!'.
	(mnop): New insn.

From-SVN: r119534
2006-12-05 08:49:56 +00:00
Kazu Hirata
9fc4da9d86 darwin.h, [...]: Fix comment typos.
* config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c,
	tree-vect-generic.c, tree-vect-transform.c: Fix comment typos.

From-SVN: r119533
2006-12-05 08:27:27 +00:00
Trevor Smigiel
20e9e7597f spu-protos.c (spu_split_address): Add.
* config/spu/spu-protos.c (spu_split_address): Add.
	* config/spu/spu.c (spu_split_address): Add.
	(print_operand): Handle HIGH.
	(spu_legitimate_address):  Don't test for aligned CONST.
	(spu_expand_mov):  Don't split addresses here.
	* config/spu/constraints.md (A): Don't test legitimate_const.
	* config/spu/spu.md: Add split of movsi patterns for PIC mode.
	(ceq_di): Use correct predicates.

From-SVN: r119532
2006-12-05 03:55:38 +00:00
Eric Christopher
304c85e6f0 darwin.h: Update copyright notice.
2006-12-04  Eric Christopher  <echristo@apple.com>

        * config/darwin.h: Update copyright notice.
        * config/i386/darwin.h: Ditto.

From-SVN: r119531
2006-12-05 02:23:18 +00:00
Daniel Berlin
e5ebbea51e tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call set_used_smts.
2006-12-04  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call
	set_used_smts.
	* tree-ssa-structalias.c (set_used_smts): Export.
	(find_what_p_points_to): Don't call set_used_smts here.
	* tree-ssa-structalias.h (set_used_smts): Add prototype.

From-SVN: r119528
2006-12-05 00:44:24 +00:00
GCC Administrator
b8d85341b6 Daily bump.
From-SVN: r119524
2006-12-05 00:18:00 +00:00
Jan Hubicka
26979bc292 cp-objcp-common.c (cp_expr_size): Return NULL in the case size is undefined.
* cp-objcp-common.c (cp_expr_size): Return NULL in the case
	size is undefined.

	* builtins.c (fold_builtin_memory_op): Check that expr_size match.
	* explow.c (expr_size, int_expr_size): Assert that size is non_NULL.

From-SVN: r119515
2006-12-04 22:51:42 +00:00
Tobias Burnus
a74897c141 re PR fortran/29962 (Initialization expressions)
fortran/
2006-12-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/29962
	* expr.c (check_intrinsic_op): Allow noninteger exponents for F2003.
   
     
testsuite/
2006-12-04  Tobias Burnus  <burnus@net-b.de>

	PR fortran/29962
	* initialization_4.f90: Test noninteger exponents (-std=f95).
	* initialization_5.f90: New test for noninteger exponents with -std=f2003

From-SVN: r119505
2006-12-04 21:02:43 +01:00
Paul Thomas
dd5ecf4155 [multiple changes]
2006-12-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29821
	* resolve.c (resolve_operator): Only return result of
	gfc_simplify_expr if expression is constant.


2006-12-04  Paul  Thomas <pault@gcc.gnu.org>

	PR fortran/29821
	* gfortran.dg/parameter_array_section_1.f90: New test.

From-SVN: r119504
2006-12-04 19:30:33 +00:00
Daniel Berlin
c58936b6b7 tree-ssa-alias.c (compute_may_aliases): Compute flow sensitive before flow insensitive.
2006-12-04  Daniel Berlin  <dberlin@dberlin.org>
	
	* tree-ssa-alias.c (compute_may_aliases):
	Compute flow sensitive before flow insensitive.
	(compute_flow_sensitive_aliasing): Don't try to add
	a symbol memory tag to itself.
	
	* alias.h (alias_set_subset_of): New prototype.

	* alias.c (alias_set_subset_of): New function.

	* tree-ssa-structalias.c: Update comments.
	(struct variable_info): Add finished_solution.
	(new_varinfo): Set finished solution to NULL.
	(var_escaped_vars): Remove.
	(escaped_vars_tree): Remove.
	(escaped_vars_id): Remove.
	(nonlocal_vars_id): Remove.
	(constraint_expr_type): Add INCLUDES.
	(graph_size): Removed.
	(dump_constraint): Support INCLUDES.
	(build_constraint_graph): Ditto.
	(collapse_nodes): Add merge_solutions argument.
	Don't merge attributes.
	(process_unification_queue): Just use collapse_nodes.
	(perform_var_substitution): Update call to collapse_nodes.
	(get_constraint_exp_from_ssa_var): Use INCLUDES.
	(process_constraint): Fix non-field sensitive handling
	Handle includes.
	(get_constraint_for): Use INCLUDES.
	(make_constraint_from_anything): Renamed from
	make_constraint_from_escaped.
	(make_constraint_to_escaped): Removed.
	(find_global_initializers): Removed.
	(create_variable_info_for): Do not make constraints to escaped
	vars anymore.
	(dump_solution_for_var): Don't print out the equivalent points-to
	sets, just use the name of the variable it shares it with.
	(intra_create_variable_infos): Use INCLUDES.
	Change nonlocal variable sets to anything sets.
	(init_base_vars): Remove escaped_vars and nonlocal_var
	initialization. 
	(find_escape_constraints): Removed.
	(delete_points_to_sets): Remove dead code.
	(used_smt_calculated): New variable.
	(set_used_smts): New function.
	(merge_smts_into): New function.
	(find_what_p_points_to): Modify to use SMTs.
	(create_nonlocal_var): Remove.
	
	* tree-ssa-operands.c (access_can_touch_variable): Remove
	reference to nonlocal_all. 

	* tree-ssa.c (verify_name_tags): Remove.

From-SVN: r119502
2006-12-04 19:07:05 +00:00
Mark Mitchell
2c05d05ede re PR c++/29733 (ICE on initialization of function type)
PR c++/29733
	* pt.c (tsubst_decl): Disallow variables of function type.
	PR c++/29733
	* g++.dg/template/crash61.C: New test.

From-SVN: r119500
2006-12-04 18:08:11 +00:00
Mark Mitchell
7b5d1e2736 re PR c++/29632 (ICE on invalid code: regenerate_decl_from_template, at cp/pt.c:10969)
PR c++/29632
	* call.c (add_builtin_candidate): Do not permit NULL pointer
	constants to be compared with template parameters.
	PR c++/29632
	* g++.dg/template/error23.C: New test.

From-SVN: r119499
2006-12-04 18:00:32 +00:00
Carlos O'Donell
7f575bf6d4 unwind-arm.c: Adjust __cxa_type_match declaration.
gcc/

2006-12-04  Carlos O'Donell  <carlos@codesourcery.com>

	* config/arm/unwind-arm.c: Adjust __cxa_type_match declaration.
	(__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match.

From-SVN: r119498
2006-12-04 17:25:36 +00:00
Andrew MacLeod
32ace6e2a6 Switch live on entry to a per block basis from per variable.
* tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
	* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
	(add_livein_if_notdef): Delete.
	(loe_visit_block): New.  Propogate live on entry info for a block into
	each predecessor.  If it changes, make sure it is visited again.
	(live_worklist): Visit every block and update the live on entry info 
	for preds.  Iterate over any that changed.
	(set_var_live_on_entry): Populate the live on entry blocks with bits
	based on the immediate uses of a var.
	(calculate_live_on_entry): Remove.
	(calculate_live_on_exit): Calculate live on exit based on the newly
	oriented live on entry bits.
	(calculate_live_ranges): Build live on entry and exit vectors.
	(dump_live_info): Use new orientation of live on entry bitmaps.
	(verify_live_on_entry): New.  Split out verification code from old
	calculate_live_on_entry routine.
	* tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
	(live_entry_blocks): Rename to live_on_entry and return bitmap for a
	basic_block instead of for a partition.
	(live_merge_and_clear): Add asserts.
	(make_live_on_entry): Set partition bit in basic block vector.

From-SVN: r119495
2006-12-04 14:26:37 +00:00
Uros Bizjak
b9ca581120 sse-18.c: Pass if CPU has no SSE2 support.
* gcc.target/i386/sse-18.c: Pass if CPU has no SSE2 support.

From-SVN: r119493
2006-12-04 13:59:11 +01:00
Paul Thomas
98bbe5ee70 re PR fortran/29916 ([4.1 only] Dimension of a function result as host association does not work)
fortran/
2006-12-04  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/29916
    * resolve.c (resolve_symbol): Allow host-associated variables
      in the specification expression of an array-valued function.
    * expr.c (check_restricted): Accept host-associated dummy
      array indices.

testsuite/
2006-12-04  Paul Thomas  <pault@gcc.gnu.org>

    PR fortran/29916
    * gfortran.dg/host_dummy_index_1.f90: Added additional test.

From-SVN: r119489
2006-12-04 12:16:12 +01:00
Jakub Jelinek
22568cc62c re PR middle-end/29947 (OpenMP parallel for fails for reversed loop range)
PR libgomp/29947
	* omp-low.c (expand_omp_for_static_nochunk,
	expand_omp_for_static_chunk): Do all arithmetics in signed rather than
	unsigned type.

	* loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
	start if there shouldn't be any loop iterations.
	(gomp_loop_ordered_static_start): Remove start == end test.
	* testsuite/libgomp.c/pr29947-1.c: New test.
	* testsuite/libgomp.c/pr29947-2.c: New test.

From-SVN: r119485
2006-12-04 11:26:00 +01:00
Jakub Jelinek
d3c673c74a re PR middle-end/29965 (OpenMP vs always throw in a loop)
PR middle-end/29965
	* omp-low.c (determine_parallel_type): Don't try to optimize combined
	parallels if region->exit or region->inner->exit is NULL.
	(expand_omp_parallel): Handle NULL region->exit even if cfg is already
	built.
	(expand_omp_for_generic): Handle NULL region->cond and region->exit.
	(expand_omp_for): Use expand_omp_for_generic if either region->cond
	or region->exit is NULL.
	(expand_omp_sections): Handle NULL region->cond or region->exit.
	(expand_omp_synch): 

	* gcc.dg/gomp/pr29965-1.c: New test.
	* gcc.dg/gomp/pr29965-2.c: New test.
	* gcc.dg/gomp/pr29965-3.c: New test.
	* gcc.dg/gomp/pr29965-4.c: New test.
	* gcc.dg/gomp/pr29965-5.c: New test.
	* gcc.dg/gomp/pr29965-6.c: New test.
	* g++.dg/gomp/pr29965-1.C: New test.
	* g++.dg/gomp/pr29965-2.C: New test.
	* g++.dg/gomp/pr29965-3.C: New test.
	* g++.dg/gomp/pr29965-4.C: New test.
	* g++.dg/gomp/pr29965-5.C: New test.
	* g++.dg/gomp/pr29965-6.C: New test.
	* g++.dg/gomp/pr29965-7.C: New test.
	* g++.dg/gomp/pr29965-8.C: New test.
	* g++.dg/gomp/pr29965-9.C: New test.
	* g++.dg/gomp/pr29965-10.C: New test.

From-SVN: r119483
2006-12-04 11:20:51 +01:00
Eric Botcazou
94983d3065 sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
* config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete.
	* config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.

From-SVN: r119482
2006-12-04 09:31:48 +00:00
Eric Botcazou
8f6e6bf375 tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and TYPE_MAX_VALUE for scalar types here but...
* tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and
	TYPE_MAX_VALUE for scalar types here but...
	(walk_tree): ...there instead.  Return NULL_TREE if the TYPE_DECL
	is attached an error mark, and the return value of the callback
	if it is not NULL_TREE.

cp/
	* pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
	Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.

testsuite/
	* gnat.dg/pointer_variable_bounds.adb: New test.
	* gnat.dg/pointer_variable_bounds.ads: Likewise.
	* gnat.dg/pointer_variable_bounds_q.ads: Likewise.

From-SVN: r119481
2006-12-04 07:47:32 +00:00
Eric Christopher
b4fc8a637b stack-prot-kernel.c: Skip for x86_64-*-darwin.
2006-12-03  Eric Christopher  <echristo@apple.com>

        * gcc.target/i386/stack-prot-kernel.c: Skip for x86_64-*-darwin.

From-SVN: r119480
2006-12-04 06:35:33 +00:00
Ben Elliston
ceebb5f568 * config/spu/spu.md (_mulv4si3): Remove unused local variables.
From-SVN: r119479
2006-12-04 16:38:21 +11:00
Richard Henderson
dd90d2b210 re PR c++/14329 ([4.1 only] badly formatted warnings for SRA replacements used uninitialized)
2006-12-03  Richard Henderson  <rth@redhat.com>
            Andrew Pinski  <pinskia@gmail.com>

        PR C++/14329
        * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.

2006-12-03  Richard Henderson  <rth@redhat.com>
            Andrew Pinski  <pinskia@gmail.com>

        PR C++/14329
        * g++.dg/warn/unit-1.C: New test.




Co-Authored-By: Andrew Pinski <pinskia@gmail.com>

From-SVN: r119478
2006-12-03 18:24:42 -08:00
Eric Christopher
bd6a088940 re PR target/24598 (Need to support odcctools and its ablity to use --prefix and libtool)
2006-12-03  Eric Christopher  <echristo@apple.com>

        PR target/24598
        * config/t-slibgcc-darwin: Pass -install_name.
        * config/darwin.h (LINK_COMMAND_SPEC): Remove use of
        libtool. Only pass through options that the linker recognizes.
        (LINK_SPEC): Update comment. Translate options.
        (STARTFILE_SPEC): Add dylib1.o for shared libraries.
        * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above.

From-SVN: r119477
2006-12-04 02:10:10 +00:00
GCC Administrator
d184546c66 Daily bump.
From-SVN: r119475
2006-12-04 00:18:04 +00:00
Uros Bizjak
b20e03dfaf visibility-11.c: Compile with -mstringop-strategy=libcall.
* gcc.dg/visibility-11.c: Compile with -mstringop-strategy=libcall.

From-SVN: r119470
2006-12-03 21:19:15 +01:00
Dorit Nuzman
0f6909b963 vect.exp: Enable tests to run on spu.
* g++.dg/vect/vect.exp: Enable tests to run on spu.
        * gcc.dg/vect/vect.exp: Enable tests to run on spu.
        * gcc.dg/vect/no-section-anchors-vect-69.c: Reduce array size.
        * gcc.dg/vect/vect-70.c: Reduce array size.
        * gcc.dg/vect/fast-math-vect-reduc-7.c: Xfail for
        vect_no_compaer_double targets.
        * lib/target-supports.exp: Add spu to vect_no_align, no_vect_int_max,
        vect_float, vect_double, and vect_int.

	* config/spu/spu.md (smaxv4sf3, sminv4sf3): New.

From-SVN: r119469
2006-12-03 20:05:31 +00:00
Uros Bizjak
7372c0a430 re PR target/30041 (FAIL: gcc.target/i386/sse3-movddup.c (internal compiler error))
PR target/30041
        * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and
        operands[1] in insn constraint.  Correct type attribute to sselog1.

From-SVN: r119468
2006-12-03 20:40:06 +01:00
Dorit Nuzman
a77f72d36e pr16105.c: Remove xfail on vect_no_align targets.
* gcc.dg/vect/pr16105.c: Remove xfail on vect_no_align targets. Add
        test for loop versioning on vect_no_align targets.
        * gcc.dg/vect/pr20122.c: Likewise.
        * gcc.dg/vect/vect-105.c: Likewise.
        * gcc.dg/vect/vect-42.c: Likewise.
        * gcc.dg/vect/vect-43.c: Likewise.
        * gcc.dg/vect/vect-74.c: Likewise.
        * gcc.dg/vect/vect-75.c: Likewise.
        * gcc.dg/vect/vect-multitypes-3.c: Likewise.
        * gcc.dg/vect/vect-multitypes-6.c: Likewise.
        * gcc.dg/vect/vect-8.c: Remove xfail on vect_no_align targets.
        * gcc.dg/vect/vect-30.c: Remove xfail on vect_no_align targets.

From-SVN: r119466
2006-12-03 15:56:34 +00:00
Paul Thomas
06469efd1a re PR fortran/29642 (Fortran 2003: VALUE Attribute (call by value not call by reference for actual arguments))
2006-12-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29642
	* trans-expr.c (gfc_conv_variable): A character expression with
	the VALUE attribute needs an address expression; otherwise all
	other expressions with this attribute must not be dereferenced.
	(gfc_conv_function_call): Pass expressions with the VALUE
	attribute by value, using gfc_conv_expr.
	* symbol.c (check_conflict): Add strings for INTENT OUT, INOUT
	and VALUE.  Apply all the constraints associated with the VALUE
	attribute.
	(gfc_add_value): New function.
	(gfc_copy_attr): Call it for VALUE attribute.
	* decl.c (match_attr_spec): Include the VALUE attribute.
	(gfc_match_value): New function.
	* dump-parse-tree.c (gfc_show_attr): Include VALUE.
	* gfortran.h : Add value to the symbol_attribute structure and
	add a prototype for gfc_add_value
	* module.c (mio_internal_string): Include AB_VALUE in enum.
	(attr_bits): Provide the VALUE string for it.
	(mio_symbol_attribute): Read or apply the VLUE attribute.
	* trans-types.c (gfc_sym_type): Variables with the VLAUE
	attribute are not passed by reference!
	* resolve.c (was_declared): Add value to those that return 1.
	(resolve_symbol): Value attribute requires dummy attribute.
	* match.h : Add prototype for gfc_match_public.
	* parse.c (decode_statement): Try to match a VALUE statement.


2006-12-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29642
	* gfortran.dg/value_1.f90 : New test.
	* gfortran.dg/value_2.f90 : New test.
	* gfortran.dg/value_3.f90 : New test.
	* gfortran.dg/value_4.f90 : New test.
	* gfortran.dg/value_4.c : Called from value_4.f90.

From-SVN: r119461
2006-12-03 07:18:22 +00:00
GCC Administrator
3c5e8e4492 Daily bump.
From-SVN: r119459
2006-12-03 00:17:51 +00:00
H.J. Lu
edccdcb198 re PR target/30040 (-mtune=native is wrong for Core 2 Duo and Core Duo)
2006-12-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/30040
	* config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
	(bit_SSSE3): New.
	(host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
	processor detection.

	* config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
	-march=native if there is no -mtune=*.

	* config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
	coretypes.h.

From-SVN: r119454
2006-12-02 14:18:25 -08:00
Andrew Pinski
54e67af0ad re PR c++/30033 (ICE on valid with --std=c++0x (static_assert))
2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C++/30033
        * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.

2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C++/30033
        *  g++.dg/cpp0x/static_assert4.C: New testcase.

From-SVN: r119449
2006-12-02 09:01:04 -08:00
Lee Millward
5f65db9f8c fix testcase from previous commit
From-SVN: r119448
2006-12-02 16:54:35 +00:00
Kaveh R. Ghazi
b5147de7c1 configure.in: Update MPFR version in error message.
* configure.in: Update MPFR version in error message.

	* configure: Regenerate.

gcc:
	* doc/install.texi: Update recommended MPFR version.  Remove
	obsolete reference to cumulative patch.

gcc/testsuite:
	* gcc.dg/torture/builtin-sin-mpfr-1.c: Update MPFR comment.

From-SVN: r119447
2006-12-02 16:52:15 +00:00
Lee Millward
f1f66b423f re PR c/27953 (ICE with invalid function definitions)
PR c/27953
	* c-decl.c (store_parm_decls_oldstyle): Robustify
        * gcc.dg/pr27953.c: New test.

From-SVN: r119446
2006-12-02 16:34:26 +00:00
Jan Hubicka
cc0faf9dc9 i386.c (pentium4_cost, [...]): Update 32bit memcpy/memset decriptors.
* config/i386/i386.c (pentium4_cost, nocona_cost): Update
	32bit memcpy/memset decriptors.
	(decide_alg): With -minline-all-stringops and sizes that are best
	to be copied via libcall still work hard enough to pick non-libcall
	strategy.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r119445
2006-12-02 13:16:27 +00:00
Kazu Hirata
9c134b65cd * config/i386/i386.c: Fix a comment typo.
From-SVN: r119443
2006-12-02 02:47:07 +00:00
Kazu Hirata
2f8e468bf3 builtins.c, [...]: Fix comment typos.
* builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c,
	config/i386/i386.c, config/i386/i386.h, config/mips/mips.h,
	config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c,
	config/sh/sh4-300.md, config/spu/spu-builtins.def,
	config/spu/spu-c.c, config/spu/spu-modes.def,
	config/spu/spu.c, config/spu/spu.md,
	config/spu/spu_internals.h, config/spu/vmx2spu.h,
	fold-const.c, fwprop.c, predict.c, tree-data-ref.h,
	tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
	tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c,
	tree-vectorizer.c, tree-vrp.c: Fix comment typos.  Follow
	spelling conventions.

From-SVN: r119442
2006-12-02 02:26:04 +00:00
Kazu Hirata
5681c208fa * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos.
From-SVN: r119441
2006-12-02 02:06:52 +00:00
Kazu Hirata
811895d518 * name-lookup.c: Follow spelling conventions.
From-SVN: r119440
2006-12-02 01:44:17 +00:00
Kazu Hirata
d3c56bc88f Makefile.in, [...]: Fix comment typos.
* Makefile.in, mingw32.h, trans.c: Fix comment typos.
	* gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
	Fix typos.

From-SVN: r119437
2006-12-02 01:03:11 +00:00
GCC Administrator
2b4d7fe163 Daily bump.
From-SVN: r119433
2006-12-02 00:17:43 +00:00
Geoffrey Keating
72c4a4ca45 decl.c (poplevel): Check DECL_INITIAL invariant.
* decl.c (poplevel): Check DECL_INITIAL invariant.
	(duplicate_decls): Preserve DECL_INITIAL when eliminating
	a new definition in favour of an old declaration.
	(start_preparsed_function): Define and document value of
	DECL_INITIAL before and after routine.
	(finish_function): Check DECL_INITIAL invariant.
	* parser.c 
	(cp_parser_function_definition_from_specifiers_and_declarator): 
	Skip duplicate function definitions.

From-SVN: r119427
2006-12-01 23:01:05 +00:00
Trevor Smigiel
01975fc73d spu.c (spu_immediate): Remove trailing comma.
* config/spu/spu.c (spu_immediate): Remove trailing comma.
	(reloc_diagnostic): Call warning when -mwarn-reloc is specified.
	* config/spu/spu.md: (zero_extendhisi2): Expand instead of split for
	better optimization.
	(floatv4siv4sf2): New.
	(fix_truncv4sfv4si2): New.
	(floatunsv4siv4sf2): New.
	(fixuns_truncv4sfv4si2): New.
	(addv16qi3): New.
	(subv16qi3): New.
	(negv16qi2): New.
	(mulv8hi3): New.
	(mulsi3): Remove.
	(mul<mode>3): New.
	(_mulv4si3): New.
	(cmp<mode>): Don't accept constant arguments for DI, TI and SF.
	* config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with
	spu_resolve_overloaded_builtin instead of static inline functions.

From-SVN: r119424
2006-12-01 22:51:06 +00:00
Eric Botcazou
f0dbdfbb4d fold-const.c (fold_binary): Use the precision of the type instead of the size of its mode to compute the...
* fold-const.c (fold_binary) <LT_EXPR>: Use the precision of the
	type instead of the size of its mode to compute the highest and
	lowest possible values.  Still check the size of the mode before
	flipping the signedness of the comparison.

From-SVN: r119422
2006-12-01 22:46:45 +00:00
Trevor Smigiel
09aad82b44 predicates.md (spu_mov_operand): Add.
* config/spu/predicates.md (spu_mov_operand): Add.
        * config/spu/spu.c (spu_expand_extv): Remove unused code.
        (print_operand_address, print_operand): Handle addresses containing AND.
        (spu_split_load, spu_split_store): Use updated movti pattern.
        * config/spu/spu.md: (_mov<mode>, _movdi, _movti): Handle loads and
        stores in mov patterns for correct operation of reload.
        (lq, lq_<mode>, stq, stq_<mode>): Remove.

From-SVN: r119421
2006-12-01 22:43:18 +00:00
Volker Reichelt
01c15146e4 re PR c++/30022 (ICE on vector operand in division)
PR c++/30022
	* typeck.c (type_after_usual_arithmetic_conversions):
	Fix assertion for vector types.
	(build_binary_op): Use temporary for inner type of vector types.

	* g++.dg/ext/vector5.C: New test.

From-SVN: r119416
2006-12-01 21:35:25 +00:00
Volker Reichelt
d8e1d61976 re PR c++/30021 (ICE on invalid parameter for main)
PR c++/30021
	* c-common.c (check_main_parameter_types): Check for error_mark_node.

	* g++.dg/other/main1.C: New test.

From-SVN: r119415
2006-12-01 21:28:35 +00:00
Thomas Koenig
07b3bbf200 re PR libfortran/29568 (implement unformatted files with subrecords (Intel style))
2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.dg/convert_implied_open.f90:  Change to
	new default record length.
	* gfortran.dg/unf_short_record_1.f90:  Adapt to
	new error message.
	* gfortran.dg/unformatted_subrecords_1.f90:  New test.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.h (gfc_option_t):  Add max_subrecord_length.
	(top level): Define MAX_SUBRECORD_LENGTH.
	* lang.opt:  Add option -fmax-subrecord-length=.
	* trans-decl.c:  Add new function set_max_subrecord_length.
	(gfc_generate_function_code): If we are within the main
	program and max_subrecord_length has been set, call
	set_max_subrecord_length.
	* options.c (gfc_init_options):  Add defaults for
	max_subrecord_lenght, convert and record_marker.
	(gfc_handle_option):  Add handling for
	-fmax_subrecord_length.
	* invoke.texi:  Document the new default for
	-frecord-marker=<n>.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* libgfortran/libgfortran.h (compile_options_t):  Add
	record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
	* runtime/compile_options.c (set_record_marker):  Change
	default to four-byte record marker.
	(set_max_subrecord_length):  New function.
	* runtime/error.c (translate_error):  Change error message
	for short record on unformatted read.
	* io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
	and continued.
	* io/file_pos.c (unformatted_backspace):  Change default of record
	marker size to four bytes.  Loop over subrecords.
	* io/open.c:  Default recl is max_offset.  If
	compile_options.max_subrecord_length has been set, set set
	u->recl_subrecord to its value, to the maximum value otherwise.
	* io/transfer.c (top level):  Add prototypes for us_read, us_write,
	next_record_r_unf and next_record_w_unf.
	(read_block_direct):  Separate codepaths for unformatted direct
	and unformatted sequential.  If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(write_buf):  Separate codepaths for unformatted direct and
	unformatted sequential. If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(us_read):  Add parameter continued (to indicate that bytes_left
	should not be intialized).  Change default of record marker size
	to four bytes. Use subrecord.  If the subrecord length is smaller than
	zero, this indicates a continuation.
	(us_write):  Add parameter continued (to indicate that the continued
	flag should be set).  Use subrecord.
	(pre_position):  Use 0 for continued on us_write and us_read calls.
	(skip_record):  New function.
	(next_record_r_unf):  New function.
	(next_record_r):  Use next_record_r_unf.
	(write_us_marker):  Default size for record markers is four bytes.
	(next_record_w_unf):  New function.
	(next_record_w):  Use next_record_w_unf.

From-SVN: r119412
2006-12-01 21:04:38 +00:00
Andrew MacLeod
7c6a62dd39 common.opt (ftree-combine-temps): Remove.
* common.opt (ftree-combine-temps): Remove.
	* tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
	(coalesce_ssa_name): Don't check for combine-temps.
	(coalesce_vars): Remove.
	(check_replaceable): Use num_imm_uses.
	(remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't 
	check for combine-temps.
	(rewrite_out_of_ssa): Never create a ref_count in the var_map.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
	to register_ssa_partition calls.
	* tree-ssa-live.c (register_ssa_partition): Remove prototype.
	(init_var_map, delete_var_map): remove refernces to ref_count.
	(create_ssa_var_map): Never calculate a ref count.
	(type_var_init): Remove.
	* tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
	(SSA_VAR_MAP_REF_COUNT): Delete.
	(create_ssa_var_map): Change Prototype to have no parameters.
	(version_ref_count): Delete.
	(register_ssa_partition): Remove 'is_use' paramater and don't set the
	ref_count vector.
	(type_var_num, type_var, type_var_first_partition,
	type_var_next_partition, type_var_dump, type_var_delete,
	type_var_remove_partition, type_var_find, type_var_compact,
	type_var_decompact): Remove.

	* gcc.dg/max-1.c: Remove reference to -fno-tree-lrs option.

From-SVN: r119409
2006-12-01 19:53:29 +00:00
Bernd Schmidt
35e3ced91a bfin.md (pushsi_insn, popsi_insn): Set correct addrtype attribute.
* config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype
	attribute.

From-SVN: r119408
2006-12-01 17:53:42 +00:00
Richard Guenther
e01e02016b re PR c++/29433 (using boost::MPL requires lots of memory)
2006-12-01  Richard Guenther  <rguenther@suse.de>

	PR c++/29433
	* dwarf2out.c (struct pubname_struct): Make name const.
	(add_pubtype): Do not xstrdup identifiers.

From-SVN: r119404
2006-12-01 16:37:38 +00:00
Ryan Mansfield
c3a88be88a re PR c++/29066 (ptrmemfunc_vbit_in_delta is broken)
2006-12-01  Ryan Mansfield  <rmansfield@qnx.com>

        PR c++/29066
        * typeck.c (build_binary_op):  Fix pointer to member function
        comparison for ptrmemfunc_vbit_in_delta targets.

2006-12-01  Ryan Mansfield  <rmansfield@qnx.com>

        PR c++/29066
        * g++.dg/expr/pr29066.c: New.

From-SVN: r119403
2006-12-01 15:55:11 +00:00
Bernd Schmidt
5308e94309 bfin.c (bfin_valid_add): Fix the logic that ensures multiword accesses are in range.
* config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures
	multiword accesses are in range.

From-SVN: r119402
2006-12-01 15:49:55 +00:00
H.J. Lu
fbb5445b5d [multiple changes]
2006-12-01  Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/29921
	* tree-ssa-ccp.c (canonicalize_float_value): New function.
	(set_lattice_value): Use canonicalize_float_value.

2006-12-01  H.J. Lu  <hongjiu.lu@intel.com>
	    Zdenek Dvorak <dvorakz@suse.cz>

	PR tree-optimization/29921
	* gcc.dg/pr29921-2.c: New test.

From-SVN: r119401
2006-12-01 06:49:15 -08:00
Andrew Pinski
b66b813d47 spu.c (spu_builtin_range): Move from spu-c.c
2006-11-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu.c (spu_builtin_range): Move from spu-c.c
        (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete.
        (spu_cpu_cpp_builtins): Remove.
        (spu_override_options): Don't set warn_main.
        (spu_force_reg): Move from spu-c.c.
        (spu_check_builtin_parm): Likewise.
        (expand_builtin_args): Likewise.
        (spu_expand_builtin_1): Likewise.
        (spu_expand_builtin): Likewise.
        * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set
        warn_main and targetm.resolve_overloaded_builtin.
        * config/spu/spu-c.c (spu_builtin_range): Remove.
        (spu_check_builtin_parm): Remove.
        (expand_builtin_args): Remove.
        (spu_expand_builtin_1): Remove.
        (spu_expand_builtin): Remove.
        (spu_cpu_cpp_builtins): Moved from spu.c
        (spu_force_reg): Remove.

From-SVN: r119397
2006-11-30 18:38:47 -08:00
Joseph Myers
8521c41417 re PR target/24036 ([e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143)
2006-12-01  Joseph Myers  <joseph@codesourcery.com>
            David Edelsohn  <edelsohn@gnu.org>

	PR target/24036
	* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
	HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
	* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
	HARD_REGNO_NREGS_WITH_PADDING): Define.
	* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
	HARD_REGNO_NREGS_WITH_PADDING): Define.
	* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
	Use new macros to detect modes with holes; do not look at integer
	units.
	(subreg_offset_representable_p): Check for and disallow cases
	where the modes use different numbers of bits from registers.
	* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
	constant for soft-float.
	(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
	containing doubles.
	(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
	in E500 double case.
	* config/rs6000/rs6000.md (movtf): Allow soft-float.
	(movtf_softfloat): New.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r119395
2006-12-01 02:25:22 +00:00
H.J. Lu
877c1c555f i386-cpuid.h (bit_SSE3): New.
2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.dg/i386-cpuid.h (bit_SSE3): New.
	(i386_get_cpuid): New function.
	(i386_cpuid_ecx): Likewise.
	(i386_cpuid_edx): Likewise.
	(i386_cpuid): Updated to call i386_cpuid_edx.

	* gcc.target/i386/sse3-addsubpd.c: New file.
	* gcc.target/i386/sse3-addsubps.c: Likewise.
	* gcc.target/i386/sse3-haddpd.c: Likewise.
	* gcc.target/i386/sse3-haddps.c: Likewise.
	* gcc.target/i386/sse3-hsubpd.c: Likewise.
	* gcc.target/i386/sse3-hsubps.c: Likewise.
	* gcc.target/i386/sse3-lddqu.c: Likewise.
	* gcc.target/i386/sse3-movddup.c: Likewise.
	* gcc.target/i386/sse3-movshdup.c: Likewise.
	* gcc.target/i386/sse3-movsldup.c: Likewise.

From-SVN: r119390
2006-11-30 16:29:08 -08:00
GCC Administrator
c928f426c1 Daily bump.
From-SVN: r119388
2006-12-01 00:17:52 +00:00
Dirk Mueller
1891dec445 re PR c++/18313 (Missing warning for superfluous const's in return types)
2006-12-01  Dirk Mueller  <dmueller@suse.de>

        PR c++/18313
        * decl.c (grokdeclarator): Warn for type qualifiers on return
        type for non-dependent types.
        * pt.c (tsubst_function_type): Warn for type qualifiers on
        return type for dependent types.

        * g++.dg/warn/Wreturn-type-4.C: New testcase.

From-SVN: r119382
2006-11-30 23:08:27 +00:00
Richard Sandiford
e25615581d simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than simplify_gen_subreg.
gcc/
	* simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than
	simplify_gen_subreg.

From-SVN: r119380
2006-11-30 21:54:20 +00:00
Geoffrey Keating
d71176b6ad rtti.c (get_tinfo_decl): Handle return value from pushdecl_top_level_and_finish.
* rtti.c (get_tinfo_decl): Handle return value from
	pushdecl_top_level_and_finish.

From-SVN: r119379
2006-11-30 21:53:57 +00:00
Andrew MacLeod
9fa2efcd3d Implement coalesce list with hash table instead of linked list.
* tree-ssa-live.c (create_coalesce_list): Create a hash table.
	(COALESCE_HASH_FN): New.  Define hash function.
	(partition_pair_map_hash): New.  Hash value for a partition pair.
	(partition_pair_map_eq): New.  Equality for hash pairs.
	(create_coalesce_list): Create hash table.
	(delete_coalesce_list): Free hash table.
	(find_partition_pair): Find/create pairs in hash table.
	(compare_pairs):  Sort pairs in ascending order now.
	(num_coalesce_pairs): New.  Number of pairs in hash table.
	(struct partition_pair_iterator): Iterator struct for pair table.
	(first_partition_pair): Iterator function for first pair.
	(end_partition_pair_p): Iterator function for end of iteration.
	(next_partition_pair): Iterator function for next pair.
	(FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
	(sort_coalesce_list): Sort pairs from hash table into an array.
	(pop_best_coalesce): Take pairs from the array.
	(dump_coalesce_list): Update to use hash table or sorted array.
	* tree-ssa-live.h (struct partition_pair_d): Remove next field.
	(struct coalesce_list_d): Add hash table related fields.

From-SVN: r119378
2006-11-30 21:36:32 +00:00
Jan Hubicka
f7b410e0fb re PR middle-end/30028 (bcopy is wrongly converted to memcpy)
PR middle-end/30028
	* builtins.c (fold_builtin_memory_op): Fix typo in the check for
	memmove/bcopy->memcpy conversion.

From-SVN: r119375
2006-11-30 19:36:02 +00:00
Carlos O'Donell
11d90e2dd0 tm.texi (MAX_OFILE_ALIGNMENT): Document default.
gcc/

2006-11-30  Carlos O'Donell  <carlos@codesourcery.com>

	* doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default.
	* config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT): 
	Default is the largest alignment supported for 32-bit ELF and 
	representable on a 32-bit host.

From-SVN: r119374
2006-11-30 19:25:08 +00:00
Janis Johnson
2a061db501 dfp-bit.c (DFP_TO_INT): Use wider precision.
gcc/
	* config/dfp-bit.c (DFP_TO_INT): Use wider precision.
testsuite/
	* gcc.dg/dfp/convert-int-max.c: New test.
	* gcc.dg/dfp/convert-int-max-fold.c: New test.

From-SVN: r119368
2006-11-30 17:58:03 +00:00
Jan Hubicka
456cde3030 tree-ssa-operands.h (struct ssa_operands): New.
* tree-ssa-operands.h (struct ssa_operands): New.
	* tree-flow-inline.h (gimple_ssa_operands): New function.
	* tree-flow.h: (struct gimple_df): Add ssa_operands.
	* Makefile.in: Remove gt-tree-ssa-operands.h
	* tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h
	(free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs,
	operand_memory, operand_memory_index, ops_active): Remove statics.
	(ALLOC_OPTYPE): Update.
	(operand_build_sort_virtual): Update.
	(ssa_operands_active): Update.
	(init_ssa_operands): Update.
	(fini_ssa_operands): Update.
	(ssa_operand_alloc): Update.
	(INITIALIZE_USE): Update.
	(finalize_ssa_use_ops): Update.
	(finalize_ssa_v_may_def_ops): Update.
	(finalize_ssa_vuse_ops): Update.
	(finalize_ssa_v_must_def_ops): Update.

From-SVN: r119363
2006-11-30 15:30:01 +00:00
Richard Guenther
c6b1b49b1e tree-vectorizer.h (vectorizable_function): Export.
2006-11-30  Richard Guenther  <rguenther@suse.de>

	* tree-vectorizer.h (vectorizable_function): Export.
	* tree-vect-transform.c (vectorizable_function): Likewise.
        * tree-vect-patterns.c (vect_recog_pow_pattern): Set
        type_in to scalar type in recognition of squaring.
	Make sure the target can vectorize sqrt in recognition
	of sqrt, set type_in to vector type in this case.

	* gcc.dg/vect/vect-pow-1.c: Rename ...
	* gcc.dg/vect/fast-math-vect-pow-1.c: ... to this.  Use
	floats instead of doubles, check successful vectorization.

From-SVN: r119362
2006-11-30 14:30:00 +00:00
Uros Bizjak
3c4ace25d7 i386.md (R10_REG): New constant.
* config/i386/i386.md (R10_REG): New constant.
	* config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG.
	(ix86_emit_restore_regs_using_mov): Ditto.
	(ix86_expand_call): Ditto.
	(x86_output_mi_thunk): Ditto. Also use R10_REG.

From-SVN: r119360
2006-11-30 11:57:34 +01:00
Steven Bosscher
ac3768f69a cselib.c (cselib_init): Use special MEM rtx form for callmem.
* cselib.c (cselib_init): Use special MEM rtx form for callmem.
	* alias.c (canon_true_dependence): Update comment.

From-SVN: r119358
2006-11-30 07:24:03 +00:00
Steven Bosscher
e9ec5c6b5e cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline at the end of a diagnostics message.
* cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline
	at the end of a diagnostics message.

	* alloc-pool.c (pool_free): Postpone clearing the pool entry
	until after asserting that it was allocated in the right pool.

	* cfgrtl.c (print_rtl_with_bb): Print predecessor and
	successor edge information as well.  Make output of live regs
	on exit consistent with live regs on entry.

From-SVN: r119357
2006-11-30 07:22:04 +00:00
Uros Bizjak
e26feb2c60 re PR target/29852 (x86_64: SSE version missing for fmod{d,s,x}f3)
PR target/29852
	* config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable
	insn patterns for TARGET_80387.
	(*truncxfsf2_i387, *truncxfdf2_i387): Remove.
	(*truncxfsf2_i387_1): Rename to *truncxfsf2_i387.
	(*truncxfdf2_i387_1): Rename to *truncxfdf2_i387.
	(fmod<mode>3, remainder<mode>3): Enable expaders for SSE math.
	Generate truncxf<mode>2 insn patterns for strict SSE math.

From-SVN: r119356
2006-11-30 07:54:47 +01:00
Uros Bizjak
8002331ec5 i386.md (movsf_1): Enable pattern for standard 80387 constants before reload when optimizing for size.
* config/i386/i386.md (movsf_1): Enable pattern for standard
	80387 constants before reload when optimizing for size.
	(*movdf_nointeger, *movdf_integer): Ditto.
	(*movxf_nointeger, *movxf_integer): Disable patterns for standard
	80387 constants before reload when not optimizing for size.

	(*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float
	extension of XFmode input operands.

From-SVN: r119355
2006-11-30 07:47:24 +01:00
Andrew Pinski
8fdb55720f crt0.c (__dso_handle): Define.
2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/crt0.c (__dso_handle): Define.

From-SVN: r119354
2006-11-29 19:37:34 -08:00
Kaz Kojima
2954a81343 emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially when clearing the used flags.
* emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially
	when clearing the used flags.

From-SVN: r119353
2006-11-30 03:13:29 +00:00
Andrew Pinski
f21840c3c7 spu.md (extend_compare): Fix whitespace formatting.
2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu.md (extend_compare): Fix whitespace formatting.

From-SVN: r119350
2006-11-29 17:19:00 -08:00
Andrew Pinski
357f76d7f0 re PR target/29945 (ICE in simplify_subreg with simple code in libgfortran)
2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/29945
        * config/spu/spu.md  (extend_compare<mode>): New pattern.
        (extend_compare): Change to expand and use the above pattern.

2006-11-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR target/29945
        * gcc.c-torture/compile/pr29945.c: New testcase.

From-SVN: r119348
2006-11-29 17:05:58 -08:00
GCC Administrator
b472dffcc3 Daily bump.
From-SVN: r119345
2006-11-30 00:17:59 +00:00
Joseph Myers
2503da8c86 vect.exp: Skip PowerPC targets not supporting -maltivec.
* gcc.dg/vect/vect.exp: Skip PowerPC targets not supporting
	-maltivec.

From-SVN: r119338
2006-11-30 00:12:49 +00:00
Janis Johnson
2d42636d4d * dfp-bit.c (DFP_TO_INT): Fix rounding mode.
From-SVN: r119335
2006-11-29 23:11:01 +00:00
Eric Christopher
3a7d5586cb prefetch-3.c: Allow x86_64, but require ilp32.
2006-11-29  Eric Christopher  <echristo@apple.com>

        * gcc.dg/tree-ssa/prefetch-3.c: Allow x86_64, but require ilp32.

From-SVN: r119333
2006-11-29 19:31:24 +00:00
Janis Johnson
cc9d154c48 * gcc.dg/dfp/convert-int.c: Remove dg-do compile, fix comment.
From-SVN: r119331
2006-11-29 18:37:48 +00:00
Janis Johnson
70d53c3bc0 * gcc.dg/dfp/convert-bfp.c: Skip long double conversions.
From-SVN: r119330
2006-11-29 18:36:55 +00:00
Janis Johnson
240e6b6bd0 decRound.c: Move declarations to new file, update comments.
libdecnumber/
	* decRound.c: Move declarations to new file, update comments.
	* decRound.h: New file.
gcc/
	* mklibgcc.in: Fix dependencies for dfp-bit.c.
	* config/dfp-bit.h (CONTEXT_ROUND): Delete.
	(DFP_INIT_ROUNDMODE): Define.
	* config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.

From-SVN: r119329
2006-11-29 18:34:56 +00:00
Tehila Meyzels
07c0282832 haifa-sched.c: Remove define LINE_NOTE(INSN).
2006-11-29  Tehila Meyzels  <tehila@il.ibm.com>

      * haifa-sched.c: Remove define LINE_NOTE(INSN).
      Remove line_note_head.
      Update documentation.
      (associate_line_notes_with_blocks): Kill.
      (extend_bb): Remove basic block argument, put void instead.
      Remove line number handling for each bb.
      (save_line_notes): Kill.
      (restore_line_notes): Kill.
      (sched_init): Remove line_note_head initialization.
      Change extend_bb call.
      (sched_finish): Remove free of line_note_head.
      (add_block): Change extend_bb call.
      * sched-ebb.c (schedule_ebb): Remove save_line_notes,
      rm_line_notes and restore_line_notes calls.
      (schedule_ebbs): Remove rm_redundant_line_notes.
      * sched-int.h (struct haifa_insn_data): Remove line_note.
      (save_line_notes): Remove declaration.
      (restore_line_notes): Remove declaration.
      * modulo-sched.c (loop_canon_p): Update debug info printing
      by using insn locators instead of line note.
      (sms_schedule): Update debug info printing, by using insn
      locators instead of line note.
      * sched-rgn.c (debug_dependencies): Remove handling of case
      n>0 (line number), since it's a dead code.
      (schedule_region): Remove save_line_notes and
      restore_line_notes calls.

From-SVN: r119328
2006-11-29 18:24:14 +00:00
Joseph Myers
14502dad06 predicates.md (gpc_reg_operand): Check invalid_e500_subreg.
* config/rs6000/predicates.md (gpc_reg_operand): Check
	invalid_e500_subreg.
	* config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
	SImode subregs of SPE vectors.
	* config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
	* jump.c (true_regnum): Require subregs to satisfy
	subreg_offset_representable_p.

From-SVN: r119324
2006-11-29 17:33:59 +00:00
Daniel Berlin
d315c4a9f8 Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h, since it no longer exists.
2006-11-29  Daniel Berlin  <dberlin@dberlin.org>
	    Steven Bosscher <stevenb.gcc@gmail.com>

	* Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
	since it no longer exists.


Co-Authored-By: Steven Bosscher <stevenb.gcc@gmail.com>

From-SVN: r119323
2006-11-29 17:17:56 +00:00
Duncan Sands
32c8bce718 re PR tree-optimization/23744 (VRP does not merge discontinuous ranges of PHIs)
PR tree-optimization/23744
	* tree-vrp.c (vrp_meet): do not require ranges to intersect.
	* testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
	* testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.

From-SVN: r119320
2006-11-29 16:00:07 +00:00
Lee Millward
7f9faf5e70 re PR c++/29022 (ICE using operator int in invalid class hierarchy)
PR c++/29022
	* parser.c (cp_parser_class_head): Move processing
	of any base classes to...
	(cp_parser_class_specifier) ...here. Take an extra
	tree* parameter for any base classes. Only process
	them if the opening brace was found.

	* g++.dg/inherit/virtual2.C: New test.
	* g++.dg/inherit/virtual3.C: Likewise.
	* g++.old-deja/g++.bugs/900121_05.C: Adjust error markers.
	* g++.dg/inherit/error2.C: Likewise.
	* g++.dg/template/instantiate1.C: Likewise.

From-SVN: r119318
2006-11-29 15:19:39 +00:00
Jie Zhang
8b65a354f0 * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
From-SVN: r119315
2006-11-29 14:52:31 +00:00
J"orn Rennecke
dc557046cf sh.opt (minline-ic_invalidate): New option.
* sh.opt (minline-ic_invalidate): New option.
	(musermode): Adjust comment.
	* sh.c (sh_initialize_trampoline): Emit library call unless
	is set; if it is set, don't emit library call if we can use icbi
	instead.
	* sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
	icbi for TARGET_SH4_300.
	* t-sh (LIB1ASMFUNCS_CACHE): Set.
	* doc/invoke.texi: Document -minline-ic_invalidate; Update
	-musermode documentation.

From-SVN: r119314
2006-11-29 14:35:38 +00:00
Jim Tison
6db2889286 gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, [...]): Define.
2006-11-29  Jim Tison  <jtison@us.ibm.com>

	* gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
	__gthread_recursive_mutex_init): Define.

From-SVN: r119311
2006-11-29 13:00:12 +00:00
Joseph Myers
0cfbc62b0b rs6000.c (rs6000_gimplify_va_arg): If STRICT_ALIGNMENT and the type is more aligned than the saved registers...
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
	STRICT_ALIGNMENT and the type is more aligned than the saved
	registers, copy via a temporary.

From-SVN: r119307
2006-11-29 12:49:06 +00:00
Andrew Pinski
e969dbde29 re PR tree-optimization/29984 (SPE GCC segfaults with MAX_EXPR <a, a>)
2006-11-28  Andrew Pinski  <pinskia@gmail.com>

        PR tree-opt/29984
        * gcc.dg/tree-ssa/reassoc-12.c: New test.

2006-11-28  Andrew Pinski  <pinskia@gmail.com>

        PR tree-opt/29984
        * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
        and MIN_EXRP.

From-SVN: r119303
2006-11-28 23:23:11 -08:00
GCC Administrator
fd074cfecc Daily bump.
From-SVN: r119301
2006-11-29 00:17:52 +00:00
Bob Wilson
f8383f28e2 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
From-SVN: r119296
2006-11-28 21:22:14 +00:00
Jan Hubicka
5cd4ec7f24 Privatize SSA variables into gimple_df.
* tree-flow-inline.h
	(gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
	gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
	gimple_nonlocal_all): New accessors.
	(first_referenced_var): Update.
	(mark_stmt_modified): Update.
	(is_call_clobbered): Update.
	(mark_call_clobbered): Update.
	(clear_call_clobbered): Update.
	(mark_non_addressable): Update.
	* tree-vrp.c (get_value_range): Update.
	* tree-into-ssa.c (in_ssa_p): Kill.
	(get_default_def_for): Update.
	(rewrite_into_ssa): Update.
	* tree-complex.c (init_parameter_lattice_values): Update.
	(update_complex_assignment): Update.
	(update_parameter_components): Update.
	(expand_complex_libcall): Update.
	(expand_complex_operations_1): Update.
	* tree-tailcall.c (arg_needs_copy_p): Update.
	(add_virtual_phis): Update.
	(tree_optimize_tail_calls_1): Update.
	* tree-ssa-dse.c (memory_ssa_name_same): Update.
	* tree-ssa-copyrename.c
	(copy_rename_partition_coalesce): Update.
	* tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
	* tree-ssa-propagate.c (set_rhs): Update.
	* tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
	addressable_vars, global_var):Kill.
	(set_initial_properties): Update.
	(init_alias_info): Update.
	(finalize_ref_all_pointers): Update.
	(setup_pointers_and_addressables): Update.
	(maybe_create_global_var): Update.
	(create_global_var): Update.
	(dump_points_to_info): Update.
	* function.h (struct gimple_df): Forward declare.
	(struct function): Add GIMPLE_DF field.
	* gimplify.c (force_gimple_operand): Update.
	* tree-dfa.c (referenced_vars, default_defs): KIll.
	(make_rename_temp): Update.
	(dump_variable): Update.
	(referenced_var_lookup): Update.
	(referenced_var_check_and_insert): Update.
	(default_def): Rename to ...
	(gimple_default_def): ... this one; accept cfun argument.
	(set_default_def): Update.
	* tree-cfgcleanup.c (modified_noreturn_calls): Kill.
	(cleanup_control_flow): Update.
	* tree-ssa-pre.c (compute_avail): Update
	* tree-ssa-live.c (calculate_live_on_entry): Update.
	* tree-ssa.c (verify_use): Update.
	(verify_call_clobbering): Update.
	(verify_call_clobbering): Update.
	(init_tree_ssa): Update.
	(delete_tree_ssa): Update.
	* tree-outof-ssa.c (coalesce_ssa_name): Update.
	(rewrite_out_of_ssa): Update.
	* tree-flow.h (gimple_df): New structure collecting dataflow variables.
	(FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
	private accessors.
	(in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
	ssa_names, global_var, nonlocal_all, call_clobbered_vars,
	addressable_vars, aliases_computed_p): Kill.
	(default_def): Rename to...
	(gimple_default_def): ... this one.
	(defaule_def_fn): Kill.
	(num_referenced_vars, ssa_names, num_ssa_names): Update.
	* tree-ssa-structalias.c (nonlocal_all): Kill.
	(get_constraint_exp_from_ssa_var): Update.
	(create_nonlocal_var): Update.
	(get_constraint_for): Update.
	(update_alias_info): Update.
	(find_global_initializers): Update.
	(intra_create_variable_infos): Update.
	(intra_create_variable_infos):
	(find_what_p_points_to): Update.
	(init_alias_heapvars): Update.
	* tree-cfg.c (remove_bb): Update.
	(gimplify_val): Update.
	* tree-ssa-reassoc.c (get_rank): Update.
	(init_reassoc): Update.
	* tree-ssanames.c: Do not include gt-tree-ssanames.h
	(ssa_names, free_ssanames): Kill.
	(init_ssanames): Update.
	(make_ssa_name): Update.
	(release_ssa_name): Update.
	(release_defs): Update.
	(replace_ssa_name_symbol): Update.
	* tree-ssa-operands.c (access_can_touch_variable): Update.
	(add_virtual_operand): Update.
	(add_call_clobber_ops): Update.
	(add_call_read_ops): Update.
	(get_call_expr_operands): Update.
	(get_asm_expr_operands): Update.

From-SVN: r119294
2006-11-28 14:42:37 +00:00