Commit Graph

129713 Commits

Author SHA1 Message Date
Richard Biener
279a935ff4 configure.ac: Do valgrind header checks unconditionally.
2014-04-28  Richard Biener  <rguenther@suse.de>

	* configure.ac: Do valgrind header checks unconditionally.
	Add --enable-valgrind-annotations.
	* system.h: Guard valgrind header inclusion with
	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
	* alloc-pool.c (pool_alloc, pool_free): Use
	ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
	to guard possibly dead code.
	* config.in: Regenerated.
	* configure: Likewise.

From-SVN: r209861
2014-04-28 14:01:40 +00:00
Jeff Law
07357f2f5a re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code)
PR tree-optimization/60902
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Only iterate
	over real defs when invalidating outputs from statements that do not
	produce useful outputs for threading.

From-SVN: r209860
2014-04-28 07:38:19 -06:00
Richard Biener
6c6aa8e6ca re PR tree-optimization/60979 (ICE: in gimple_redirect_edge_and_branch_force, at tree-cfg.c:5544, w/ -O -ftree-loop-linear or -fgraphite-identity)
2014-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60979
	* graphite-scop-detection.c (scopdet_basic_block_info): Reject
	SCOPs that end in a block with a successor with abnormal
	predecessors.

	* gcc.dg/graphite/pr60979.c: New testcase.

From-SVN: r209859
2014-04-28 13:13:50 +00:00
Kyrylo Tkachov
9540b3c316 [ARM/AArch64] Use signed chars in gcc.dg/pr60114.c.
PR c/60983
	* gcc.dg/pr60114.c: Use signed chars.

From-SVN: r209858
2014-04-28 12:42:54 +00:00
Paolo Carlini
a3879fa1a8 re PR c++/59120 ([c++11] ICE with invalid template alias)
/cp
2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59120
	* parser.c (cp_parser_alias_declaration): Check return value of
	cp_parser_require.

/testsuite
2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/59120
	* g++.dg/cpp0x/alias-decl-43.C: New.

From-SVN: r209857
2014-04-28 12:32:06 +00:00
Richard Biener
2cbf2d9595 tree-pass.h (execute_pass_list): Adjust prototype.
2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (execute_pass_list): Adjust prototype.
	* passes.c (pass_manager::execute_early_local_passes):
	Adjust.
	(do_per_function): Change callback signature, push all actual
	work to the callbals.
	(do_per_function_toporder): Likewise.
	(execute_function_dump): Adjust.
	(execute_function_todo): Likewise.
	(clear_last_verified): Likewise.
	(verify_curr_properties): Likewise.
	(update_properties_after_pass): Likewise.
	(execute_pass_list_1): Split out from ...
	(execute_pass_list): ... here.  Adjust.
	(execute_ipa_pass_list): Likewise.
	* cgraphunit.c (cgraph_add_new_function): Adjust.
	(analyze_function): Likewise.
	(expand_function): Likewise.
	* cgraph.c (release_function_body): Free dominance info
	here instead of asserting it was magically freed elsewhere.

From-SVN: r209856
2014-04-28 11:30:09 +00:00
Eric Botcazou
ba21a04a1e configure.ac: Tweak GAS check for LEON instructions on SPARC.
* configure.ac: Tweak GAS check for LEON instructions on SPARC.
	* configure: Regenerate.
	* config/sparc/sparc.opt (muser-mode): New option.
	* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
	for LEON3.
	(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
	* doc/invoke.texi (SPARC options): Document -muser-mode.

From-SVN: r209850
2014-04-28 10:03:46 +00:00
GCC Administrator
b976509fd0 Daily bump.
From-SVN: r209848
2014-04-28 00:18:40 +00:00
Tim Shen
a670a9bb54 regex_automaton.h (_NFA<>::_M_insert_repeat): Add _S_opcode_repeat support to distingush a loop from _S_opcode_alternative.
2014-04-27  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_automaton.h (_NFA<>::_M_insert_repeat):
	Add _S_opcode_repeat support to distingush a loop from
	_S_opcode_alternative.
	* include/bits/regex_automaton.tcc (_State_base::_M_print,
	_State_base::_M_dot, _NFA<>::_M_eliminate_dummy,
	_StateSeq<>::_M_clone): Likewise.
	* include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier):
	Likewise.
	* include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Likewise.
	* include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
	Uglify local variable __i.
	* include/bits/regex_compiler.h (_BracketMatcher<>::_M_make_cache):
	Use size_t instead of int to compare with vector::size().

2014-04-27  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_executor.h: Add _M_rep_count to track how
	many times this repeat node are visited.
	* include/bits/regex_executor.tcc (_Executor<>::_M_rep_once_more,
	_Executor<>::_M_dfs): Use _M_rep_count to prevent entering
	infinite loop.

2014-04-27  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex.tcc (__regex_algo_impl<>): Remove
	_GLIBCXX_REGEX_DFS_QUANTIFIERS_LIMIT and use
	_GLIBCXX_REGEX_USE_THOMPSON_NFA instead.
	* include/bits/regex_automaton.h: Remove quantifier counting variable.
	* include/bits/regex_automaton.tcc (_State_base::_M_dot):
	Adjust debug NFA dump.

From-SVN: r209844
2014-04-27 23:48:47 +00:00
Richard Sandiford
f956adb961 cselib.c (find_slot_memmode): Delete.
gcc/
	* cselib.c (find_slot_memmode): Delete.
	(cselib_hasher): Change compare_type to a struct.
	(cselib_hasher::equal): Update accordingly.  Don't expect wrapped
	constants.
	(preserve_constants_and_equivs): Adjust for new compare_type.
	(cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
	(wrap_constant): Delete.
	(cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.

From-SVN: r209843
2014-04-27 21:12:18 +00:00
Thomas Koenig
d01b2c21cf re PR fortran/59604 (Constant comparisons with -fno-range-check and int(z'...'))
2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/59604
	PR fortran/58003
	* gfortran.h (gfc_convert_mpz_to_signed):  Add prototype.
	* arith.c (gfc_int2int):  Convert number to signed if
	arithmetic overflow is not checked.
	* simplify.c (convert_mpz_to_unsigned): Only trigger assert for
	size if range checking is in force.
	(convert_mpz_to_signed):  Make non-static, rename to
	(gfc_convert_mpz_to_signed).
	(simplify_dshift): Use gfc_convert_mpz_to_signed.
	(gfc_simplify_ibclr):  Likewise.
	(gfc_simplify_ibits):  Likewise.
	(gfc_simplify_ibset):  Likewise.
	(simplify_shift):  Likewise.
	(gfc_simplify_ishiftc):  Likewise.
	(gfc_simplify_maskr):  Likewise.
	(gfc_simplify_maskl):  Likewise.

2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/59604
	PR fortran/58003
	* gfortran.dg/no_range_check_3.f90:  New test.

From-SVN: r209836
2014-04-27 10:48:56 +00:00
GCC Administrator
0a8dbb046c Daily bump.
From-SVN: r209835
2014-04-27 00:17:03 +00:00
Eric Botcazou
9e3f7c4bbc * gnatvsn.ads (Library_Version): Bump to 4.10.
From-SVN: r209830
2014-04-26 23:09:32 +00:00
Jerry DeLisle
dd9eb0f70e re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/52539
	* gfortran.dg/namelist_utf8.f90: New test.

From-SVN: r209829
2014-04-26 21:56:48 +00:00
Jerry DeLisle
42c1e008b0 re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-04-26  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/52539
	* io/list_read.c: Add uchar typedef. (push_char4): New function
	to save kind=4 character. (next_char_utf8): New function to read
	a single UTF-8 encoded character value. (read_chracter): Update
	to use the new functions for reading UTF-8 strings.
	(list_formatted_read_scalar): Update to handle list directed
	reads of UTF-8 strings. (nml_read_obj): Likewise update for
	UTF-8 strings in namelists.
	* io/write.c (nml_write_obj): Add kind=4 character support for
	namelist writes.

From-SVN: r209828
2014-04-26 21:52:26 +00:00
Markus Trippelsdorf
167c3e96ae Parallel profiledbootstrap is now supported
Parallel profiledbootstrap is supported on all maintained releases. So
just remove a misleading outdated sentence, that states the opposite,
from doc/install.texi.

2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>

	* doc/install.texi (Building with profile feedback): Remove
	outdated sentence.

From-SVN: r209826
2014-04-26 20:18:21 +00:00
Tom de Vries
4148ef5ff6 Fix out-of-bounds array accesses in ldexpxf3.
2014-04-26  Tom de Vries  <tom@codesourcery.com>

	* config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
	array accesses.

From-SVN: r209824
2014-04-26 16:32:56 +00:00
Uros Bizjak
367ab8238a alias-30.c (dg-options): Dump only fre1 details.
* gcc.dg/tree-ssa/alias-30.c (dg-options): Dump only fre1 details.
	* gcc.dg/vect/pr60505.c: Cleanup vect tree dump.
	* g++.dg/ipa/devirt-27.C (dg-options): Remove -fdump-ipa-devirt.

From-SVN: r209823
2014-04-26 16:31:29 +02:00
Chris Manghane
036165d811 compiler: Use backend interface for defining global declarations.
* go-gcc.cc: Include "cgraph.h" and "gimplify.h".
	(Gcc_backend::return_statement): Push and pop function.
	(Gcc_backend::label): Likewise.
	(Gcc_backend::function_defer_statement): Likewise.
	(Gcc_backend::switch_statement): Add function parameter.
	(Gcc_backend::block): Don't permit function to be NULL.
	(Gcc_backend::temporary_variable): Change go_assert to
	gcc_assert.
	(Gcc_backend::gc_root_variable): New function.
	(Gcc_backend::write_global_definitions): New function.

From-SVN: r209819
2014-04-26 03:38:34 +00:00
GCC Administrator
10695c6a1d Daily bump.
From-SVN: r209818
2014-04-26 00:16:56 +00:00
Cary Coutant
8d8ffd86d7 Fix a few ICEs and other problems with -fdebug-types-sections.
(1) If a function contains a local typedef of an anonymous structure, GCC
will generate a typedef DIE in the function, where the typedef DIE points
to a structure_type DIE at the top level.  That structure_type DIE, if
it's a non-POD, can contain ctor and dtor definitions.  This causes an
assertion in should_move_die_to_comdat to fail, as we have up to now
assumed that this could never happen.

(2) With --std=c++11, a template parameter can refer to a local type defined
within a function.  Because that local type doesn't qualify for its own
type unit, we copy it as an "unworthy" type into the type unit that refers
to it, but we copy too much, leading to a comdat type unit that contains a
DIE with subprogram definitions rather than declarations.  These DIEs may
have DW_AT_low_pc/high_pc or DW_AT_ranges attributes, and consequently can
refer to range list entries that don't get emitted because they're not
marked when the compile unit is scanned, eventually causing an undefined
symbol at link time.

(3) When a class template instantiation is moved into a separate type unit,
it can bring along a lot of other referenced types into the type unit,
especially if the template is derived from another (large) type that
does not have an actually have a type definition in a type unit of its
own. When there are many instantiations of the same template, we get
a lot of duplication, and in the worst case (a template with several
parameters, instantiated multiple times along each dimension), GCC
can end up taking a long time and exhausting available memory.

This combinatorial explosion is being caused by copy_decls_walk, where
it finds a type DIE that is referenced by the type unit, but is not
itself a type unit, and copies a declaration for that type into the
type unit in order to resolve the reference within the type unit.
In the process, copy_decls_walk also copies all of the children of
that DIE. In the case of a base class with member function templates,
every one of the instantiated member functions is copied into every
type unit that references the base class.

gcc/
        PR debug/60929
	* dwarf2out.c (should_move_die_to_comdat): A type definition
        can contain a subprogram definition, but don't move it to a
        comdat unit.
	(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
        (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
        from original DIE.
	(clone_tree_hash): Rename to...
	(clone_tree_partial): ...this; change callers.  Copy
        DW_TAG_subprogram DIEs as declarations.
	(copy_decls_walk): Don't copy children of a declaration into a
        type unit.

gcc/testsuite/
        PR debug/60929
        * g++.dg/debug/dwarf2/dwarf4-nested.C: New test case.
        * g++.dg/debug/dwarf2/dwarf4-typedef.C: Add
        -fdebug-types-section flag.

From-SVN: r209812
2014-04-25 16:05:14 -07:00
H.J. Lu
255671b0c5 Set MODE to SI for alternative 12 in *movsf_internal
PR target/60969
	* config/i386/i386.md (*movsf_internal): Set MODE to SI for
	alternative 12.

From-SVN: r209811
2014-04-25 13:52:01 -07:00
Lars Gullik Bjønnes
e2ce9436fb re PR libstdc++/60710 (experimental::optional<T> is using T::operator!=)
2014-04-25  Lars Gullik Bjønnes  <larsbj@gullik.org>

	PR libstdc++/60710
	* include/experimental/optional (operator!=): Implement in terms of
	operator==.
	* testsuite/experimental/optional/relops/1.cc: Remove operator!=.
	* testsuite/experimental/optional/relops/2.cc: Likewise.
	* testsuite/experimental/optional/relops/3.cc: Likewise.
	* testsuite/experimental/optional/relops/4.cc: Likewise.
	* testsuite/experimental/optional/relops/5.cc: Likewise.
	* testsuite/experimental/optional/relops/6.cc: Likewise.

From-SVN: r209810
2014-04-25 20:34:42 +01:00
Jiong Wang
10432733a5 [ARM] Enable tail call optimization for long call
gcc/

	* config/arm/predicates.md (call_insn_operand): Add long_call check.
	* config/arm/arm.md (sibcall, sibcall_value): Force the address to
	reg for long_call.
	* config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
	restriction.

gcc/testsuite

	* gcc.target/arm/tail-long-call.c: New test.

From-SVN: r209808
2014-04-25 17:00:33 +00:00
Jonathan Wakely
4ec21835cb re PR libstdc++/60958 (Initialization of arrays in tr1/regex ill-formed or with undefined behaviour)
PR libstdc++/60958
	* include/tr1/regex (regex_traits::isctype): Comment out broken code.
	* testsuite/util/testsuite_regex.h (regex_match_debug): Improve
	comment.

From-SVN: r209807
2014-04-25 17:10:25 +01:00
Kyrylo Tkachov
0e4c913f53 [ARM] Initialise T16-related fields in Cortex-A8 tuning struct.
* config/arm/arm.c (arm_cortex_a8_tune): Initialise
	T16-related fields.

From-SVN: r209806
2014-04-25 14:32:39 +00:00
Bill Schmidt
61ba732927 re PR tree-optimization/60930 (Wrong folding of - ((unsigned long long) a * (unsigned long long) (unsigned int)-1))
[gcc]

2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/60930
	* gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
	creating a multiply candidate by folding two constant
	multiplicands when the result overflows.

[gcc/testsuite]

2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/60930
	* gcc.dg/torture/pr60930.c:  New test.

From-SVN: r209805
2014-04-25 14:28:58 +00:00
Jakub Jelinek
2b33282907 re PR tree-optimization/60960 (Wrong result when a vector variable is divided by a literal constant)
PR tree-optimization/60960
	* tree-vect-generic.c (expand_vector_operation): Only call
	expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.

	* gcc.c-torture/execute/pr60960.c: New test.

From-SVN: r209802
2014-04-25 15:52:52 +02:00
Marek Polacek
ce2acd31d8 * gcc.dg/pr18079-2.c: Fix quoting in dg-warning.
From-SVN: r209801
2014-04-25 13:22:13 +00:00
Tom de Vries
97891c11e3 Add clobber_reg
2014-04-25  Tom de Vries  <tom@codesourcery.com>

	* expr.c (clobber_reg_mode): New function.
	* expr.h (clobber_reg): New function.

From-SVN: r209800
2014-04-25 11:21:40 +00:00
Tom de Vries
3ee634fd7b Register CALL_INSN_FUNCTION_USAGE in find_all_hard_reg_sets
2014-04-25  Tom de Vries  <tom@codesourcery.com>

	* rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
	clobbers.

From-SVN: r209799
2014-04-25 11:21:29 +00:00
Radovan Obradovic
356bf59349 Add implicit parameter to find_all_hard_reg_sets
2014-04-25  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
	handle.
	* rtl.h (find_all_hard_reg_sets): Add bool parameter.
	* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
	new argument to find_all_hard_reg_sets call.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209798
2014-04-25 11:21:18 +00:00
Kyrylo Tkachov
fe65a7edc6 [ARM] Wrap long literals in HOST_WIDE_INT_C in aarch-common.c
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
       Use HOST_WIDE_INT_C for mask literal.
       (aarch_rev16_shleft_mask_imm_p): Likewise.

From-SVN: r209797
2014-04-25 11:09:03 +00:00
Marek Polacek
45484dcfb1 re PR c/18079 (Contradicting function attributes (always_inline vs noinline))
PR c/18079
c/
	* c-decl.c (diagnose_mismatched_decls): Warn for mismatched
	always_inline/noinline and hot/cold attributes.
c-family/
	* c-common.c (handle_noinline_attribute): Warn if the attribute
	conflicts with always_inline attribute.
	(handle_always_inline_attribute): Warn if the attribute conflicts
	with noinline attribute.
testsuite/
	* gcc.dg/pr18079.c: New test.
	* gcc.dg/pr18079-2.c: New test.

From-SVN: r209796
2014-04-25 11:04:40 +00:00
Uros Bizjak
707d775782 pr60823-2.c: Require effective target vect_simd_clones.
* c-c++-common/gomp/pr60823-2.c: Require effective target
	vect_simd_clones.

From-SVN: r209795
2014-04-25 12:51:24 +02:00
Marek Polacek
34cf811f64 re PR c/60114 (Incorrect column number for -pedantic and -Wconversion)
PR c/60114
c/
	* c-parser.c (c_parser_initelt): Pass input_location to
	process_init_element.
	(c_parser_initval): Pass loc to process_init_element.
	* c-tree.h (process_init_element): Adjust declaration.
	* c-typeck.c (push_init_level): Pass input_location to
	process_init_element.
	(pop_init_level): Likewise.
	(set_designator): Likewise.
	(output_init_element): Add location_t parameter.  Pass loc to
	digest_init.
	(output_pending_init_elements): Pass input_location to
	output_init_element.
	(process_init_element): Add location_t parameter.  Pass loc to
	output_init_element.
testsuite/
	* gcc.dg/pr60114.c: New test.

From-SVN: r209794
2014-04-25 10:49:56 +00:00
Eric Botcazou
b357d40d0a re PR target/60941 (miscompilation of firefox javascript interpreter)
PR target/60941
	* config/sparc/sparc.md (ashlsi3_extend): Delete.

From-SVN: r209790
2014-04-25 10:39:14 +00:00
Marc Glisse
30c0a59a91 re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	PR preprocessor/56540
	* config/i386/i386-c.c (ix86_target_macros): Define
	__SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.

From-SVN: r209789
2014-04-25 09:23:15 +00:00
Marek Polacek
38e514c017 re PR c/60156 (GCC doesn't warn about variadic main)
PR c/60156
	* c-common.c (check_main_parameter_types): Warn about variadic main.

	* c-c++-common/pr60156.c: New test.

From-SVN: r209787
2014-04-25 08:22:47 +00:00
Marc Glisse
e4012a04cd testsuite_abi.cc (check_version): Update for CXXABI_1.3.9.
2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	* testsuite/util/testsuite_abi.cc (check_version): Update for
	CXXABI_1.3.9.

From-SVN: r209786
2014-04-25 08:20:24 +00:00
Rainer Orth
c02f59e232 Remove LIB_TLS_SPEC on Solaris
* configure.ac (tga_func): Remove.
	(LIB_TLS_SPEC): Remove.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.

From-SVN: r209785
2014-04-25 08:08:41 +00:00
Marc Glisse
5b002eee4e re PR target/43538 (config/mt-gnu CXXFLAGS_FOR_TARGET)
2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	PR target/43538
	* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.

From-SVN: r209784
2014-04-25 08:03:08 +00:00
Rainer Orth
54cf37e9bf Remove SSE execution test in crtfastmath.c
* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
	(sigill_caught, sigill_hdlr): Remove.

From-SVN: r209783
2014-04-25 08:01:09 +00:00
Richard Biener
92b3326b2f re PR ipa/60912 (wrong code with -O -fno-inline -fipa-pta)
2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60912
	* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
	call stmt use/clobber sets during stmt walk instead of
	walking the possibly incomplete set of caller edges.

	* g++.dg/opt/pr60912.C: New testcase.

From-SVN: r209780
2014-04-25 07:47:22 +00:00
Richard Biener
78422fb13c re PR ipa/60911 (wrong code with -O2 -flto -fipa-pta)
2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60911
	* passes.c (apply_ipa_transforms): Inline into only caller ...
	(execute_one_pass): ... here.  Properly bring in function
	bodies for nodes we want to apply IPA transforms to.

	* gcc.dg/lto/pr60911_0.c: New testcase.

From-SVN: r209779
2014-04-25 07:44:40 +00:00
Ian Lance Taylor
9490b8da72 re PR go/60931 (libgo has issues when page size is not 4k)
PR go/60931

runtime: Fix garbage collector issue with non 4kB system page size

The go garbage collector tracks memory in terms of 4kB pages.
Most of the code checks getpagesize() at runtime and does the
right thing.

On a 64kB ppc64 box I see SEGVs in long running processes
which has been diagnosed as a bug in scavengelist.
scavengelist does a madvise(MADV_DONTNEED) without rounding
the arguments to the system page size.  A strace of one of the
failures shows the problem:

madvise(0xc211030000, 4096, MADV_DONTNEED) = 0

The kernel rounds the length up to 64kB and we mark 60kB of
valid data as no longer needed.

Round start up to a system page and end down before calling
madvise.

From-SVN: r209777
2014-04-25 04:29:07 +00:00
Mike Stump
44875f9206 * c.opt (Wshadow-ivar): Default to on.
From-SVN: r209774
2014-04-25 00:53:34 +00:00
Cong Hou
56f8faaedd re PR tree-optimization/60896 (ICE: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1449)
2014-04-24  Cong Hou  <congh@google.com>

    PR tree-optimization/60896
    * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
    all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
    (vect_mark_pattern_stmts): Set the def type of all statements in
    PATTERN_DEF_SEQ as vect_internal_def.

2014-04-24  Cong Hou  <congh@google.com>

    PR tree-optimization/60896
    * g++.dg/vect/pr60896.cc: New test.

From-SVN: r209773
2014-04-24 20:20:44 -04:00
GCC Administrator
9beb6f2b1d Daily bump.
From-SVN: r209772
2014-04-25 00:16:40 +00:00
Michael Meissner
06b39289a2 extend.texi (PowerPC Built-in Functions): Document new powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
[gcc]
2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC Built-in Functions): Document new
	powerpc extended divide, bcd, pack/unpack 128-bit, builtin
	functions.
	(PowerPC AltiVec/VSX Built-in Functions): Likewise.

	* config/rs6000/predicates.md (const_0_to_3_operand): New
	predicate to match 0..3 integer constants.

	* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
	to support adding miscellaneous builtin functions.
	(BU_DFP_MISC_2): Likewise.
	(BU_P7_MISC_1): Likewise.
	(BU_P7_MISC_2): Likewise.
	(BU_P8V_MISC_3): Likewise.
	(BU_MISC_1): Likewise.
	(BU_MISC_2): Likewise.
	(DIVWE): Add extended divide builtin functions.
	(DIVWEO): Likewise.
	(DIVWEU): Likewise.
	(DIVWEUO): Likewise.
	(DIVDE): Likewise.
	(DIVDEO): Likewise.
	(DIVDEU): Likewise.
	(DIVDEUO): Likewise.
	(DXEX): Add decimal floating-point builtin functions.
	(DXEXQ): Likewise.
	(DDEDPD): Likewise.
	(DDEDPDQ): Likewise.
	(DENBCD): Likewise.
	(DENBCDQ): Likewise.
	(DIEX): Likewise.
	(DIEXQ): Likewise.
	(DSCLI): Likewise.
	(DSCLIQ): Likewise.
	(DSCRI): Likewise.
	(DSCRIQ): Likewise.
	(CDTBCD): Add new BCD builtin functions.
	(CBCDTD): Likewise.
	(ADDG6S): Likewise.
	(BCDADD): Likewise.
	(BCDADD_LT): Likewise.
	(BCDADD_EQ): Likewise.
	(BCDADD_GT): Likewise.
	(BCDADD_OV): Likewise.
	(BCDSUB): Likewise.
	(BCDSUB_LT): Likewise.
	(BCDSUB_EQ): Likewise.
	(BCDSUB_GT): Likewise.
	(BCDSUB_OV): Likewise.
	(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
	(UNPACK_TD): Likewise.
	(PACK_TF): Likewise.
	(UNPACK_TF): Likewise.
	(UNPACK_TF_0): Likewise.
	(UNPACK_TF_1): Likewise.
	(PACK_V1TI): Likewise.
	(UNPACK_V1TI): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for decimal floating point builtin functions.
	(rs6000_expand_ternop_builtin): Add checks for the new builtin
	functions that take constant arguments.
	(rs6000_invalid_builtin): Add decimal floating point builtin
	support.
	(rs6000_init_builtins): Setup long double, _Decimal64, and
	_Decimal128 types for new builtin functions.
	(builtin_function_type): Set the unsigned flags appropriately for
	the new builtin functions.
	(rs6000_opt_masks): Add support for decimal floating point builtin
	functions.

	* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
	floating point builtin functions.
	(RS6000_BTM_COMMON): Likewise.
	(RS6000_BTI_long_double): Likewise.
	(RS6000_BTI_dfloat64): Likewise.
	(RS6000_BTI_dfloat128): Likewise.
	(long_double_type_internal_node): Likewise.
	(dfloat64_type_internal_node): Likewise.
	(dfloat128_type_internal_node): Likewise.

	* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
	2.07 bcd arithmetic instructions.
	(UNSPEC_BCDSUB): Likewise.
	(UNSPEC_BCD_OVERFLOW): Likewise.
	(UNSPEC_BCD_ADD_SUB): Likewise.
	(bcd_add_sub): Likewise.
	(BCD_TEST): Likewise.
	(bcd<bcd_add_sub>): Likewise.
	(bcd<bcd_add_sub>_test): Likewise.
	(bcd<bcd_add_sub>_test2): Likewise.
	(bcd<bcd_add_sub>_<code>): Likewise.
	(peephole2 for combined bcd ops): Likewise.

	* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
	decimal floating point builtin functions.
	(UNSPEC_DENBCD): Likewise.
	(UNSPEC_DXEX): Likewise.
	(UNSPEC_DIEX): Likewise.
	(UNSPEC_DSCLI): Likewise.
	(UNSPEC_DSCRI): Likewise.
	(D64_D128): Likewise.
	(dfp_suffix): Likewise.
	(dfp_ddedpd_<mode>): Likewise.
	(dfp_denbcd_<mode>): Likewise.
	(dfp_dxex_<mode>): Likewise.
	(dfp_diex_<mode>): Likewise.
	(dfp_dscli_<mode>): Likewise.
	(dfp_dscri_<mode>): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
	builtin functions.
	(UNSPEC_CDTBCD): Likewise.
	(UNSPEC_CBCDTD): Likewise.
	(UNSPEC_DIVE): Add support for new extended divide builtin
	functions.
	(UNSPEC_DIVEO): Likewise.
	(UNSPEC_DIVEU): Likewise.
	(UNSPEC_DIVEUO): Likewise.
	(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
	pack/unpack 128-bit types.
	(UNSPEC_PACK_128BIT): Likewise.
	(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
	(udiv<mode>3): Use idiv_ldiv mode attribute.
	(div<mode>3): Likewise.
	(addg6s): Add new BCD builtin functions.
	(cdtbcd): Likewise.
	(cbcdtd): Likewise.
	(UNSPEC_DIV_EXTEND): Add support for new extended divide
	instructions.
	(div_extend): Likewise.
	(div<div_extend>_<mode>"): Likewise.
	(FP128_64): Add support for new builtin functions to pack/unpack
	128-bit types.
	(unpack<mode>): Likewise.
	(unpacktf_0): Likewise.
	(unpacktf_1): Likewise.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(packv1ti): Likewise.

[gcc/testsuite]
2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/pack01.c: New test to test the new pack and
	unpack builtin functionss for 128-bit types.
	* gcc.target/powerpc/pack02.c: Likewise.
	* gcc.target/powerpc/pack03.c: Likewise.
	* gcc.target/powerpc/extend-divide-1.c: New test to test extended
	divide builtin functionss.
	* gcc.target/powerpc/extend-divide-2.c: Likewise.
	* gcc.target/powerpc/bcd-1.c: New test for the new BCD builtin
	functions.
	* gcc.target/powerpc/bcd-2.c: Likewise.
	* gcc.target/powerpc/bcd-3.c: Likewise.
	* gcc.target/powerpc/dfp-builtin-1.c: New test for the new DFP
	builtin functionss.
	* gcc.target/powerpc/dfp-builtin-2.c: Likewise.

From-SVN: r209768
2014-04-24 22:42:25 +00:00