Commit Graph

111054 Commits

Author SHA1 Message Date
David Li 8434c30579 Fix bug in vtable initialization
From-SVN: r177731
2011-08-13 05:13:57 +00:00
GCC Administrator b203901cda Daily bump.
From-SVN: r177728
2011-08-13 00:19:09 +00:00
Jason Merrill 98b3c04ea5 re PR c++/50034 (Overload selection failure within class template)
PR c++/50034
	* call.c (convert_arg_to_ellipsis): force_rvalue only in
	potentially evaluated context.

From-SVN: r177722
2011-08-12 17:27:52 -04:00
Richard Henderson 7b4ef66246 re PR rtl-optimization/49994 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2234 with -fsched2-use-superblocks)
PR rtl-opt/49994
        * sched-init.h (struct deps_desc): Add sched_before_next_jump.
        * sched-deps.c (init_deps): Clear it.
        (deps_analyze_insn): Consume it.
        (sched_analyze_insn): Fill it.

From-SVN: r177721
2011-08-12 14:00:00 -07:00
Richard Sandiford c789cb7756 Fix changelog
From-SVN: r177720
2011-08-12 20:28:18 +00:00
Paolo Bonzini 1563503deb re PR bootstrap/50047 (Revision 177670 failed to bootstrap)
2011-08-12  Paolo Bonzini  <bonzini@gnu.org>

	PR bootstrap/50047
	* Makefile.in (install-unwind_h): Create
	$(gcc_objdir)/include/unwind.h atomically.

From-SVN: r177706
2011-08-12 17:13:04 +00:00
Ramana Radhakrishnan 10c241af69 Fix PR target/48328 part 1
From-SVN: r177705
2011-08-12 16:58:09 +00:00
Diego Novillo 412288f1c0 data-streamer.h (streamer_write_zero): Rename from output_zero.
* data-streamer.h (streamer_write_zero): Rename from output_zero.
 	(streamer_write_uhwi): Rename from lto_output_uleb128.
 	(streamer_write_hwi): Rename from output_sleb128.
 	(streamer_write_string): Rename from lto_output_string.
 	(streamer_string_index): Rename from lto_string_index.
 	(streamer_write_string_with_length): Rename from
 	lto_output_string_with_length.
 	(streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
 	(streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
 	(streamer_read_string): Rename from lto_input_string.
 	(streamer_read_indexed_string): Rename from input_string_internal.
 	(streamer_read_uhwi): Rename from lto_input_uleb128.
 	(streamer_read_hwi): Rename from lto_input_sleb128.
 	(streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
 	(streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
 	(streamer_write_enum): Rename from lto_output_enum.
 	(streamer_read_enum): Rename from lto_input_enum.
 	(streamer_write_record_start): Rename from output_record_start.
 	(streamer_read_record_start): Rename from input_record_start.
 	(streamer_write_bitpack): Rename from lto_output_bitpack.
 	(streamer_read_bitpack): Rename from lto_input_bitpack.
 	(streamer_write_char_stream): Rename from lto_output_1_stream.
 	(streamer_read_uchar): Rename from lto_input_1_unsigned.
 	* tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
 	(streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
 	(streamer_read_string_cst): Rename from input_string_cst.
 	(streamer_read_chain): Rename from lto_input_chain.
 	(streamer_alloc_tree): Rename from lto_materialize_tree.
 	(streamer_read_tree_body): Rename from lto_input_tree_pointers.
 	(streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
 	(streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
 	(streamer_read_integer_cst): Rename from lto_input_integer_cst.
 	(streamer_read_tree_bitfields): Rename from tree_read_bitfields.
 	(streamer_write_chain): Rename from lto_output_chain.
 	(streamer_write_tree_header): Rename from lto_output_tree_header.
 	(streamer_pack_tree_bitfields): Rename from pack_value_fields.
 	(streamer_write_tree_body): Rename from lto_output_tree_pointers.
 	(streamer_write_integer_cst): Rename from lto_output_integer_cst.
 	(streamer_write_builtin): Rename from lto_output_builtin_tree.
 	(streamer_check_handled_ts_structures): Rename from
 	check_handled_ts_structures.
 	(streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
 	(streamer_tree_cache_insert_at): Rename from
 	lto_streamer_cache_insert_at.
 	(streamer_tree_cache_append): Rename from lto_streamer_cache_append.
 	(streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
 	(streamer_tree_cache_get): Rename from lto_streamer_cache_get.
 	(streamer_tree_cache_create): Rename from lto_streamer_cache_create.
 	(streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
 	* tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
 	(write_identifier): Rename from output_identifier.
 	(write_ts_common_tree_pointers): Rename from
 	lto_output_ts_common_tree_pointers.
 	(write_ts_vector_tree_pointers): Rename from
 	lto_output_ts_vector_tree_pointers.
 	(write_ts_complex_tree_pointers): Rename from
 	lto_output_ts_complex_tree_pointers.
 	(write_ts_decl_minimal_tree_pointers): Rename from
 	lto_output_ts_decl_minimal_tree_pointers.
 	(write_ts_decl_common_tree_pointers): Rename from
 	lto_output_ts_decl_common_tree_pointers.
 	(write_ts_decl_non_common_tree_pointers): Rename from
 	lto_output_ts_decl_non_common_tree_pointers.
 	(write_ts_decl_with_vis_tree_pointers): Rename from
 	lto_output_ts_decl_with_vis_tree_pointers.
 	(write_ts_field_decl_tree_pointers): Rename from
 	lto_output_ts_field_decl_tree_pointers.
 	(write_ts_function_decl_tree_pointers): Rename from
 	lto_output_ts_function_decl_tree_pointers.
 	(write_ts_type_common_tree_pointers): Rename from
 	lto_output_ts_type_common_tree_pointers.
 	(write_ts_type_non_common_tree_pointers): Rename from
 	lto_output_ts_type_non_common_tree_pointers.
 	(write_ts_list_tree_pointers): Rename from
 	lto_output_ts_list_tree_pointers.
 	(write_ts_vec_tree_pointers): Rename from
 	lto_output_ts_vec_tree_pointers.
 	(write_ts_exp_tree_pointers): Rename from
 	lto_output_ts_exp_tree_pointers.
 	(write_ts_block_tree_pointers): Rename from
 	lto_output_ts_block_tree_pointers.
 	(write_ts_binfo_tree_pointers): Rename from
 	lto_output_ts_binfo_tree_pointers.
 	(write_ts_constructor_tree_pointers): Rename from
 	lto_output_ts_constructor_tree_pointers.
 	(write_ts_target_option): Rename from
 	lto_output_ts_target_option.
 	(write_ts_translation_unit_decl_tree_pointers): Rename from
 	lto_output_ts_translation_unit_decl_tree_pointers.
 	* tree-streamer.c (streamer_tree_cache_add_to_node_array):
 	Rename from lto_streamer_cache_add_to_node_array.
 	(streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
 	(record_common_node): Rename from lto_record_common_node.

	* streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
	declarations.
	* data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
	function.
	* data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
	unused function.
	* Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
	(ipa-reference.o): Likewise.
	* lto-section-out.c: Include data-streamer.h.
	* ipa-reference.c: Include data-streamer.h.

From-SVN: r177704
2011-08-12 12:42:13 -04:00
Nick Clifton 9b0f6f5e51 builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
* builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi
	pattern.
	* doc/md.texi (cmpstrn): Note that the comparison stops if both
	fetched bytes are zero.
	(cmpstr): Likewise.
	(cmpmem): Note that the comparison does not stop if both of the
	fetched bytes are zero.

From-SVN: r177701
2011-08-12 16:26:11 +00:00
Steve Ellcey c49b1a299e md5.c (md5_read_ctx): Handle mis-aligned resbuf pointer.
2011-08-12  Steve Ellcey  <sje@cup.hp.com>

	* md5.c (md5_read_ctx): Handle mis-aligned resbuf pointer.

From-SVN: r177700
2011-08-12 16:06:57 +00:00
Paolo Carlini e02d979a34 cmath (fmod(_Tp, _Up)): Add.
2011-08-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cmath (fmod(_Tp, _Up)): Add.
	* include/c_std/cmath: Likewise.

From-SVN: r177698
2011-08-12 15:40:01 +00:00
Uros Bizjak 6c32ee7449 builtins.def (BUILT_IN_ICEIL{,F,L}, [...]): New builtin definitions.
* builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
	BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
	* convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
	BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
	to integer_type_node.
	* fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
	BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
	* builtins.c (expand_builtin_in): Ditto.
	(mathfn_built_in_1): Ditto.
	(expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
	BUILT_IN_IFLOOR.
	(expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
	BUILT_IN_IROUND.
	(fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
	BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
	BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.

testsuite/ChangeLog:

	* gcc.dg/builtins-67.c: New test.
	* gcc.target/i386/conversion.c: Ditto.

From-SVN: r177694
2011-08-12 14:32:41 +02:00
Richard Biener d9fbc86e44 tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2011-08-12  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_unary_expr_1): Implement
	-X as 0 - X.

From-SVN: r177693
2011-08-12 11:29:01 +00:00
Richard Guenther 6aeb8c9919 call.c (build_over_call): Instead of memcpy use an assignment of two MEM_REFs.
2011-08-12  Richard Guenther  <rguenther@suse.de>

	* call.c (build_over_call): Instead of memcpy use an
	assignment of two MEM_REFs.

From-SVN: r177691
2011-08-12 08:55:05 +00:00
Romain Geissler f895fc2a0d install c-tree.h as a plugin header
From-SVN: r177690
2011-08-12 10:19:27 +02:00
Richard Sandiford 20fe71c256 arm.c (get_label_padding): New function.
gcc/
	* config/arm/arm.c (get_label_padding): New function.
	(create_fix_barrier, md_reorg): Likewise.

From-SVN: r177689
2011-08-12 07:59:09 +00:00
GCC Administrator 786eeca2bd Daily bump.
From-SVN: r177688
2011-08-12 00:18:22 +00:00
Uros Bizjak 88b590c512 re PR target/49781 ([x32] Unnecessary lea in x32 mode)
PR target/49781
	* config/i386/i386.md (*lea_5_zext): New.
	(*lea_6_zext): Ditto.
	* config/i386/predicates.md (const_32bit_mask): New predicate.
	(lea_address_operand): Reject AND.
	* config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
	const_32bit_mask immediate.
	(ix86_print_operand_address): Handle AND.
	(memory_address_length): Ditto.

From-SVN: r177683
2011-08-11 22:03:29 +02:00
Paolo Carlini a4eeb82207 future: constexpr functions are implicitly inline.
2011-08-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/future: constexpr functions are implicitly inline.
	* include/std/chrono: Likewise.
	* include/std/complex: Likewise.
	* include/bits/move.h: Likewise.
	* include/bits/stl_pair.h: Likewise.

From-SVN: r177679
2011-08-11 17:53:05 +00:00
Romain Geissler 4309e92c98 plugin.def: Add event for finish_decl.
2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
            Brian Hackett  <bhackett1024@gmail.com>

gcc/ChangeLog:

      * plugin.def: Add event for finish_decl.
      * plugin.c (register_callback, invoke_plugin_callbacks): Same.
      * c-decl.c (finish_decl): Invoke callbacks on above event.
      * doc/plugins.texi: Document above event.

gcc/cp/ChangeLog:

      * decl.c (cp_finish_decl): Invoke callbacks on finish_decl event.

gcc/testsuite/ChangeLog:

      * g++.dg/plugin/decl_plugin.c: New.
      * g++.dg/plugin/decl-plugin-test.C: New.
      * g++.dg/plugin/plugin.exp: Add above testcase.

Co-Authored-By: Brian Hackett <bhackett1024@gmail.com>

From-SVN: r177674
2011-08-11 11:57:38 -04:00
Richard Guenther 25aa059e63 tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant lookups, make looking through aggregate copies stronger.
2011-08-11  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
	lookups, make looking through aggregate copies stronger.

	* g++.dg/tree-ssa/pr41186.C: Un-XFAIL.

From-SVN: r177672
2011-08-11 15:34:46 +00:00
Rainer Orth 3627ac1ad6 * Makefile.in (install-unwind_h): Remove destination file first.
From-SVN: r177670
2011-08-11 15:19:32 +00:00
Richard Henderson 6bfd73a621 re PR bootstrap/50018 (fixup_args_size_notes ICE breaks m68k-linux bootstrap)
PR bootstrap/50018
        * expr.c (fixup_args_size_notes): Accept and ignore normal calls.

From-SVN: r177669
2011-08-11 08:09:30 -07:00
Richard Guenther 022676dcde lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2011-08-11  Richard Guenther  <rguenther@suse.de>

	* lto-cgraph.c (input_node): Use DECL_BUILT_IN.
	* tree-vrp.c (stmt_interesting_for_vrp): Likewise.
	(vrp_visit_stmt): Likewise.

From-SVN: r177668
2011-08-11 14:34:51 +00:00
Richard Guenther 8d2b04104d re PR middle-end/50040 (missed warning: ‘x.y’ is used uninitialized in this function)
2011-08-11  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50040
	* gimplify.c (gimplify_modify_expr_complex_part): Mark the
	load of the other piece with TREE_NO_WARNING.
	* tree-flow.h (warn_uninit): Adjust prototype.
	* tree-ssa.c (warn_uninit): Take uninitialized SSA name,
	the base variable and the expression that is used separately.
	Properly query all TREE_NO_WARNING flags.
	(struct walk_data): Remove.
	(warn_uninitialized_var): Likewise.
	(warn_uninitialized_vars): Do not walk gimple pieces but simply
	look at all SSA uses of the statement.  Handle unused memory
	separately.
	* tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.

	* g++.dg/warn/unit-1.C: Un-XFAIL.
	* gcc.dg/uninit-I.c: Likewise.

From-SVN: r177667
2011-08-11 14:28:36 +00:00
Michael Matz 0f8de04340 * gcc.dg/graphite/run-id-pr47593.c: Remove -m32.
From-SVN: r177666
2011-08-11 13:43:05 +00:00
Kazuhiro Inaoka 78926be115 rx.md (movsicc): Allow register to register transfers.
* config/rx/rx.md (movsicc): Allow register to register
	transfers.
	(*movsicc): Likewise.
	(*stcc): Restrict this pattern to EQ and NE compares.
	(*stcc_reg): New pattern.  Works for any comparison but only for
	register transfers.

From-SVN: r177665
2011-08-11 12:34:30 +00:00
Diego Novillo c30f448beb Remove bogus ChangeLog edits.
From-SVN: r177662
2011-08-11 08:06:17 -04:00
Diego Novillo b939365672 tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call stream_write_tree instead of output_record_start.
* tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
	Call stream_write_tree instead of output_record_start.
	(lto_output_ts_binfo_tree_pointers): Likewise.

	* streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
	Convert it to a macro.
	(stream_read_tree): Likewise.

	* lto-streamer.h (lto_stream_as_builtin_p): Move ...
	* tree-streamer.h (lto_stream_as_builtin_p): ... here.

	* lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
	and tree_read_bitfields.
	* lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
	(lto_write_tree): Call it.
	* lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
	* streamer-hooks.h (struct streamer_hooks): Remove fields
	name, is_streamable and alloc_tree. Update all users.
	* tree-streamer-in.c (tree_read_bitfields): Factor out of ...
	(lto_materialize_tree): ... here.
	Handle CALL_EXPR codes.
	Remove call to lto_streamer_cache_append.
	* tree-streamer-out.c (lto_output_tree_header): Handle
	CALL_EXPR nodes.
	* tree-streamer.h (tree_read_bitfields): Declare.

	* Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
	(gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
	* tree-streamer.h (stream_read_tree): New.  Replace all calls
	to lto_input_tree with it.
	(stream_write_tree): New.  Replace all calls to lto_output_tree,
	lto_output_tree_ref and lto_output_tree_or_ref with it.
	* lto-streamer-in.c (lto_read_tree): Inline code from
	lto_streamer_read_tree.
	(lto_input_tree): Move from tree-streamer-in.c.
	* lto-streamer-out.c (lto_output_tree_ref): Make static.
	Remove handling of NULL values for EXPR.
	Do not handle EXPRs that are not indexable.
	(lto_write_tree): Move from tree-streamer-out.c.
	Inline lto_streamer_write_tree.
	(lto_output_tree): Move from tree-streamer-out.c.
	If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
	* lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
	(lto_preload_common_nodes): Likewise.
	Remove assertions and adjustments for nodes
	main_identifier_node, ptrdiff_type_node and fileptr_type_node.
	(lto_streamer_hooks_init): Set streamer_hooks.write_tree to
	lto_output_tree and streamer_hooks.read_tree to
	lto_input_tree.
	* lto-streamer.h (lto_input_tree): Declare.
	(lto_output_tree_ref): Remove.
	* streamer-hooks.h (struct streamer_hooks): Remove fields
	preload_common_nodes, indexable_with_decls_p,
	pack_value_fields, unpack_value_fields, output_tree_header and
	has_unique_integer_csts_p.
	Update all users.
	* tree-streamer-in.c (lto_materialize_tree): Make extern.
	(lto_input_tree_pointers): Likewise.
	(lto_read_tree): Move to lto-streamer-in.c.
	(lto_input_integer_cst): Make extern.
	(lto_get_pickled_tree): Likewise.
	(lto_get_builtin_tree): Likewise.
	(lto_input_tree): Move to lto-streamer-in.c.
	* tree-streamer-out.c (pack_value_fields): Make extern.
	(lto_output_tree_or_ref): Remove.  Replace all callers with
	calls to stream_write_tree.
	(lto_output_builtin_tree): Make extern.
	(lto_streamer_write_tree): Inline into lto_write_tree.
	(lto_output_tree_pointers): Make extern.
	(lto_output_tree_header): Likewise.
	(lto_output_integer_cst): Likewise.
	(lto_write_tree): Move to lto-streamer-out.c.
	(lto_output_tree): Likewise.
	* tree-streamer.c (lto_record_common_node): Move from
	lto-streamer.c
	(preload_common_nodes): Likewise.
	(lto_streamer_cache_create): Call it.
	* tree-streamer.h: Include streamer-hooks.h.
	(stream_write_tree): New.
	(stream_read_tree): New.
	(lto_input_tree): Remove.
	(lto_materialize_tree): Declare.
	(lto_input_tree_pointers): Declare.
	(lto_get_pickled_tree): Declare.
	(lto_get_builtin_tree): Declare.
	(lto_input_integer_cst): Declare.
	(lto_output_tree_header): Declare.
	(pack_value_fields): Declare.
	(lto_output_tree_pointers): Declare.
	(lto_output_integer_cst): Declare.
	(lto_output_builtin_tree): Declare.

From-SVN: r177661
2011-08-11 08:02:34 -04:00
Sergey Grechanik cf596bc73f sel-sched-ir.c (get_seqno_of_a_pred): Rename to get_seqno_for_a_jump.
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (get_seqno_of_a_pred): Rename to
	get_seqno_for_a_jump.  Update the caller.
	(get_seqno_by_succs): New.  Use it ...
	(get_seqno_for_a_jump): ... here to find a seqno if looking at
	predecessors was not sufficient.
	(get_seqno_by_preds): Include head in iteration range, exclude insn.

From-SVN: r177660
2011-08-11 08:01:54 -04:00
Diego Novillo ae328e332b sel-sched-ir.c (invalidate_av_set): Remove the assert.
2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (invalidate_av_set): Remove the assert.

From-SVN: r177659
2011-08-11 08:01:15 -04:00
Sergey Grechanik ca31ca94f9 sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge only if producer writes to the register given by regno.
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
	only if producer writes to the register given by regno.

From-SVN: r177658
2011-08-11 15:55:11 +04:00
Sergey Grechanik f089830723 sched-deps.c (sched_get_condition_with_rev): Rename to ...
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
	    Alexander Monakov  <amonakov@ispras.ru>

	* sched-deps.c (sched_get_condition_with_rev): Rename to ...
	(sched_get_condition_with_rev_uncached): ... this.  Factor out
	condition caching logic into ...
	(sched_get_condition_with_rev): ... this.  Reimplement.  Do not
	attempt to use cache for instructions with zero luid.
	(sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
	* sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.


Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>

From-SVN: r177657
2011-08-11 15:53:51 +04:00
Sergey Grechanik 0d9439b07c sel-sched-ir.c (get_seqno_of_a_pred): Rename to get_seqno_for_a_jump.
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.c (get_seqno_of_a_pred): Rename to
	get_seqno_for_a_jump.  Update the caller.
	(get_seqno_by_succs): New.  Use it ...
	(get_seqno_for_a_jump): ... here to find a seqno if looking at
	predecessors was not sufficient.
	(get_seqno_by_preds): Include head in iteration range, exclude insn.

From-SVN: r177656
2011-08-11 15:50:27 +04:00
Dmitry Melnik 5c416724e0 sel-sched-ir.c (invalidate_av_set): Remove the assert.
2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (invalidate_av_set): Remove the assert.

From-SVN: r177655
2011-08-11 15:49:16 +04:00
Sergey Grechanik cf3d58240b sel-sched-ir.h (register_unavailable_p): Declare.
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched-ir.h (register_unavailable_p): Declare.
	* sel-sched-ir.c (register_unavailable_p): New.  Use it...
	(set_unavailable_target_for_expr): ... here to properly test
	availability of a register.
	(speculate_expr): Ditto.
	* sel-sched.c (substitute_reg_in_expr): Ditto.
	(av_set_could_be_blocked_by_bookkeeping_p): Ditto.

From-SVN: r177654
2011-08-11 15:48:07 +04:00
Sergey Grechanik 944499ed6b sel-sched.c (verify_target_availability): Fix usage of hard_regno_nregs.
2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>

	* sel-sched.c (verify_target_availability): Fix usage of
	hard_regno_nregs.

From-SVN: r177653
2011-08-11 15:42:43 +04:00
Dmitry Melnik 6bf2d15641 sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of recognized by cannot_copy_insn_p hook and volatile instructions.
2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
	recognized by cannot_copy_insn_p hook and volatile instructions.

From-SVN: r177652
2011-08-11 15:41:27 +04:00
Dmitry Melnik bf3a40e953 sel-sched-ir.c (merge_expr_data): Take maximum spec.
2011-08-11  Dmitry Melnik  <dm@ispras.ru>

	* sel-sched-ir.c (merge_expr_data): Take maximum spec.

From-SVN: r177651
2011-08-11 15:40:07 +04:00
Martin Jambor f82d1a94ec lto.c (uniquify_nodes): Use main variant's BINFO too.
2011-08-11  Martin Jambor  <mjambor@suse.cz>

lto/
	* lto.c (uniquify_nodes): Use main variant's BINFO too.

From-SVN: r177650
2011-08-11 12:09:43 +02:00
Richard Sandiford f9bf5a8e96 md.texi (define_bypass): Say that the instruction names can be filename-style globs.
gcc/
	* doc/md.texi (define_bypass): Say that the instruction names can
	be filename-style globs.
	* Makefile.in (FNMATCH_H): Define.
	(build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
	* genattrtab.c: Include fnmatch.h.
	(bypass_list): Change field name from "insn" to "pattern".
	(gen_bypass_1): Update accordingly.
	(process_bypasses): Use fnmatch to check for matches between
	insn reservations and define_bypasses.
	* genautomata.c: Include fnmatch.h.
	(bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
	and out_pattern respectively.
	(gen_bypass, insert_bypass): Update accordingly.
	(for_each_matching_insn, process_bypass_2, process_bypass_1)
	(process_bypass): New functions.
	(process_decls): Use process_bypass.  Update after field name changes.

From-SVN: r177649
2011-08-11 08:25:41 +00:00
Georg-Johann Lay 7ece388150 re PR target/49687 ([avr] Missed optimization for widening MUL)
PR target/49687
	* config/avr/avr.md (smulqi3_highpart): New insn.
	(umulqi3_highpart): New insn.
	(*subqi3.ashiftrt7): New insn.
	(smulhi3_highpart): New expander.
	(umulhi3_highpart): Nex expander.
	(*smulhi3_highpart_call): New insn.
	(*umulhi3_highpart_call): New insn.
	(extend_u): New code attribute.
	(extend_prefix): Rename code attribute to extend_su.
	* config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
	widening QI/HI multiply.

From-SVN: r177648
2011-08-11 07:50:37 +00:00
Ira Rosen fb2c2b1672 re PR tree-optimization/50039 (Segfault in vect_operation_fits_smaller_type())
PR tree-optimization/50039
        * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
        that DEF_STMT has a stmt_vec_info.

From-SVN: r177647
2011-08-11 05:43:14 +00:00
GCC Administrator 7746e0a16c Daily bump.
From-SVN: r177642
2011-08-11 00:18:36 +00:00
H.J. Lu 2561061945 Initialize src3 with random value.
2011-08-10  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/sse4_1-blendps-2.c: Include <stdlib.h>.
	(sse4_1_test): Initialize src3 with random value.

From-SVN: r177628
2011-08-10 08:38:18 -07:00
Richard Guenther b126811e7d tree.h (can_trust_pointer_alignment): Remove.
2011-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (can_trust_pointer_alignment): Remove.
	* builtins.c (can_trust_pointer_alignment): Remove.

	cp/
	* call.c (build_over_call): Call memcpy unconditionally.

From-SVN: r177625
2011-08-10 15:08:14 +00:00
Artjoms Sinkarovs 0e3a99ae91 c-typeck.c (scalar_to_vector): New function.
2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>

	* c-typeck.c (scalar_to_vector): New function. Try scalar to
	vector conversion.
	(stv_conv): New enum for scalar_to_vector return type.
	(build_binary_op): Adjust.
	* doc/extend.texi: Description of scalar to vector expansion.

	c-family/
	* c-common.c (unsafe_conversion_p): New function. Check if it is
	unsafe to convert an expression to the type.
	(conversion_warning): Adjust, use unsafe_conversion_p.
	* c-common.h (unsafe_conversion_p): New function declaration.

	testsuite/
	* gcc.c-torture/execute/scal-to-vec1.c: New test.
	* gcc.c-torture/execute/scal-to-vec2.c: New test.
	* gcc.c-torture/execute/scal-to-vec3.c: New test.
	* gcc.dg/scal-to-vec1.c: New test.
	* gcc.dg/scal-to-vec2.c: New test.

From-SVN: r177622
2011-08-10 14:44:02 +00:00
Richard Guenther 0eb778344e tree.h (get_pointer_alignment): Remove max-align argument.
2011-08-10  Richard Guenther  <rguenther@suse.de>

	* tree.h (get_pointer_alignment): Remove max-align argument.
	(get_object_alignment): Likewise.
	* builtins.c (get_object_alignment_1): Adjust.
	(get_object_alignment): Remove max-align argument.
	(get_pointer_alignment): Likewise.
	(expand_builtin_strlen): Adjust.
	(expand_builtin_memcpy): Likewise.
	(expand_builtin_mempcpy_args): Likewise.
	(expand_builtin_strncpy): Likewise.
	(expand_builtin_memset_args): Likewise.
	(expand_builtin_memcmp): Likewise.
	(expand_builtin_strcmp): Likewise.
	(expand_builtin_strncmp): Likewise.
	(get_builtin_sync_mem): Likewise.
	(fold_builtin_memset): Likewise.
	(fold_builtin_memory_op): Likewise.
	(expand_builtin_memory_chk): Likewise.
	* emit-rtl.c (get_mem_align_offset): Likewise.
	(set_mem_attributes_minus_bitpos): Likewise.
	* expr.c (expand_assignment): Likewise.
	(expand_expr_real_1): Likewise.
	* tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
	* value-prof.c (gimple_stringops_transform): Likewise.

From-SVN: r177620
2011-08-10 12:24:23 +00:00
Paulo J. Matos 1c7836f0e8 tm.texi.in (CLASS_MAX_NREGS): Fix typo.
gcc/
2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>

	* doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
	* doc/tm.texi: Regenerate.

From-SVN: r177619
2011-08-10 09:38:52 +00:00
Georg-Johann Lay 4ada410ba1 re PR target/29560 ([avr] Poor optimization for byte shifts)
PR target/29560
	* config/avr/avr.md (*ashlhiqi3): New insn-and-split.
	(*ashl<extend_prefix>qihiqi3): New insn-and-splits.
	(*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
	Add peephole2 to map ashlhi3 to ashlqi3 if high part of
	shift target is unused.

From-SVN: r177616
2011-08-10 08:58:03 +00:00