Commit Graph

153443 Commits

Author SHA1 Message Date
Bin Cheng
c7da0e818f tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
* tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
	(get_computation): Delete.
	(get_computation_cost): Implement like get_computation_cost_at.
	Use get_computation_at.
	(get_computation_cost_at): Delete.
	(rewrite_use_nonlinear_expr): Use get_computation_at.
	(rewrite_use_compare, remove_unused_ivs): Ditto.

From-SVN: r247517
2017-05-02 16:19:51 +00:00
Bin Cheng
d6176f7285 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
From-SVN: r247516
2017-05-02 16:18:42 +00:00
Bin Cheng
1136cae41b tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
* tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
	(ivopts_global_cost_for_size): Rename parameter and update uses.
	(iv_ca_recount_cost): Update uses.
	(iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
	candidates seperately in n_invs and n_cands.
	(iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.

From-SVN: r247515
2017-05-02 16:14:53 +00:00
Bin Cheng
1c52c69ff0 tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
* tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
	(find_inv_vars_cb): New.
	(find_depends): Renamed to ...
	(find_inv_vars): ... this.
	(add_candidate_1, force_var_cost): Call find_inv_vars.
	(split_address_cost, determine_group_iv_cost_cond): Ditto.

From-SVN: r247514
2017-05-02 16:12:41 +00:00
Bin Cheng
0ca91c77f4 tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to inv_vars.
* tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
	inv_vars.  Add inv_exprs.
	(struct iv_cand): Rename depends_on to inv_vars.
	(struct ivopts_data): Rename max_inv_id/n_invariant_uses to
	max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
	Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
	(dump_cand): Dump inv_vars.
	(tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
	(record_invariant, find_depends, add_candidate_1): Ditto.
	(set_group_iv_cost, force_var_cost): Ditto.
	(split_address_cost, ptr_difference_cost, difference_cost): Ditto.
	(get_computation_cost_at, get_computation_cost): Ditto.
	(determine_group_iv_cost_generic): Ditto.
	(determine_group_iv_cost_address): Ditto.
	(determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
	(determine_group_iv_costs): Ditto.
	(iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
	(iv_ca_set_remove_invariants): Renamed to ...
	(iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
	(iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
	(iv_ca_set_add_invariants):  Renamed to ...
	(iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
	(iv_ca_set_cp): Use iv_ca_set_add_invs.
	(iv_ca_has_deps): Support inv_vars and inv_exprs.
	(iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
	(create_new_ivs): Remove useless dump.

	gcc/testsuite
	* g++.dg/tree-ssa/ivopts-3.C: Adjust test string.

From-SVN: r247512
2017-05-02 16:09:23 +00:00
Bin Cheng
c166202824 tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo iv_cand code.
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
	iv_cand code.
	(determine_group_iv_cost_cond, determine_iv_cost): Ditto.
	(iv_ca_set_no_cp, create_new_iv): Ditto.

From-SVN: r247510
2017-05-02 16:03:49 +00:00
Bin Cheng
5368589615 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
From-SVN: r247509
2017-05-02 15:57:45 +00:00
Jeff Law
27c72a9bfd tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of function tree_check2.
2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

	* tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
	function tree_check2.

From-SVN: r247508
2017-05-02 09:39:02 -06:00
Martin Liska
4e8bfd7913 Fix documentation and a ctor in gcov.c
2017-05-02  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Add missing preposition.
	* gcov.c (function_info::function_info): Properly fill up
	all member variables.

From-SVN: r247507
2017-05-02 15:37:41 +00:00
Tamar Christina
22677ff0c4 expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
2017-04-26  Tamar Christina  <tamar.christina@arm.com>

	* expr.c (expand_expr_real_2): Re-cost if previous costs are the same.

From-SVN: r247505
2017-05-02 15:20:47 +00:00
Tamar Christina
cc5b8f3d56 simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
gcc/
2017-04-27  Tamar Christina  <tamar.christina@arm.com>

	* simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.

gcc/testsuite/
2017-04-27  Tamar Christina  <tamar.christina@arm.com>

	* gcc.dg/lsr-div1.c: New testcase.

From-SVN: r247504
2017-05-02 15:19:07 +00:00
Martin Liska
c842933738 Make right PR.
From-SVN: r247503
2017-05-02 15:11:29 +00:00
Hugo Beauzée-Luyssen
8a20a3c76f re PR bootstrap/69506 (check-in 232454 seems to cause problems with cygwin builds)
2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>

	PR libstdc++/69506
	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r247502
2017-05-02 15:04:39 +00:00
Martin Liska
c1a2a0b833 Remove LTO_STREAMER_DEBUG (PR lto/79489).
2017-05-02  Martin Liska  <mliska@suse.cz>

	PR lto/79489.
	* lto-streamer-in.c (lto_read_tree_1): Remove
	LTO_STREAMER_DEBUG.
	* lto-streamer.c (struct tree_hash_entry): Likewise.
	(struct tree_entry_hasher): Likewise.
	(tree_entry_hasher::hash): Likewise.
	(tree_entry_hasher::equal): Likewise.
	(lto_streamer_init): Likewise.
	(lto_orig_address_map): Likewise.
	(lto_orig_address_get): Likewise.
	(lto_orig_address_remove): Likewise.
	* lto-streamer.h: Likewise.
	* tree-streamer-in.c (streamer_alloc_tree): Likewise.
	* tree-streamer-out.c (streamer_write_tree_header): Likewise.

From-SVN: r247501
2017-05-02 15:00:47 +00:00
Sebastian Peryt
1853f5c77f * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
(_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
	(mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
	(mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
	(mm_maskz_sub_round_ss, _mm_mask_add_sd)
	(mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
	(mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
	(mm_maskz_sub_ss): New intrinsics.
	* config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
	(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
	* config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
	(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
	(__builtin_ia32_subss_mask_round): New builtins.
	* config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
	(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
	* config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
	Renamed to ...
	(<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
	(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
	Changed to ...
	(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
	... this.

testsuite/ChangeLog:

	* gcc.target/i386/avx512f-vaddsd-1.c (_mm_mask_add_sd)
	(_mm_maskz_add_sd, _mm_mask_add_round_sd)
	(_mm_maskz_add_round_sd): Test new intrinsics.
	* gcc.target/i386/avx512f-vaddsd-2.c: New.
	* gcc.target/i386/avx512f-vaddss-1.c (_mm_mask_add_ss)
	(_mm_maskz_add_ss, _mm_mask_add_round_ss)
	(_mm_maskz_add_round_ss): Test new intrinsics.
	* gcc.target/i386/avx512f-vaddss-2.c: New.
	* gcc.target/i386/avx512f-vsubsd-1.c (_mm_mask_sub_sd)
	(_mm_maskz_sub_sd, _mm_mask_sub_round_sd)
	(_mm_maskz_sub_round_sd): Test new intrinsics.
	* gcc.target/i386/avx512f-vsubsd-2.c: New.
	* gcc.target/i386/avx512f-vsubss-1.c (_mm_mask_sub_ss)
	(_mm_maskz_sub_ss, _mm_mask_sub_round_ss)
	(_mm_maskz_sub_round_ss): Test new intrinsics.
	* gcc.target/i386/avx512f-vsubss-2.c: New.
	* gcc.target/i386/avx-1.c (__builtin_ia32_addsd_mask_round)
	(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
	(__builtin_ia32_subss_mask_round): Test new builtins.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* gcc.target/i386/sse-14.c (_mm_maskz_add_round_sd)
	(_mm_maskz_add_round_ss, _mm_maskz_sub_round_sd)
	(_mm_maskz_sub_round_ss, _mm_mask_add_round_sd)
	(_mm_mask_add_round_ss, _mm_mask_sub_round_sd)
	(_mm_mask_sub_round_ss): Test new intrinsics.
	* gcc.target/i386/testround-1.c: Ditto.

From-SVN: r247498
2017-05-02 15:07:12 +02:00
Martin Jambor
2bba75411e [PR 78687] Set SRA grp_write lazily
2017-05-02  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/78687
	* tree-sra.c (access): New field parent.
	(process_subtree_disqualification): New function.
	(disqualify_candidate): Call it.
	(build_accesses_from_assign): Reset write flag if creating an
	assighnment link.
	(build_access_subtree): Fill in parent field and also prpagate
	down grp_write flag.
	(create_artificial_child_access): New parameter set_grp_write, set
	grp_write to its value.
	(propagate_subaccesses_across_link): Also propagate grp_write flag
	values.
	(propagate_all_subaccesses): Push the closest parent back to work
	queue if add_access_to_work_queue returned true.

testsuite/
	* g++.dg/tree-ssa/pr78687.C: New test.

From-SVN: r247497
2017-05-02 14:49:55 +02:00
Richard Biener
2bf54d93f1 common.opt (fstrict-overflow): Alias negative to fwrapv.
2017-05-02  Richard Biener  <rguenther@suse.de>

	* common.opt (fstrict-overflow): Alias negative to fwrapv.
	* doc/invoke.texi (fstrict-overflow): Remove all traces of
	-fstrict-overflow documentation.
	* tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
	(POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
	flag_strict_overflow.
	* ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
	* lto-opts.c (lto_write_options): Do not stream it.
	* lto-wrapper.c (merge_and_complain): Do not handle it.
	* opts.c (default_options_table): Do not set -fstrict-overflow.
	(finish_options): Likewise do not clear it when sanitizing.
	* simplify-rtx.c (simplify_const_relational_operation): Do not
	test flag_strict_overflow.

	ada/
	* gcc-interface/misc.c (gnat_post_options): Do not set
	-fstrict-overflow.

	* c-c++-common/Wlogical-op-1.c: Add -fwrapv to restore previous
	behavior.
	* gcc.target/i386/pr46253.c: Make i unsigned to avoid warning.

From-SVN: r247495
2017-05-02 12:43:47 +00:00
Jakub Jelinek
03dc1f5f90 * gennews (files): Add files for GCC 7.
From-SVN: r247491
2017-05-02 14:37:31 +02:00
Uros Bizjak
e7c54c8ecb alpha.md (*add<mode>3_ieee): Merge to add<mode>3 using enabled attribute.
* config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
	using enabled attribute.
	(*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
	(*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
	(*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
	(*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
	(*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
	(*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
	(*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
	(*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
	(*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
	(*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.

From-SVN: r247490
2017-05-02 13:56:35 +02:00
Uros Bizjak
0b1053b270 i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
* config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.

From-SVN: r247489
2017-05-02 13:38:36 +02:00
Richard Biener
aee63acc76 re PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809)
2017-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80591
	Revert
	2017-04-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (find_func_aliases): Properly handle
	asm inputs.

	* gcc.dg/torture/pr80591.c: New testcase.

From-SVN: r247488
2017-05-02 11:27:15 +00:00
Richard Biener
e7d70c6c3b re PR tree-optimization/80549 (wrong code at -O2 and -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (executable does not terminate))
2017-05-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80549
	* tree-cfgcleanup.c (mfb_keep_latches): New helper.
	(cleanup_tree_cfg_noloop): Create forwarders to known loop
	headers if they do not have a preheader.

	* gcc.dg/torture/pr80549.c: New testcase.

From-SVN: r247486
2017-05-02 11:24:52 +00:00
Martin Liska
51956afe27 Fix 2 typos in documentation (PR other/80589).
2017-05-02  Martin Liska  <mliska@suse.cz>

	PR other/80589
	* common.opt: Fix typo.
	* doc/invoke.texi: Likewise.

From-SVN: r247485
2017-05-02 09:38:55 +00:00
Eric Botcazou
4ec7c4ec03 trans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called on discriminants.
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (assoc_to_constructor): Make sure
	Corresponding_Discriminant is only called on discriminants.
	Skip the saving of the result only for them.
	(gnat_to_gnu) <N_Selected_Component>: Likewise.
	<N_Unchecked_Type_Conversion>: Translate the result type first.
	(gigi): Set TREE_NOTHROW on Begin_Handler.
	(stmt_list_cannot_raise_p): New predicate.
	(Exception_Handler_to_gnu_gcc): Emit a simple final call instead of
	a cleanup if the statements of the handler cannot raise.
	(process_freeze_entity): Use Is_Record_Type.
	(process_type): Likewise.

From-SVN: r247484
2017-05-02 11:21:19 +02:00
Senthil Kumar Selvaraj
52e0a9f766 Fix broken pr78138.c for avr
The declaration for memcpy had the size parameter declared as 
unsigned long. For avr, __SIZE_TYPE__ is unsigned int, and 
this caused a builtin-declaration-mismatch warning, resulting
in a couple of FAILs.

Fixed by typedef'ing __SIZE_TYPE__ to size_t and using size_t as the
type for memcpy's third parameter.

From-SVN: r247483
2017-05-02 09:17:59 +00:00
Arnaud Charlet
05dbb83f9e [multiple changes]
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Corresponding_Record_Component): New alias
	for Node21 used for E_Component and E_Discriminant.
	* einfo.adb (Corresponding_Record_Component): New function.
	(Set_Corresponding_Record_Component): New procedure.
	(Write_Field21_Name): Handle Corresponding_Record_Component.
	* sem_ch3.adb (Inherit_Component): Set
	Corresponding_Record_Component for every component in
	the untagged case.  Clear it afterwards for non-girder
	discriminants.
	* gcc-interface/decl.c (gnat_to_gnu_entity)
	<E_Record_Type>: For a derived untagged type with discriminants
	and constraints, apply the constraints to the layout of the
	parent type to deduce the layout.
	(field_is_aliased): Delete.
	(components_to_record): Test DECL_ALIASED_P directly.
	(annotate_rep): Check that fields are present except for
	an extension.
	(create_field_decl_from): Add DEBUG_INFO_P
	parameter and pass it in recursive and other calls.  Add guard
	for the manual CSE on the size.
	(is_stored_discriminant): New predicate.
	(copy_and_substitute_in_layout): Consider only
	stored discriminants and check that original fields are present
	in the old type.  Deal with derived types.  Adjust call to
	create_variant_part_from.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Expand_Call_Helper): When locating the
	accessibility entity created for an access parameter, handle
	properly a reference to a formal of an enclosing subprogram. if
	the reference appears in an inherited class-wide condition, it
	is the rewriting of the reference in the ancestor expression,
	but the accessibility entity must be that of the current formal.

2017-05-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram.
	(Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus,
	Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract):
	Call Expand_Non_Binary_Modular_Op.

From-SVN: r247482
2017-05-02 11:17:13 +02:00
Eric Botcazou
f934fd02a0 sem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants...
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Private_Type): If the parent type
	has discriminants, do not override the Stored_Constraint list of
	the full view of the derived type with that of the derived type.

From-SVN: r247481
2017-05-02 11:08:28 +02:00
Arnaud Charlet
d6fd1f07ac [multiple changes]
2017-05-02  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

	* s-os_lib.ads: Minor typo fix.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnatls.adb: Merge and refactor code from Prj.Env and remove
	this deprecated dependency.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads: minor comment addition.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and
	pastos in part #3 of the head comment.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Freeze_Type): Do not generate an invariant
	procedure body for a local (sub)type declaration within a
	predicate function. Invariant checks do not apply to these, and
	the expansion of the procedure will happen in the wrong scope,
	leading to misplaced freeze nodes.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Insert_Library_Level_Action): Use proper scope
	to analyze generated actions.  If the main unit is a body,
	the required scope is that of the corresponding unit declaration.

2017-05-02  Arnaud Charlet  <charlet@adacore.com>

	* einfo.adb (Declaration_Node): flip branches of
	an IF statement to avoid repeated negations in its condition;
	no change in semantics, only to improve readability.

From-SVN: r247480
2017-05-02 11:06:41 +02:00
Arnaud Charlet
2d249f52b5 [multiple changes]
2017-05-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_case.adb: Remove extra spaces in parameter declarations.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* usage.adb: Replace space with hyphen ("run time" -> "run-time")
	in usage line for new -gnatwE switch.

2017-05-02  Claire Dross  <dross@adacore.com>

	* a-cofuve.ads (Remove): Remove unnecessary
	conditions in precondition.

2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>

	* a-stream.ads, exp_imgv.adb, sem_ch10.adb,
	sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix.

From-SVN: r247479
2017-05-02 11:04:23 +02:00
Arnaud Charlet
b55993b353 [multiple changes]
2017-05-02  Justin Squirek  <squirek@adacore.com>

	* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
	alternative expression.
	* sem_res.adb (Resolve_Case_Expression): Ditto.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT):
	Refine predicate for the case where the primitive operation
	is a renaming of equality.  An overriding operation that is
	a user-defined renaming of predefined equality inherits its
	slot from the overridden operation. Otherwise it is treated
	as a predefined op and occupies the same predefined slot as
	equality. A call to it is transformed into a call to its alias,
	which is the predefined equality. A dispatching call thus uses
	the proper slot if operation is further inherited and called
	with class-wide arguments.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* errout.adb (Set_Msg_Text): Add a case to switch the message
	type when the character '[' is detected signifying a warning
	about a run-time exception.
	* opt.ads Add a new Warning_Mode value for new switch
	* switch-b.adb (Scan_Binder_Switches): Add case for the binder
	to handle new warning mode
	* usage.adb (Usage): Add usage entry for -gnatwE
	* warnsw.adb (Set_Warning_Switch): Add case for the new switch

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Process_Conversion): Reject an intrinsic operator
	declaration that operates on some fixed point type.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses.

From-SVN: r247478
2017-05-02 11:00:48 +02:00
Arnaud Charlet
a6354842df [multiple changes]
2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Analyze_Null_Procedure): Revert previous change.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
	expression (Analyze_If_Expression): Add check for valid condition
	* sem_eval.adb (Eval_Case_Expression): Add check for error posted
	on case-expression
	* sem_res.adb (Resolve_If_Expression): Add check for valid
	condition and then-expression.

From-SVN: r247477
2017-05-02 10:57:44 +02:00
Arnaud Charlet
97ac2d62fa Minor reformatting.
From-SVN: r247476
2017-05-02 10:55:34 +02:00
Arnaud Charlet
1804faa419 [multiple changes]
2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): Generate a null
	statement if the initialization call is a null procedure, as
	can happen with a controlled type with no explicit Initialize
	procedure, or an array of such.
	* exp_ch7.adb (Process_Object_Declaration): For a type with
	controlled components that has a trivial Initialize procedure,
	insert declaration for finalization counter after object
	declaration itself.
	(Make_Deep_Array_Body, Build_Initialize_statements): Do not create
	finalization block and attendant declarations if component has
	a trivial Initialize procedure.
	(Make_Init_Call): Do not generate a call if controlled type has
	a trivial Initialize procedure.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* g-forstr.ads (Data): Move Format component last.
	* g-forstr.adb ("+"): Adjust for above change.
	* g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last.
	* g-sechas.ads (Context): Move Key last.
	* g-socket.ads (Service_Entry_Type): Move Aliases last.
	* s-fileio.adb (Temp_File_Record): Move Name last.
	* s-regexp.adb (Regexp_Value): Move Case_Sensitive last.
	* xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last.

2017-05-02  Jerome Lambourg  <lambourg@adacore.com>

	* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl
	switch introduced recently. finally not needed.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Analyze_Null_Procedure): Set the
	Corresponding_Body link for a null procedure declaration.

From-SVN: r247475
2017-05-02 10:55:03 +02:00
Arnaud Charlet
62d40a7a4e [multiple changes]
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* atree.h (Flag290): Add missing terminating parenthesis.
	* einfo.adb (Is_Class_Wide_Clone): Use Flag290.
	(Set_Is_Class_Wide_Clone): Likewise.
	* einfo.ads (Is_Class_Wide_Clone): Likewise.

2017-05-02  Gary Dismukes  <dismukes@adacore.com>

	* checks.ads (Null_Exclusion_Static_Checks): Add Boolean
	parameter Array_Comp to indicate the case of an array object
	with null-excluding components.
	* checks.adb (Null_Exclusion_Static_Checks):
	Call Compile_Time_Constraint_Error instead of
	Apply_Compile_Time_Constraint_Error in the component case. Also
	call that when Array_Comp is True, with an appropriate warning for
	the array component case. Only create an explicit initialization
	by null in the case of an object of a null-excluding access type
	(and no longer do that in the component case).
	* sem_ch3.adb (Check_Component): Add a Boolean parameter
	Array_Comp defaulted to False.	Pass Empty for the Comp
	actual when calling Null_Exclusion_Static_Checks in the case
	where Comp_Decl matches Object_Decl, because we don't have a
	component in that case. In the case of an object or component
	of an array type, pass True for Array_Comp on the recursive call
	to Check_Component.

From-SVN: r247474
2017-05-02 10:49:55 +02:00
Arnaud Charlet
d86fb53f20 [multiple changes]
2017-05-02  Bob Duff  <duff@adacore.com>

	* s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly
	compute the linux priority from the Ada priority. Call this everywhere
	required. In particular, the previous version was not doing this
	computation when setting the ceiling priority in various places. It
	was just converting to C.int, which results in a ceiling that is off
	by 1.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: Comment predicate inheritance.

From-SVN: r247473
2017-05-02 10:47:29 +02:00
Arnaud Charlet
c5b4738f57 [multiple changes]
2017-05-02  Tristan Gingold  <gingold@adacore.com>

	* s-trasym.ads: Add comment.

2017-05-02  Bob Duff  <duff@adacore.com>

	* sem_elab.adb, sem_elab.ads: Minor comment fixes.
	* sem_ch4.adb: Minor reformatting.
	* s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring.
	* s-taspri-posix-noaltstack.ads: Minor refactoring.
	* sinput.ads: Minor typo fix.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Discriminated_Size): Moved to sem_util.
	* sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved
	here from exp_ch9, to recognize objects whose creation requires
	dynamic allocation, so that the proper warning can be emitted
	when restriction No_Implicit_Heap_Allocation is in effect.
	* sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size
	to emit proper warning when an object that requires dynamic
	allocation is declared.

From-SVN: r247472
2017-05-02 10:44:41 +02:00
Tristan Gingold
05b95f6333 * s-trasym.ads, s-trasym.adb (Enable_Cache): New.
From-SVN: r247471
2017-05-02 10:40:12 +02:00
Arnaud Charlet
6fdc25c4a3 [multiple changes]
2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed
	visibility rules for equality operators that apply within an
	instantiation apply within an inlined body.
	* sem_type.adb (Add_One_Interp): ditto.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null
	procedures.

2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* snames.ads-tmpl
	(Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize,
	Name_No_Tagged_Streams): Move to regular pragmas.  Add
	placeholders for Default_Scalar_Storage_Order, Dispatching_Domain,
	and Secondary_Stack_Size.
	(Pragma_Id): Move Pragma_Assume,
	Pragma_Attribute_Definition, Pragma_Loop_Optimize and
	Pragma_No_Tagged_Streams to second part.

From-SVN: r247470
2017-05-02 10:39:29 +02:00
Arnaud Charlet
c0e938d0cd [multiple changes]
2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb: Minor reformatting.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): Improve error
	detection for illegal references to private components or
	operations of a protected type in the body of the type.

From-SVN: r247469
2017-05-02 10:32:34 +02:00
Arnaud Charlet
99bba92c35 [multiple changes]
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* opt.ads: Add missing GNAT markers in comments.
	* opt.adb (Set_Opt_Config_Switches): Do not override earlier
	settings of Optimize_Alignment at the end.

2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Apply_Constraint_Check): Do not apply
	a discriminant check when the associated type is a constrained
	subtype created for an unconstrained nominal type.
	* exp_attr.adb: Minor reformatting.

2017-05-02  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly
	the N_Raise_Expression case.
	* sem_ch6.adb (Check_Limited_Return): Minor: clarify comment,
	and add assertions.

2017-05-02  Yannick Moy  <moy@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and
	optimize length comparison in GNATprove mode.
	* exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite
	operator /= into negation of operator = when needed.
	(Expand_SPARK): Call new
	function to expand operator /=.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed):
	Simplify the expression for a fixed-fixed division to remove
	divisions by constants whenever possible, as an optimization
	for restricted targets.

From-SVN: r247468
2017-05-02 10:31:12 +02:00
Arnaud Charlet
bae8f1562f Minor reformatting.
From-SVN: r247467
2017-05-02 10:28:16 +02:00
Arnaud Charlet
31e358e1c8 [multiple changes]
2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb, sem_ch3.adb, sem_ch6.adb: Minor reformatting.

2017-05-02  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Callable, Identity, Terminated): Use Find_Prim_Op
	to find primitive ops, instead of using an Identifier that will
	later be looked up. This is necessary because these ops are not
	necessarily visible at all places where we need to call them.
	* exp_util.ads: Minor comment fix.

From-SVN: r247466
2017-05-02 10:28:03 +02:00
Arnaud Charlet
d59179b15e [multiple changes]
2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Fully_Conformant_Expressions): Two entity
	references are fully conformant if they are both expansions
	of the discriminant of a protected type, within one of the
	protected operations. One occurrence may be expanded into a
	constant declaration while the other is an input parameter to
	the corresponding generated subprogram.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* sem_ch3.adb (Check_For_Null_Excluding_Components): Created for
	recursivly searching composite-types for null-excluding access
	types and verifying them.
	(Analyze_Object_Declaration): Add a
	call to Check_Null_Excluding_Components for static verification
	of non-initialized objects.
	* checks.adb, checks.ads (Null_Exclusion_Static_Checks): Added
	a parameter for a composite-type's component and an extra case
	for printing component information.

2017-05-02  Yannick Moy  <moy@adacore.com>

	* sem_ch10.adb (Analyze_Subunit): Take
	configuration pragma into account when restoring appropriate
	pragma for analysis of subunit.

2017-05-02  Justin Squirek  <squirek@adacore.com>

	* s-tasren.adb, s-tasini.adb, s-taprop-linux.adb,
	s-mudido-affinity.adb,, a-exetim-posix.adb, a-direio.adb,
	g-socket.adb, s-taenca.adb, s-fileio.adb: Remove unused use-type
	clauses from the runtime.

From-SVN: r247465
2017-05-02 10:26:12 +02:00
Jan Beulich
26de50b098 x86: vpermil2p{s,d} have no commutative operands
While either of the last two operands can be in memory, they can't be
swapped.

gcc/
2017-05-01  Jan Beulich  <jbeulich@suse.com>

	* config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
	swapping, add (x,x,m,x,n) alternative.

From-SVN: r247464
2017-05-02 08:19:26 +00:00
Arnaud Charlet
2132d92e27 Minor reformatting.
From-SVN: r247463
2017-05-02 10:18:39 +02:00
Arnaud Charlet
42fe76e063 [multiple changes]
2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Check_Component_Storage_Order): Do not treat bit-packed
	array components specially.

2017-05-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Premature_Usage): If the premature usage of
	an entity is as the expression in its own object decaration,
	rewrite the reference as Any_Id to prevent cascaded errors or
	compiler loops when such an entity is used in an address clause.

From-SVN: r247462
2017-05-02 10:18:17 +02:00
GCC Administrator
676be6a335 Daily bump.
From-SVN: r247459
2017-05-02 00:16:18 +00:00
Iain Buclaw
5398cab9ca d-demangle.c (dlang_hexdigit): New function.
libiberty/ChangeLog:

	* d-demangle.c (dlang_hexdigit): New function.
	(ascii2hex): Remove function.
	(dlang_parse_string): Update to call dlang_hexdigit.
	* testsuite/d-demangle-expected: Add tests.

From-SVN: r247455
2017-05-01 23:38:50 +00:00
Iain Buclaw
dbe65f77ff d-demangle.c (strtol): Remove declaration.
libiberty/ChangeLog:

	* d-demangle.c (strtol): Remove declaration.
	Updated all callers to use dlang_number.
	(dlang_number): New function.
	(dlang_value): Moved check for ISDIGIT into dlang_parse_integer.
	* testsuite/d-demangle-expected: Add tests.

From-SVN: r247453
2017-05-01 23:31:24 +00:00
Nathan Sidwell
0aae15720e calls.c (combine_pending_stack_adjustment_and_call): Remove unnecessary unadjusted_alignment check.
* calls.c (combine_pending_stack_adjustment_and_call): Remove
	unnecessary unadjusted_alignment check.

From-SVN: r247452
2017-05-01 23:22:30 +00:00