Commit Graph

118358 Commits

Author SHA1 Message Date
Steven Bosscher
c302207e35 tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points of potentially huge memset overhead.
* tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
	of potentially huge memset overhead.
	(do_partial_partial_insertion): Likewise.
	* cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
	* tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
	for arrays to be filled by pre_and_rev_post_order_compute.  Allocate
	the right number of slots, not that number plus NUM_FIXED_BLOCKS.
	* tree-ssa-reassoc.c (init_reassoc): Likewise.
	* cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
	array used as stack.
	* tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
	arrays to be filled by pre_and_rev_post_order_compute.
	* cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
	array to be filled by dfs_enumerate_from.
	(remove_path): Likewise.
	(duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
	array of loops that is filled on the next lines.
	* cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
	array of basic blocks to be returned.
	(get_loop_body_in_dom_order): Likewise.
	(get_loop_body_in_bfs_order): Likewise.
	* tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
	for all bitmaps used for rewriting into loop-closed SSA form.
	(add_exit_phis_var): Allocate the def bitmap on it.  Clear the livein
	bitmap at the end to release a lot of memory.
	(add_exit_phis): Allocate the exits bitmap on the new obstack.
	(get_loops_exits): Allocate the exits bitmap on the new obstack.
	(find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
	seen for the first time.
	(find_uses_to_rename): Add "???" for why the whole function must
	be re-scanned if changed_bbs is empty.
	(rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
	Use XNEWVEC to allocate the use_blocks array.  Initialize the new
	obstack, and free it at the end.  Remove loop over all SSA names.
	(check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
	* tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
	xcalloc to allocate edge_pred and edge_flag arrays.

From-SVN: r190359
2012-08-13 21:02:19 +00:00
David Adler
2942db6337 re PR libstdc++/54185 (condition_variable not properly destructed)
2012-08-13  David Adler  <d.adler.s@gmail.com>

	PR libstdc++/54185
	* src/c++11/condition_variable.cc (condition_variable): Always
	destroy native type in destructor.
	* testsuite/30_threads/condition_variable/54185.cc: New.

From-SVN: r190356
2012-08-13 20:56:50 +01:00
François Dumont
181a5a136f 2012-08-10 François Dumont <fdumont@gcc.gnu.org>
Ollie Wild  <aaw@google.com>

	* include/bits/hashtable.h
	(_Hashtable<>_M_insert_multi_node(hash_code, node_type*)): New.
	(_Hashtable<>_M_insert(_Args&&, false_type)): Use latter.
	(_Hashtable<>::_M_emplace(false_type, _Args&&...)): Likewise.
	(_Hashtable<>::_M_insert_bucket): Replace by ...
	(_Hashtable<>::_M_insert_unique_node(size_type, hash_code, node_type*)):
	... this, new.
	(_Hashtable<>::_M_insert(_Args&&, true_type)): Use latter.
	(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
	* include/bits/hashtable_policy.h (_Map_base<>::operator[]): Use
	latter, emplace the value_type rather than insert.
	* include/std/unordered_map: Include tuple.
	* include/std/unordered_set: Likewise.
	* testsuite/util/testsuite_counter_type.h: New.
	* testsuite/23_containers/unordered_map/operators/2.cc: New.

Co-Authored-By: Ollie Wild <aaw@google.com>

From-SVN: r190355
2012-08-13 19:43:19 +00:00
Diego Novillo
a327112f68 validate_failures.py (ExpirationDate): Tidy comment.
* testsuite-management/validate_failures.py (ExpirationDate): Tidy
	comment.

From-SVN: r190354
2012-08-13 15:36:03 -04:00
Diego Novillo
6baa72251b validate_failures.py (ParseSummary): Fix comment.
* testsuite-management/validate_failures.py (ParseSummary): Fix
	comment.

From-SVN: r190352
2012-08-13 14:18:52 -04:00
Diego Novillo
c577382e7b Implement support for expiring expected results in validate_failures.py.
I noticed recently that while the validator was accepting the
'expire=YYYYMMDD' attribute, it was not actually doing anything with
it.

This patch fixes the oversight.

2012-08-13  Diego Novillo  <dnovillo@google.com>

	* testsuite-management/validate_failures.py: Import datetime.
	(TestResult.ExpirationDate): New.
	(TestResult.HasExpired): New.
	(ParseSummary): Call it.  If it returns True, warn that the
	expected failure has expired and do not add it to the set of
	expected results.
	(GetResults): Clarify documentation.

From-SVN: r190351
2012-08-13 14:00:55 -04:00
Uros Bizjak
621bc04640 i386.h (FIXED_REGISTERS): Do not mark REX registers here.
* config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
	(CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
	for different ABIs.
	(enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
	(REG_CLASS_NAMES): Update.
	(REG_CLASS_CONTENTS): Update.  Clear CLOBBERED_REGS members.
	* config/i386/i386.c (ix86_conditional_register_usage): Disable
	REX registers on 32bit targets.  Handle bitmaps from
	CALL_USED_REGISTERS initializer.  Calculate CLOBBERED_REGS register
	set from GENERAL_REGS also for 32bit targets.  Do not change call
	used register set for TARGET_64BIT_MS_ABI separately.

From-SVN: r190349
2012-08-13 18:57:16 +02:00
Richard Guenther
391886c8e0 basic-block.h (struct basic_block): Remove loop_depth member, move flags and index members next to each other.
2012-08-13  Richard Guenther  <rguenther@suse.de>

	* basic-block.h (struct basic_block): Remove loop_depth
	member, move flags and index members next to each other.
	* cfgloop.h (bb_loop_depth): New inline function.
	* cfghooks.c (split_block): Do not set loop_depth.
	(duplicate_block): Likewise.
	* cfgloop.c (flow_loop_nodes_find): Likewise.
	(flow_loops_find): Likewise.
	(add_bb_to_loop): Likewise.
	(remove_bb_from_loops): Likewise.
	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
	* gimple-streamer-in.c (input_bb): Do not stream loop_depth.
	* gimple-streamer-out.c (output_bb): Likewise.
	* bt-load.c: Include cfgloop.h.
	(migrate_btr_defs): Use bb_loop_depth.
	* cfg.c (dump_bb_info): Likewise.
	* final.c (compute_alignments): Likewise.
	* ira.c (update_equiv_regs): Likewise.
	* tree-ssa-copy.c (init_copy_prop): Likewise.
	* tree-ssa-dom.c (loop_depth_of_name): Likewise.
	* tree-ssa-forwprop.c: Include cfgloop.h.
	(forward_propagate_addr_expr): Use bb_loop_depth.
	* tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
	* tree-ssa-sink.c (select_best_block): Likewise.
	* ipa-inline-analysis.c: Include cfgloop.h.
	(estimate_function_body_sizes): Use bb_loop_depth.
	* Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
	(ipa-inline-analysis.o): Likewise.
	(bt-load.o): Likewise.

	* gcc.dg/tree-prof/update-loopch.c: Adjust.

From-SVN: r190346
2012-08-13 13:49:54 +00:00
Ganesh Gopalasubramanian
9006f7f325 re PR driver/54210 (gcc unable to detect -mprfchw flag in bulldozer machines)
PR driver/54210
	* config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
	bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
	* config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
	0x80000001 %ecx flags.

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

From-SVN: r190345
2012-08-13 15:21:41 +02:00
Richard Guenther
755a1ca535 tree-cfg.c (print_loop): Avoid ICEing for loops marked for removal and loops with multiple latches.
2012-08-13  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (print_loop): Avoid ICEing for loops marked for
	removal and loops with multiple latches.

From-SVN: r190344
2012-08-13 13:10:59 +00:00
Jakub Jelinek
eb87c7c489 re PR c/53968 (integer undefined behaviors in GCC)
PR c/53968
	* tree.c (integer_pow2p): Avoid undefined signed overflows.
	* simplify-rtx.c (neg_const_int): Likewise.
	* expr.c (fixup_args_size_notes): Likewise.
	* stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
	* double-int.c (mul_double_wide_with_sign): Likewise.
	(double_int_mask): Likewise.
	* tree-ssa-loop-ivopts.c (get_address_cost): Likewise.

From-SVN: r190342
2012-08-13 14:39:54 +02:00
Marc Glisse
6a9573cc7b re PR libstdc++/54112 (including complex.h and complex fails in C++03)
2012-08-13  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/54112
	* include/c_compatibility/complex.h: Undefine complex, always
	include system's complex.h if present.
	* testsuite/26_numerics/complex/c99.cc: New testcase.
	* testsuite/17_intro/headers/c++1998/complex.cc: Likewise.
	* doc/xml/manual/numerics.xml: Document it.

From-SVN: r190340
2012-08-13 11:55:00 +00:00
Richard Guenther
61f7b9ae93 re PR tree-optimization/54200 (copyrename generates wrong debuginfo)
2012-08-13  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54200
	* tree-ssa-copyrename.c (rename_ssa_copies): Do not add
	PHI results to another partition if not all PHI arguments
	have the same partition.

	* gcc.dg/guality/pr54200.c: New testcase.
	* gcc.dg/tree-ssa/slsr-8.c: Adjust.

From-SVN: r190339
2012-08-13 09:29:28 +00:00
Jan Hubicka
f27c186710 tree-pass.h (write_summary, [...]): Remove set and vset arguments.
* tree-pass.h (write_summary, write_optimization_summary): Remove
	set and vset arguments.
	* ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
	(write_node_summary_p): Likewise; use the encoder.
	(ipa_reference_write_optimization_summary): Likewise.
	* lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
	(lto_symtab_encoder_new): Initialize in_partition field.
	(lto_symtab_encoder_delete): Destroy in_partition field.
	(LCC_NOT_FOUND): Move to lto-streamer.h
	(lto_symtab_encoder_deref): Likewise.
	(lto_symtab_encoder_in_partition_p,
	lto_set_symtab_encoder_in_partition): New functions.
	(referenced_from_other_partition_p): Rewrite to use encoder.
	(reachable_from_other_partition_p): Likewise.
	(referenced_from_this_partition_p): Likewise.
	(reachable_from_this_partition_p): Likewise.
	(lto_output_node): Likewise.
	(lto_output_varpool_node): Likewise.
	(output_refs): Likewise.
	(compute_ltrans_boundary): Initialize in_partition fileds of
	the encoder.
	(output_symtab): Likewise.
	(input_refs): Match the changes in output_refs.
	(output_cgraph_opt_summary_p): Remove set argument.
	(output_node_opt_summary): Replace set by encoder.
	(output_cgraph_opt_summary): Remove set argument; use
	the encoder.
	* ipa-pure-const.c (pure_const_write_summary): Remove set and vset
	arguments; use the encoder.
	* lto-streamer-out.c (lto_output): Remove set and vset argument; use
	the encoder.
	(produce_symtab): Likewise.
	* ipa-inline.h (inline_write_summary): Remove set and vset arguments.
	* ipa-inline-analysis.c (inline_write_summary): Likewise.
	* ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
	use encoder.
	* ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
	* passes.c (ipa_write_summaries_2): Remove set and vset arguments.
	(ipa_write_summaries_1): Update.
	(ipa_write_optimization_summaries_1): Likewise.
	(ipa_write_optimization_summaries): Likewise.
	* lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
	(lto_symtab_encoder_iterator): New type.
	(lto_symtab_encoder_deref): Make inline.
	(output_symtab, referenced_from_other_partition_p,
	reachable_from_other_partition_p, referenced_from_this_partition_p,
	reachable_from_this_partition_p): Update.
	(lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node, lsei_varpool_node): New
	inline functions.
	(LCC_NOT_FOUND): New macro.
	(lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
	lsei_start_in_partition, lsei_next_function_in_partition,
	lsei_start_function_in_partition, lsei_next_variable_in_partition,
	lsei_start_variable_in_partition): New inline functions.

	* lto-partition.c (set_referenced_from_other_partition_p,
	set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
	New functions.
	(lto_promote_cross_file_statics): Use them.

From-SVN: r190336
2012-08-13 02:37:51 +00:00
GCC Administrator
56142d02b3 Daily bump.
From-SVN: r190335
2012-08-13 00:17:27 +00:00
Oleg Endo
69853ea9b8 sh.md (prefetch): Simplify expander.
* config/sh/sh.md (prefetch): Simplify expander.  Fix condition to
	allow SH3.
	(*prefetch_media): Move insn below expander.
	(*prefetch): Fix condition to allow SH3.

	* gcc.target/sh/prefetch.c: Add -m3* to inclusion list.

From-SVN: r190332
2012-08-12 22:50:51 +00:00
Oleg Endo
eb11dba2b4 re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)
PR target/51244
	* config/sh/sh.md: Add splits for inverted compare and branch
	opportunities.
	(*cmpeqsi_t): New insn.
	(cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
	(cmpgeusi_t): Use satisfies_constraint_Z.  Emit sett insn in
	replacement insn list and not in the preparation statements.
	(clrt, sett): Add mt_group attribute.

	PR target/51244
	* gcc.target/sh/pr51244-7.c: New.
	* gcc.target/sh/pr51244-8.c: New.
	* gcc.target/sh/pr51244-9.c: New.
	* gcc.target/sh/pr51244-10.c: New.

From-SVN: r190331
2012-08-12 22:47:15 +00:00
Jonathan Wakely
3722862e60 re PR libstdc++/52681 ([C++11] Using std::thread without -pthread crashes without warning)
PR libstdc++/52681
	* src/c++11/thread.cc (thread::_M_start_thread): Improve error text
	when threads are not enabled.

From-SVN: r190330
2012-08-12 19:57:53 +01:00
Marc Glisse
874a3756f2 re PR middle-end/54193 (dump_gimple_assign raw can't handle 4 operands)
2012-08-12 Marc Glisse <marc.glisse@inria.fr>

	PR middle-end/54193
	* gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.

From-SVN: r190328
2012-08-12 16:20:41 +00:00
Oleg Endo
0885e9500d pr50749-sf-postinc-1.c: Skip for -m3.
* gcc.target/sh/pr50749-sf-postinc-1.c: Skip for -m3.  Don't skip for
	-m2e or -m2a.
	* gcc.target/sh/pr50749-sf-postinc-3.c: Likewise.
	* gcc.target/sh/pr53511-1.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-1.c: Likewise.
	* gcc.target/sh/pr50749-sf-predec-3.c: Likewise.
	* gcc.target/sh/pr53512-1.c: Skip for -m3*.
	* gcc.target/sh/pr53512-3.c: Likewise.
	* gcc.target/sh/pr21255-3.c: Skip for single precision FPU targets.

From-SVN: r190327
2012-08-12 14:22:07 +00:00
Oleg Endo
05852a5f5a re PR target/39423 ([SH] performance regression: lost mov @(disp,Rn))
PR target/39423
	* config/sh/predicates.md (mem_index_disp_operand): Check for
	arith_reg_operand instead of REG_P.

	PR target/39423
	* gcc.c-torture/compile/pr39423-1.c: New.
	* gcc.c-torture/compile/pr39423-2.c: New.

From-SVN: r190326
2012-08-12 13:23:20 +00:00
Tobias Burnus
58341a4294 re PR fortran/54221 (Explicit private access specifier signals "unexpected defined but not used [-Wunused-function]" warning)
2012-08-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54221
        * trans-decl.c (gfc_finish_var_decl, build_function_decl):
        Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.

2012-08-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54221
        * vect/vect-gems.f90: Don't mark module vars as PRIVATE as
        they appear uninitialized on the RHS.
        * gfortran.dg/public_private_module_6.f90: New.

From-SVN: r190325
2012-08-12 11:52:33 +02:00
GCC Administrator
46d2f0c2bc Daily bump.
From-SVN: r190324
2012-08-12 00:17:33 +00:00
Bernd Schmidt
3f5bd0f5b4 reload1.c (replaced_subreg, gen_reload): Add SECONDARY_MEMORY_NEEDED ifdefs as necessary.
* reload1.c (replaced_subreg, gen_reload): Add
	SECONDARY_MEMORY_NEEDED ifdefs as necessary.

From-SVN: r190318
2012-08-11 16:53:09 +00:00
Jan Hubicka
15d0e7a00b lto-section-in.c (lto_section_name): Do not use "symtab" as part of symtab_node sectoin name; it confuses plugin.
* lto-section-in.c (lto_section_name): Do not use "symtab" as part of
	symtab_node sectoin name; it confuses plugin.

From-SVN: r190317
2012-08-11 15:49:48 +00:00
Uros Bizjak
fcecf84ffc alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID in the va_list_vars bitmap by num_ssa_names.
* config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
	in the va_list_vars bitmap by num_ssa_names.

From-SVN: r190316
2012-08-11 16:45:15 +02:00
Uros Bizjak
920ac8043e sse.md (xop integer multiply/add insns): Use register_operand for operand 3 predicate.
* config/i386/sse.md (xop integer multiply/add insns): Use
	register_operand for operand 3 predicate.
	(xop_phadd<u>bq):  Fix vec_select selectors.

From-SVN: r190314
2012-08-11 13:37:02 +02:00
Martin Jambor
8810cc52c9 re PR fortran/48636 (Enable more inlining with -O2 and higher)
2012-08-11  Martin Jambor  <mjambor@suse.cz>

	PR fortran/48636
	* ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
	* ipa-inline-analysis.c (agg_position_info): New type.
	(add_condition): New parameter aggpos, also store agg_contents, by_ref
	and offset.
	(dump_condition): Also dump aggregate conditions.
	(evaluate_conditions_for_known_args): Also handle aggregate
	conditions.  New parameter known_aggs.
	(evaluate_properties_for_edge): Gather known aggregate contents.
	(inline_node_duplication_hook): Pass NULL known_aggs to
	evaluate_conditions_for_known_args.
	(unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
	(unmodified_parm_or_parm_agg_item): New function.
	(set_cond_stmt_execution_predicate): Handle values passed in
	aggregates.
	(set_switch_stmt_execution_predicate): Likewise.
	(will_be_nonconstant_predicate): Likewise.
	(estimate_edge_devirt_benefit): Pass new parameter known_aggs to
	ipa_get_indirect_edge_target.
	(estimate_calls_size_and_time): New parameter known_aggs, pass it
	recrsively to itself and to estimate_edge_devirt_benefit.
	(estimate_node_size_and_time): New vector known_aggs, pass it o
	functions which need it.
	(remap_predicate): New parameter offset_map, use it to remap aggregate
	conditions.
	(remap_edge_summaries): New parameter offset_map, pass it recursively
	to itself and to remap_predicate.
	(inline_merge_summary): Also create and populate vector offset_map.
	(do_estimate_edge_time): New vector of known aggregate contents,
	passed to functions which need it.
	(inline_read_section): Stream new fields of condition.
	(inline_write_summary): Likewise.
	* ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
	contents.  Let all local callers pass NULL for known_aggs.

	* testsuite/gfortran.dg/pr48636.f90: New test.

From-SVN: r190313
2012-08-11 12:50:24 +02:00
Jan Hubicka
ab96cc5b4d lto-cgraph.c (output_cgraph): Rename to ...
* lto-cgraph.c (output_cgraph): Rename to ...
	(output_symtab): ... this one. Update for LTO_section_symtab_nodes.
	(input_cgraph): Rename to ...
	(input_symtab): ... this one. Update for LTO_section_symtab_nodes.
	* lto-streamer-out.c (create_output_block): Do not set
	section_type.
	(produce_asm): Likewise.
	(lto_output_toplevel_asms): Likewise.
	(produce_asm_for_decls): Likewise.
	(lto_output): Use output_symtab.
	* lto-section-in.c (lto_section_name): Update.
	* lto-section-out.c (lto_destroy_simple_output_block): Remove section_type.
	* lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
	rename LTO_section_cgraph to LTO_section_symtab_nodes.
	(struct lto_header): Remove section_type.

	* lto.c (read_cgraph_and_symbols): Use input_symtab.

From-SVN: r190312
2012-08-11 08:38:59 +00:00
Ian Lance Taylor
3af76e5a95 compiler: Reject type switch using non-interface type.
Fixes issue 16.

From-SVN: r190310
2012-08-11 04:09:21 +00:00
Jan Hubicka
7380e6efdd cgraph.h (vector types for symtab_node): Add.
* cgraph.h (vector types for symtab_node): Add.
	* ipa-reference.c (ipa_reference_write_optimization_summary): Update
	for new symtab encoder.
	(ipa_reference_read_optimization_summary): Likewise.
	* lto-cgraph.c (output_varpool): Remove.
	(input_cgraph_opt_summary): Take symtab nodes vector as argument.
	(LTO_cgraph_tags): Rename to ...
	(LTO_symtab_tags): ... this one; add LTO_symtab_variable.
	(lto_cgraph_encoder_new): Rename to ...
	(lto_symtab_encoder_new): ... this on.
	(lto_cgraph_encoder_encode): Rename to ...
	(lto_symtab_encoder_encode): ... this one.
	(lto_cgraph_encoder_delete): Rename to ...
	(lto_symtab_encoder_delete): ... this one.
	(lto_cgraph_encoder_deref): Rename to ...
	(lto_symtab_encoder_deref): ... this one.
	(lto_cgraph_encoder_encode_body_p): Rename to ...
	(lto_symtab_encoder_encode_body_p): ... this one.
	(lto_varpool_encoder_new, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
	lto_varpool_encoder_deref): Remove.
	(lto_varpool_encoder_encode_initializer_p): Rename to ...
	(lto_symtab_encoder_encode_initializer_p): ... this one.
	(lto_set_varpool_encoder_encode_initializer): Rename to ...
	(lto_set_symtab_encoder_encode_initializer): ... this one.
	(lto_output_edge): Update.
	(lto_output_node): Update.
	(lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
	(lto_output_ref): Drop varpool_encoder; update.
	(add_node_to): Update.
	(add_references): Update.
	(output_outgoing_cgraph_edges): Update.
	(output_refs): Update.	
	(compute_ltrans_boundary): Update.
	(output_cgraph): Update; output varpools too.
	(input_overwrite_node): Update.
	(output_varpool): Remove.
	(input_node): Update.
	(input_ref): Update.
	(input_edge): Update.
	(input_cgraph_1): Update; input varpool too; unify fixup code.
	(input_varpool_1): Remove.
	(input_refs): Update.
	(input_cgraph): Update.
	(output_node_opt_summary): Update.
	(input_cgraph_opt_section): Update.
	(input_cgraph_opt_summary): Update.
	* ipa-pure-const.c (pure_const_write_summary): Update.
	(pure_const_read_summary): Update.
	* lto-streamer-out.c (lto_write_tree): Update.
	(lto_output): Likewise.
	(produce_symtab): Update.
	(produce_asm_for_decls): Update.
	* ipa-inline-analysis.c (inline_read_section): Update.
	(inline_write_summary): Update.
	* ipa-prop.c (ipa_write_node_info): Update.
	(ipa_prop_read_section): Update.
	* lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
	(lto_symtab_encoder_d): ... this one;  add initializer.
	(lto_cgraph_encoder_t): Rename to ...
	(lto_symtab_encoder_t): ... this one.
	(lto_cgraph_encoder_size): Rename to ...
	(lto_symtab_encoder_size): ... this one.
	(lto_varpool_encoder_d): ... remove.
	(lto_varpool_encoder_t): Remove.
	(lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
	add symtab_node_encoder.
	(lto_file_decl_data): Likewise.
	(lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
	lto_cgraph_encoder_new, lto_cgraph_encoder_encode, lto_cgraph_encoder_delete,
	lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p,
	lto_varpool_encoder_deref, lto_varpool_encoder_lookup, lto_varpool_encoder_new,
	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
	lto_varpool_encoder_encode_initializer_p): Remove.
	(lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
	lto_symtab_encoder_t, lto_symtab_encoder_encode, lto_symtab_encoder_delete,
	lto_symtab_encoder_encode_body_p, lto_symtab_encoder_encode_initializer_p):
	New.

From-SVN: r190309
2012-08-11 03:04:35 +00:00
GCC Administrator
46b496e997 Daily bump.
From-SVN: r190308
2012-08-11 00:18:07 +00:00
Uros Bizjak
3e5804e1a9 i386.md (isa): Add fma and fma4.
* config/i386/i386.md (isa): Add fma and fma4.
	(enabled): Handle fma and fma4.
	* config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
	(*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
	(*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
	(*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
	(*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
	(*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.

From-SVN: r190305
2012-08-11 00:25:17 +02:00
Uros Bizjak
b0d5396c7e * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
*fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
	*fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.

From-SVN: r190304
2012-08-10 22:46:15 +02:00
Jakub Jelinek
a2a40ee85b vector-shuffle1.c (f): Pass vectors indirectly to avoid warnings.
* gcc.dg/torture/vector-shuffle1.c (f): Pass vectors indirectly
	to avoid warnings.
	(main): Adjust caller.

From-SVN: r190302
2012-08-10 22:21:23 +02:00
Uros Bizjak
4bf02aaf4d i386.md (simple LEA peephole2s): Add zero-extend variants of PLUS and MULT simple LEA patterns.
* config/i386/i386.md (simple LEA peephole2s): Add zero-extend
	variants of PLUS and MULT simple LEA patterns.  Disable PLUS
	patterns for TARGET_OPT_AGU.

From-SVN: r190301
2012-08-10 19:20:09 +02:00
Richard Guenther
04f92ff4fc Makefile.in (OBJS): Remove matrix-reorg.o.
2012-08-10  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS): Remove matrix-reorg.o.
	(matrix-reorg.o): Remove dependence rule.
	(GTFILES): Remove matrix-reorg.c.
	* matrix-reorg.c: Remove.
	* passes.c (init_optimization_passes): Do not schedule
	pass_ipa_matrix_reorg.
	* tree-pass.h (pass_ipa_matrix_reorg): Remove.
	* common.opt (fipa-matrix-reorg): Stub out.
	* doc/invoke.texi (fipa-matrix-reorg): Remove documentation.

	* gcc.dg/matrix/*.c: Adjust and move ...
	* gcc.dg/torture/: ... here.
	* gcc.dg/matrix: Remove directory.

From-SVN: r190298
2012-08-10 14:19:09 +00:00
Richard Guenther
09e4850d7e re PR middle-end/54219 (__builtin_shuffle mask reversed)
2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR middle-end/54219
	* fold-const.c (fold_ternary_loc): Do not reverse the mask
	when canonicalizing it when folding VEC_PERM_EXPR.

	* gcc.dg/torture/vector-shuffle1.c: New testcase.

From-SVN: r190297
2012-08-10 13:35:34 +00:00
Bill Schmidt
99cababb4b re PR middle-end/54211 (ICE: verify_gimple failed building freetype with -Os)
gcc:

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR middle-end/54211
	* gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
	Use cand_type to determine whether pointer arithmetic will be generated.

gcc/testsuite:

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR middle-end/54211
	* gcc.dg/tree-ssa/pr54211.c: New test.

From-SVN: r190294
2012-08-10 12:16:04 +00:00
Bill Schmidt
75bc384117 sourcebuild.texi: Document long_neq_int effective target.
gcc:

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* doc/sourcebuild.texi: Document long_neq_int effective target.


testsuite:

2012-08-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* lib/target-supports.exp (check_effective_target_long_neq_int): New.
	* gcc.dg/tree-ssa/slsr-30.c: Check for long_neq_int effective target.

From-SVN: r190293
2012-08-10 12:11:29 +00:00
Richard Guenther
ab509eb535 re PR middle-end/54109 (ICE at tree-ssa-structalias.c:3049 in get_constraint_for_component_ref)
2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54109
	* tree-ssa-forwprop.c
	(forward_propagate_addr_into_variable_array_index): Remove.
	(forward_propagate_addr_expr_1): Adjust.

	* gcc.dg/torture/pr54109.c: New testcase.
	* gcc.dg/tree-ssa/forwprop-1.c: Adjust.
	* gcc.dg/tree-ssa/forwprop-2.c: Likewise.

From-SVN: r190291
2012-08-10 12:00:05 +00:00
Richard Guenther
e28b8a6054 tree-cfg.c (dump_function_to_file): Make sure to dump anonymous SSA names when there are no local decls.
2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree-cfg.c (dump_function_to_file): Make sure to dump
	anonymous SSA names when there are no local decls.

From-SVN: r190290
2012-08-10 11:54:55 +00:00
Steven Bosscher
580b2c2ef6 tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
* tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
	* tree-into-ssa.c (get_ssa_name_ann): Likewise.
	(mark_phi_for_rewrite): Likewise.
	(compute_global_livein): Use VEC_reserve outside the innermost
	loop and VEC_quick_push instead of VEC_safe_push in that loop.
	(update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
	of new_ssa_names and old_ssa_names.  Allocate phis_to_rewrite to
	the correct initial size.

From-SVN: r190289
2012-08-10 09:27:31 +00:00
Richard Guenther
83d5977e2f tree-ssa-pre.c (pretemp, [...]): Remove.
2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
	(need_creation): Remove.
	(get_representative_for): Use anonymous named SSA names.
	(create_expression_by_pieces): Likewise.
	(insert_into_preds_of_block): Likewise.
	(init_pre): Do not init removed vars.
	(fini_pre): Do not free need_creation.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
	SSA names.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* value-prof.c (gimple_divmod_fixed_value): Likewise.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_ic): Likewise.
	(gimple_stringop_fixed_value): Likewise.
	* tree-ssa-phiopt.c (condstoretemp): Remove.
	(tree_ssa_phiopt_worker): Use anonymous named SSA names.
	(conditional_replacement): Likewise.
	(abs_replacement): Likewise.
	(cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
	(rewrite_bittest): Likewise.
	* tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
	and build anonymous SSA names.
	(undistribute_ops_list): Adjust.
	(eliminate_redundant_comparison): Use anonymous SSA names.
	(rewrite_expr_tree_parallel): Likewise.
	(get_reassoc_pow_ssa_name): Remove.
	(attempt_builtin_powi): Adjust.
	(reassociate_bb): Likewise.
	* tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
	* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
	(build_arrays): Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops): Likewise.
	(create_tailcall_accumulator): Likewise.
	* tree-vect-generic.c (expand_vector_divmod): Likewise.
	* tree-profile.c (gcov_type_tmp_var): Remove.
	(gimple_init_edge_profiler): Do not initialize it and use anonymous
	SSA names.
	(gimple_gen_ic_profiler): Likewise.
	(tree_profiling): Adjust.
	* tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
	(powi_as_mults_1): Likewise.
	(powi_as_mults): Likewise.
	(build_and_insert_call): Adjust.
	(build_and_insert_binop): Likewise.
	(build_and_insert_ref): Likewise.
	(build_and_insert_cast): Likewise.
	(gimple_expand_builtin_pow): Likewise.
	(gimple_expand_builtin_cabs): Likewise.
	(execute_optimize_bswap): Use anonymous SSA names.
	(convert_mult_to_widen): Likewise.
	(convert_plusminus_to_widen): Likewise.
	* tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
	* tree-ssa-propagate.c (update_call_from_tree): Likewise.
	* tree-if-conv.c (ifc_temp_var): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* tree-parloops.c (take_address_of): Likewise.
	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
	(vect_permute_load_chain): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
	* tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
	(vect_handle_widen_op_by_const): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	* tree-vect-stmts.c (vect_init_vector): Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
	(simplify_float_conversion_using_ranges): Likewise.

From-SVN: r190288
2012-08-10 09:20:29 +00:00
Michael Zolotukhin
7b5e682ae5 i386.c (ix86_init_mmx_sse_builtins): Fix builtin target mask of __builtin_ia32_rdseed_di_step.
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix builtin
	target mask of __builtin_ia32_rdseed_di_step.

From-SVN: r190287
2012-08-10 08:39:47 +00:00
Richard Guenther
a28729836a re PR tree-optimization/54027 (possible mis-optimization of signed left shift in c89 mode)
2012-08-10  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54027
	* tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
	and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
	to handle LSHIFT_EXPR with a constant.

	* gcc.dg/torture/pr54027.c: New testcase.

From-SVN: r190286
2012-08-10 08:33:57 +00:00
Richard Guenther
70b5e7dc73 tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE is recorded as var.
2012-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
	is recorded as var.
	(SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
	or its SSA_NAME_VAR.
	(SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
	* tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
	SSA names by passing a type instead of a variable decl.
	(release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
	(copy_ssa_name_fn): Handle anonymous SSA names.
	(replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
	* tree-flow-inline.h (make_temp_ssa_name): New inline function.
	* tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
	dump SSA names without a name as <anon>.
	* cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
	going to expand a decl.
	(gimple_expand_cfg): Assign all SSA names of a partition the
	decl we created for its leader.
	* tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
	(verify_ssa_name): Handle anonymous SSA names.
	(verify_def): Likewise.
	* tree-predcom.c (eliminate_temp_copies): Likewise.
	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
	* tree-ssa-live.c (var_map_base_init): Compute conflicts for
	anonymous SSA names with the same type.
	(mark_all_vars_used_1): Handle anonymous SSA names.
	(verify_live_on_entry): Likewise.
	* tree-ssa-coalesce.c (abnormal_corrupt): Remove.
	(create_outofssa_var_map): Adjust with respect to conflicts we
	compute for anonymous SSA names.  Do not restrict abnormal
	coalescing.
	(coalesce_partitions): Do not restrict abnormal coalescing.
	Assert we only ever coalesce variables we computed conflicts for.
	* tree-ssa-ter.c (process_replaceable): Do not restrict TER
	of anonymous names.
	* expr.c (expand_expr_real_1): Handle anonymous SSA names
	expanded from IVOPTs by creating a raw REG here.
	* tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
	(dump_function_to_file): Dump anonymous SSA names alongside
	with their types in the variable list.
	(verify_gimple_return): Guard use of SSA_NAME_VAR.
	* tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
	(rewrite_into_ssa): Make SSA names anonymous.
	* tree-ssa-structalias.c (alias_get_name): Rewrite.
	* tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
	SSA names.
	(warn_uninitialized_phi): Likewise.
	* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
	anonymous SSA names to the expander.
	(determine_iv_cost): Anonymous SSA names are artificial.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
	Handle anonymous SSA names.
	* lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
	or if NULL, the type of the SSA name.
	* tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
	remap names as anonymous where appropriate.
	(insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
	* tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
	according to what we create conflicts for in out-of-SSA
	coalescing.
	* tree-parloops.c (separate_decls_in_region_name): Handle
	anonymous SSA names.
	(add_field_for_name): Likewise.
	* tree.c (get_name): Handle SSA names.
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
	SSA_NAMEs.
	* tree-vect-loop-manip.c (adjust_debug_stmts): Use
	virtual_operand_p.
	* tree-sra.c (create_access_replacement): Give up generating
	a DECL_DEBUG_EXPR for SSA names in the memory reference.
	(replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
	* tree-complex.c (get_component_ssa_name): Handle anonymous
	SSA names.
	(set_component_ssa_name): Likewise.
	* tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
	* tree-object-size.c (collect_object_sizes_for): Handle
	uninitialized SSA names properly.
	* ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
	SSA_NAME_VAR.
	* ipa-split.c (test_nonssa_use): Likewise.
	(consider_split): Likewise.
	(mark_nonssa_use): Likewise.

	c-family/
	* c-pretty-print.c (pp_c_expression): Handle anonymous SSA names.

	cp/
	* error.c (dump_expr): Likewise.

	* g++.dg/plugin/selfassign.c: Adjust.
	* gcc.dg/plugin/selfassign.c: Likewise.
	* gcc.dg/strlenopt-11.c: Likewise.
	* gcc.dg/strlenopt-13.c: Likewise.
	* gcc.dg/no-strict-overflow-4.c: Likewise.
	* gcc.dg/strict-overflow-4.c: Likewise.
	* gcc.dg/tree-ssa/alias-11.c: Likewise.
	* gcc.dg/tree-ssa/alias-6.c: Likewise.
	* gcc.dg/tree-ssa/asm-3.c: Likewise.
	* gcc.dg/tree-ssa/pr18908.c: Likewise.
	* gcc.dg/tree-ssa/pr19431.c: Likewise.
	* gcc.dg/tree-ssa/ssa-pre-21.c: Likewise.
	* gcc.dg/tree-ssa/phi-opt-10.c: Likewise.
	* gcc.dg/tree-ssa/phi-opt-7.c: Likewise.
	* gcc.dg/tree-ssa/slsr-27.c: Likewise.
	* gcc.dg/tree-ssa/slsr-28.c: Likewise.
	* gcc.dg/tree-ssa/slsr-29.c: Likewise.
	* gcc.dg/pr46309.c: Likewise.
	* gcc.dg/tree-ssa/loop-5.c: Likewise.

From-SVN: r190284
2012-08-10 08:29:29 +00:00
Jan Hubicka
c170d40f35 re PR middle-end/54146 (Very slow compile with attribute((flatten)))
PR middle-end/54146
	* ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
	parameter; honnor it.
	* ipa-inline.c (recursive_inlining): Update call
	of inline_call.
	(inline_small_functions): Likewise.
	(ipa_inline): Likewise.
	(inline_always_inline_functions): Likewise.
	(early_inline_small_functions): Likewise.
	(flatten_function): Do separate update of summary info.
	* ipa-inline.h (inline_update_overall_summary): Declare.
	(inline_call): Update.
	* ipa-inline-analysis.c (inline_merge_summary): Break out
	updating code to ...
	(inline_update_overall_summary): Likewise.

From-SVN: r190283
2012-08-10 07:52:23 +00:00
Ian Lance Taylor
938ff79ae7 runtime: use sched_getaffinity for runtime.NumCPU() on Linux
Fixes Go issue 3921 for gccgo.

From Shenghou Ma.

From-SVN: r190282
2012-08-10 06:08:11 +00:00
Richard Henderson
0d8e4dacd4 s390: Use VOIDmode with gen_rtx_SET
* config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.

From-SVN: r190281
2012-08-09 19:39:50 -07:00