Commit Graph

129531 Commits

Author SHA1 Message Date
Alan Lawrence
2fdc94b7de MAINTAINERS (Write After Approval): Add myself.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r209895
2014-04-29 13:14:38 +00:00
Nick Clifton
f8d91e8034 arc.c (arc_select_cc_mode): Fix parentheses.
* config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
	(arc_init_reg_tables): Use a machine_mode enum to iterate over
	available modes.
	* config/m32r/m32r.c (init_reg_tables): Likewise.
	* config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
	enum to hold the modes.

From-SVN: r209894
2014-04-29 13:09:03 +00:00
Alan Lawrence
5d3ad081b1 Add execution + assembler tests of the AArch64 ZIP Intrinsics.
* gcc.target/aarch64/simd/simd.exp: New file.
	* gcc.target/aarch64/simd/vzipf32_1.c: New file.
	* gcc.target/aarch64/simd/vzipf32.x: New file.
	* gcc.target/aarch64/simd/vzipp16_1.c: New file.
	* gcc.target/aarch64/simd/vzipp16.x: New file.
	* gcc.target/aarch64/simd/vzipp8_1.c: New file.
	* gcc.target/aarch64/simd/vzipp8.x: New file.
	* gcc.target/aarch64/simd/vzipqf32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqf32.x: New file.
	* gcc.target/aarch64/simd/vzipqp16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqp16.x: New file.
	* gcc.target/aarch64/simd/vzipqp8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqp8.x: New file.
	* gcc.target/aarch64/simd/vzipqs16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs16.x: New file.
	* gcc.target/aarch64/simd/vzipqs32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs32.x: New file.
	* gcc.target/aarch64/simd/vzipqs8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqs8.x: New file.
	* gcc.target/aarch64/simd/vzipqu16_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu16.x: New file.
	* gcc.target/aarch64/simd/vzipqu32_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu32.x: New file.
	* gcc.target/aarch64/simd/vzipqu8_1.c: New file.
	* gcc.target/aarch64/simd/vzipqu8.x: New file.
	* gcc.target/aarch64/simd/vzips16_1.c: New file.
	* gcc.target/aarch64/simd/vzips16.x: New file.
	* gcc.target/aarch64/simd/vzips32_1.c: New file.
	* gcc.target/aarch64/simd/vzips32.x: New file.
	* gcc.target/aarch64/simd/vzips8_1.c: New file.
	* gcc.target/aarch64/simd/vzips8.x: New file.
	* gcc.target/aarch64/simd/vzipu16_1.c: New file.
	* gcc.target/aarch64/simd/vzipu16.x: New file.
	* gcc.target/aarch64/simd/vzipu32_1.c: New file.
	* gcc.target/aarch64/simd/vzipu32.x: New file.
	* gcc.target/aarch64/simd/vzipu8_1.c: New file.
	* gcc.target/aarch64/simd/vzipu8.x: New file.

From-SVN: r209893
2014-04-29 13:08:46 +00:00
Richard Biener
e3f613cbbc dominance.c (free_dominance_info): Add overload with function parameter.
2014-04-29  Richard Biener  <rguenther@suse.de>

	* dominance.c (free_dominance_info): Add overload with
	function parameter.
	(dom_info_state): Likewise.
	(dom_info_available_p): Likewise.
	* basic-block.h (free_dominance_info, dom_info_state,
	dom_info_available_p): Declare overloads.
	* passes.c (execute_function_todo): Verify that verifiers
	don't change dominator info state.  Drop dominator info
	for IPA pass invocations.
	* cgraph.c (release_function_body): Restore asserts that
	dominator information is released.

From-SVN: r209892
2014-04-29 11:37:55 +00:00
Patrick Palka
36f291f765 invoke.texi: Fix typo.
2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>

	* doc/invoke.texi: Fix typo.
	* tree-vrp.c: Fix typos.
	* gimple.c (infer_nonnull_range): Reorder operands of an &&
	condition.

From-SVN: r209891
2014-04-29 09:30:20 +00:00
Zhenqiang Chen
d3a3182b5d aarch64.md (mov<mode>cc): New for GPF.
2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64.md (mov<mode>cc): New for GPF.

2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* gcc.target/aarch64/fcsel_1.c: New test case.

From-SVN: r209889
2014-04-29 05:10:11 +00:00
Jerry DeLisle
32a360864e re PR fortran/60810 (list directed io from array results in end of file)
2014-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu>

	PR libfortran/60810
	* gfortran.dg/arrayio_13.f90: New test.

From-SVN: r209888
2014-04-29 03:13:34 +00:00
GCC Administrator
90a098a72f Daily bump.
From-SVN: r209887
2014-04-29 00:16:39 +00:00
James Greenhalgh
ba081b77be [AArch64] Improve vst4_lane intrinsics
gcc/

	* config/aarch64/aarch64-builtins.c
	(aarch64_types_storestruct_lane_qualifiers): New.
	(TYPES_STORESTRUCT_LANE): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
	(st3_lane): Likewise.
	(st4_lane): Likewise.
	* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
	(vec_store_lanesci_lane<mode>): Likewise.
	(vec_store_lanesxi_lane<mode>): Likewise.
	(aarch64_st2_lane<VQ:mode>): Likewise.
	(aarch64_st3_lane<VQ:mode>): Likewise.
	(aarch64_st4_lane<VQ:mode>): Likewise.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
	* config/aarch64/arm_neon.h
	(__ST2_LANE_FUNC): Rewrite using builtins, update use points to
	use new macro arguments.
	(__ST3_LANE_FUNC): Likewise.
	(__ST4_LANE_FUNC): Likewise.
	* config/aarch64/iterators.md (V_TWO_ELEM): New.
	(V_THREE_ELEM): Likewise.
	(V_FOUR_ELEM): Likewise.

From-SVN: r209880
2014-04-28 21:05:51 +00:00
David Malcolm
1bc6d43cb8 Add a class hierarchy diagram to gimple.texi
2014-04-28  David Malcolm  <dmalcolm@redhat.com>

	* doc/gimple.texi: Replace the description of the now-defunct
	union gimple_statement_d with a diagram showing the
	gimple_statement_base class hierarchy and its relationships to
	the GSS_ and GIMPLE_ enums.

From-SVN: r209879
2014-04-28 21:02:28 +00:00
James Greenhalgh
97e1ad78bc [AArch64] Relax modes_tieable_p and cannot_change_mode_class
gcc/

	* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.c
	(aarch64_cannot_change_mode_class): Weaken conditions.
	(aarch64_modes_tieable_p): New.
	* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.

From-SVN: r209878
2014-04-28 21:00:38 +00:00
Pat Haugen
bf245bf484 sync.md (AINT mode_iterator): Move definition.
* config/rs6000/sync.md (AINT mode_iterator): Move definition.
	(loadsync_<mode>): Change mode.
	(load_quadpti, store_quadpti): New.
	(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
	* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.

From-SVN: r209873
2014-04-28 20:21:29 +00:00
Richard Henderson
bc76a4d5b5 Enable ada for aarch64-linux
* gcc-interface/Makefile.in: Support aarch64-linux.

From-SVN: r209871
2014-04-28 12:33:08 -07:00
Martin Jambor
28151221b5 tree-sra.c (sra_modify_expr): Generate new memory accesses with same alias type as the original statement.
2014-04-28  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (sra_modify_expr): Generate new memory accesses with
	same alias type as the original statement.
	(subreplacement_assignment_data): New type.
	(handle_unscalarized_data_in_subtree): New type of parameter,
	generate new memory accesses with same alias type as the original
	statement.
	(load_assign_lhs_subreplacements): Likewise.
	(sra_modify_constructor_assign): Generate new memory accesses with
	same alias type as the original statement.

testsuite/
        * gcc.dg/tree-ssa/sra-14.c: New test.

From-SVN: r209868
2014-04-28 18:55:40 +02:00
Eric Botcazou
9358288555 exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, add 'Suffix' parameter and adjust comment.
* exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix,
	add 'Suffix' parameter and adjust comment.
	(Get_External_Name_With_Suffix): Delete.
	* exp_dbug.adb (Get_External_Name_With_Suffix): Merge into...
	(Get_External_Name): ...here.  Add 'False' default to Has_Suffix, add
	'Suffix' parameter.
	(Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name.
	Call Get_External_Name instead of Get_External_Name_With_Suffix.
	(Get_Secondary_DT_External_Name): Likewise.
	* exp_cg.adb (Write_Call_Info): Likewise.
	* exp_disp.adb (Export_DT): Likewise.
	(Import_DT): Likewise.
	* comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC
	parameter with False default.
	* comperr.adb (Compiler_Abort): Likewise.  Adjust accordingly.
	* types.h (Fat_Pointer): Rename into...
	(String_Pointer): ...this.  Add comment on interfacing rules.
	* fe.h (Compiler_Abort): Adjust for above renaming.
	(Error_Msg_N): Likewise.
	(Error_Msg_NE): Likewise.
	(Get_External_Name): Likewise.  Add third parameter.
	(Get_External_Name_With_Suffix): Delete.
	* gcc-interface/decl.c (STDCALL_PREFIX): Define.
	(create_concat_name): Adjust call to Get_External_Name, remove call to
	Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming.
	* gcc-interface/trans.c (post_error): Likewise.
	(post_error_ne): Likewise.
	* gcc-interface/misc.c (internal_error_function): Likewise.

From-SVN: r209866
2014-04-28 14:58:28 +00:00
Richard Biener
9ba5fb4309 tree-pass.h (TODO_verify_il): Define.
2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-pass.h (TODO_verify_il): Define.
	(TODO_verify_all): Complete properly.
	* passes.c (execute_function_todo): Move existing loop-closed
	SSA verification under TODO_verify_il.
	(execute_one_pass): Trigger TODO_verify_il at todo-after time.
	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
	Fix tree sharing issue.

From-SVN: r209865
2014-04-28 14:42:06 +00:00
Richard Biener
22869a37b0 re PR middle-end/60092 (posix_memalign not recognized to derive alias and alignment info)
2014-04-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* builtins.def (DEF_C11_BUILTIN): Add.
	(BUILT_IN_ALIGNED_ALLOC): Likewise.
	* coretypes.h (enum function_class): Add function_c11_misc.
	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
	BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
	(call_may_clobber_ref_p_1): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(propagate_necessity): Likewise.
	(eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.

	ada/
	* gcc-interface/utils.c: Define flag_isoc11.

	lto/
	* lto-lang.c: Define flag_isoc11.

	* gcc.dg/tree-ssa/alias-32.c: New testcase.
	* gcc.dg/vect/pr60092.c: Likewise.

From-SVN: r209863
2014-04-28 14:36:13 +00:00
Richard Biener
771c950116 tree-vrp.c (vrp_var_may_overflow): Remove.
2014-04-28  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (vrp_var_may_overflow): Remove.
	(vrp_visit_phi_node): Rather than bumping to +-INF possibly
	with overflow immediately bump to one before that value and
	let iteration figure out overflow status.

	* gcc.dg/tree-ssa/vrp91.c: New testcase.
	* gcc.dg/Wstrict-overflow-14.c: XFAIL.
	* gcc.dg/Wstrict-overflow-15.c: Likewise.
	* gcc.dg/Wstrict-overflow-18.c: Remove XFAIL.

From-SVN: r209862
2014-04-28 14:07:51 +00:00
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