Commit Graph

108905 Commits

Author SHA1 Message Date
Eric Botcazou e4c0337862 fold-const.c (fold_range_test): Pass LOC to build_range_check.
* fold-const.c (fold_range_test): Pass LOC to build_range_check.
	(fold_ternary_loc): Use expr_location_or.

From-SVN: r173588
2011-05-09 18:36:31 +00:00
H.J. Lu 805d6a7592 One more POINTERS_EXTEND_UNSIGNED fix in mem_loc_descriptor.
2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR debug/48853
	* dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
	POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
	Pmode and mem_mode is not VOIDmode.

From-SVN: r173587
2011-05-09 11:16:04 -07:00
Jason Merrill 14d0f7d244 * g++.dg/template/nontype23.C: New.
From-SVN: r173586
2011-05-09 14:03:02 -04:00
Fabien Chêne 1c682d060b Fix PR C++/48859
From-SVN: r173583
2011-05-09 19:42:21 +02:00
Jason Merrill 03808d178a re PR c++/34772 (self-initialisation does not silence uninitialised warnings (-Winit-self ignored))
PR c++/34772
	* decl.c (initialize_local_var): Use DECL_INITIAL for simple
	initialization.

From-SVN: r173582
2011-05-09 13:34:44 -04:00
Ville Voutilainen b5da71d416 Implement final/override for member functions.
gcc/
	* tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST): Convert to enum.
	(TYPE_QUAL_VOLATILE, TYPE_QUAL_RESTRICT): Likewise.
gcc/cp/
	* class.c (check_for_override): Check for DECL_OVERRIDE_P.
	* cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
	(cp_virt_specifiers, enum virt_specifier): New.
	* decl.c (set_virt_specifiers): New.
	(grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
	* parser.c (make_call_declarator): add virt-specifiers parameter.
	(cp_parser_lambda_declarator_opt): Adjust.
	(cp_parser_direct_declarator): Likewise.
	(cp_parser_virt_specifier_seq_opt): New.
	* search.c (check_final_overrider): Diagnose attempts to override
	a final member function.

From-SVN: r173581
2011-05-09 13:34:35 -04:00
Uros Bizjak 51e7f3770c predicates.md (const_pow2_1_to_2_operand): Remove.
2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
	(const_pow2_1_to_8_operand): Ditto.
	(const_pow2_1_to_128_operand): Ditto.
	(const_pow2_1_to_32768_operand): Ditto.
	* config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
	const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
	in insn constraint to check integer value of operand 3.
	* config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.

	(PINSR_MODE): New mode iterator.
	(sse2p4_1): New mode attribute.
	(<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
	sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
	iterator.  Use const_int_operand instead of
	const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
	exact_log2 in insn constraint to check integer value of operand 3.

2011-05-09  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (blendbits): Remove mode attribute.
	(<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
	instead of const_0_to_<blendbits>_operand for operand 3 predicate.
	Check integer value of operand 3 in insn constraint.

From-SVN: r173580
2011-05-09 19:31:48 +02:00
Richard Guenther 0ca8de87c4 lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p for diagnostics.
2011-05-09  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
	for diagnostics.
	(lto_symtab_merge): Likewise.  Do not register types here.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	* gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
	* gimple.c (enum gtc_mode): Declare.
	(gimple_types_compatible_p): Make static.

From-SVN: r173575
2011-05-09 16:00:48 +00:00
Paolo Carlini b04fa73811 re PR libstdc++/48933 (Infinite recursion in tr1/cmath functions with complex parameters)
2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/48933
	* include/c_global/cmath (acosh, asinh, atanh, cbrt, copysign,
	erf, erfc, exp2, expm1, fdim, fma, fmax, hypot, ilogb, lgamma,
	llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
	nextafter, nexttoward, remainder, remquo, rint, round, scalbln,
	scalbn, tgamma, trunc): Use __enable_if on the return type.
	* include/tr1/cmath: Likewise.
	* testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc: New.
	* testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc: Likewise.

From-SVN: r173574
2011-05-09 15:38:21 +00:00
Andreas Krebbel a9e6994ab9 s390.md (TD/TF mem to reg move splitter): Make the temporary register to match Pmode.
2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md (TD/TF mem to reg move splitter): Make the
	temporary register to match Pmode.

From-SVN: r173572
2011-05-09 14:37:12 +00:00
Dodji Seketeli bae14a373c re PR c++/48574 (ICE)
Fix PR c++/48574

gcc/cp/

	PR c++/48574
	* class.c (fixed_type_or_null): Use type_dependent_p_push to test
	if the instance has a dependent initializer.

gcc/testsuite/

	PR c++/48574
	* g++.dg/template/dependent-expr8.C: New test case.

From-SVN: r173570
2011-05-09 14:32:06 +02:00
Uros Bizjak fb55d62e53 sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 and *vec_concatv4si_1_avx.
* config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
	and *vec_concatv4si_1_avx.

From-SVN: r173569
2011-05-09 14:16:07 +02:00
Uros Bizjak eb1485a68b re PR rtl-optimization/48927 (Issues with "enable" attribute and IRA register preferences)
PR rtl-optimization/48927
	* ira-conflicts.c (commutative_constraint_p): Use
	recog_data.alternative_enabled_p to disable alternatives where
	"enabled" attribute is false.
	(get_dup_num): Ditto.
	* ira-lives.c (single_reg_class): Ditto.
	(ira_implicitly_set_insn_hard_regs): Ditto.

From-SVN: r173568
2011-05-09 14:11:25 +02:00
Eric Botcazou c46d001a91 var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
* var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
	(dataflow_set_preserve_mem_locs): Likewise.

From-SVN: r173565
2011-05-09 11:29:26 +00:00
Philipp Thomas 6d9e7c4139 Don't translate syntax example.
From-SVN: r173564
2011-05-09 10:42:23 +00:00
Nick Clifton 61d6def5f8 re PR target/48899 (enum conversion initializing global_options_init.x_iq2000_tune)
PR target/48899
	* config/iq2000/iq2000.opt (iq2000_tune): Initialise to
	PROCESSOR_DEFAULT.

From-SVN: r173562
2011-05-09 10:04:36 +00:00
Joseph Myers d371df6f10 gcc_update (gcc/config/mips/mips-tables.opt): New dependencies.
contrib:
	* gcc_update (gcc/config/mips/mips-tables.opt): New dependencies.

gcc:
	* config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
	* config/mips/mips-tables.opt: New file (generated).
	* config.gcc (mips*-*-*): Add mips/mips-tables.opt to
	extra_options.
	* config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
	MIPS_ARCH_OPTION_NATIVE): Define.
	* config/mips/mips.c (mips_cpu_info_table): Move contents to
	mips-cpus.def.
	(mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
	mips_parse_cpu): Remove.
	(mips_cpu_info_from_opt, mips_default_arch): New.
	(mips_handle_option): Don't assert that global structures are in
	use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
	(mips_option_override): Use new variables and functions to set
	state of these options.  Use strcmp to check for individual CPU
	names.
	* config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
	definition.
	* config/mips/mips.opt (march=): Use ToLower and Enum.
	(mips): Use ToLower, Enum and Var.
	(mtune=): Use ToLower and Enum.
	* config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.

From-SVN: r173561
2011-05-09 10:40:19 +01:00
Jan Hubicka 4fc07af967 gimple.c (type_pair_hash, [...]): Arrange type pairs to be UID ordered.
* gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
	Arrange type pairs to be UID ordered.
	(gimple_lookup_type_leader): Make inline.

From-SVN: r173560
2011-05-09 08:45:16 +00:00
Nick Clifton 2cf320a89d re PR target/48897 (mn10300.c:extract_bundle’: error: variable ‘s’ set but not used)
PR target/48897
	* config/mn10300/mn10300.c (extract_bundle): Remove spurious local
	variable 's'.

From-SVN: r173559
2011-05-09 08:38:50 +00:00
Doug Kwan 6f57bdf6d6 configure.ac: Propagate LDFLAGS_FOR_TARGET.
2011-05-08  Doug Kwan  <dougkwan@google.com>

	* configure.ac: Propagate LDFLAGS_FOR_TARGET.
	* configure: Regenerated.
	* Makefile.tpl (LDFLAGS_FOR_TARGET): Use LDFLAGS_FOR_TARGET
	value from configure.
	* Makefile.in: Regenerated.

From-SVN: r173558
2011-05-09 07:39:45 +00:00
GCC Administrator 40a7123311 Daily bump.
From-SVN: r173557
2011-05-09 00:19:13 +00:00
Chung-Lin Tang 4f82319dc9 combine.c (simplify_comparison): Abstract out parts into...
2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>

	* combine.c (simplify_comparison): Abstract out parts into...
	(simplify_compare_const): ... new function.
	(try_combine): Generalize parallel arithmetic/compare combining
	to call simplify_compare_const() and CANONICALIZE_COMPARE().

From-SVN: r173552
2011-05-08 19:30:36 +00:00
Jan Hubicka 74605a11f3 cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
* cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
	(cgraph_create_virtual_clone): Call hooks once virtual clone is finished.
	* cgraph.h (cgraph_clone_node): Update prototype.
	* ipa-cp.c (ipcp_estimate_growth): Use estimate_ipcp_clone_size_and_time.
	* ipa-inline-transform.c (clone_inlined_nodes): Update.
	* lto-cgraph.c (input_node): Update.
	* ipa-inline.c (recursive_inlining): Update.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
	(evaluate_conditions_for_known_args): Break out from ...
	(evaluate_conditions_for_edge): ... here.
	(evaluate_conditions_for_ipcp_clone): New function.
	(inline_node_duplication_hook): Update clone summary based
	on parameter map.
	(estimate_callee_size_and_time): Rename to ...
	(estimate_node_size_and_time): take NODE instead of EDGE;
	take POSSIBLE_TRUTHS as argument.
	(estimate_callee_size_and_time): Update.
	(estimate_ipcp_clone_size_and_time): New function.
	(do_estimate_edge_time): Update.

From-SVN: r173551
2011-05-08 19:14:24 +00:00
Richard Guenther 5c04950727 re PR middle-end/48908 (build fails on cris-elf in libiberty:md5.c, shift-related)
2011-05-08  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48908
	PR middle-end/48905
	* expmed.c (expand_shift_1): Compute adjusted constant shift
	amount manually.

From-SVN: r173550
2011-05-08 15:46:06 +00:00
Paolo Carlini 03a7c1de31 re PR c++/48816 (possible pointless code in file cxx-pretty-print.c, line 2136)
2011-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/48816
	* cxx-pretty-print.c (pp_cxx_template_declaration): Remove
	effectively unused variable.

From-SVN: r173549
2011-05-08 13:55:07 +00:00
Eric Botcazou f64c36badc * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
From-SVN: r173548
2011-05-08 09:15:34 +00:00
Eric Botcazou c461a95732 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
From-SVN: r173547
2011-05-08 09:09:34 +00:00
Eric Botcazou a9bcb3f0ef Fix long lines
From-SVN: r173546
2011-05-08 08:37:58 +00:00
GCC Administrator 1a8058a5f2 Daily bump.
From-SVN: r173543
2011-05-08 00:19:20 +00:00
Jonathan Wakely 7c74e5567b invoke.texi (-fuse-linker-plugin): Improve grammar.
2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/invoke.texi (-fuse-linker-plugin): Improve grammar.

From-SVN: r173538
2011-05-08 00:17:44 +01:00
Jan Hubicka b4c0a88402 ipa-inline-transform.c (inline_call): Account when program size decreases.
* ipa-inline-transform.c (inline_call): Account when program size decreases.
	* ipa-inline.c (relative_time_benefit): New function.
	(edge_badness): Reorganize to be power 2 based; fix
	thinko when computing badness for negative growth; update
	comments to match reality; better dumps.

From-SVN: r173537
2011-05-07 20:31:37 +00:00
Eric Botcazou f620bd21a1 * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
From-SVN: r173536
2011-05-07 20:20:25 +00:00
Eric Botcazou c99c002630 langhooks.h (lang_hooks_for_types): Change global_bindings_p's return type to bool and adjust comment.
2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
	type to bool and adjust comment.
	* fold-const.c (fold_range_test): Adjust call to global_bindings_p.
	(fold_mathfn_compare): Remove calls to global_bindings_p.
	(fold_inf_compare): Likewise.
	* stor-layout.c (variable_size): Adjust call to global_bindings_p.
	* c-tree.h (global_bindings_p): Adjust prototype.
	* c-decl.c (global_bindings_p): Return bool and simplify.
ada/
	* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
	* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
cp/
	* name-lookup.h (global_bindings_p): Adjust prototype.
	* name-lookup.c (global_bindings_p): Return bool.
fortran/
	* f95-lang.c (global_bindings_p): Return bool and simplify.
go/
	* go-lang.c (global_bindings_p): Return bool and simplify.
java/
	* java-tree.h (global_bindings_p): Adjust prototype.
	* decl.c (global_bindings_p): Return bool.
lto/
	* lto-lang.c (global_bindings_p): Return bool.

From-SVN: r173535
2011-05-07 19:58:29 +00:00
Zdenek Dvorak 1400c8e501 re PR tree-optimization/48837 (Wrong optimization of recursive function calls)
PR tree-optimization/48837
	* tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
	when accumulator transformation is performed.

	* gcc.dg/pr48837.c: New testcase.

From-SVN: r173534
2011-05-07 19:43:18 +00:00
Jan Hubicka 5d0878e70d i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
* i386.h (ix86_tune_indices): Add X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
	(TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macor.
	* i386.c (initial_ix86_tune_features): Add X86_SOFTARE_PREFETCHING_BENEFICIAL.
	(software_prefetching_beneficial_p): Remove predicate.
	(ix86_option_override_internal): Use new macro.

From-SVN: r173533
2011-05-07 14:39:40 +00:00
Jan Hubicka 58696ce5e4 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
From-SVN: r173532
2011-05-07 14:30:07 +00:00
François Dumont f5886803ed macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
2011-05-07  François Dumont  <francois.cppdevs@free.fr>

	* include/debug/macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
	(_GLICXX_DEBUG_VERIFY): Use latter.
	* include/ext/pb_ds/detail/resize_policy/
	hash_load_check_resize_trigger_imp.hpp: Emit assertion on the line
	containing the original assert call.
	* include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp,
	find_fn_imps.hpp, insert_fn_imps.hpp, binomial_heap_base_.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/cc_hash_table_map_/
	erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
	find_fn_imps.hpp, insert_store_hash_fn_imps.hpp, debug_fn_imps.hpp,
	debug_no_store_hash_fn_imps.hpp, cc_ht_map_.hpp, resize_fn_imps.hpp,
	constructor_destructor_fn_imps.hpp, debug_store_hash_fn_imps.hpp,
	erase_no_store_hash_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp,
	insert_join_fn_imps.hpp, pat_trie_/head.hpp, debug_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, pat_trie_.hpp, split_fn_imps.hpp,
	leaf.hpp, erase_fn_imps.hpp, node_base.hpp, internal_node.hpp:
	Likewise.
	* include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp,
	r_erase_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
	debug_fn_imps.hpp, rotate_fn_imps.hpp, erase_fn_imps.hpp,
	bin_search_tree_.hpp, insert_fn_imps.hpp, split_join_fn_imps.hpp:
	Likewise.
	* include/ext/pb_ds/detail/gp_hash_table_map_/
	erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
	find_fn_imps.hpp, gp_ht_map_.hpp, insert_store_hash_fn_imps.hpp,
	debug_fn_imps.hpp, erase_fn_imps.hpp, debug_no_store_hash_fn_imps.hpp,
	resize_fn_imps.hpp, constructor_destructor_fn_imps.hpp,
	debug_store_hash_fn_imps.hpp, erase_no_store_hash_fn_imps.hpp:
	Likewise.
	* include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	erase_fn_imps.hpp, insert_fn_imps.hpp, binary_heap_.hpp,
	resize_policy.hpp, split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp,
	find_fn_imps.hpp, insert_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	pairing_heap_.hpp, split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/binomial_heap_/
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	binomial_heap_.hpp: Likewise.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
	erase_fn_imps.hpp, left_child_next_sibling_heap_.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp,
	find_fn_imps.hpp, thin_heap_.hpp, insert_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp,
	ov_tree_map_.hpp, constructors_destructor_fn_imps.hpp,
	debug_fn_imps.hpp, split_join_fn_imps.hpp, info_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/debug_map_base.hpp: Likewise.
	* include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp,
	find_fn_imps.hpp, insert_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
	splay_fn_imps.hpp, split_join_fn_imps.hpp, splay_tree_.hpp: Likewise.
	* include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp,
	find_fn_imps.hpp, lu_map_.hpp, constructor_destructor_fn_imps.hpp,
	insert_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp,
	rc_binomial_heap_.hpp, insert_fn_imps.hpp,
	constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp, rc.hpp,
	split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp,
	insert_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
	debug_fn_imps.hpp, rb_tree_.hpp, split_join_fn_imps.hpp: Likewise.
	* include/ext/pb_ds/hash_policy.hpp: Likewise.

From-SVN: r173529
2011-05-07 13:45:24 +00:00
Tobias Burnus 6f4d39bb3f re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        PR fortran/48919
        * trans.h: Move gfc_init_coarray_decl prototype ...
        * gfortran.h: ... to here.
        * parse.c (translate_all_program_units): Call
        * gfc_init_coarray_decl.
        (gfc_parse_file): Update translate_all_program_units call.
        * trans-decl.c (gfc_init_coarray_decl): Fix variable
        * declaration,
        new argument whether DECL_EXTERNAL should be used.
        (create_main_function): Update gfc_init_coarray_decl call.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Ditto.

From-SVN: r173528
2011-05-07 07:38:08 +02:00
GCC Administrator 9142588a73 Daily bump.
From-SVN: r173525
2011-05-07 00:19:13 +00:00
Ian Lance Taylor 5b735706d7 Use backend types for all type conversions.
From-SVN: r173520
2011-05-07 00:12:32 +00:00
Jan Hubicka c47d00347d cgraph.c (cgraph_add_thunk): Create real function node instead of alias node...
* cgraph.c (cgraph_add_thunk): Create real function node instead
	of alias node; finalize it and mark needed/reachale; arrange visibility
	to be right and add it into the corresponding same comdat group list.
	(dump_cgraph_node): Dump thunks.
	* cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
	cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
	cgraph_next_function_with_gimple_body): New functions.
	(FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
	New macros.
	* ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
	(ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
	* cgraphunit.c (cgraph_finalize_function): Only look into possible
	devirtualization when optimizing.
	(verify_cgraph_node): Verify thunks.
	(cgraph_analyze_function): Analyze thunks.
	(cgraph_mark_functions_to_output): Output thunks only in combination
	with function they are assigned to.
	(assemble_thunk): Turn thunk into non-thunk; don't try to turn
	alias into normal node.
	(assemble_thunks): New functoin.
	(cgraph_expand_function): Use it.
	* lto-cgraph.c (lto_output_node): Stream thunks.
	(input_overwrite_node): Stream in thunks.
	* ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
	* lto-streamer-out.c (lto_output): Do not try to output thunk's body.
	* ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
	* ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
	(inline_analyze_function): Do not care about thunk jump functions.
	(inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
	* ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
	* passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
	(execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
	(ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
	(function_called_by_processed_nodes_p): Likewise.
	* lto.c (lto_materialize_function): Use cgraph_function_with_gimple_body_p.
	(add_cgraph_node_to_partition): Do not re-add items to partition; handle thunks.
	(add_varpool_node_to_partition): Do not re-add items to partition.

From-SVN: r173517
2011-05-06 23:00:49 +00:00
Jason Merrill e68dde1f40 decl.c (stabilize_save_expr_r): Set *walk_subtrees as appropriate.
* decl.c (stabilize_save_expr_r): Set *walk_subtrees as
	appropriate.

From-SVN: r173512
2011-05-06 17:57:56 -04:00
Jason Merrill 9e33e3210a re PR c++/48909 ([C++0x] ICE in cxx_eval_conditional_expression, at cp/semantics.c:6213)
PR c++/48909
	* semantics.c (cxx_eval_conditional_expression): Check
	integer_zerop/onep instead.

From-SVN: r173511
2011-05-06 17:57:49 -04:00
Jason Merrill c80e3e0267 re PR c++/48911 ([C++0x] Error for valid array subscript)
PR c++/48911
	* semantics.c (cxx_eval_array_reference): Handle implicit
	initializers.

From-SVN: r173510
2011-05-06 17:57:41 -04:00
Joseph Myers d8f426ecc9 rs6000.opt (rs6000_ieeequad, [...]): Remove TargetVariable entries.
* config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
	rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
	entries.
	(mabi=): Replace with separate entries for mabi=altivec,
	mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
	mabi=ieeelongdouble and mabi=ibmlongdouble.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Move
	check for -mabi=spe without SPE ABI support here.
	(rs6000_handle_option): Replace OPT_mabi_ handling with
	OPT_mabi_altivec and OPT_mabi_spe handling.

From-SVN: r173509
2011-05-06 21:34:13 +01:00
Ian Lance Taylor 4e7e7a49b7 More uses of backend interface for types.
From-SVN: r173507
2011-05-06 20:06:29 +00:00
Tobias Burnus c81e79b590 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-array.c (gfc_walk_variable_expr): Continue walking
        for scalar coarrays.
        * trans-intrinsic.c (convert_element_to_coarray_ref): New
        * function.
        (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
        (trans_this_image): Fix algorithm.
        * trans-types.c (gfc_get_element_type,
        * gfc_get_array_descriptor_base,
        gfc_sym_type): Handle scalar coarrays.

2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray/this_image_2.f90: New.

From-SVN: r173506
2011-05-06 20:39:08 +02:00
Tobias Burnus cc9ae24cbe re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * caf/libcaf.h: Cleanup headers.
        (_gfortran_caf_critical, _gfortran_caf_end_critical): Make stub.
        (caf_register_t): New enum.
        (_gfortran_caf_register, _gfortran_caf_deregister): New prototype.
        * caf/single.c (_gfortran_caf_critical,
        _gfortran_caf_end_critical): Remove.
        (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
        * caf/mpi.c (_gfortran_caf_critical,
        _gfortran_caf_end_critical): Remove.
        (_gfortran_caf_register, _gfortran_caf_deregister): New functions.
        (caf_world_window): Remove global variable.
        (_gfortran_caf_init): Fix off-by-one error of this_image.

From-SVN: r173505
2011-05-06 20:35:00 +02:00
Tobias Burnus 7b040949f6 Really commit:
2011-05-06  Tobias Burnus  <burnus@net-b.de>
    
        PR fortran/48858
        PR fortran/48820
        * gfortran.dg/bind_c_usage_24.f90: New.
        * gfortran.dg/bind_c_usage_24_c.c: New.

From-SVN: r173503
2011-05-06 20:33:31 +02:00
Ian Lance Taylor 1f94e0c6f7 Use backend interface for string types.
From-SVN: r173502
2011-05-06 18:30:11 +00:00