Commit Graph

145428 Commits

Author SHA1 Message Date
Marc Glisse
2c2870a1b1 max(INT_MIN, x) -> x
2016-04-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (min(int_max, x), max(int_min, x)): New transformations.

gcc/testsuite/
	* gcc.dg/tree-ssa/minmax-1.c: New testcase.

From-SVN: r235323
2016-04-21 09:32:32 +00:00
Hristian Kirtchev
bbe008b6e9 sem_ch3.adb, [...]: Minor reformatting.
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor
	reformatting.

From-SVN: r235322
2016-04-21 11:26:02 +02:00
Javier Miranda
35f4f23840 exp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate has no function calls to...
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Check): Extend
	the check that verifies that the aggregate has no function
	calls to handle transformations performed by the frontend.
	(Ultimate_Original_Expression): New subprogram.

From-SVN: r235321
2016-04-21 11:18:57 +02:00
Arnaud Charlet
a1ad79ed63 [multiple changes]
2016-04-21  Philippe Gil  <gil@adacore.com>

	* krunch.adb (Krunch): Fix krunching of i-java.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch8.adb (Evaluation_Required): Always return
	True when Modify_Tree_For_C.

From-SVN: r235320
2016-04-21 11:12:45 +02:00
Jan Hubicka
e6007a27bd ipa-inline.c (can_inline_edge_p): Pass caller info to ultiimate_alias_target.
* ipa-inline.c (can_inline_edge_p): Pass caller info to
	ultiimate_alias_target.
	(update_callee_keys): Likewise.
	(lookup_recursive_calls): Likewise.
	(speculation_useful_p): Likewise.

From-SVN: r235319
2016-04-21 09:08:08 +00:00
Jan Hubicka
a2b056a364 re PR c++/70018 (Possible issue around IPO and C++ comdats discovered as pure/const)
PR ipa/70018
	* cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
	(set_nothrow_flag_1): ... this; handle interposition correctly;
	recurse on aliases and thunks.
	(cgraph_node::set_nothrow_flag): New.
	* ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
	functions compiled with non-call exceptions that binds to current
	def.
	(propagate_nothrow): Be safe WRT interposition.
	* cgraph.h (set_nothrow_flag): Update prototype.

	* g++.dg/ipa/nothrow-1.C: New testcase.

From-SVN: r235318
2016-04-21 09:05:07 +00:00
Arnaud Charlet
9b7924dd17 [multiple changes]
2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatlink.adb (Gnatlink): Robustify detection of Windows target.
	* alloc.ads: Minor comment fixes.
	* einfo.ads: Fix typo.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous
	changes to handle all cases of components depending on the
	discriminant, not just string literals.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype
	declaration is the generated declaration for a generic actual,
	inherit predicates from the actual if it is a predicated subtype.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is
	inherited and its result is controlling,  introduce a conversion
	on the actual for the corresponding procedure call, to avoid
	spurious type errors.

2016-04-21  Jerome Lambourg  <lambourg@adacore.com>

	* krunch.adb (Krunch): Fix krunching of i-vxworks.

From-SVN: r235317
2016-04-21 10:57:30 +02:00
Arnaud Charlet
d74716b313 [multiple changes]
2016-04-21  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb: Minor reformatting and code cleanup.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Resolve_Name): Omit quantified expressions from
	resolution, because they introduce local names. Full resolution
	will take place when predicate function is constructed.

From-SVN: r235316
2016-04-21 10:54:25 +02:00
Jan Hubicka
f0305f3a5b tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also max_loop_iterations_int.
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
	max_loop_iterations_int.
	(tree_unswitch_outer_loop): Likewise.

From-SVN: r235315
2016-04-21 08:52:41 +00:00
Arnaud Charlet
0ef5cd0ad8 exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into account Per_Object_Constraint field rather...
2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous
	change to take into account Per_Object_Constraint field rather
	than special casing strings.
	* exp_ch6.adb: Fix typo in Replace_Returns.

From-SVN: r235314
2016-04-21 10:52:31 +02:00
Arnaud Charlet
2d6aa71558 [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch5.adb: Minor reformatting.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch2.adb (Expand_Current_Value): Make an appropriate
	character literal if the entity is of a character type.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Backend_Processing_Possible): Return False
	when generating C and aggregate contains function calls.

2016-04-21  Tristan Gingold  <gingold@adacore.com>

	* krunch.adb (Krunch): Only partially krunch children of
	Interfaces that aren't known.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Make_Inline): Handle properly the instantiation
	of a generic subpprogram that carries an Inline aspect. Place
	inline info on the anonymous subprogram that is constructed in
	the wrapper package.
	(Analyze_Pragma, case Pure): Do not check placement if pragma
	appears within an instantiation, which can be nested at any level.
	* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze
	node from anonymous subprogram to its visible renaming. The
	freeze node will be constructed if the subprogram carries
	delayed aspects.
	(Set_Global): Preserve dimension information if present (from
	code reading).

2016-04-21  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnatlink.adb: Change wording of the warning message on
	problematic filenames to be more neutral. Add a new substring
	"patch" introduced on Windows 10.

From-SVN: r235313
2016-04-21 10:50:36 +02:00
Arnaud Charlet
08f52d9f84 [multiple changes]
2016-04-21  Philippe Gil  <gil@adacore.com>

	* tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only)

2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string
	literals.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Has_Non_Null_Abstract_State): New routine.
	* einfo.ads New synthesized attribute
	Has_Non_Null_Abstract_State along with occurrences in entities.
	(Has_Non_Null_Abstract_State): New routine.
	* sem_ch7.adb (Unit_Requires_Body): Add local variable
	Requires_Body. A package declaring an abstract state requires
	a body only when the state is non-null and the package contains
	at least one other construct that requires completion in a body.
	* sem_util.adb (Mode_Is_Off): Removed.
	(Requires_State_Refinement): Remove an obsolete check. Code
	cleanup.

2016-04-21  Bob Duff  <duff@adacore.com>

	* sem_attr.adb (Analyze_Attribute): In processing
	the 'Old attribute, a warning is given for infinite recursion. Fix
	the code to not crash when the prefix of 'Old denotes a protected
	function.
	* sem_ch5.adb (Analyze_Iterator_Specification):
	Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases
	where the parameter would not be an object.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_eval.adb (Compile_Time_Compare): Be prepared for an empty
	Etype or Underlying_Type of the operands.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* atree.adb (Print_Statistics): Protect against overflows and
	print the memory consumption in bytes.
	* table.adb (Reallocate): Do the intermediate calculation of the new
	size using the Memory.size_t type.

From-SVN: r235312
2016-04-21 10:48:04 +02:00
Arnaud Charlet
b943a97113 [multiple changes]
2016-04-21  Gary Dismukes  <dismukes@adacore.com>

	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress
	expansion of Attribute_Machine and Attribute_Model for AAMP.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: Disable previous change for now.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): If prefix has an
	access type and designated type is a limited view, introduce
	an explicit dereference before continuing the analysis, and
	set its type to the non-limited view of the designated type,
	if we are in context where it is available.

From-SVN: r235311
2016-04-21 10:30:19 +02:00
Arnaud Charlet
b1d8d2290f Minor reformatting.
From-SVN: r235310
2016-04-21 10:27:18 +02:00
Ed Schonberg
78bc7fe67e freeze.adb: Freeze profile in ASIS mode.
2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb: Freeze profile in ASIS mode.

From-SVN: r235309
2016-04-21 10:26:57 +02:00
Arnaud Charlet
6dc87f5f53 [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant.
	* sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Minor comment update.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add
	boolean parameter to determine whether freezing an overloadable
	entity freezes its profile as well. This is required by
	AI05-019. The call to Freeze_Profile within Freeze_Entity is
	conditioned by the value of this flag, whose default is True.
	* sem_attr.adb (Resolve_Attribute, case 'Access): The attribute
	reference freezes the prefix, but it the prefix is a subprogram
	it does not freeze its profile.

From-SVN: r235308
2016-04-21 10:25:21 +02:00
Arnaud Charlet
a14bbbb4a4 [multiple changes]
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Build_Procedure_Form): No action needed for
	subprogram renamings since the backend can generate the call
	using the renamed subprogram. This leaves the tree more clean
	to the backend.
	* exp_ch6.adb (Expand_Call): Extend previous patch for
	rewritten-for-c entities to handle subprogram renamings.
	(Rewrite_Function_Call_For_C): Handle subprogram renamings.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: Code cleanup.

From-SVN: r235307
2016-04-21 10:23:05 +02:00
Ed Schonberg
17fd72cef4 sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C...
2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
	created for SPARK_To_C, the entity must remain invisible so it
	does not overload subsequent references to the original function.
	* exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns):
	Handle Extended_Return_Statements by replacing it with a block
	with assignments and a simple return statement.
	* exp_util.adb (Build_Procedure_Form): Make procedure entity
	invisible after analyzing declaration, to prevent improper
	overloading.

From-SVN: r235306
2016-04-21 10:21:47 +02:00
Javier Miranda
aeb98f1dcd sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C to the body since since the expander...
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
	attribute Rewritten_For_C to the body since since the expander
	may generate calls using that entity.
	* exp_ch6.adb (Expand_Call): For internally generated
	calls ensure that they reference the entity of the spec
	of the called function.
	(Rewritten_For_C_Func_Id): New subprogram.
	(Rewritten_For_C_Proc_Id): New subprogram.
	(Rewrite_Function_Call_For_C): Invoke the new subprogram to
	ensure that we skip freezing entities.
	* exp_util.adb (Build_Procedure_Form): No action needed if the
	procedure was already built.

From-SVN: r235305
2016-04-21 10:20:59 +02:00
Arnaud Charlet
2cc7967fbe [multiple changes]
2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor
	reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Denotes_Iterator): Use root type to determine
	whether the ultimate ancestor is the predefined iterator
	interface pakage.
	* exp_ch5.adb (Expand_Iterator_Over_Container): simplify code
	and avoid reuse of Pack local variable.

2016-04-21  Olivier Hainque  <hainque@adacore.com>

	* system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
	system-vxworks-ppc.ads, system-vxworks-m68k.ads,
	system-vxworks-mips.ads, system-vxworks-x86.ads: Define
	Executable_Extension to ".out".

From-SVN: r235304
2016-04-21 10:19:35 +02:00
Javier Miranda
29a56f611a frontend.adb: Update call to Unnest_Subprograms.
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* frontend.adb: Update call to Unnest_Subprograms.
	* exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb
	(Unnest_Subprograms): Moved to package exp_unst.
	* exp_unst.ads (Unnest_Subprogram): Moved to the body of the
	package.
	* exp_dbug.adb (Qualify_Entity_Name): Enable qualification of
	enumeration literals when generating C code.

From-SVN: r235303
2016-04-21 10:14:08 +02:00
Arnaud Charlet
e379beb56f [multiple changes]
2016-04-21  Javier Miranda  <miranda@adacore.com>

	* frontend.adb: Remove call to initialize Exp_Ch6.
	* exp_ch6.ads, exp_ch6.adb (Initialize): removed.
	(Unest_Entry/Unest_Bodies): Removed.
	(Unnest_Subprograms): Code cleanup.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

	* set_targ.adb (Read_Target_Dependent_Values):
	close target description file once its contents is read.
	* s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File
	and Stderr_File): Close local file descriptors before spawning
	child process.
	* exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of
	local variables to make the code easier to understand and avoid
	duplicated calls to Parent and Generic_Parent.

From-SVN: r235302
2016-04-21 10:11:46 +02:00
GCC Administrator
2e9bd65737 Daily bump.
From-SVN: r235301
2016-04-21 00:16:29 +00:00
Nathan Sidwell
ee392fc292 re PR c++/55635 (Deallocation function ("operator delete") not called when destructor throws exception)
cp/
	PR c++/55635
	* init.c (build_vec_delete_1): Protect operator delete call in try
	finally.
	(build_delete): Likewise.
	* optimize.c (build_delete_destructor_body): Likewise.

	testsuite/
	PR c++/55635
	* g++.dg/eh/delete1.C: New.

From-SVN: r235297
2016-04-20 19:59:56 +00:00
H.J. Lu
dda49daffd Add -mtune-ctrl=sse_typeless_stores to avx256-unaligned-store-2.c
Since avx256-unaligned-store-2.c scans typeless SSE stores, add
-mtune-ctrl=sse_typeless_stores to enable typeless SSE stores.

	* gcc.target/i386/avx256-unaligned-store-2.c: Add
	-mtune-ctrl=sse_typeless_stores.

From-SVN: r235296
2016-04-20 12:45:49 -07:00
H.J. Lu
8a5b9d5a99 Update load scan avx256-unaligned-load-1.c
Since avx_loadups256 and sse_loadups have been replaced by movv8sf_internal
and movv4sf_internal, respectively, we need to scan movv8sf_internal and
movv4sf_internal for load.

	* gcc.target/i386/avx256-unaligned-load-1.c: Update load scan.

From-SVN: r235295
2016-04-20 12:44:52 -07:00
Jonathan Wakely
a1e1ec7605 Fix std::codecvt_utf8* for big-endian targets
PR libstdc++/69703
	* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
	__codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.

From-SVN: r235293
2016-04-20 18:40:02 +01:00
Bin Cheng
1011119f47 re PR tree-optimization/69489 (missed vectorization for boolean loop, missed if-conversion)
PR tree-optimization/69489
	* tree-if-conv.c (phi_convertible_by_degenerating_args): New.
	(if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
	Revise dump message.
	(if_convertible_bb_p): Remove check on edge count of basic block's
	predecessors.

	gcc/testsuite/ChangeLog
	PR tree-optimization/69489
	* gcc.dg/tree-ssa/ifc-pr69489-2.c: New test.

From-SVN: r235292
2016-04-20 15:57:01 +00:00
Martin Galvan
4986f823a2 ieee754-df.S: Fix typos in comments.
2016-04-20  Martin Galvan  <martin.galvan@tallertechnologies.com>

	libgcc/
	* config/arm/ieee754-df.S: Fix typos in comments.

From-SVN: r235291
2016-04-20 11:49:13 -04:00
Ilya Verbin
477d4906b8 re PR c++/69363 (ICE when doing a pragma simd reduction with max)
Fix PR c++/69363

gcc/c-family/
	PR c++/69363
	* c-cilkplus.c (c_finish_cilk_clauses): Remove function.
	* c-common.h (c_finish_cilk_clauses): Remove declaration.
gcc/c/
	PR c++/69363
	* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* c-tree.h (c_finish_omp_clauses): Add new default argument.
	* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.
gcc/cp/
	PR c++/69363
	* cp-tree.h (finish_omp_clauses): Add new default argument.
	* parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
	instead of c_finish_cilk_clauses.
	* semantics.c (finish_omp_clauses): Add new argument.  Allow
	floating-point variables in the linear clause for Cilk Plus.
gcc/testsuite/
	PR c++/69363
	* c-c++-common/cilk-plus/PS/clauses3.c: Adjust dg-error string.
	* c-c++-common/cilk-plus/PS/clauses4.c: New test.
	* c-c++-common/cilk-plus/PS/pr69363.c: New test.

From-SVN: r235290
2016-04-20 15:48:53 +00:00
Bin Cheng
fad08d127f re PR tree-optimization/56625 (After if-conversion vectorizer doesn't recognize similar loads)
PR tree-optimization/56625
	PR tree-optimization/69489
	* tree-data-ref.h (DR_INNERMOST): New macro.
	* tree-if-conv.c (innermost_loop_behavior_hash): New class for
	hashing struct innermost_loop_behavior.
	(ref_DR_map): Remove.
	(innermost_DR_map): New map.
	(baseref_DR_map): Revise comment.
	(hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
	to innermost_DR_map accroding to its innermost loop behavior.
	(ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
	to its innermost loop behavior.
	(if_convertible_loop_p_1): Remove intialization for ref_DR_map.
	Add initialization for innermost_DR_map.  Record memory reference
	in DR_BASE_ADDRESS if the reference is compound one or it doesn't
	have innermost loop behavior.
	(if_convertible_loop_p): Remove release for ref_DR_map.  Release
	innermost_DR_map.

	gcc/testsuite/ChangeLog
	PR tree-optimization/56625
	PR tree-optimization/69489
	* gcc.dg/vect/pr56625.c: New test.
	* gcc.dg/tree-ssa/ifc-pr69489-1.c: New test.

From-SVN: r235289
2016-04-20 15:41:45 +00:00
Nathan Sidwell
323af7cfa7 semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a TARGET_EXPR.
* semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
	TARGET_EXPR.

From-SVN: r235288
2016-04-20 15:30:47 +00:00
H.J. Lu
9023fd9ea0 Don't build 32-bit libatomic with -march=i486 on x86-64
Gcc uses the same -march= for both -m32 and -m64 on x86-64 unless
--with-arch-32= is used.  There is no need for -march=i486 to compile
32-bit libatomic on x86-64.

	PR target/70454
	* configure.tgt (XCFLAGS): Don't add -march=i486 to compile
	32-bit x86 target library on x86-64.

From-SVN: r235287
2016-04-20 07:41:55 -07:00
Uros Bizjak
8f6a773bd8 i386.md (*lea<mode>_general_1): Rename from *lea_general_1.
* config/i386/i386.md (*lea<mode>_general_1): Rename from
	*lea_general_1.  Use explicit SWI12 mode interator.
	(*lea<mode>_general_2): Rename from *lea_general_2.
	Use explicit SWI12 mode interator.
	(*lea<mode>_general_3): Rename from *lea_general_3.
	Use explicit SWI12 mode interator.
	(*lea<SWI12:mode>_general_4): Split from *lea_general_4.
	Use explicit SWI12 mode interator.
	(*lea<SWI48:mode>_general_4): Split from *lea_general_4.
	Use explicit SWI48 mode interator.

From-SVN: r235286
2016-04-20 16:33:05 +02:00
H.J. Lu
7ccc95364c Simplify ix86_expand_vector_move_misalign
Since mov<mode>_internal patterns handle both aligned/unaligned load
and store, we can simplify ix86_avx256_split_vector_move_misalign and
ix86_expand_vector_move_misalign.

	* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
	Short-cut unaligned load and store cases.  Handle all integer
	vector modes.
	(ix86_expand_vector_move_misalign): Short-cut unaligned load
	and store cases.  Call ix86_avx256_split_vector_move_misalign
	directly without checking mode class.

From-SVN: r235283
2016-04-20 06:39:28 -07:00
Andrew Pinski
9e3e4fab84 [AArch64] Work around PR target/64971
2016-04-20  Andrew Pinski  <apinski@cavium.com>
            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/64971
	* config/aarch64/aarch64.md (sibcall): Force call
	address to be DImode for ILP32.
	(sibcall_value): Likewise.

	* gcc.c-torture/compile/pr37433-1.c: New testcase.


Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com>

From-SVN: r235281
2016-04-20 13:29:32 +00:00
H.J. Lu
ce6d77a40a Replace -skip-rax-setup with -mskip-rax-setup
* doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.

From-SVN: r235275
2016-04-20 05:55:36 -07:00
Richard Biener
545cd7ecc8 gimple-match.h (maybe_build_generic_op): Adjust prototype.
2016-04-20  Richard Biener  <rguenther@suse.de>

	* gimple-match.h (maybe_build_generic_op): Adjust prototype.
	* gimple-match-head.c (maybe_build_generic_op): Pass all ops
	by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
	(maybe_push_res_to_seq): Adjust.
	* gimple-fold.c (maybe_build_generic_op): Likewise.

From-SVN: r235274
2016-04-20 12:49:58 +00:00
Marek Polacek
dd39022b9e tree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true.
* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
	rather than true.

From-SVN: r235272
2016-04-20 12:37:38 +00:00
Arnaud Charlet
d7aa24e4bc * gnat.dg/self1.adb: Remove now incorrect test.
From-SVN: r235271
2016-04-20 14:28:48 +02:00
Ilya Enkovich
ab04f5cd79 sse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target.
gcc/

	* config/i386/sse.md (vec_unpacks_lo_hi): Always
	use kmovw to support AVX512F target.

From-SVN: r235270
2016-04-20 11:47:13 +00:00
Bin Cheng
e6d62b46c8 tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
* tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.

	* gcc.dg/tree-ssa/scev-11.c: New test.
	* gcc.dg/tree-ssa/scev-12.c: New test.

From-SVN: r235269
2016-04-20 11:42:36 +00:00
Arnaud Charlet
6905a0499b [multiple changes]
2016-04-20  Bob Duff  <duff@adacore.com>

	* s-os_lib.ads: Minor comment fix.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate
	a discriminant check for a type whose partial view has unknown
	discriminants when the full view has discriminants with defaults.

2016-04-20  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Remove_Side_Effects): When generating C code
	remove side effect of type conversion of access to unconstrained
	array type.
	(Side_Effect_Free): Return false for the type
	conversion of access to unconstrained array type when generating
	C code.
	* sem_res.adb (Resolved_Type_Conversion): Remove side effects
	of access to unconstrained array type conversion when generating
	C code.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Build_Predicate_Function_Declaration): New
	function, to construct the declaration of a predicate function
	at the end of the current declarative part rather than at the
	(possibly later) freeze point of the type. This also allows uses
	of a type with predicates in instantiations elsewhere.
	(Resolve_Aspect_Expression): New procedure to detect visiblity
	errors in aspect expressions, at the end of the declarative part
	that includes the type declaration.
	* sem_ch3.adb (Complete_Private_Subtype): Propagate properly the
	predicate function from private to full view.
	* einfo.adb (Predicate_Function): Refine search for predicate
	function when type has a full view and predicate function may
	be defined on either view.

2016-04-20  Javier Miranda  <miranda@adacore.com>

	* frontend.adb: Passing the root of the tree to
	Unnest_Subprograms().
	* exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that
	took care of adding subprograms to the Unest_Bodies table since
	performing such action too early disables the ability to process
	generic instantiations.
	(Unnest_Subprograms): Adding parameter.
	(Search_Unnesting_Subprograms): New subprogram.
	* exp_ch6.ads (Unnest_Subrograms): Update documentation.

From-SVN: r235268
2016-04-20 12:56:12 +02:00
Arnaud Charlet
268aeaa902 [multiple changes]
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_unst.adb (Check_Static_Type): For a private type, check
	full view.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Check_Type): Reject an attribute reference in
	an aspect expression, when the prefix of the reference is the
	current instance of the type to which the aspect applies.

From-SVN: r235267
2016-04-20 12:51:01 +02:00
Arnaud Charlet
51b42ffa5e [multiple changes]
2016-04-20  Bob Duff  <duff@adacore.com>

	* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about
	hiding unless we're actually hiding something. The previous
	code would (for example) warn about a "<" on a record type
	because it incorrectly thought it was hiding the "<" on Boolean
	in Standard. We need to check that the homonym S is in fact a
	homograph of a predefined operator.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here
	from exp_ch6.adb, for use in SPARK_To_C mode when creating the
	procedure equivalent to a function returning an array, when this
	construction is deferred to the freeze point of the function.
	* sem_util.adb (Is_Unchecked_Conversion_Instance): Include a
	function that renames an instance of Unchecked_Conversion.
	* freeze.adb (Freeze_Subprogram): Generate the proper procedure
	declaration for a function returning an array.
	* exp_ch6.adb (Build_Procedure_Form): Moved to exp_util.

From-SVN: r235266
2016-04-20 12:49:24 +02:00
Ed Schonberg
f73dc37f75 sem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time...
2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute):
	New predicate to determine that in a context with full run-time,
	a function call is an expansion of a reference to attribute
	Priority.
	* sem_ch5.adb (Analyze_Function_Call): use it.
	* exp_ch5.adb (Expand_N_Subprogram_Call): use it.

From-SVN: r235265
2016-04-20 12:46:57 +02:00
Arnaud Charlet
75a957f5db [multiple changes]
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Flag286 is now used as Is_Exception_Handler.
	(Is_Exception_Handler): New routine.
	(Set_Is_Exception_Handler): New routine.
	(Write_Entity_Flags): Output the status of Is_Exception_Handler.
	* einfo.ads New attribute Is_Exception_Handler along with
	occurrences in entities.
	(Is_Exception_Handler): New routine along with pragma Inline.
	(Set_Is_Exception_Handler): New routine along with pragma Inline.
	* exp_ch7.adb (Make_Transient_Block): Ignore blocks generated
	for exception handlers with a choice parameter.
	* sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope
	generated for a choice parameter as an exception handler.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Access_Type): Remove dead code.
	(Constrain_Discriminated_Type): In an instance, if the type has
	unknown discriminants, use its full view.
	(Process_Subtype): Check that the base type is private before
	adding subtype to Private_Dependents list.

2016-04-20  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb: Minor comment fix.

From-SVN: r235264
2016-04-20 12:45:55 +02:00
Yannick Moy
bc795e3e03 sem_ch4.adb: Fix typos in comments.
2016-04-20  Yannick Moy  <moy@adacore.com>

	* sem_ch4.adb: Fix typos in comments.
	* sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives.

From-SVN: r235263
2016-04-20 12:44:17 +02:00
Arnaud Charlet
d493941584 Minor reformatting.
From-SVN: r235262
2016-04-20 12:43:18 +02:00
Arnaud Charlet
0f8b3e5ddd [multiple changes]
2016-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Selected_Component): A reference to the
	current instance of a task type is legal if the prefix is an
	expression of that task type and the selector is an entry or
	entry family.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

	* a-cfdlli.ads (List): Type is no longer tagged, not needed. Move
	varsize field at the end for efficiency.

From-SVN: r235261
2016-04-20 12:43:03 +02:00