Commit Graph

93137 Commits

Author SHA1 Message Date
Trevor Smigiel 6e37f6d40e spu.c (spu_machine_dependent_reorg): Make sure branch label on hint instruction is correct.
* spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
	instruction is correct.

From-SVN: r146852
2009-04-27 19:33:20 +00:00
Jakub Jelinek 060717fcc5 re PR testsuite/39807 (Reporting of testsuite failures are messed up when using -j)
PR testsuite/39807
	* dg-extract-results.sh: Close open files and use >> instead of >
	to decrease number of concurrently open files from awk.  Avoid
	= at the beginning of a regexp and redirect to a file determined
	by curfile variable rather than concatenated strings to workaround
	Solaris nawk bug.

From-SVN: r146850
2009-04-27 21:11:23 +02:00
Trevor Smigiel 5345cf689e Allow non-constant arguments to conversion intrinsics.
* spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
	* predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
	* spu.c (print_operand): Handle 'v' and 'w'.
	(exp2_immediate_p, spu_gen_exp2): Define.
	* spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
	spu_convtf_1): Update parameter descriptions.
	* spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu):
	Update.
	* constraints.md ('v', 'w'): New.
	* spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
	Remove.
	(i2f, I2F): New define_mode_attr.
	(floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
	floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
	fixuns_truncv4sfv4si2):  Update to use mode attribute.
	(float<mode><i2f>2_mul, float<mode><i2f>2_div,
	fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
	floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
	patterns for combine.
	* gcc.target/spu/intrinsics-3.c: Update tests.

From-SVN: r146849
2009-04-27 18:48:59 +00:00
Steven Bosscher 5f39ad476c dbgcnt.def (cprop1, [...]): Remove
* dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
	(cprop, hoist, pre, store_motion): New debug counters.
	* tree-pass.h (pass_tracer): Move to list of gimple passes, it
	is not an RTL pass anymore.
	(pass_profiling): Remove extern decl for pass removed in 2005.
	(pass_gcse, pass_jump_bypass): Remove.
	* final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
	to 0 for clean state.
	* toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
	* cse.c (gate_handle_cse_after_global_opts,
	rest_of_handle_cse_after_global_opts): New functions.
	(pass_cse_after_global_opts): New pass, does local CSE.
	* timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
	(TV_CPROP): New timevar.
	* gcse.c (flag_rerun_cse_after_global_opts): New global variable.
	(run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
	(gcse_main, recompute_all_luids): Remove.
	(compute_hash_table_work): Call max_reg_num instead of reading
	max_gcse_regno.
	(cprop_jump): Don't set run_jump_opt_after_gcse.
	(constprop_register): Always allow to alter jumps.
	(cprop_insn): Likewise.
	(do_local_cprop): Likewise.
	(local_cprop_pass): Likewise.  Return non-zero if something changed.
	(cprop): Remove function, fold interesting bits into one_cprop_pass.
	(find_implicit_sets): Add note about missed optimization opportunity.
	(one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
	pass_rtl_cprop execute function.
	Don't bother tracking the pass number, each pass gets its own dumpfile
	now anyway.
	Always allow to alter jumpsand bypass jumps.
	(bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
	will just find no suitable set.
	(pre_edge_insert): Fix dumping, this function is for PRE only.
	(one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
	pass_rtl_pre execute function.
	(hoist_code): Return non-zero if something changed.  Keep track of
	substitutions and insertions for statistics gathering similar to PRE.
	(one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
	called from the pass_rtl_hoist execute function.  Show pass statistics.
	(compute_store_table): Use max_reg_num directly instead of using the
	formerly global max_gcse_regno.
	(build_store_vectors): Likewise.
	(replace_store_insn): Fix dumping.
	(store_motion): Rename to ...
	(one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
	pass, called from the pass_rtl_store_motion execute function.  Keep
	track of substitutions and insertions for statistics gathering similar
	to PRE.
	(bypass_jumps): Remove, fold interesting bits into ...
	(one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
	from the pass_rtl_cprop execute function.
	(gate_handle_jump_bypass, rest_of_handle_jump_bypass,
	pass_jump_bypass): Remove.
	(gate_handle_gcse, rest_of_handle_gcse): Remove.
	(gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
	(gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
	(gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
	(gate_rtl_store_motion, execute_rtl_store_motion,
	pass_rtl_store_motion): New.
	* common.opt: Remove flag_cse_skip_blocks, adjust documentation to
	make it clear that -fcse-skip-blocks is a no-op for backward compat.
	* passes.c (init_optimization_passes): Remove pass_gcse and
	pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
	and cse_after_global_opts in place of pass_gcse.  Schedule cprop
	instead of pass_jump_bypass.

From-SVN: r146848
2009-04-27 17:21:27 +00:00
Richard Guenther c685de4a22 re PR c/39928 (gimplify_expr failure)
2009-04-27  Richard Guenther  <rguenther@suse.de>

	PR middle-end/39928
	* gimplify.c (gimplify_expr): If we are required to create
	a temporary make sure it ends up as register.

	* gcc.c-torture/compile/pr39928-1.c: New testcase.
	* gcc.c-torture/compile/pr39928-2.c: Likewise.

From-SVN: r146846
2009-04-27 15:50:05 +00:00
Nick Clifton 952fa153c8 * MAINTAINERS: Replace Aldy Hernandez as a maintainer for the FRV.
From-SVN: r146843
2009-04-27 14:35:42 +00:00
H.J. Lu 72d41f296e re PR c/39903 (ICE on flexible member)
gcc/

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39903
	* config/i386/i386.c (construct_container): Don't call
	gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
	X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.

gcc/testsuite/

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39903
	* gcc.dg/torture/pr39903-1.c: New.
	* gcc.dg/torture/pr39903-2.c: Likewise.

From-SVN: r146842
2009-04-27 07:02:09 -07:00
Revital Eres bd63907522 Add dump file checks for sms tests
From-SVN: r146838
2009-04-27 12:17:09 +00:00
Michael Matz e97809c61d ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
* ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
	(get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
	* tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
	(dump_replaceable_exprs): Take a bitmap.
	* cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
	array.
	(expand_gimple_basic_block): Likewise.
	* tree-ssa-ter.c (struct temp_expr_table_d): Make
	replaceable_expressions member a bitmap.
	(free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
	(mark_replaceable): Likewise.
	(find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
	* tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.

From-SVN: r146837
2009-04-27 12:16:00 +00:00
Richard Guenther 211ca15cb4 re PR java/38374 (constant pool references have wrong types in ADDR_EXPR)
2009-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
	(verify_stmts): Dispatch to gimple/type verification code.
	* tree-inline.c (remap_gimple_op_r): Work around C++ FE
	issue with call argument types.

	java/
	PR java/38374
	* constants.c (build_constants_constructor): Retain the old
	pointer type as valid TYPE_POINTER_TO after patching the
	type of the constant pool decl.

From-SVN: r146831
2009-04-27 11:18:38 +00:00
Michael Matz fca5f3d11c tree-into-ssa.c (regs_to_rename, [...]): Remove.
* tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
        (init_update_ssa, delete_update_ssa, update_ssa): Remove references
        to above.

From-SVN: r146830
2009-04-27 11:15:53 +00:00
Eric Botcazou a1fa3e7944 resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up a label's basic block.
* resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
	a label's basic block.
	(mark_target_live_regs): Tidy and rework obsolete comments.
	Change back DF problem to LIVE.  If a label starts a basic block,
	assume that all registers that used to be live then still are.
	(init_resource_info): If a label starts a basic block, set its
	BLOCK_FOR_INSN accordingly.
	(fini_resource_info): Undo the setting of BLOCK_FOR_INSN.

From-SVN: r146829
2009-04-27 10:42:09 +00:00
Richard Guenther 33b223c0a6 tree-flow-inline.h (function_ann): Remove.
2009-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-flow-inline.h (function_ann): Remove.
	(get_function_ann): Likewise.
	* tree-dfa.c (create_function_ann): Remove.
	* tree-flow.h (struct static_var_ann_d): Remove.
	(struct function_ann_d): Likewise.
	(union tree_ann_d): Remove fdecl member.
	(function_ann_t): Remove.
	(function_ann, get_function_ann, create_function_ann): Remove
	declarations.

From-SVN: r146828
2009-04-27 08:26:40 +00:00
Uros Bizjak e3136fa27d alpha.c (code_for_builtin): Declare as enum insn_code.
* config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.

From-SVN: r146826
2009-04-27 09:20:29 +02:00
Jakub Jelinek 7409e5a541 re PR c++/39875 (Wrong "value computed is not used" warning)
PR c++/39875
	* cvt.c (convert_to_void) <case INDIRECT_REF>: Only warn about
	-Wunused-value if implicit.

	* g++.dg/warn/Wunused-15.C: New test.

From-SVN: r146825
2009-04-27 07:54:32 +02:00
GCC Administrator 5bb786b053 Daily bump.
From-SVN: r146824
2009-04-27 00:17:04 +00:00
Jan Hubicka f87c904283 ipa-pure-const.c (struct funct_state_d): New fields state_previously_known, looping_previously_known...
* ipa-pure-const.c (struct funct_state_d): New fields
	state_previously_known, looping_previously_known; remove
	state_set_in_source.
	(analyze_function): Use new fields.
	(propagate): Avoid assumption that state_set_in_source imply
	nonlooping.

	* tree-ssa-loop-niter.c (finite_loop_p): New function.
	* tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
	* cfgloop.h (finite_loop_p): Declare.

From-SVN: r146821
2009-04-26 23:35:27 +00:00
Michael Matz 33abd7188e * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
From-SVN: r146820
2009-04-26 22:13:39 +00:00
Michael Matz ddc34084b6 tree-pass.h (pass_del_ssa, [...]): Remove decls.
* tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
	pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
	* gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
	pass_mark_used_blocks): Remove.
	* tree-optimize.c (pass_free_datastructures,
	execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
	* passes.c (init_optimization_passes): Don't call
	pass_mark_used_blocks, remove dead code.

From-SVN: r146819
2009-04-26 22:09:50 +00:00
H.J. Lu 1fec7ed498 tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
	* tree-ssa-live.h (register_ssa_partition): Likewise.

From-SVN: r146818
2009-04-26 14:40:47 -07:00
Michael Matz 4e3825dba9 Expand from SSA.
gcc/
        Expand from SSA.
	* builtins.c (fold_builtin_next_arg): Handle SSA names.
	* tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
	SSA names. 
	(compare_pairs): Swap cost comparison.
	(coalesce_ssa_name): Don't use change_partition_var.
	* tree-nrv.c (struct nrv_data): Add modified member.
	(finalize_nrv_r): Set it.
	(tree_nrv): Use it to update statements.
	(pass_nrv): Require PROP_ssa.
	* tree-mudflap.c (mf_decl_cache_locals,
	mf_build_check_statement_for): Use make_rename_temp.
	(pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
	* alias.c (find_base_decl): Handle SSA names.
	* emit-rtl (set_reg_attrs_for_parm): Make non-static.
	(component_ref_for_mem_expr): Don't leak SSA names into RTL.
	* rtl.h (set_reg_attrs_for_parm): Declare.
	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
	to "optimized", remove unused locals at finish.
	(execute_free_datastructures): Make global, call
	delete_tree_cfg_annotations.
	(execute_free_cfg_annotations): Don't call
	delete_tree_cfg_annotations.

	* ssaexpand.h: New file.
	* expr.c (toplevel): Include ssaexpand.h.
	(expand_assignment): Handle SSA names the same as register
	variables.
	(expand_expr_real_1): Expand SSA names.
	* cfgexpand.c (toplevel): Include ssaexpand.h.
	(SA): New global variable.
	(gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
	(SSAVAR): New macro.
	(set_rtl): New helper function.
	(add_stack_var): Deal with SSA names, use set_rtl.
	(expand_one_stack_var_at): Likewise.
	(expand_one_stack_var): Deal with SSA names.
	(stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
	before unique numbers.
	(expand_stack_vars): Use set_rtl.
	(expand_one_var): Accept SSA names, add asserts for them, feed them
	to above subroutines.
	(expand_used_vars): Expand all partitions (without default defs),
	then only the local decls (ignoring those expanded already).
	(expand_gimple_cond): Remove edges when jumpif() expands an
	unconditional jump.
	(expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
	or remove abnormal edges.  Ignore insns setting the LHS of a TERed
	SSA name.
	(gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
	members of SA; deal with PARM_DECL partitions here; expand
	all PHI nodes, free tree datastructures and SA.  Commit instructions
	on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
	(pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
	info and statements at start, collect garbage at finish.
	* tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
	(VAR_ANN_PARTITION) Remove.
	(change_partition_var): Don't declare.
	(partition_to_var): Always return SSA names.
	(var_to_partition): Only accept SSA names.
	(register_ssa_partition): Only check argument.
	* tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
	member.
	(delete_var_map): Don't free it.
	(var_union): Only accept SSA names, simplify.
	(partition_view_init): Mark only useful SSA names as used.
	(partition_view_fini): Only deal with SSA names.
	(change_partition_var): Remove.
	(dump_var_map): Use ssa_name instead of partition_to_var member.
	* tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
	basic blocks.
	* tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
	(struct _elim_graph): New member const_dests; nodes member vector of
	ints.
	(set_location_for_edge): New static helper.
	(create_temp): Remove.
	(insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
	insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New
	functions.
	(new_elim_graph): Allocate const_dests member.
	(clean_elim_graph): Truncate const_dests member.
	(delete_elim_graph): Free const_dests member.
	(elim_graph_size): Adapt to new type of nodes member.
	(elim_graph_add_node): Likewise.
	(eliminate_name): Likewise.
	(eliminate_build): Don't take basic block argument, deal only with
	partition numbers, not variables.
	(get_temp_reg): New static helper.
	(elim_create): Use it, deal with RTL temporaries instead of trees.
	(eliminate_phi): Adjust all calls to new signature.
	(assign_vars, replace_use_variable, replace_def_variable): Remove.
	(rewrite_trees): Only do checking.
	(edge_leader, stmt_list, leader_has_match, leader_match): Remove.
	(same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
	init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
	contains_tree_r, MAX_STMTS_IN_LATCH,
	process_single_block_loop_latch, analyze_edges_for_bb,
	perform_edge_inserts): Remove.
	(expand_phi_nodes): New global function.
	(remove_ssa_form): Take ssaexpand parameter.  Don't call removed
	functions, initialize new parameter, remember partitions having a
	default def.
	(finish_out_of_ssa): New global function.
	(rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
	don't reset in_ssa_p here, don't disable TER when mudflap.
	(pass_del_ssa): Remove.
	* tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
	partition members.
	(execute_free_datastructures): Declare.
	* Makefile.in (SSAEXPAND_H): New variable.
	(tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
	* basic-block.h (commit_one_edge_insertion): Declare.
	* passes.c (init_optimization_passes): Move pass_nrv and
	pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
	pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
	* cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
	(redirect_branch_edge): Deal with super block when expanding, split
	out jump patching itself into ...
	(patch_jump_insn): ... here, new static helper.

testsuite/

	Expand from SSA.
	* gcc.dg/tree-ssa/20030728-1.c: Use -rtl-expand-details dump and
	change regexps.
	* gcc.target/i386/pr37248-1.c: Modified.
	* gcc.target/i386/pr37248-3.c: Modified.
	* gcc.target/i386/pr37248-2.c: Modified.
	* gnat.dg/aliasing1.adb: Modified.
	* gnat.dg/pack9.adb: Modified.
	* gnat.dg/aliasing2.adb: Modified.
	* gcc.dg/strict-overflow-2.c: Modified.
	* gcc.dg/autopar/reduc-1char.c: Modified.
	* gcc.dg/autopar/reduc-2char.c: Modified.
	* gcc.dg/autopar/reduc-1.c: Modified.
	* gcc.dg/autopar/reduc-2.c: Modified.
	* gcc.dg/autopar/reduc-3.c: Modified.
	* gcc.dg/autopar/reduc-6.c: Modified.
	* gcc.dg/autopar/reduc-7.c: Modified.
	* gcc.dg/autopar/reduc-8.c: Modified.
	* gcc.dg/autopar/reduc-9.c: Modified.
	* gcc.dg/autopar/reduc-1short.c: Modified.
	* gcc.dg/autopar/reduc-2short.c: Modified.
	* gcc.dg/autopar/parallelization-1.c: Modified.
	* gcc.dg/strict-overflow-4.c: Modified.
	* gcc.dg/strict-overflow-6.c: Modified.
	* gcc.dg/gomp/combined-1.c: Modified.
	* gcc.dg/no-strict-overflow-1.c: Modified.
	* gcc.dg/no-strict-overflow-3.c: Modified.
	* gcc.dg/no-strict-overflow-5.c: Modified.
	* gcc.dg/tree-ssa/reassoc-13.c: Modified.
	* gcc.dg/tree-ssa/pr18134.c: Modified.
	* gcc.dg/tree-ssa/20030824-1.c: Modified.
	* gcc.dg/tree-ssa/vector-2.c: Modified.
	* gcc.dg/tree-ssa/forwprop-9.c: Modified.
	* gcc.dg/tree-ssa/loop-21.c: Modified.
	* gcc.dg/tree-ssa/20030824-2.c: Modified.
	* gcc.dg/tree-ssa/vector-3.c: Modified.
	* gcc.dg/tree-ssa/asm-3.c: Modified.
	* gcc.dg/tree-ssa/pr23294.c: Modified.
	* gcc.dg/tree-ssa/loop-22.c: Modified.
	* gcc.dg/tree-ssa/loop-15.c: Modified.
	* gcc.dg/tree-ssa/prefetch-4.c: Modified.
	* gcc.dg/tree-ssa/pr22051-1.c: Modified.
	* gcc.dg/tree-ssa/pr20139.c: Modified.
	* gcc.dg/tree-ssa/scev-cast.c: Modified.
	* gcc.dg/tree-ssa/pr22051-2.c: Modified.
	* gcc.dg/tree-ssa/reassoc-1.c: Modified.
	* gcc.dg/tree-ssa/loop-5.c: Modified.
	* gcc.dg/tree-ssa/pr19431.c: Modified.
	* gcc.dg/tree-ssa/pr32044.c: Modified.
	* gcc.dg/tree-ssa/prefetch-7.c: Modified.
	* gcc.dg/tree-ssa/loop-19.c: Modified.
	* gcc.dg/tree-ssa/loop-28.c: Modified.
	* gcc.dg/tree-ssa/ssa-pre-15.c: Modified.
	* gcc.dg/tree-ssa/divide-1.c: Modified.
	* gcc.dg/tree-ssa/inline-1.c: Modified.
	* gcc.dg/tree-ssa/divide-3.c: Modified.
	* gcc.dg/tree-ssa/pr30978.c: Modified.
	* gcc.dg/tree-ssa/alias-6.c: Modified.
	* gcc.dg/tree-ssa/divide-4.c: Modified.
	* gcc.dg/tree-ssa/alias-11.c: Modified.
	* gcc.dg/no-strict-overflow-7.c: Modified.
	* gcc.dg/strict-overflow-1.c: Modified.
	* gcc.dg/pr15784-4.c: Modified.
	* gcc.dg/pr34263.c: Modified.
	* gcc.dg/strict-overflow-3.c: Modified.
	* gcc.dg/tree-prof/stringop-1.c: Modified.
	* gcc.dg/tree-prof/val-prof-1.c: Modified.
	* gcc.dg/tree-prof/val-prof-2.c: Modified.
	* gcc.dg/tree-prof/val-prof-3.c: Modified.
	* gcc.dg/tree-prof/val-prof-4.c: Modified.
	* gcc.dg/no-strict-overflow-2.c: Modified.
	* gcc.dg/no-strict-overflow-4.c: Modified.
	* gcc.dg/no-strict-overflow-6.c: Modified.
	* g++.dg/tree-ssa/pr27090.C: Modified.
	* g++.dg/tree-ssa/tmmti-2.C: Modified.
	* g++.dg/tree-ssa/ptrmemfield.C: Modified.
	* g++.dg/tree-ssa/pr19807.C: Modified.
	* g++.dg/opt/pr30965.C: Modified.
	* g++.dg/init/new17.C: Modified.
	* gfortran.dg/whole_file_6.f90: Modified.
	* gfortran.dg/whole_file_5.f90: Modified.
	* gfortran.dg/reassoc_1.f90: Modified.
	* gfortran.dg/reassoc_3.f90: Modified.

From-SVN: r146817
2009-04-26 19:35:04 +00:00
Steven G. Kargl 5846213b87 re PR fortran/39893 ([4.4] gfortran ICE on invalid program)
2009-04-26  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/39893
	* gfortran.dg/assumed_charlen_dummy.f90: New Test.


2009-04-26  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/39893
	fortran/data.c (gfc_assign_data_value): If the lvalue is an 
	assumed character length entity in a data statement, then 
	return FAILURE to prevent segmentation fault.

From-SVN: r146816
2009-04-26 19:27:50 +00:00
Michael Matz 17c665a997 tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate beyond num_ssa_names.
* tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
	beyond num_ssa_names.
	* tree-ssa-ter.c (free_temp_expr_table): Likewise.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.

From-SVN: r146815
2009-04-26 19:24:16 +00:00
Jakub Jelinek ce372372f4 re PR inline-asm/39543 (Reload failure on mplayer from SVN)
PR inline-asm/39543
	* fwprop.c (forward_propagate_asm): New function.
	(forward_propagate_and_simplify): Propagate also into __asm, if it
	doesn't increase the number of referenced registers.

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

From-SVN: r146813
2009-04-26 20:56:14 +02:00
Jakub Jelinek 92061771a2 re PR c/39889 (Bogus -Wunused-value warning)
PR c/39889
	* stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.

	* gcc.dg/Wunused-value-3.c: New test.

From-SVN: r146811
2009-04-26 20:51:07 +02:00
Jakub Jelinek 77f2a97066 tree-nested.c (get_nonlocal_vla_type): If not optimizing, call note_nonlocal_vla_type for nonlocal VLAs.
* tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
	note_nonlocal_vla_type for nonlocal VLAs.
	(note_nonlocal_vla_type, note_nonlocal_block_vlas,
	contains_remapped_vars, remap_vla_decls): New functions.
	(convert_nonlocal_reference_stmt): If not optimizing, call
	note_nonlocal_block_vlas on GIMPLE_BIND block vars.
	(nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
	if it wasn't found in var_map.
	(finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
	GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
	to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
	declare_vars.
	* gimplify.c (nonlocal_vlas): New variable.
	(gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
	referenced VLAs.
	(gimplify_body): Create and destroy nonlocal_vlas.

	* trans-decl.c: Include pointer-set.h.
	(nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
	(gfc_nonlocal_dummy_array_decl): New function.
	(gfc_get_symbol_decl): Call it for non-local dummy args with saved
	descriptor.
	(gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
	(gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
	chain it to outermost block's vars, destroy it afterwards.
	* Make-lang.in (trans-decl.o): Depend on pointer-set.h.

From-SVN: r146810
2009-04-26 20:47:54 +02:00
Jakub Jelinek 4561e24276 dwarf2out.c (loc_descr_plus_const): New function.
* dwarf2out.c (loc_descr_plus_const): New function.
	(build_cfa_aligned_loc, tls_mem_loc_descriptor,
	mem_loc_descriptor, loc_descriptor_from_tree_1,
	descr_info_loc, gen_variable_die): Use it.

From-SVN: r146809
2009-04-26 20:45:41 +02:00
Jakub Jelinek a9548ddfe5 tree.h (DECL_BY_REFERENCE): Note that it is also valid for !TREE_STATIC VAR_DECLs.
* tree.h (DECL_BY_REFERENCE): Note that it is also valid for
	!TREE_STATIC VAR_DECLs.
	* dwarf2out.c (loc_by_reference, gen_decl_die): Handle
	DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
	(gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
	DECL_BY_REFERENCE is valid.
	* dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
	for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
	* tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
	Copy DECL_BY_REFERENCE.
	(struct nesting_copy_body_data): New type.
	(nesting_copy_decl): New function.
	(finalize_nesting_tree_1): Remap types of debug_var_chain variables,
	if they have variable length.

From-SVN: r146808
2009-04-26 20:44:59 +02:00
Michael Matz 10555d08b4 tree-sra.c (sra_build_assignment): Don't use into_ssa mode, mark new temporaries for renaming
* tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
mark new temporaries for renaming

From-SVN: r146807
2009-04-26 17:11:22 +00:00
Joseph Myers e11187cc94 re PR c/39581 (VLA types at file scope wrongly rejected)
PR c/39581
	* c-decl.c (global_bindings_p): Return negative value.
	(c_variable_size): New.  Based on variable_size from
	stor-layout.c.
	(grokdeclarator): Call c_variable_size not variable_size.

testsuite:
	* gcc.dg/c99-const-expr-14.c, gcc.dg/gnu99-const-expr-4.c,
	gcc.dg/vla-21.c: New tests.

From-SVN: r146806
2009-04-26 18:00:04 +01:00
Uros Bizjak f6a51d3184 i386.c (print_operand): Fix typo.
* config/i386/i386.c (print_operand) ['z']: Fix typo.

From-SVN: r146804
2009-04-26 18:50:24 +02:00
Matthias Klose 2a8428f804 aot-compile.in: Print diagnostics for malformed or invalid class files.
2009-04-26  Matthias Klose <doko@ubuntu.com>

        * contrib/aot-compile.in: Print diagnostics for malformed or invalid
        class files.
        * contrib/generate-cacerts.pl.in: New.
        * configure.ac (AC_CONFIG_FILES): Add generate-cacerts.pl.

From-SVN: r146802
2009-04-26 14:11:58 +00:00
Kai Tietz 4b97723d58 mingw-w64.h (STANDARD_INCLUDE_DIR): Redefine it to just use mingw/include.
2009-04-26  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
	Redefine it to just use mingw/include.
	(ASM_SPEC): Rules for -m32 and -m64.
	(LINK_SPEC): Use Likewise.
	(SPEC_32): New define.
	(SPEC_64): Likewise.
	(SUB_LINK_SPEC): Likewise.
	(MULTILIB_DEFAULTS): New define.
	* config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
	Add multilib options.
	(MULTILIB_DIRNAMES): Likewise.
	(MULTILIB_OSDIRNAMES): Likewise.
	(LIBGCC): Likewise.
	(INSTALL_LIBGCC): Likewise.

From-SVN: r146801
2009-04-26 15:50:12 +02:00
Joseph Myers 991d662102 re PR c/39556 (statics in C99 inline functions later declared extern)
PR c/39556
	* c-tree.h (enum c_inline_static_type): New.
	(record_inline_static): Declare.
	* c-decl.c (struct c_inline_static, c_inline_statics,
	record_inline_static, check_inline_statics): New.
	(pop_file_scope): Call check_inline_statics.
	(start_decl): Call record_inline_static instead of pedwarning
	directly for static in inline function.
	* c-typeck.c (build_external_ref): Call record_inline_static
	instead of pedwarning directly for static referenced in inline
	function.

testsuite:
	* gcc.dg/inline-34.c: New test.

From-SVN: r146800
2009-04-26 14:40:19 +01:00
Steven Bosscher 4a81774c7b df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is not new but only being rescanned.
* df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
	not new but only being rescanned.
	* gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
	reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
	alloc_reg_set_mem, free_reg_set_mem, record_one_set,
	record_set_info, compute_set, grealloc): Remove.
	(recompute_all_luids): New function.
	(gcse_main): Don't compute sets, and don't do related memory
	allocations/free-ing.  If something changed before the end of the
	pass, update LUIDs using recompute_all_luids.
	(alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
	(free_gcse_mem): Don't free it either.
	(oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
	Use the df insn LUIDs.
	(load_killed_in_block): Likewise.
	(compute_hash_table_work): Don't compute reg_set_in_block.
	(compute_transp): Use DF_REG_DEF_CHAINs.
	(local_cprop_pass): Don't use compute_sets and related functions.
	(one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
	Use get_max_uid() instead of max_cuid.
	(insert_insn_end_basic_block, pre_insert_copy_insn,
	update_ld_motion_stores): Don't try to
	keep reg_set tables up to date.
	(pre_insert_copies): Use df insn LUIDs.
	(sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
	(reg_set_info): Don't use extra bitmap argument.
	(compute_store_table): Don't compute reg_set_in_block.  Use DF scan
	information to compute regs_set_in_block.
	(free_store_memory, store_motion): Don't nullify reg_set_in_block.
	(bypass_jumps): Don't use compute_sets and friends.

From-SVN: r146799
2009-04-26 12:28:53 +00:00
Paolo Carlini cca36d72b9 2009-04-26 Paolo Carlini <paolo.carlini@oracle.com>
Revert the last commit.

From-SVN: r146796
2009-04-26 10:12:08 +00:00
Ralf Wildenhues e8f99a9d26 re PR testsuite/39710 (gcc.misc-tests/help.exp doesn't work when configured with --enable-checking=assert)
gcc/
	PR testsuite/39710
	* opts.c (undocumented_msg): Do not leave blank even with
	ENABLE_CHECKING.

From-SVN: r146795
2009-04-26 08:18:48 +00:00
Ian Lance Taylor 30d17f46b5 Update copyright year. Committed without a ChangeLog entry.
From-SVN: r146794
2009-04-26 03:51:54 +00:00
Eli Zaretskii ae2040df82 Makefile.in (needed-list): Target removed (not used in GCC 3.0 and later).
* Makefile.in (needed-list): Target removed (not used in GCC
3.0 and later).  All references deleted.
(mostlyclean): Remove references to needed.awk and needed2.awk.

From-SVN: r146793
2009-04-25 22:23:29 -04:00
GCC Administrator be537af615 Daily bump.
From-SVN: r146792
2009-04-26 00:17:14 +00:00
Joseph Myers 6895bac810 c-decl.c (build_enumerator): Allow values folding to integer constants but not integer constant expressions...
* c-decl.c (build_enumerator): Allow values folding to integer
	constants but not integer constant expressions with a pedwarn if
	pedantic.

testsuite:
	* gcc.dg/enum-const-1.c, gcc.dg/enum-const-2.c,
	gcc.dg/enum-const-3.c: New tests.
	* gcc.dg/gnu89-const-expr-1.c, gcc.dg/gnu99-const-expr-1.c: Use
	-pedantic-errors.  Update expected diagnostics.

From-SVN: r146789
2009-04-26 00:30:10 +01:00
Joseph Myers 24070fcb42 re PR c/39582 (bad errors for some uses of [*] arrays)
PR c/39582
	* c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
	with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
	type is an integer constant.

testsuite:
	* gcc.dg/vla-20.c: New test.

From-SVN: r146787
2009-04-25 22:19:09 +01:00
Jonathan Wakely afdb7762cb mutex (__get_once_functor_lock, [...]): Replace global lock object with local locks on global mutex.
2009-04-25  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/mutex (__get_once_functor_lock, __get_once_mutex):
	Replace global lock object with local locks on global mutex.
	* src/mutex.cc: Likewise.
	* config/abi/pre/gnu.ver: Adjust.
	* testsuite/30_threads/call_once/call_once2.cc: New.

From-SVN: r146785
2009-04-25 21:14:27 +01:00
Uros Bizjak d6d89aa1c4 re PR target/39897 (Revision 146761 caused libgomp.fortran/omp_atomic1.f90)
PR target/39897
	* config/i386/i386.c (print_operand) ['z']: Revert handling of
	HImode operands.

From-SVN: r146784
2009-04-25 22:11:01 +02:00
Gerald Pfeifer 7527cf2106 test_summary: Only include LAST_UPDATED if it exists.
* test_summary: Only include LAST_UPDATED if it exists.
	Complete copyright years.

From-SVN: r146783
2009-04-25 20:03:12 +00:00
Paolo Carlini 3270032c59 re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist)
2009-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39880
	PR libstdc++/39881
	PR libstdc++/39882
	* include/std/system_error (is_error_code_enum<errc>): Remove.
	(error_condition<>::error_condition(_ErrorCodeEnum,)
	error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition.
	(error_code<>::error_code(_ErrorCodeEnum,),
	error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code.
	* testsuite/19_diagnostics/system_error/39880.cc: New.
	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
	* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc:
	Adjust.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc:
	Likewise.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
	Likewise.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.

From-SVN: r146781
2009-04-25 19:02:17 +00:00
Paolo Carlini bb81f9a082 re PR libstdc++/39880 (Specialisation is_error_code_enum<errc> should not exist)
2009-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/39880
	PR libstdc++/39881
	PR libstdc++/39882
	* include/std/system_error (is_error_code_enum<errc>): Remove.
	(error_condition<>::error_condition(_ErrorCodeEnum,)
	error_condition<>::operator=(_ErrorCodeEnum)): Use make_error_condition.
	(error_code<>::error_code(_ErrorCodeEnum,),
	error_code<>::operator=(_ErrorCodeEnum)): Use make_error_code.
	* testsuite/19_diagnostics/system_error/39880.cc: New.
	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc:
	Likewise.
	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
	* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc:
	Adjust.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc:
	Likewise.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/equal.cc: Likewise.
	* testsuite/19_diagnostics/error_code/operators/not_equal.cc:
	Likewise.
	* testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Likewise.
	* testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
	* testsuite/19_diagnostics/system_error/what-4.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.

From-SVN: r146780
2009-04-25 19:00:52 +00:00
Joseph Myers 813b9e7e20 Fix typo in comment in previous commit.
From-SVN: r146779
2009-04-25 19:59:20 +01:00
Joseph Myers 92f6fd0b80 re PR c/39564 (variably modified function return types not always diagnosed)
PR c/39564
	* c-decl.c (grokdeclarator): Diagnose declarations of functions
	with variably modified return type and no storage class
	specifiers, except for the case of nested functions.  Distinguish
	extern declarations of functions with variably modified return
	types from those of objects with variably modified types.

testsuite:
	* gcc.dg/vla-19.c: New test.

From-SVN: r146778
2009-04-25 19:55:50 +01:00
Joseph Myers f88d07724f re PR preprocessor/39559 (constants too large for intmax_t need pedwarns)
libcpp:
	PR preprocessor/39559
	* expr.c (cpp_interpret_integer): Use a pedwarn for decimal
	constants larger than intmax_t in C99 mode.

gcc/testsuite:
	* gcc.dg/c99-intconst-2.c: New test.

From-SVN: r146777
2009-04-25 19:46:03 +01:00