Commit Graph

141846 Commits

Author SHA1 Message Date
Richard Sandiford 5c1a2e639a Move constant folds for maths functions to new file
The new routines operate on the built-in enum rather than on tree decls.
The idea is to extend this to handle internal functions too, with a
combined enum for both.

The patch also moves fold_fma too, with the same prototype.  The long-term
plan is to replace FMA_EXPR with an internal function, for consistency
with the way that things like SQRT will be handled.

Tested on x86_64-linux-gnu, arm-linux-gnueabi and aarch64-linux-gnu.

gcc/
	* builtins.h (fold_fma): Move to fold-const-call.h.
	* builtins.c: Include fold-const-call.h.
	(mathfn_built_in_2): New function, split out from...
	(mathfn_built_in_1): ...here.
	(do_real_to_int_conversion, fold_const_builtin_pow)
	(fold_const_builtin_logb, fold_const_builtin_significand)
	(fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
	(do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
	(fold_builtin_sincos): Use fold_const_call to handle constants.
	(fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
	checks for ERROR_MARK.  Use fold_const_call to handle constant
	folds for math functions.
	(fold_fma): Move to fold-const-call.c.
	* fold-const.c: Include fold-const-call.h.
	* Makefile.in (OBJS): Add fold-const-call.o.
	(PLUGIN_HEADERS): Add fold-const-call.h.
	* realmpfr.h (real_from_mpfr): Allow the format to be specified
	directly.
	* realmpfr.c (real_from_mpfr): Likewise.
	* fold-const-call.h, fold-const-call.c: New files.

From-SVN: r229669
2015-11-02 16:34:16 +00:00
Julian Brown 6aadd15a41 [ARM] neon-testgen.ml typo
* config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
	brackets and semicolon.

From-SVN: r229662
2015-11-02 12:43:14 +00:00
Alan Lawrence 35e2be9fc9 Revert: tree-scalar-evolution.c: Handle LSHIFT by constant
gcc/:

		tree-scalar-evolution.c (interpret_rhs_expr): Handle some
		LSHIFT_EXPRs as equivalent MULT_EXPRs.

	gcc/testsuite/:

		gcc.dg/vect/vect-strided-shift.c: New.

From-SVN: r229660
2015-11-02 12:39:31 +00:00
Kyrylo Tkachov f4155d214e Move gcc.target/arm/pr67929_1.c test to execute.exp
PR target/67929
	* gcc.target/arm/pr67929_1.c: Move to...
	* gcc.c-torture/execute/pr67929_1.c: ... Here.
	Remove arm-specific directives.  Add noclone, noinline
	attributes.

From-SVN: r229657
2015-11-02 12:23:36 +00:00
Thomas Schwinge f5ce5ca118 [PR middle-end/68166] Restore build with fold checking enabled
gcc/
	PR middle-end/68166
	* fold-const.c: Include "md5.h".

From-SVN: r229652
2015-11-02 08:42:04 +01:00
Jeff Law f0e5161244 [PATCH] Avoid ssa-thread-11.c on various targets
* gcc.dg/tree-ssa/ssa-thread-11.c: Update target selector.

From-SVN: r229651
2015-11-01 22:59:19 -07:00
Jeff Law 4815336c9a [PATCH] Fix vms targets
* vmsdbgout.c: Revert unused header file reduction patch.

From-SVN: r229650
2015-11-01 22:27:14 -07:00
Jeff Law 0f8012fbdd * config/mcore/mcore.c: Include regs.h.
From-SVN: r229649
2015-11-01 22:23:52 -07:00
GCC Administrator 4f1617db75 Daily bump.
From-SVN: r229648
2015-11-02 00:16:12 +00:00
Ian Lance Taylor 1c47a3bfa3 mksysinfo.sh: Handle TIOCSPGRP if too complex for -fdump-go-spec.
Reviewed-on: https://go-review.googlesource.com/16534

From-SVN: r229645
2015-11-01 20:51:23 +00:00
Ian Lance Taylor 2e4e655cf3 re PR go/67968 (go1: internal compiler error: in write_specific_type_functions, at go/gofrontend/types.cc:1812)
PR go/67968
    compiler: Traverse types of call expressions.
    
    https://gcc.gnu.org/PR67968 provides a test case that causes a gccgo
    crash on valid code.  The compiler failed to build the hash and equality
    functions required for a type descriptor.  The descriptor is for an
    unnamed type that is being returned by a function imported from a
    different package.  The unnamed type is being implicitly converted to an
    interface type by a return statement.  The fix is to ensure that the
    type of a call expression is always traversed.
    
    Test case sent out for the master testsuite as
    https://golang.org/cl/16532 .

From-SVN: r229642
2015-11-01 20:46:04 +00:00
Uros Bizjak 2bbee501a3 pr67609-2.c: Include sse2-check.h.
* gcc.target/i386/pr67609-2.c: Include sse2-check.h.
	(sse2_test): Rename from main.  Do not return 0.

From-SVN: r229641
2015-11-01 21:22:14 +01:00
David Edelsohn 0cf9ec059e pr46756.f: Remove XFAIL for AIX.
* gfortran.dg/debug/pr46756.f: Remove XFAIL for AIX.
        * gfortran.dg/proc_ptr_39.f90: Require visibility.
        * gfortran.dg/read_dir.f90: XFAIL AIX.

From-SVN: r229640
2015-11-01 14:36:59 -05:00
GCC Administrator 34b4939d35 Daily bump.
From-SVN: r229639
2015-11-01 00:16:16 +00:00
Ian Lance Taylor 2b193803d7 runtime: If no split stacks, allocate stacks using mmap on 64-bit systems.
When not using split stacks, libgo allocate large stacks for each
    goroutine.  On a 64-bit system, libgo allocates a maximum of 128G for
    the Go heap, and allocates 4M for each stack.  When the stacks are
    allocated from the Go heap, the result is that a program can only create
    32K goroutines, which is not enough for an active Go server.  This patch
    changes libgo to allocate the stacks using mmap directly, rather than
    allocating them out of the Go heap.  This change is only done for 64-bit
    systems when not using split stacks.  When using split stacks, the
    stacks are allocated using mmap directly anyhow.  On a 32-bit system,
    there is no maximum size for the Go heap, or, rather, the maximum size
    is the available address space anyhow.
    
    Reviewed-on: https://go-review.googlesource.com/16531

From-SVN: r229636
2015-10-31 23:48:19 +00:00
Ian Lance Taylor da235df878 Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by adding alldocs.go, doc.go, note.go.
* Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by
	adding alldocs.go, doc.go, note.go.
	* Makefile.in: Rebuild.

From-SVN: r229635
2015-10-31 21:29:38 +00:00
Segher Boessenkool ee5c0d8af9 rs6000: Rewrite rs6000_reg_live_or_pic_offset_p
This function is quite a puzzle; untangle it.  No functional change.


2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.

From-SVN: r229634
2015-10-31 20:50:09 +01:00
Segher Boessenkool f44c1eb7e1 rs6000: Another PIC LRA fix
This one for TARGET_TOC && TARGET_MINIMAL_TOC.  Without it, r30 is not
saved in the prologue for functions that do not use r30, but the register
is set later in the prologue anyhow.  This made all java tests fail.


2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
	same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
	live as for using it elsewhere, for TARGET_MINIMAL_TOC.

From-SVN: r229633
2015-10-31 20:48:19 +01:00
Ville Voutilainen ffea5536df Remove support for N3994, terse range-for, which was not adopted.
/cp
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Remove the implementation of N3994, terse range-for loops.
	* parser.c (cp_parser_for_init_statement): Remove the parsing
	of a terse range-for.

/testsuite
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Remove the implementation of N3994, terse range-for loops.
	* g++.dg/cpp1z/range-for1.C: Remove.

From-SVN: r229632
2015-10-31 21:42:01 +02:00
Cesar Philippidis d057afcdca re PR bootstrap/68168 (r229609 breaks bootstrap)
PR Bootstrap/68168

	gcc/fortran/
	* openmp.c (resolve_omp_clauses): Pass &n->where when calling
	gfc_error.

From-SVN: r229631
2015-10-31 10:55:03 -07:00
Eric Botcazou 64c7c0953f * gnat.dg/discr45.adb: New test.
From-SVN: r229630
2015-10-31 17:13:32 +00:00
Jason Merrill 4fea442db7 Implement multiple 'auto' feature from Concepts TS.
* parser.c (cp_parser_type_id_1): Allow 'auto' if -fconcepts.
	(cp_parser_template_type_arg): Likewise.
	(get_concept_from_constraint): Split out most logic to...
	* constraint.cc (placeholder_extract_concept_and_args): ...here.
	(equivalent_placeholder_constraints, hash_placeholder_constraint): New.
	* cxx-pretty-print.c (pp_cxx_constrained_type_spec): New.
	* cxx-pretty-print.h: Declare it.
	* error.c (dump_type) [TEMPLATE_TYPE_PARM]: Call it.
	* pt.c (is_auto_r, extract_autos_r, extract_autos, auto_hash): New.
	(type_uses_auto): Use is_auto_r.
	(do_auto_deduction): Handle multiple 'auto's if -fconcepts.
	* typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Compare
	constraints.

From-SVN: r229629
2015-10-31 12:20:05 -04:00
Jason Merrill a459b07fa4 Streamline for_each_template_parm.
* pt.c (for_each_template_parm_r): Use WALK_SUBTREE.
	Return a meaningful value rather than error_mark_node.
	(for_each_template_parm): Return a tree.
	(uses_template_parms_level): Return bool.
	* cp-tree.h: Adjust.

From-SVN: r229628
2015-10-31 12:19:55 -04:00
Jason Merrill 09833a1db1 Improve deduction failure diagnostics.
* pt.c (unify): Don't diagnose no common base if we already have
	the same template.
	(do_auto_deduction): Explain deduction failure.

From-SVN: r229627
2015-10-31 12:19:50 -04:00
Jason Merrill 79d9b2dea2 pt.c (hash_tmpl_and_args): Use iterative_hash_object on template uid.
* pt.c (hash_tmpl_and_args): Use iterative_hash_object on template
	uid.

From-SVN: r229626
2015-10-31 12:19:44 -04:00
Jason Merrill dfded2f6b4 Make some functions static.
* parser.c (synthesize_implicit_template_parm)
	(finish_fully_implicit_template): Make static.

From-SVN: r229625
2015-10-31 12:19:38 -04:00
Ian Lance Taylor b9702967ee libgo: Update from Go 1.5 to Go 1.5.1.
Reviewed-on: https://go-review.googlesource.com/16527

From-SVN: r229624
2015-10-31 15:23:52 +00:00
Markus Trippelsdorf 67376cd2a5 ggc-common.c : Restore needed header for checking=release.
*ggc-common.c : Restore needed header for checking=release.

From-SVN: r229623
2015-10-31 10:57:33 +00:00
Tom de Vries 6664e41e59 Tune pointer-plus folding
2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.

	* gfortran.dg/assumed_type_2.f90: Update test.
	* gfortran.dg/no_arg_check_2.f90: Same.

From-SVN: r229621
2015-10-31 09:33:25 +00:00
Tom de Vries 82d2c2706f Don't expect existing varinfo for arguments in intra_create_variable_infos
2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
	existing varinfo for arguments.

From-SVN: r229620
2015-10-31 08:08:48 +00:00
Tom de Vries d0c9ca4461 Add initial constraints in create_function_info_for
2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
	create_function_info_for.  Dump constraints generated during
	create_function_info_for. Move intra_create_variable_infos call and
	function-return-values-escape bit to ...
	(create_function_info_for): ... here, and merge
	intra_create_variable_infos call with argument loop.  Add and handle
	nonlocal_p parameter.

From-SVN: r229619
2015-10-31 08:08:39 +00:00
Tom de Vries 2ce4413c7f Improve readability and structure of create_function_info_for
2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
	updating is alap, and seperated from preceding code.  Make sure
	insert_vi_for_tree is seperated from surrounding code.

From-SVN: r229618
2015-10-31 08:08:28 +00:00
Tom de Vries a543155b20 Use make_copy_constraint in ipa_pta_execute
2015-10-31  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.

From-SVN: r229617
2015-10-31 08:08:18 +00:00
Ian Lance Taylor af146490bb runtime: Remove now unnecessary pad field from ParFor.
It is not needed due to the removal of the ctx field.
    
    Reviewed-on: https://go-review.googlesource.com/16525

From-SVN: r229616
2015-10-31 00:59:47 +00:00
GCC Administrator 725e1be340 Daily bump.
From-SVN: r229615
2015-10-31 00:16:16 +00:00
Ian Lance Taylor 8af57ca269 compiler: Create pointer type for all types with methods.
Reviewed-on: https://go-review.googlesource.com/16522

From-SVN: r229612
2015-10-30 23:00:06 +00:00
Nathan Sidwell 27776f5530 * config-list.mk (nvptx-none): Add it.
From-SVN: r229611
2015-10-30 22:31:54 +00:00
Jeff Law 9251aec67d nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused args.
* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
	args.
	(MOVE_MAX): Set to 8.

Co-Authored-By: Nathan Sidwell <nathan@acm.org>

From-SVN: r229610
2015-10-30 22:30:20 +00:00
Cesar Philippidis 2ac33bca8a gfortran.h (gfc_omp_namespace): Add locus where member.
gcc/fortran/
	* gfortran.h (gfc_omp_namespace): Add locus where member.
	* openmp.c (gfc_match_omp_variable_list): Set where for each list
	item found.
	(resolve_omp_clauses): Remove where argument and use the where
	gfc_omp_namespace member when reporting errors.
	(resolve_omp_do):  Update call to resolve_omp_clauses.
	(resolve_oacc_loop): Likewise.
	(gfc_resolve_oacc_directive): Likewise.
	(gfc_resolve_omp_directive): Likewise.
	(gfc_resolve_omp_declare_simd): Likewise.

	gcc/testsuite/
	* gfortran.dg/gomp/intentin1.f90: Adjust copyprivate warning.

From-SVN: r229609
2015-10-30 15:16:52 -07:00
Cesar Philippidis 2631d4eb87 cgraph.c: Include context.h for offloading.
gcc/
	* cgraph.c: Include context.h for offloading.
	* varpool.c: Include context.h and omp-low.h.

From-SVN: r229608
2015-10-30 15:15:17 -07:00
Anatoly Sokolov d614335f77 Add contains_symbol_ref_p
From-SVN: r229607
2015-10-30 23:56:32 +03:00
Steven G. Kargl a6906c8097 re PR fortran/46588 (ICE with assumed character length function)
2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/46588
	* gfortran.dg/pr46588.f90: New test.

From-SVN: r229606
2015-10-30 19:20:36 +00:00
Alan Lawrence 6a6360148a Share code from fold_array_ctor_reference with fold.
* gimple-fold.c (fold_array_ctor_reference): Move searching code to:
        * fold-const.c (get_array_ctor_element_at_index): New.
        (fold): Remove binary-search through CONSTRUCTOR, call previous.

        * fold-const.h (get_array_ctor_element_at_index): New.

From-SVN: r229605
2015-10-30 19:03:14 +00:00
Evgeny Stupachenko 3b1661a9b9 Makefile.in (OBJS): Add multiple_target.o.
2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
	* Makefile.in (OBJS): Add multiple_target.o.
	* attrib.c (make_attribute): Moved from config/i386/i386.c
	* config/i386/i386.c (make_attribute): Deleted.
	* multiple_target.c (create_dispatcher_calls): New.
	(get_attr_len): Ditto.
	(get_attr_str): Ditto.
	(separate_attrs): Ditto.
	(is_valid_asm_symbol): Ditto.
	(create_new_asm_name): Ditto.
	(create_target_clone): Ditto.
	(expand_target_clones): Ditto.
	(ipa_target_clone): Ditto.
	(ipa_dispatcher_calls): Ditto.
	* passes.def (pass_target_clone): Two new ipa passes.
	* tree-pass.h (make_pass_target_clone): Ditto.
	* doc/extend.texi (target_clones): New attribute description.
gcc/c-family/
	* c-common.c (handle_target_clones_attribute): New.
	(c_common_attribute_table): Add handle_target_clones_attribute.
	(handle_always_inline_attribute): Add check on target_clones attribute.
	(handle_target_attribute): Ditto.
gcc/testsuite/
	* gcc.dg/mvc1.c: New test for multiple targets cloning.
	* gcc.dg/mvc2.c: Ditto.
	* gcc.dg/mvc3.c: Ditto.
	* gcc.dg/mvc4.c: Ditto.
	* gcc.dg/mvc5.c: Ditto.
	* gcc.dg/mvc6.c: Ditto.
	* gcc.dg/mvc7.c: Ditto.
	* g++.dg/ext/mvc1.C: Ditto.
	* g++.dg/ext/mvc2.C: Ditto.
	* g++.dg/ext/mvc3.C: Ditto.
	* g++.dg/ext/mvc4.C: Ditto.

From-SVN: r229595
2015-10-30 18:17:43 +00:00
Steven G. Kargl 834e9dbb39 re PR fortran/51993 (Erroneous type component initialization leads to internal compiler error)
2015-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/51993
	* decl.c (gfc_set_constant_character_len): Convert gcc_assert into an
	if-statement causing an early return leads to valid error message.

2015-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/51993
	* gfortran.dg/pr51993.f90: New test.

From-SVN: r229594
2015-10-30 18:13:50 +00:00
Vladimir Makarov 99a04f4fc5 re PR rtl-optimization/68106 (c-c++-common/torture/builtin-arith-overflow-11.c FAILs with -flra-remat @ aarch64)
2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68106
	* lra-remat.c (input_regno_present_p): Process hard regs
	explicitly present in machine description insns.
	(call_used_input_regno_present_p): Ditto.
	(calculate_gen_cands): Ditto.
	(do_remat): Ditto.

2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68106
	* gcc.target/aarch64/pr68106.c: New.

From-SVN: r229593
2015-10-30 17:45:16 +00:00
Steven G. Kargl edcc76d5ae re PR fortran/36192 (ICE with wrong index types and bad parens)
2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/36192
	* interface.c (get_expr_storage_size):  Check for INTEGER type before
	calling gmp routines.

2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/36192
	* gfortran.dg/pr36192_1.f90: New test.

From-SVN: r229590
2015-10-30 16:46:20 +00:00
Steven G. Kargl dc0f176a1c re PR fortran/68154 (ICE on initializing character parameter array (explicit, implied))
2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68154
	* decl.c (add_init_expr_to_sym): if the char length in the typespec
	is NULL, check for and use a constructor. 

2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68154
	*gfortran.dg/pr68154.f90

From-SVN: r229588
2015-10-30 16:26:59 +00:00
Jim Wilson e3316e3caa Fix comment typo.
* config/arm/neon-testgen.ml: Fix comment typo.

From-SVN: r229587
2015-10-30 09:11:59 -07:00
Kyrylo Tkachov a69a0436ee [comment] Improve comment for reg_set_p
* rtlanal.c (reg_set_p): Expand function comment.

From-SVN: r229586
2015-10-30 15:54:11 +00:00