Commit Graph

108000 Commits

Author SHA1 Message Date
Jason Merrill 516d9427ed re PR c++/48594 (Rejects valid with pointer-to-member in template)
PR c++/48594
	* decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
	or pointer to (non-member) function.

From-SVN: r172394
2011-04-13 16:50:26 -04:00
Nathan Froyd 4b1a46942e tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
* tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
	* tree-ssanames.c (fini_ssanames): VEC_free it.
	(make_ssa_name_fn): Update for VECness of free_ssanames.
	(release_ssa_name, release_dead_ssa_names): Likewise.
	* tree.h (struct tree_ssa_name): Include tree_typed instead of
	tree_common.
	* tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
	TS_TYPED instead of TS_COMMON.

From-SVN: r172393
2011-04-13 20:32:30 +00:00
Nathan Froyd 4da3b811f9 postreload-gcse.c (gcse_after_reload_main): Add calls to statistics_counter_event.
* postreload-gcse.c (gcse_after_reload_main): Add calls to
	statistics_counter_event.
	* tree-ssa-copyrename.c (stats): Define.
	(rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
	statistics_counter_event.
	* tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
	(bswap_stats, widen_mul_stats): Define.
	(insert_reciprocals): Increment rdivs_inserted.
	(execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
	rfuncs_inserted.  Add calls to statistics_counter_event.
	(execute_cse_sincos_1): Increment inserted.
	(execute_cse_sincos): Zeroize sincos_stats.  Add call to
	statistics_counter_event.
	(execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
	of bswap_stats.  Add calls to statistics_counter_event.
	(convert_mult_to_widen): Increment widen_mults_inserted.
	(convert_plusminus_to_widen): Increment maccs_inserted.
	(convert_mult_to_fma): Increment fmas_inserted.
	(execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
	calls to statistics_counter_event.

From-SVN: r172392
2011-04-13 19:39:02 +00:00
Vladimir Makarov 89fa552a9e re PR rtl-optimization/48455 (Huge code size regression for all ARM configurations)
2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/48455
	* ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
	`temp_costs->mem_cost'.

From-SVN: r172389
2011-04-13 18:26:52 +00:00
Jan Hubicka 03dfc36daf ipa-inline.h: New file.
* ipa-inline.h: New file.
	* ipa-inline-analysis.c: New file. Broken out of ...
	* ipa-inline.c: ... this file; update toplevel comment;
	include ipa-inline.h
	(inline_summary): Move to ipa-inline.h
	(cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
	ipa-inline-analysis.c.
	(cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
	move to ipa-inline-analysis.c
	(cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
	to estimate_edge_growth.
	(cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
	rename to estimate_size_after_inlining.
	(cgraph_mark_inline_edge): Update for new naming convention.
	(cgraph_check_inline_limits): Likewise.
	(cgraph_edge_badness): Likewise.
	(cgraph_decide_recursive_inlining): Likewise.
	(cgraph_decide_inlining_of_small_functions): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.
	(cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
	(eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
	(estimate_function_body_sizes): Move to ipa-inline-analysis.c.
	(compute_inline_parameters): Likewise.
	(compute_inline_parameters_for_current): Likewise.
	(pass_inline_parameters): Likewise.
	(inline_indirect_intraprocedural_analysis): Likewise.
	(analyze_function): Rename to inline_analyze_function; likewise.
	(add_new_function): Move to ipa-inline-analysis.c.
	(inline_generate_summary): Likewise.
	(inline_read_summary): Likewise.
	(inline_write_summary): Likewise.
	* Makefile.in (ipa-inline-analysis.c): New file.

From-SVN: r172388
2011-04-13 17:26:50 +00:00
Rainer Orth 7673c9623f configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
* configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
	* configure: Regenerate.

From-SVN: r172387
2011-04-13 17:12:53 +00:00
Nathan Froyd 9698252f89 tree.h (struct tree_int_cst, [...]): Include tree_typed instead of tree_common.
* tree.h (struct tree_int_cst, struct real_value): Include tree_typed
	instead of tree_common.
	(struct tree_fixed_cst, struct tree_string, struct tree_complex):
	Likewise.
	* tree.c (initialize_tree_contains_struct): Mark such nodes as being
	TS_TYPED rather than TS_COMMON.
	* print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.

From-SVN: r172386
2011-04-13 17:04:36 +00:00
Georg-Johann Lay 86d835306c Fix ChangeLog entry for PR target/45263
From-SVN: r172385
2011-04-13 16:46:29 +00:00
Georg-Johann Lay 3a7bfdd522 re PR target/45263 (registers used in __do_global_ctors can get clobbered)
PR target/45263
	* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Save
	R20 around calls of __tablejump_elpm__

From-SVN: r172384
2011-04-13 16:36:50 +00:00
Georg-Johann Lay 3a78d31ff3 MAINTAINERS (Write After Approval): Add myself.
2011-04-13  Georg-Johann Lay  <avr@gjlay.de>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r172382
2011-04-13 16:04:11 +00:00
Jakub Jelinek 20790697dd re PR middle-end/48591 (OpenMP ICE with atomics on __float128 in 32-bit only i686 cc1)
PR middle-end/48591
	* omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
	NULL.
	(expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.

	* gcc.dg/gomp/pr48591.c: New test.

	* testsuite/libgomp.c/pr48591.c: New test.

From-SVN: r172379
2011-04-13 17:50:02 +02:00
Jakub Jelinek 9c76a19e8f re PR regression/48570 (wrong subscription with -std=c++0x)
PR c++/48570
	* semantics.c (cxx_eval_array_reference): Handle reading from
	wchar_t, char16_t and char32_t STRING_CST.

	* g++.dg/cpp0x/constexpr-wstring1.C: New test.
	* g++.dg/cpp0x/constexpr-wstring2.C: New test.

From-SVN: r172377
2011-04-13 17:38:50 +02:00
Dodji Seketeli 91d8b4bd7a re PR c++/48574 (ICE)
Fix PR c++/48574

gcc/cp/

	* class.c (fixed_type_or_null): We cannot determine the dynamic
	type of a reference variable if its initializer is dependent.

gcc/testsuite/

	* g++.dg/template/dependent-expr7.C: New test case.

From-SVN: r172375
2011-04-13 17:09:26 +02:00
Jason Merrill ba9c349ec8 pt.c (tsubst_copy_and_build): Don't complain about unqualified lookup failing if we're still in a template.
* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
	unqualified lookup failing if we're still in a template.

From-SVN: r172372
2011-04-13 10:34:05 -04:00
Bernd Schmidt 094d766192 dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
* dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
	(dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
	(cfi_vec): New typedef.
	(struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
	dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
	(cie_cfi_vec): New static variable.
	(cie_cfi_head): Delete.
	(add_cfi): Accept a cfi_vec * as first argument. All callers and
	declaration changed. Use vector rather than list operations.
	(new_cfi): Don't initialize the dw_cfi_next field.
	(add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
	rather than list operations.
	(lookup_cfa): Use vector rather than list operations.
	(output_cfis): New argument upto. Accept a cfi_vec rather than
	a dw_cfi_ref list head as argument. All callers changed.
	Iterate over the vector using upto as a maximum index.
	(output_all_cfis): New static function.
	(output_fde): Use vector rather than list operations. Use the
	new upto argument for output_cfis rather than manipulating a
	list.
	(dwarf2out_begin_prologue): Change initializations to match
	new struct members.
	(dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
	from the vector length rather than searching for the end of a list.
	Use output_all_cfis.
	(convert_cfa_to_fb_loc_list): Use vector rather than list operations.

From-SVN: r172369
2011-04-13 11:42:08 +00:00
Nick Clifton 673a574032 rx.md (movmemsi): Do not use this pattern when volatile pointers are involved.
* config/rx/rx.md (movmemsi): Do not use this pattern when
	volatile pointers are involved.

From-SVN: r172368
2011-04-13 11:31:55 +00:00
Uros Bizjak 4ea1a16244 sse2-init-v2di-2.c: Update scan pattern.
* gcc.target/i386/sse2-init-v2di-2.c: Update scan pattern.

From-SVN: r172366
2011-04-13 12:27:40 +02:00
Uros Bizjak 1ee8b298fb sse.md (pinsrbits): Remove.
* config/i386/sse.md (pinsrbits): Remove.
	(sse2_packsswb): Merge with *avx_packsswb.
	(sse2_packssdw): Merge with *avx_packssdw.
	(sse2_packuswb): Merge with *avx_packuswb.
	(vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
	(vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
	(vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
	(vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
	(vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
	(vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
	(*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
	(*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
	(*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
	(*sse4_1_pinsrq): Merge with *avx_pinsrq.
	(sse2_loadld): Merge with *avx_loadld.
	(*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
	(*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
	(*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
	(*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
	(vec_concatv2di): Merge with *vec_concatv2di_avx.

From-SVN: r172365
2011-04-13 12:16:51 +02:00
Eric Botcazou b48678464d Fix minor formatting issues
From-SVN: r172364
2011-04-13 10:09:13 +00:00
Nicola Pero 1328049a7b In gcc/objc/: 2011-04-13 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2011-04-13  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (build_keyword_selector): Use get_identifier_with_length
	instead of get_identifier.

From-SVN: r172360
2011-04-13 04:02:26 +00:00
Nathan Froyd 81f653d624 ada-tree.h (union lang_tree_node): Check for TS_COMMON before calling TREE_CHAIN.
gcc/ada/
	* gcc-interface/ada-tree.h (union lang_tree_node): Check for
	TS_COMMON before calling TREE_CHAIN.
	* gcc-interface/misc.c (gnat_init_ts): New function.
	(LANG_HOOKS_INIT_TS): Define.

gcc/
	* c-decl.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.
	* print-tree.c (print_node): Likewise.
	* tree-inline.c (copy_tree_r): Likewise.
	* c-lang.c (LANG_HOOKS_INIT_TS): Define.
	* lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
	instead of TS_COMMON.
	* lto-streamer-out.c (lto_output_tree_pointers): Likewise.
	* tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
	(copy_node_stat): Zero TREE_CHAIN only if necessary.
	(MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
	(MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
	...and these...
	(MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
	* tree.h: ...here.
	(TREE_CHAIN): Check for a TS_COMMON structure.
	(TREE_TYPE): Check for a TS_TYPED structure.

gcc/c-family/
	* c-common.h (c_common_init_ts): Declare.
	* c-common.c (c_common_init_ts): Define.

gcc/cp/
	* cp-lang.c (cp_init_ts): Call cp_common_init_ts.  Move
	tree_contains_struct initialization to...
	* cp-objcp-common.c (cp_common_init_ts): ...here.  Use MARK_*
	macros.
	* cp-objcp-common.h (cp_common_init_ts): Declare.
	* cp-tree.h (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

gcc/fortran/
	* f95-lang.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

gcc/go/
	* go-lang.c (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

gcc/java/
	* java-tree.h (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.

gcc/lto/
	* lto-tree.h (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.
	* lto.c (lto_fixup_common): Likewise.

gcc/objc/
	* objc-lang.c (objc_init_ts): Move code for this function...
	* objc-act.c (objc_common_init_ts): ...here. Define.
	* objc-act.h (objc_common_init_ts): Declare.

gcc/objcp/
	* objcp-lang.c (objcxx_init_ts): Call objc_common_init_ts and
	cp_common_init_ts.

From-SVN: r172359
2011-04-13 03:09:53 +00:00
GCC Administrator d834794704 Daily bump.
From-SVN: r172353
2011-04-13 00:18:51 +00:00
Janis Johnson 3ff3eb578c pr43698.c: Remove -march option.
For 
2011-04-12  Janis Johnson  <janisjo@codesourcery.com>

	* gcc.target/arm/pr43698.c: Remove -march option.

From-SVN: r172348
2011-04-12 22:47:54 +00:00
Janis Johnson b121818dff For Janis Johnson
2011-04-12  Janis Johnson  <janisjo@codesourcery.com>

	* gcc.target/arm/sync-1.c: Limit to sync_int_long, do not use
	-march option.

From-SVN: r172347
2011-04-12 22:43:22 +00:00
Pat Haugen ed940a4ab9 rs6000.c (call_ABI_of_interest): Call cgraph_get_create_node instead of cgraph_node.
* config/rs6000/rs6000.c (call_ABI_of_interest): Call
        cgraph_get_create_node instead of cgraph_node.

From-SVN: r172345
2011-04-12 20:59:41 +00:00
Janne Blomqvist 44720bef9d Cleanup memsize types
From-SVN: r172340
2011-04-12 22:27:49 +03:00
Paul Thomas 99ee025114 re PR fortran/48360 (ICE on array assignment statement with allocatable LHS)
2011-04-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/48360
	PR fortran/48456
	* trans-array.c (get_std_lbound): For derived type variables
	return array valued component lbound.

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

	PR fortran/48360
	PR fortran/48456
	* gfortran.dg/realloc_on_assign_6.f03: New test.

From-SVN: r172339
2011-04-12 19:14:49 +00:00
Nicola Pero eb345401a1 In gcc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_parser_initelt): Updated call to
	objc_build_message_expr.
	(c_parser_postfix_expression): Likewise.

In gcc/c-family/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-objc.h (objc_build_message_expr): Updated prototype.
	* stub-objc.c (objc_build_message_expr): Likewise.
	
In gcc/objc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (objc_build_message_expr): Accept two arguments
	instead of one so that callers can simply pass the arguments
	without having to create a temporary chain to hold them.

In gcc/cp/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* parser.c (cp_parser_objc_message_expression): Updated call
	to objc_build_message_expr.

From-SVN: r172338
2011-04-12 19:02:14 +00:00
Nicola Pero dc2dc51254 In gcc/objc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (comp_proto_with_proto): Do not create and use
	inefficient temporary argument lists.  Compare the arguments
	directly.  (match_proto_with_proto): Removed; incorporated into
	comp_proto_with_proto ().

From-SVN: r172337
2011-04-12 18:53:08 +00:00
Kai Tietz a6c467624a ChangeLog gcc/
2011-04-12  Kai Tietz  <ktietz@redhat.com>

	* config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
	MASK_MS_BITFIELD_LAYOUT bit.

ChangeLog gcc/testsuite

2011-04-12  Kai Tietz  <ktietz@redhat.com>

	* g++.dg/ext/bitfield2.C: Add for i?86/x86_64-*-mingw*
	targets the additional -mno-ms-bitfields and
	-Wno-packed-bitfield-compat options.
	* g++.dg/ext/bitfield3.C: Likewise.
	* g++.dg/ext/bitfield4.C: Likewise.
	* g++.dg/ext/bitfield5.C: Likewise.
	* gcc.dg/bitfld-15.c: Likewise.
	* gcc.dg/bitfld-16.c: Likewise.
	* gcc.dg/bitfld-17.c: Likewise.
	* gcc.dg/bitfld-18.c: Likewise.

From-SVN: r172336
2011-04-12 20:52:41 +02:00
Ian Lance Taylor d94faf0d7d Call cgraph_get_node rather than cgraph_node.
This is for a recent change to the gcc middle-end.

From-SVN: r172335
2011-04-12 18:51:12 +00:00
Nicola Pero 0e66e494cf Fixed my email address in a ChangeLog entry of a few months ago
From-SVN: r172334
2011-04-12 18:35:47 +00:00
Janne Blomqvist 51603205f2 Remove _GNU_SOURCE from AM_CPPFLAGS
From-SVN: r172330
2011-04-12 21:10:28 +03:00
Jakub Jelinek b4ccfed9a0 combine.c (update_cfg_for_uncondjump): Instead of testing at_end assert it is always true.
* combine.c (update_cfg_for_uncondjump): Instead of testing at_end
	assert it is always true.
	(try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
	moves.

From-SVN: r172329
2011-04-12 19:49:11 +02:00
Nicola Pero cf3caeaf0a In gcc/objc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (printable_ivar_name): New.
	(add_instance_variable): Call printable_ivar_name() when an error
	message needs to be printed.  Do not prepare the instance variable
	for printing unless there is an actual error.

From-SVN: r172328
2011-04-12 17:37:39 +00:00
Nicola Pero 0d8a252826 In gcc/: 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* c-parser.c (c_lex_one_token): Rewritten conditional used when
	compiling Objective-C to be more efficient.

In gcc/objc/:
2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
	avoid calling identifier_global_value() multiple times.

From-SVN: r172327
2011-04-12 16:45:40 +00:00
Axel Freyn 06bd234a03 opts-common.c (decode_cmdline_options_to_array): Remove variable argv_copied.
2011-04-12  Axel Freyn  <axel-freyn@gmx.de>

	* opts-common.c (decode_cmdline_options_to_array): Remove variable
	argv_copied.

From-SVN: r172325
2011-04-12 17:29:23 +01:00
Yufeng Zhang fbfbde7351 ChangeLog: Add the mising change log for my previous commit.
2011-04-12  Yufeng Zhang  <yufeng.zhang@arm.com>

	* ChangeLog: Add the mising change log for my previous commit.

From-SVN: r172324
2011-04-12 16:19:10 +00:00
Yufeng Zhang cb4336c0b1 MAINTAINERS (Write After Approval): Add myself.
2011-04-12  Yufeng Zhang  <yufeng.zhang@arm.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r172323
2011-04-12 16:03:39 +00:00
Richard Sandiford 28569ac3d4 * recog.h, genoutput.c, optabs.c: Revert last patch.
From-SVN: r172321
2011-04-12 14:56:57 +00:00
Ramana Radhakrishnan ae59e00d17 re PR target/48090 (gcc 4.5.2 miscompilation when building on arm)
Fix PR target/48090

2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

       PR target/48090
       * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.

From-SVN: r172318
2011-04-12 13:42:48 +00:00
Richard Sandiford cff1b7e0d2 recog.h (insn_operand_data): Add an "allows_mem" field.
gcc/
	* recog.h (insn_operand_data): Add an "allows_mem" field.
	* genoutput.c (output_operand_data): Initialize it.
	* optabs.c (maybe_legitimize_operand_same_code): New function.
	(maybe_legitimize_operand): Use it when matching the original
	op->value.

From-SVN: r172316
2011-04-12 12:51:28 +00:00
Richard Sandiford 77059241d8 genpreds.c (process_define_predicate): Move most processing to gensupport.c.
gcc/
	* genpreds.c (process_define_predicate): Move most processing
	to gensupport.c.  Continue to validate the expression.
	* genrecog.c (did_you_mean_codes, compute_predicate_codes)
	(process_define_predicate): Move processing to gensupport.c.
	(main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
	* gensupport.c (did_you_mean_codes): Moved from genrecog.c.
	(compute_predicate_codes): Moved from genrecog.c.  Add lineno
	argument.
	(valid_predicate_name_p): New function, split out from old
	genpreds.c:process_define_predicate.
	(process_define_predicate): New function, combining code from
	old genpreds.c and genrecog.c functions.
	(process_rtx): Call it for DEFINE_PREDICATE and
	DEFINE_SPECIAL_PREDICATE.

From-SVN: r172315
2011-04-12 12:51:10 +00:00
Richard Sandiford 6308e208c2 arm.c (arm_print_operand): Use MEM_SIZE to get the size of a '%A' memory reference.
gcc/
	* config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
	size of a '%A' memory reference.
	(T_DREG, T_QREG): New neon_builtin_type_bits.
	(arm_init_neon_builtins): Assert that the load and store operands
	are neon_struct_operands.
	(locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
	(NEON_ARG_MEMORY): New builtin_arg.
	(neon_dereference_pointer): New function.
	(arm_expand_neon_args): Add a neon_builtin_type_bits argument.
	Handle NEON_ARG_MEMORY.
	(arm_expand_neon_builtin): Update after above interface changes.
	Use NEON_ARG_MEMORY for loads and stores.
	* config/arm/predicates.md (neon_struct_operand): New predicate.
	* config/arm/iterators.md (V_two_elem): Tweak formatting.
	(V_three_elem): Use BLKmode for accesses that have no associated mode.
	(V_four_elem): Tweak formatting.
	* config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
	(neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
	(neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
	(neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
	(neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
	(neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
	(neon_vst4<mode>): Replace pointer operand with a memory operand.
	Use %A in the output template.
	(neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
	(neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
	(neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
	the width of the memory access.  Remove post-increment.
	* config/arm/neon-testgen.ml: Allow addresses to have an alignment.

gcc/testsuite/
	* gcc.target/arm/neon-vld3-1.c: New test.
	* gcc.target/arm/neon-vst3-1.c: New test.
	* gcc.target/arm/neon/v*.c: Regenerate.

From-SVN: r172314
2011-04-12 12:19:38 +00:00
Nick Clifton e5db8f2fde v850.c (expand_prologue): Do not use the CALLT instruction for interrupt handlers if...
* config/v850/v850.c (expand_prologue): Do not use the CALLT
	instruction for interrupt handlers if the target is the basic V850
	architecture.
	(expand_epilogue): Likewise.

From-SVN: r172313
2011-04-12 11:34:26 +00:00
Jakub Jelinek 74f091d686 re PR rtl-optimization/48549 (Combiner ICE with -g)
PR rtl-optimization/48549
	* combine.c (propagate_for_debug): Also stop after BB_END of
	this_basic_block.  Process LAST and just stop processing after it.
	(combine_instructions): If last_combined_insn has been deleted,
	set last_combined_insn to its PREV_INSN.

	* g++.dg/opt/pr48549.C: New test.

From-SVN: r172311
2011-04-12 12:53:47 +02:00
Richard Guenther f20ca72587 re PR tree-optimization/46076 (constant propagation and compile-time math no longer happening versus 4.4 and 4.5)
2011-04-12  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46076
	* gimple.h (struct gimple_statement_call): Add fntype field.
	(gimple_call_fntype): Adjust.
	(gimple_call_set_fntype): New function.
	* gimple.c (gimple_build_call_1): Set the call function type.
	* gimplify.c (gimplify_call_expr): Preserve the function
	type the frontend used for the call.
	(gimplify_modify_expr): Likewise.
	* lto-streamer-in.c (input_gimple_stmt): Input the call stmts
	function type.
	* lto-streamer-out.c (output_gimple_stmt): Output the call stmts
	function type.
	* tree-ssa.c (useless_type_conversion_p): Function pointer
	conversions are useless.

	* gcc.dg/tree-ssa/pr46076.c: Un-XFAIL.

From-SVN: r172310
2011-04-12 10:44:15 +00:00
Takaya Saito 78a869ec74 re PR libstdc++/48476 ([C++0x] conversion between std::tuple which have reference member is rejected)
2011-04-12  Takaya Saito  <gintensubaru@gmail.com>

	PR libstdc++/48476
	* include/std/tuple (_Tuple_impl<>::_Tuple_impl(_Tuple_impl<>&&),
	_Tuple_impl<>::operator=(_Tuple_impl&&), _Tuple_impl<>::operator=
	(_Tuple_impl<>&&), tuple_cat): Use std::forward where appropriate.
	* testsuite/20_util/tuple/cons/48476.cc: New.
	* testsuite/20_util/tuple/48476.cc: Likewise.
	* testsuite/20_util/tuple/creation_functions/48476.cc: Likewise.

From-SVN: r172309
2011-04-12 10:31:33 +00:00
Martin Jambor 0fa1f9b762 class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of cgraph_get_create_node.
2011-04-12  Martin Jambor  <mjambor@suse.cz>

gcc/cp/
	* class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
	cgraph_get_create_node.
	* decl2.c (cp_write_global_declarations): Call cgraph_get_node
	instead of cgraph_get_create_node.
	* method.c (make_alias_for_thunk): Call cgraph_get_node
	instead of cgraph_get_create_node, assert it returns non-NULL.
	(use_thunk): Likewise.
	* optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
	when flag_syntax_only is not set.  Call cgraph_get_node instead of
	cgraph_get_create_node.
	(maybe_clone_body): Call cgraph_get_node instead of
	cgraph_get_create_node.

From-SVN: r172308
2011-04-12 12:02:31 +02:00
Martin Jambor a358e18845 cgraph.h (cgraph_node): Remove function declaration.
2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_node): Remove function declaration.
	(cgraph_create_node): Declare.
	(cgraph_get_create_node): Likewise.
	* cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
	Updated all callers.
	(cgraph_node): Renamed to cgraph_create_node, assert that a node for
	the decl does not already exist.  Call cgraph_get_create_node instead
	of cgraph_node.
	(cgraph_get_create_node): New function.
	(cgraph_same_body_alias): Update comment.
	(cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
	assert it does not return NULL.
	(cgraph_update_edges_for_call_stmt): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_add_new_function): Call cgraph_create_node or
	cgraph_get_create_node instead of cgraph_node.
	* cgraphbuild.c (record_reference): Call cgraph_get_create_node
	instead of cgraph_node.
	(record_eh_tables): Likewise.
	(mark_address): Likewise.
	(mark_load): Likewise.
	(build_cgraph_edges): Call cgraph_get_create_node instead
	of cgraph_node.
	(rebuild_cgraph_edges): Likewise.
	* cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
	instead of cgraph_node.
	(cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
	cgraph_node.
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
	cgraph_create_node instead of cgraph_node.
	* c-decl.c (finish_function): Call cgraph_get_create_node instead
	of cgraph_node.
	* lto-cgraph.c (input_node): Likewise.
	* lto-streamer-in.c (input_function): Likewise.
	* varasm.c (mark_decl_referenced): Likewise.
	(assemble_alias): Likewise.

gcc/c-family/
	* c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
	of cgraph_node.

gcc/cp/
	* cp/class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
	instead of cgraph_node.
	* cp/decl2.c (cxx_callgraph_analyze_expr): Likewise.
	(cp_write_global_declarations): Likewise.
	* cp/optimize.c (maybe_clone_body): Likewise.
	* cp/semantics.c (maybe_add_lambda_conv_op): Likewise.
	* cp/mangle.c (mangle_decl): Likewise.
	* cp/method.c (make_alias_for_thunk): Likewise.
	(use_thunk): Likewise.

gcc/ada/
	* gcc-interface/utils.c (end_subprog_body): Call
	cgraph_get_create_node instead of cgraph_node.

gcc/fortran/
	* trans-decl.c (gfc_generate_function_code): Call
	cgraph_get_create_node instead of cgraph_node.

gcc/objc/
	* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
	instead of cgraph_node.

From-SVN: r172307
2011-04-12 11:27:18 +02:00