Commit Graph

119289 Commits

Author SHA1 Message Date
Steve Ellcey 5f11ec71ca re PR web/54711 (Fix --target_board examples on test.html page)
2012-09-26  Steve Ellcey  <sellcey@mips.com>

	PR web/54711
	* doc/install.texi: Fix example.

From-SVN: r191781
2012-09-26 22:47:22 +00:00
Joern Rennecke f3633f55aa contrib-list.mk (LIST): Remove arm-freebsd6, arm-linux, arm-ecos-elf, arm-rtems, arm-elf and arm-wince-pe.
* contrib-list.mk (LIST): Remove arm-freebsd6, arm-linux,
        arm-ecos-elf, arm-rtems, arm-elf and arm-wince-pe.
        Use --enable-obsolete for picochip-elf.

From-SVN: r191780
2012-09-26 23:03:44 +01:00
Dehao Chen 6040bb5fd3 tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void) for function parameter.
2012-09-26  Dehao Chen  <dehao@google.com>

	* tree-ssa-live.c (clear_unused_block_pointer): Use explicitit (void)
	for function parameter.
	(remove_unused_locals): Don't use LOCATION_BLOCK if it is NULL.

From-SVN: r191779
2012-09-26 22:02:36 +00:00
Joseph Myers 9c7f5544cb * sv.po: Update.
From-SVN: r191776
2012-09-26 22:47:46 +01:00
Joseph Myers 0526ab6a99 * sv.po: Update.
From-SVN: r191775
2012-09-26 22:47:28 +01:00
Oleg Endo a104e60b67 extend.texi (bswap Builtins): Change signed types to unsigned types.
* doc/extend.texi (bswap Builtins): Change signed types to unsigned
	types.

From-SVN: r191774
2012-09-26 20:51:20 +00:00
Steve Ellcey db9f539414 re PR c/37303 (const compound initializers in structs are written to .data instead of .rodata)
2012-09-26  Steve Ellcey  <sellcey@mips.com>

	PR c/37303
	* gcc.dg/pr37303.c: Check for rdata or rodata.

From-SVN: r191772
2012-09-26 20:33:28 +00:00
Ian Lance Taylor a67a73fd0c * diagnostic.c (bt_callback): Cast pc when calling fprintf.
From-SVN: r191766
2012-09-26 17:49:38 +00:00
Bill Schmidt 502514254f re PR tree-optimization/54674 (ICE in build2_stat, at tree.c:3835)
2012-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/54674
	* gimple-ssa-strength-reduction.c (analyze_increments): Don't
	introduce a multiplication with a pointer operand.

From-SVN: r191765
2012-09-26 16:49:32 +00:00
Georg-Johann Lay 5bfed9a91f re PR middle-end/54635 (Add addr_space_t argument to TARGET_MODE_DEPENDENT_ADDRESS_P)
PR middle-end/54635
	* doc/tm.texi.in (TARGET_MODE_DEPENDENT_ADDRESS_P): Document new
	parameter addrspace.
	* doc/tm.texi: Regenerate.
	* target.def (mode_dependent_address_p): Add addr_space_t parameter.
	* targhooks.h (default_mode_dependent_address_p): Ditto.
	* targhooks.c (default_mode_dependent_address_p): Ditto.
	* expr.c (convert_move): Pass address space to mode_dependent_address_p.
	* combine.c (combine_simplify_rtx): Ditto.
	(make_extraction): Ditto.
	(simplify_shift_const_1): Ditto.
	(gen_lowpart_for_combine): Ditto.
	* lower-subreg.c (simple_move_operand): Ditto.
	* recog.c (simplify_while_replacing): Ditto.
	(offsettable_address_addr_space_p): Ditto.
	(mode_dependent_address_p): Ditto.
	* simplify-rtx.c (simplify_unary_operation_1): Ditto.
	(simplify_subreg): Ditto.
	* config/m68k/m68k.md: Ditto.
	* config/vax/vax.md: Ditto.
	* config/vax/constraints.md (Q): Ditto.
	* config/vax/predicates.md (indexed_memory_operand): Ditto.
	* config/alpha/alpha.c (alpha_mode_dependent_address_p): Add
	unused addr_space_t parameter.
	* config/avr/avr.c (avr_mode_dependent_address_p): Ditto.
	* config/h8300/h8300.c (h8300_mode_dependent_address_p): Ditto.
	* config/m32r/m32r.c (m32r_mode_dependent_address_p): Ditto.
	* config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): Ditto.
	* config/rx/rx.c (rx_mode_dependent_address_p): Ditto.
	* config/sparc/sparc.c (sparc_mode_dependent_address_p): Ditto.
	* config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
	Ditto.
	* config/vax/vax.c (vax_mode_dependent_address_p): Ditto.
	* config/xtensa/xtensa.c (xtensa_mode_dependent_address_p): Ditto.

From-SVN: r191761
2012-09-26 13:46:29 +00:00
Christophe Lyon 1df855ce35 tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
2012-09-26  Christophe Lyon <christophe.lyon@linaro.org>

	gcc/
	* tree-ssa-math-opts.c (bswap_stats): Add found_16bit field.
	(execute_optimize_bswap): Add support for builtin_bswap16.

	gcc/testsuite/
	* gcc.target/arm/builtin-bswap16-1.c: New testcase.

From-SVN: r191760
2012-09-26 15:42:47 +02:00
Richard Guenther eeca434ab6 tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
2012-09-26  Richard Guenther  <rguenther@suse.de>

	* tree.h (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.

From-SVN: r191759
2012-09-26 13:16:07 +00:00
Ulrich Drepper 48c7b524c1 Optimize bulk mode for normal_distribution<double> for SSE3.
2012-09-26  Ulrich Drepper  <drepper@gmail.com>

	Optimize bulk mode for normal_distribution<double> for SSE3.
	* configure.host: Define cpu_opt_bits_random.
	* configure.ac: Substitute CPU_OPT_BITS_RANDOM.
	* include/Makefile.am (bits_headers): Add ${bits_host_headers}.
	(bits_host_headers): Define.
	* include/bits/random.tcc: Move __details::_Power_of_2 to...
	* include/bits/random.h: ...here.
	* include/std/random: Include <bits/opt_random.h>.
	* config/cpu/i486/opt/bits/opt_random.h: New file.
	* config/cpu/generic/opt/bits/opt_random.h: New file.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.
	* doc/Makefile.in: Regenerated.
	* include/Makefile.in: Regenerated.
	* libsupc++/Makefile.in: Regenerated.
	* po/Makefile.in: Regenerated.
	* python/Makefile.in: Regenerated.
	* src/Makefile.in: Regenerated.
	* src/c++11/Makefile.in: Regenerated.
	* src/c++98/Makefile.in: Regenerated.
	* testsuite/Makefile.in: Regenerated.

	* config/cpu/generic/opt/ext/opt_random.h: Fix comment.

From-SVN: r191758
2012-09-26 13:10:26 +00:00
Ian Lance Taylor d83697f4f0 Makefile.def: Make all-gcc depend on all-libbacktrace.
./:	* Makefile.def: Make all-gcc depend on all-libbacktrace.
	* Makefile.in: Rebuild.
gcc/:
	* diagnostic.c: Include "demangle.h" and "backtrace.h".
	(bt_stop): New static array.
	(bt_callback, bt_err_callback): New static functions.
	(diagnostic_action_after_output): Call backtrace_full for DK_ICE.
	* Makefile.in (BACKTRACE): New variable.
	(BACKTRACEINC, LIBBACKTRACE): New variables.
	(BACKTRACE_H): New variable.
	(LIBDEPS, LIBS): Add $(LIBBACKTRACE).
	(INCLUDES): Add $(BACKTRACEINC).
	(diagnostic.o): Depend upon $(DEMANGLE_H) and $(BACKTRACE_H).

From-SVN: r191757
2012-09-26 12:38:08 +00:00
Segher Boessenkool ba45a61315 re PR target/51274 (Starting with GCC 4.5, powerpc generated different code for x != 0.)
gcc/
	PR target/51274
	PR target/53087
	* config/rs6000/rs6000.md (ne0si): Remove unnecessary
	earlyclobber.  Merge with...
	(ne0di): ... to...
	(ne0_<mode>): New.
	(plus_ne0si): Merge with...
	(plus_ne0di): ... to...
	(plus_ne0_<mode>): New.
	(compare_plus_ne0si): Merge with...
	(compare_plus_ne0di)... to...
	(compare_plus_ne0_<mode>): New.
	(compare_plus_ne0_<mode>_1): New.
	(plus_ne0si_compare): Merge with...
	(plus_ne0di_compare)... to...
	(plus_ne0_<mode>_compare): New.

gcc/testsuite/
	PR target/51274
	PR target/53087
	* gcc.target/powerpc/ppc-ne0-1.c: New.

From-SVN: r191752
2012-09-26 07:18:43 +02:00
GCC Administrator eecd08500a Daily bump.
From-SVN: r191750
2012-09-26 00:17:45 +00:00
Dehao Chen ec6e039992 re PR middle-end/54704 (three-fold increase in compile-time between r191483 and r191569)
libcpp:
	2012-09-25  Dehao Chen  <dehao@google.com>

	PR middle-end/54704
	* line-map.c (location_adhoc_data_hash): Fix the hash function.

From-SVN: r191747
2012-09-25 21:32:29 +00:00
Oleg Endo 780405350c re PR target/54089 ([SH] Refactor shift patterns)
PR target/54089
	* config/sh/constraints.md (Jhb): New constraint.
	* config/sh/predicates.md (negt_reg_shl31_operand): New predicate.
	* config/sh/sh.md (rotrsi3): New expander.
	(rotrsi3_1, *rotrsi3_1, *rotlsi3_1): New insns.
	(rotlsi3, rotlhi3): Use const_int_operand predicate instead of
	immediate_operand and remove CONST_INT_P checks in expansion code.
	(*rotcr): Cleanup variable usage.  Handle preceding nott insn.  Add
	split with swapped operands.
	(*rotcr_neg_t, *movt_msb, *negt_msb): New insns and splits.

	PR target/54089
	* gcc.target/sh/pr54089-1.c (test_15, test_16, test_17, test_18,
	test_19, test_20, test_21, test_22, test_23): New functions.
	* gcc.target/sh/pr54089-4.c: New.
	* gcc.target/sh/pr54089-5.c: New.
	* gcc.target/sh/pr54089-6.c: New.
	* gcc.target/sh/pr54089-7.c: New.

From-SVN: r191743
2012-09-25 19:06:28 +00:00
Aldy Hernandez 91cad09b08 re PR middle-end/53850 (ICE: in expand_call_tm, at trans-mem.c:2289 with -fgnu-tm -O3)
PR middle-end/53850
	* trans-mem.c (expand_call_tm): Handle late built built-ins.

From-SVN: r191742
2012-09-25 18:47:35 +00:00
Georg-Johann Lay 5139232eef * Tippo
From-SVN: r191717
2012-09-25 16:24:24 +00:00
Georg-Johann Lay b70c0a2de5 re PR other/54701 (double_int conversion breaks avr build)
PR other/54701
	* config/avr/avr-log.c (avr_double_int_pop_digit): Reerite using
	double_int::udivmod.

From-SVN: r191716
2012-09-25 16:19:43 +00:00
Georg-Johann Lay b1bdc68d43 avr.c (avr_set_current_function): Check cfun->machine to be non-NULL.
* config/avr/avr.c (avr_set_current_function): Check cfun->machine
	to be non-NULL.

From-SVN: r191715
2012-09-25 16:17:02 +00:00
Georg-Johann Lay c24057756d re PR target/54641 (Wrong warning flags for building avr-c.o, fails to build)
PR target/54641
	* config/avr/t-avr: Use ALL_COMPILERFLAGS instead of ALL_CFLAGS
	for sources compiled with COMPILER.

From-SVN: r191714
2012-09-25 16:02:20 +00:00
Richard Guenther 7e17f52deb re PR lto/54625 (lto/profiledbootstrap broken by r191466: ICE: in cgraph_clone_edge, at cgraphclones.c:123)
2012-09-25  Richard Guenther  <rguenther@suse.de>

	PR lto/54625
	* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Do not merge
	cgraph nodes for builtins.

	* gcc.dg/lto/pr54702_0.c: New testcase.
	* gcc.dg/lto/pr54702_1.c: Likewise.
	* gcc.dg/lto/pr54625-1_0.c: Likewise.
	* gcc.dg/lto/pr54625-1_1.C: Likewise.
	* gcc.dg/lto/pr54625-2_0.c: Likewise.
	* gcc.dg/lto/pr54625-2_1.C: Likewise.

From-SVN: r191713
2012-09-25 15:06:17 +00:00
Paolo Carlini 5677bc1fe9 re PR c++/54526 ([C++11] <:: is incorrectly treated as digraph <: followed by colon)
/cp
2012-09-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54526
	* parser.c (cp_parser_template_id): In C++11 mode simply accept
	X<::A>.

/testsuite
2012-09-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54526
	* g++.dg/cpp0x/parse2.C: New.
	* g++.dg/parse/error11.C: Adjust.
	* g++.dg/parse/error12.C: Likewise.

From-SVN: r191712
2012-09-25 14:44:52 +00:00
Joseph Myers c985a8e929 * vi.po: Update.
From-SVN: r191709
2012-09-25 15:01:17 +01:00
Joseph Myers 48526a75f8 be.po, [...]: Update.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po,
	zh_TW.po: Update.

From-SVN: r191707
2012-09-25 14:59:01 +01:00
Dehao Chen 5218700874 re PR middle-end/54645 (Many testsuite failures)
gcc:
	2012-09-25  Dehao Chen  <dehao@google.com>

	PR middle-end/54645
	* c-family/c-pch.c (c_common_read_pch): Rebuild the location_adhoc_data
	map when read in the pch.

libcpp:
	2012-09-25  Dehao Chen  <dehao@google.com>

	PR middle-end/54645
	* include/line-map.h (location_adhoc_data): Move location_adhoc_data
	into GC.
	(location_adhoc_data_map): Likewise.
	(line_maps): Likewise.
	(rebuild_location_adhoc_htab): New Function.
	* line-map.c (+rebuild_location_adhoc_htab): new Funcion.
	(get_combined_adhoc_loc): Move location_adhoc_data into GC.
	(location_adhoc_data_fini): Likewise.
	(linemap_init): Likewise.
	(location_adhoc_data_init): Remove Function.

From-SVN: r191706
2012-09-25 13:19:33 +00:00
H.J. Lu c1301f6027 Add missing testcase
From-SVN: r191705
2012-09-25 06:06:31 -07:00
Igor Zamyatin 9bc607c0ea Update long double tests for long double size == double size
2012-09-25  Igor Zamyatin  <igor.zamyatin@intel.com>

	* gcc.target/i386/20030217-1.c: Added check for
	large_long_double effective target.
	* gcc.target/i386/387-3.c: Likewise.
	* gcc.target/i386/387-4.c: Likewise.
	* gcc.target/i386/pr36578-1.c: Likewise.
	* gcc.target/i386/excess-precision-1.c: Added new code for the case
	when long double size is equal double size.
	* gcc.target/i386/excess-precision-1.c: Likewise.
	* gcc.target/i386/pr36578-2.c: Likewise.
	* gcc.target/i386/20030217-2.c: New testcase.

From-SVN: r191704
2012-09-25 06:05:23 -07:00
Jakub Jelinek 5717e1f648 re PR tree-optimization/54676 (ICE: in set_value_range, at tree-vrp.c:433)
PR tree-optimization/54676
	* tree-vrp.c (set_and_canonicalize_value_range): Handle
	one bit precision properly.

	* gcc.dg/pr54676.c: New test.

From-SVN: r191703
2012-09-25 14:46:54 +02:00
Jakub Jelinek dadbefd359 re PR other/54692 (gcc doesn't build with "-Og -g")
PR other/54692
	* configure.ac (CFLAGS, CXXFLAGS): Remove -Ofast or -Og
	properly.
	* configure: Regenerated.

From-SVN: r191702
2012-09-25 14:27:47 +02:00
Georg-Johann Lay 915efd1fc9 re PR other/54701 (double_int conversion breaks avr build)
PR other/54701
	* config/avr/avr.c (avr_map_decompose): Use double_int::from_uhwi
	instead of uhwi_to_double_int.

From-SVN: r191701
2012-09-25 12:10:39 +00:00
Richard Guenther 0237949a0f lto-symtab.c (lto_symtab_merge_decls_1): Properly merge all of the chain.
2012-09-25  Richard Guenther  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_merge_decls_1): Properly merge
	all of the chain.

From-SVN: r191699
2012-09-25 11:33:17 +00:00
Paolo Carlini 222b68463b re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers)
2012-09-25  Paolo Carlini  <paolo.carlini@oracle.com>

	* doc/xml/manual/status_cxx2011.xml: Update vs PR 44436.

From-SVN: r191695
2012-09-25 08:43:38 +00:00
Richard Guenther b2e519796c re PR tree-optimization/53663 (inconsistent inline handling of bool within union)
2012-09-25  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53663
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Conditional
	native encode/interpret translation on VN_WALKREWRITE.

	* gcc.dg/torture/pr53663-1.c: New testcase.
	* gcc.dg/torture/pr53663-2.c: Likewise.
	* gcc.dg/torture/pr53663-3.c: Likewise.

From-SVN: r191694
2012-09-25 07:51:51 +00:00
Uros Bizjak 9fe7fbd5df pr50725.c: Change 'long' to 'long long'.
* gcc.target/i386/pr50725.c: Change 'long' to 'long long'.

From-SVN: r191693
2012-09-25 08:58:39 +02:00
Zhenqiang Chen 20265464cc re PR target/50970 (Function pointer dereferenced twice in if statement on Arm cpu)
PR c++/50970
	* typeck.c (cp_build_binary_op): Check side effects before generating
	pfn and delta related expressions.

From-SVN: r191692
2012-09-25 06:37:29 +00:00
Edward Smith-Rowland 21a8ccc02f Implement the K-distribution as an extension.
From-SVN: r191688
2012-09-25 03:26:36 +00:00
GCC Administrator 1ab47844f5 Daily bump.
From-SVN: r191687
2012-09-25 00:17:43 +00:00
Ian Lance Taylor 90f01468b4 compiler: Better warning for switch on non-comparable type.
From-SVN: r191683
2012-09-24 22:21:49 +00:00
Dehao Chen 60478b9caf tree-cfg.c (move_stmt_op): Reset the expr block only when necessary.
2012-09-24  Dehao Chen  <dehao@google.com>

	* tree-cfg.c (move_stmt_op): Reset the expr block only
	when necessary.
	(move_block_to_fn): Reset the edge's goto block even
	when the goto locus is unknown.

From-SVN: r191680
2012-09-24 20:50:46 +00:00
François Dumont 55826ab6d1 re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers)
2012-09-24  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/44436
	* include/bits/stl_tree.h
	(_Rb_tree<>::_M_insert_): Take _Base_ptr rather than
	_Const_Base_ptr.
	(_Rb_tree<>::_M_insert_node): New.
	(_Rb_tree<>::_M_get_insert_unique_pos): New, search code of
	_M_insert_unique method.
	(_Rb_tree<>::_M_insert_unique): Use latter.
	(_Rb_tree<>::_M_emplace_unique): New, likewise.
	(_Rb_tree<>::_M_get_insert_equal_pos): New, search code of
	_M_insert_equal method.
	(_Rb_tree<>::_M_insert_equal): Use latter.
	(_Rb_tree<>::_M_emplace_equal): New, likewise.
	(_Rb_tree<>::_M_get_insert_hint_unique_pos): New, search code of
	_M_insert_unique_ method.
	(_Rb_tree<>::_M_insert_unique_): Use latter.
	(_Rb_tree<>::_M_emplace_hint_unique): New, likewise.
	(_Rb_tree<>::_M_get_insert_hint_equal_pos): New, search code of
	_M_insert_equal_ method.
	(_Rb_tree<>::_M_insert_equal_): Use latter.
	(_Rb_tree<>::_M_emplace_hint_equal): New, likewise.
	(_Rb_tree<>::_M_insert_lower): Remove first _Base_ptr parameter,
	useless as always null.
	* include/bits/stl_map.h: Include <tuple> in C++11.
	(map<>::operator[](const key_type&)): Use
	_Rb_tree<>::_M_emplace_hint_unique in C++11.
	(map<>::operator[](key_type&&)): Likewise.
	(map<>::emplace): New.
	(map<>::emplace_hint): New.
	* include/bits/stl_multimap.h (multimap<>::emplace): New.
	(multimap<>::emplace_hint): New.
	* include/bits/stl_set.h (set<>::emplace): New.
	(set<>::emplace_hint): New.
	* include/bits/stl_multiset.h (multiset<>::emplace): New.
	(multiset<>::emplace_hint): New.
	* include/debug/map.h (std::__debug::map<>::emplace): New.
	(std::__debug::map<>::emplace_hint): New.
	* include/debug/multimap.h (std::__debug::multimap<>::emplace):
	New.
	(std::__debug::multimap<>::emplace_hint): New.
	* include/debug/set.h (std::__debug::set<>::emplace): New.
	(std::__debug::set<>::emplace_hint): New.
	* include/debug/multiset.h (std::__debug::multiset<>::emplace):
	New.
	(std::__debug::multiset<>::emplace_hint): New.
	* include/profile/map.h (std::__profile::map<>::emplace): New.
	(std::__profile::map<>::emplace_hint): New.
	* include/profile/multimap.h (std::__profile::multimap<>::emplace):
	New.
	(std::__profile::multimap<>::emplace_hint): New.
	* include/profile/set.h (std::__profile::set<>::emplace): New.
	(std::__profile::set<>::emplace_hint): New.
	* include/profile/multiset.h (std::__profile::multiset<>::emplace):
	New.
	(std::__profile::multiset<>::emplace_hint): New.
	* testsuite/util/testsuite_container_traits.h: Signal that emplace
	and emplace_hint are available on std::map, std::multimap,
	std::set and std::multiset in C++11.
	* testsuite/23_containers/map/operators/2.cc: New.
	* testsuite/23_containers/map/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/multimap/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/set/modifiers/emplace/1.cc: New.
	* testsuite/23_containers/multiset/modifiers/emplace/1.cc: New.

From-SVN: r191679
2012-09-24 19:53:36 +00:00
François Dumont e6fa043b2d 41975.cc: Use __uset_hashtable rather than removed __unordered_set.
2012-09-24  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/performance/23_containers/insert_erase/41975.cc: Use
	__uset_hashtable rather than removed __unordered_set.

From-SVN: r191678
2012-09-24 19:48:06 +00:00
Tobias Burnus f08d73d161 Add missing PR to the ChangeLog
From-SVN: r191677
2012-09-24 21:07:28 +02:00
Tobias Burnus 7df938d62a re PR fortran/54618 ([OOP] wrong-code with CLASS(...), INTENT(OUT) -- and OPTIONAL or ALLOCATABLE)
2012-09-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54618
        * trans-expr.c (gfc_conv_procedure_call): Fix INTENT(OUT)
        handling for allocatable BT_CLASS.

From-SVN: r191676
2012-09-24 21:05:18 +02:00
Lawrence Crowl 9be0ac8c9e Finish conversion of uses of double_int to the new API.
Some old functionality required new interfaces, and these have been added to
double-int.[hc]:

  double_int::from_pair - static constructor function
  wide_mul_with_sign - double-wide multiply instruction
  sub_with_overflow - subtraction with overlow testing
  neg_with_overflow - negation with overlow testing
  divmod_with_overflow - div and mod with overlow testing

This patch corrects the bootstrap problem on HPPA, via the addition of
sub_with_overflow.  (The overflow properties of negation and addition are
different from subtraction.)

The prior two generations of the interface have been removed.

Some of these old interfaces are still used as static implementation in
double-int.c.

The changed compiler appears 0.321% faster with 80% confidence of being faster.

Tested on x86_64, HPPA, and SPARC.  However, there are changes to the avr
config files, and I have not tested those.


Index: gcc/java/ChangeLog

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* decl.c (java_init_decl_processing): Change to new double_int API.
	* jcf-parse.c (get_constant): Likewise.
	* boehm.c (mark_reference_fields): Likewise.
	(get_boehm_type_descriptor): Likewise.

Index: gcc/ChangeLog

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* double-int.h (double_int::from_pair): New.
	(double_int::wide_mul_with_sign): New.
	(double_int::sub_with_overflow): New.
	(double_int::neg_with_overflow): New.
	(double_int::divmod_with_overflow): New.
	(shwi_to_double_int): Remove.
	(uhwi_to_double_int): Remove.
	(double_int_to_shwi): Remove.
	(double_int_to_uhwi): Remove.
	(double_int_fits_in_uhwi_p): Remove.
	(double_int_fits_in_shwi_p): Remove.
	(double_int_fits_in_hwi_p): Remove.
	(double_int_mul): Remove.
	(double_int_mul_with_sign): Remove.
	(double_int_add): Remove.
	(double_int_sub): Remove.
	(double_int_neg): Remove.
	(double_int_div): Remove.
	(double_int_sdiv): Remove.
	(double_int_udiv): Remove.
	(double_int_mod): Remove.
	(double_int_smod): Remove.
	(double_int_umod): Remove.
	(double_int_divmod): Remove.
	(double_int_sdivmod): Remove.
	(double_int_udivmod): Remove.
	(double_int_multiple_of): Remove.
	(double_int_setbit): Remove.
	(double_int_ctz): Remove.
	(double_int_not): Remove.
	(double_int_ior): Remove.
	(double_int_and): Remove.
	(double_int_and_not): Remove.
	(double_int_xor): Remove.
	(double_int_lshift): Remove.
	(double_int_rshift): Remove.
	(double_int_lrotate): Remove.
	(double_int_rrotate): Remove.
	(double_int_negative_p): Remove.
	(double_int_cmp): Remove.
	(double_int_scmp): Remove.
	(double_int_ucmp): Remove.
	(double_int_max): Remove.
	(double_int_smax): Remove.
	(double_int_umax): Remove.
	(double_int_min): Remove.
	(double_int_smin): Remove.
	(double_int_umin): Remove.
	(double_int_ext): Remove.
	(double_int_sext): Remove.
	(double_int_zext): Remove.
	(double_int_mask): Remove.
	(double_int_max_value): Remove.
	(double_int_min_value): Remove.
	(double_int_zero_p): Remove.
	(double_int_one_p): Remove.
	(double_int_minus_one_p): Remove.
	(double_int_equal_p): Remove.
	(double_int_popcount): Remove.
	(extern add_double_with_sign): Remove.
	(#define add_double): Remove.
	(extern neg_double): Remove.
	(extern mul_double_with_sign): Remove.
	(extern mul_double_wide_with_sign): Remove.
	(#define mul_double): Remove.
	(extern lshift_double): Remove.
	(extern div_and_round_double): Remove.
	* double-int.c (add_double_with_sign): Make static.
	(#defined add_double): Localized from header.
	(neg_double): Make static.
	(mul_double_with_sign): Make static.
	(mul_double_wide_with_sign): Make static.
	(#defined mul_double): Localized from header.
	(lshift_double): Make static.
	(div_and_round_double): Make static.
	(double_int::wide_mul_with_sign): New.
	(double_int::sub_with_overflow): New.
	(double_int::neg_with_overflow): New.
	(double_int::divmod_with_overflow): New.
	* emit-rtl.c (init_emit_once): Change to new double_int API.
	* explow.c (plus_constant): Likewise.
	* expmed.c (choose_multiplier): Likewise.
	* fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
	(int_const_binop_1): Change to new double_int API.
	(fold_div_compare): Likewise.
	(maybe_canonicalize_comparison): Likewise.
	(pointer_may_wrap_p): Likewise.
	(fold_negate_const): Likewise.
	(fold_abs_const): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_const_binary_operation): Likewise.
	* tree-chrec.c (tree_fold_binomial): Likewise.
	* tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
	* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
	* config/avr/avr.c (avr_double_int_push_digit): Likewise.
	(avr_map): Likewise.
	(avr_map_decompose): Likewise.
	(avr_out_insert_bits): Likewise.

Index: gcc/cp/ChangeLog

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* init.c (build_new_1): Change to new double_int API.
	* decl.c (build_enumerator): Likewise.
	* typeck2.c (process_init_constructor_array): Likewise.
	* mangle.c (write_array_type): Likewise.

Index: gcc/fortran/ChangeLog

2012-09-24  Lawrence Crowl  <crowl@google.com>

	* trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API.
	* target-memory.c (gfc_interpret_logical): Likewise.

From-SVN: r191675
2012-09-24 18:22:31 +00:00
Paolo Carlini ee38ecd406 re PR c++/50828 (class template parameter not printed for member function template in candidate list)
2012-09-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50828
	* error.c (dump_function_decl): Strip TFF_TEMPLATE_NAME from flags
	at the outset.

From-SVN: r191673
2012-09-24 16:56:41 +00:00
Jason Merrill 3ad50c8e15 * decl.c (get_atexit_node): Remove dead code.
From-SVN: r191672
2012-09-24 11:37:42 -04:00
Jason Merrill b6e189f63d * Make-lang.in (cp/parser.o): Depend on decl.h.
From-SVN: r191671
2012-09-24 11:36:51 -04:00