]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years ago PR tree-optimization/56625
amker [Wed, 20 Apr 2016 15:41:45 +0000 (15:41 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235289 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
nathan [Wed, 20 Apr 2016 15:30:47 +0000 (15:30 +0000)] 
* semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
TARGET_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235288 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDon't build 32-bit libatomic with -march=i486 on x86-64
hjl [Wed, 20 Apr 2016 14:41:55 +0000 (14:41 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235287 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.md (*lea<mode>_general_1): Rename from
uros [Wed, 20 Apr 2016 14:33:05 +0000 (14:33 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235286 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoSimplify ix86_expand_vector_move_misalign
hjl [Wed, 20 Apr 2016 13:39:28 +0000 (13:39 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235283 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Work around PR target/64971
ktkachov [Wed, 20 Apr 2016 13:29:32 +0000 (13:29 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235281 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoReplace -skip-rax-setup with -mskip-rax-setup
hjl [Wed, 20 Apr 2016 12:55:36 +0000 (12:55 +0000)] 
Replace -skip-rax-setup with -mskip-rax-setup

* doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235275 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Apr 2016 12:49:58 +0000 (12:49 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235274 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
mpolacek [Wed, 20 Apr 2016 12:37:38 +0000 (12:37 +0000)] 
* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
rather than true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235272 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gnat.dg/self1.adb: Remove now incorrect test.
charlet [Wed, 20 Apr 2016 12:28:48 +0000 (12:28 +0000)] 
* gnat.dg/self1.adb: Remove now incorrect test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235271 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
ienkovich [Wed, 20 Apr 2016 11:47:13 +0000 (11:47 +0000)] 
gcc/

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235270 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
amker [Wed, 20 Apr 2016 11:42:36 +0000 (11:42 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235269 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Bob Duff <duff@adacore.com>
charlet [Wed, 20 Apr 2016 10:56:12 +0000 (10:56 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235268 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:51:01 +0000 (10:51 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235267 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Bob Duff <duff@adacore.com>
charlet [Wed, 20 Apr 2016 10:49:24 +0000 (10:49 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235266 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 20 Apr 2016 10:46:57 +0000 (10:46 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235265 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:45:55 +0000 (10:45 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235264 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Yannick Moy <moy@adacore.com>
charlet [Wed, 20 Apr 2016 10:44:17 +0000 (10:44 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235263 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMinor reformatting.
charlet [Wed, 20 Apr 2016 10:43:18 +0000 (10:43 +0000)] 
Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235262 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 20 Apr 2016 10:43:03 +0000 (10:43 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235261 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Vincent Celier <celier@adacore.com>
charlet [Wed, 20 Apr 2016 10:40:48 +0000 (10:40 +0000)] 
2016-04-20  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: Do not invoke gprls when the invocation of "gnat
ls" includes the switch -V.
* clean.adb: "<target>-gnatclean -P" now calls "gprclean
--target=<target>"
* make.adb: "<target>-gnatmake -P" now calls "gprbuild
--target=<target>"

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

* sem_ch12.adb (Qualify_Type): Do not perform
partial qualification when the immediate scope is a generic unit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235260 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:38:24 +0000 (10:38 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_unst.adb: Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235259 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:36:01 +0000 (10:36 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Expand_Allocator_Expression): Ensure that the
tag assignment and adjustment preceed the accessibility check.
* exp_ch7.adb (Is_Subprogram_Call): Reimplemented.

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

* exp_prag.adb (Expand_Attributes): Ensure that
the temporary used to capture the value of attribute 'Old's
prefix is properly initialized.

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

* exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library
level.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235258 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 20 Apr 2016 10:31:59 +0000 (10:31 +0000)] 
2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning
in codepeer mode.

2016-04-20  Vincent Celier  <celier@adacore.com>

* make.adb: Code cleanup.

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

* exp_ch4.adb (Expand_Allocator_Expression): Help C code
generation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235257 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:29:26 +0000 (10:29 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Copy_Generic_Node): Handle the special
qualification installed for universal literals that act as
operands in binary or unary operators. (Qualify_Operand): Mark
the qualification to signal the instantiation mechanism how to
handle global reference propagation.
* sinfo.adb (Is_Qualified_Universal_Literal): New routine.
(Set_Is_Qualified_Universal_Literal): New routine.
* sinfo.ads New attribute Is_Qualified_Universal_Literal along
with occurrences in nodes.
(Is_Qualified_Universal_Literal):
New routine along with pragma Inline.
(Set_Is_Qualified_Universal_Literal): New routine along with
pragma Inline.

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

* sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length
so that the corresponding checks are preserved across compilations
that include System.Constants in their context.

2016-04-20  Gary Dismukes  <dismukes@adacore.com>

* sem_type.adb: Minor typo fix and reformatting.
* a-conhel.ads: Update comment.

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

* a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the
code so it doesn't trigger an "uninit var" warning.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235256 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:26:48 +0000 (10:26 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_attr.ads Add new table Universal_Type_Attribute.
* sem_util.adb (Yields_Universal_Type): Use a table lookup when
checking attributes.

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

* exp_aggr.adb (Init_Stored_Discriminants,
Init_Visible_Discriminants): New procedures, subsidiary of
Build_Record_Aggr_Code, to handle properly the construction
of aggregates for a derived type that constrains some parent
discriminants and renames others.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235255 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:19:57 +0000 (10:19 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Qualify_Universal_Operands): New routine.
(Save_References_In_Operator): Add explicit qualifications in
the generic template for all operands of universal type.
* sem_type.adb (Disambiguate): Update the call to Matches.
(Matches): Reimplemented.
* sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235254 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Ed Schonberg <schonberg@adacore.com>
charlet [Wed, 20 Apr 2016 10:10:32 +0000 (10:10 +0000)] 
2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Rep_Item_Too_Late): Better error message for
an illegal aspect that freezes the entity to which it applies.

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

* a-stwibo.ads, a-stzbou.ads
("="): Add overriding keyword before function to avoid crash when
compiler is called with -gnatyO (check overriding indicators).

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

* sem_prag.adb (Analyze_Pragma, case Check_Policy):  If this
is a configuration pragma and it uses the ARG syntax, insert
the rewritten pragma after the current one rather than using
Insert_Actions.

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

* exp_aggr.adb (Backend_Processing_Possible): Add handling of
C back-end.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235253 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 10:05:41 +0000 (10:05 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb,
s-imglli.adb: Minor reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235251 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/70725
mpolacek [Wed, 20 Apr 2016 09:32:45 +0000 (09:32 +0000)] 
PR tree-optimization/70725
* tree-if-conv.c (is_false_predicate): New function.
(predicate_mem_writes): Use it.

* gcc.dg/pr70725.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235250 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 09:22:59 +0000 (09:22 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the
renamed operator when the associated node appears within a
pre/postcondition.
* sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235249 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Yannick Moy <moy@adacore.com>
charlet [Wed, 20 Apr 2016 09:21:59 +0000 (09:21 +0000)] 
2016-04-20  Yannick Moy  <moy@adacore.com>

* osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix.
* einfo.adb (Set_Overridden_Operation): Add assertion.
* sem_util.adb (Unique_Entity): for renaming-as-body return the spec
entity.

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

* exp_unst.adb (Append_Unique_Call): New subprogram.
(Unnest_Subprogram): Replace the unique occurrence
of Call.Append() by Append_Unique_Call() which protects us from
adding to the Calls table duplicated entries.

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

* exp_attr.adb (Is_GCC_Target): Fix for C backend.
* xref_lib.ads (Dependencies_Tables): instantiate
Table package with types that guarantee its safe use.
* s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested
procedures.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235248 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 20 Apr 2016 09:18:59 +0000 (09:18 +0000)] 
2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]):
Disable expansion when generating C code.
* sinfo.ads, inline.ads: Minor editing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235247 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 09:17:15 +0000 (09:17 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor
reformatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235246 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Javier Miranda <miranda@adacore.com>
charlet [Wed, 20 Apr 2016 09:15:47 +0000 (09:15 +0000)] 
2016-04-20  Javier Miranda  <miranda@adacore.com>

* contracts.adb (Build_Postconditions_Procedure): Code cleanup.
* ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the
declaration of the internally built _postcondition procedure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235245 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Arnaud Charlet <charlet@adacore.com>
charlet [Wed, 20 Apr 2016 09:14:02 +0000 (09:14 +0000)] 
2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix
indentation.
* sem_util.adb (Is_Unchecked_Conversion_Instance):
defense against library-level renamings of other functions,
which are never instances of Unchecked_Conversion.
* einfo.ads: minor fix of casing in comment

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

* exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body
that has been analyzed and expanded already. Qualify the names
in the proper body for use in the generation of C code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235244 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Javier Miranda <miranda@adacore.com>
charlet [Wed, 20 Apr 2016 09:11:42 +0000 (09:11 +0000)] 
2016-04-20  Javier Miranda  <miranda@adacore.com>

* contracts.adb (Build_Postconditions_Procedure): Force its
inlining when generating C code.
* sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined
_postconditions when generating C code.
* exp_ch6.adb (Inlined_Subprogram): Inline calls to
_postconditions when generating C code.
* sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec):
types of return value and argument changed from Node_Id to
Entity_Id.

2016-04-20  Vincent Celier  <celier@adacore.com>

* make.adb, clean.adb, gnatname.adb: Revert previous change for now.

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

* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
the Has_Delayed_Freeze flag on the anonymous instance node.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235243 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Javier Miranda <miranda@adacore.com>
charlet [Wed, 20 Apr 2016 09:08:55 +0000 (09:08 +0000)] 
2016-04-20  Javier Miranda  <miranda@adacore.com>

* sem_ch5.adb (Analyze_Iterator_Specification): Remove transient
scope associated with the renaming object declaration.
* exp_util.adb (Insert_Actions): Remove handling of iterator
loop marked as requiring the secondary stack.

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

* sem_attr.adb (Analyze_Attribute, case 'Image): Implement
AI12-0124, which extends the functionality of the attribute so it
reflects the semantics of GNAT 'Img when applied to scalar types.
* lib-xref.adb: minor whitespace layout fix.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235242 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Vincent Celier <celier@adacore.com>
charlet [Wed, 20 Apr 2016 09:07:12 +0000 (09:07 +0000)] 
2016-04-20  Vincent Celier  <celier@adacore.com>

* clean.adb (Gnatclean): Fail if project file specified and
gprclean is not available.
* gnatname.adb: Fail is -P is used and gprname is not available.
* make.adb (Initialize): Fail if project file specified and
gprbuild is not available.

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

* sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary
stack when possible.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235241 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Gary Dismukes <dismukes@adacore.com>
charlet [Wed, 20 Apr 2016 09:04:48 +0000 (09:04 +0000)] 
2016-04-20  Gary Dismukes  <dismukes@adacore.com>

* par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and
reformatting.

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

* sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool):
If the pragma comes from an aspect specification, verify that
the aspect applies to an entity with a declarative part.
* exp_ch5.adb: Code cleanup.

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

* sem_res.adb (Resolve_If_Expression): If first expression is
universal, resolve subsequent ones with the corresponding class
type (Any_Integer or Any_Real).

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

* sem_ch5.adb (Analyze_Iterator_Specification): If expansion is
disabled, complete the analysis of the iterator name to ensure
that reference for entities within are properly generated.

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

* a-dispat.ads (Yield): add Global contract.
* a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time.
* a-taside.adb: Added Initializes => Tasking_State.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235240 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 09:00:58 +0000 (09:00 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Build_Invariant_Procedure):
Reimplement the invariant procedure spec and body insertion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235239 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Wed, 20 Apr 2016 08:59:02 +0000 (08:59 +0000)] 
2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Add_Invariant): Do not replace
the saved expression of an invariatn aspect when inheriting
a class-wide type invariant as this clobbers the existing
expression. Do not use New_Copy_List as it is unnecessary
and leaves the parent pointers referencing the wrong part of
the tree. Do not replace the type references for ASIS when
inheriting a class-wide type invariant as this clobbers the
existing replacement.

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

* sem_util.adb (Build_Explicit_Dereference): If the designated
expression is an entity name, generate reference to the entity
because it will not be resolved again.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235238 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-20 Richard Biener <rguenther@suse.de>
rguenth [Wed, 20 Apr 2016 07:20:16 +0000 (07:20 +0000)] 
2016-04-20  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70726
* tree-vect-stmts.c (vectorizable_shift): Do not use scalar
shift amounts from a pattern stmt operand.

* g++.dg/vect/pr70726.cc: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235236 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR70674: S/390: Add memory barrier to stack pointer restore from fpr.
krebbel [Wed, 20 Apr 2016 07:13:23 +0000 (07:13 +0000)] 
PR70674: S/390: Add memory barrier to stack pointer restore from fpr.

This patches fixes a problem with stack variable accesses being
scheduled after the stack pointer restore instructions.  In the
testcase this happened with the stack variable 'a' accessed through the
frame pointer.

The existing stack_tie we have in the backend is basically useless
when trying to block stack variable accesses from being scheduled
across an insn.  The alias set of stack variables and the frame alias
set usually differ and hence aren't in conflict with each other.  The
solution appears to be a magic MEM term with a scratch register which
is handled as a full memory barrier when analyzing scheduling
dependencies.

With the patch a (clobber (mem:BLK (scratch))) is being added to the
restore instruction in order to prevent any memory operations to be
scheduled across the insn.  The patch does that only for the one case
where the stack pointer is restored from an FPR.  Theoretically this
might happen also in the case where the stack pointer gets restored
using a load multiple.  However, triggering that problem with
load-multiple appears to be much harder since the load-multiple will
restore the frame pointer as well.  So in order to see the problem a
different call-clobbered register would need to be used as temporary
stack pointer.

Another case which needs to be handled some day is the stack pointer
allocation part.  It needs to be a memory barrier as well.

Bootstrapped and regression tested with --with-arch z196 and z13 on
s390 and s390x.

-Andreas-

gcc/ChangeLog:

2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/70674
* config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
stack_restore_from_fpr pattern when restoring r15.
(s390_optimize_prologue): Strip away the memory barrier in the
parallel when trying to get rid of restore insns.
* config/s390/s390.md ("stack_restore_from_fpr"): New insn
definition for loading the stack pointer from an FPR.  Compared to
the normal move insn this pattern includes a full memory barrier.

gcc/testsuite/ChangeLog:

2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/70674
* gcc.target/s390/pr70674.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235234 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR middle-end/70680
jakub [Wed, 20 Apr 2016 01:42:24 +0000 (01:42 +0000)] 
PR middle-end/70680
* gimplify.c (gimplify_omp_for): Call omp_notice_variable for
implicitly linear or lastprivate iterator on the outer context.

* testsuite/libgomp.c/pr70680-1.c: New test.
* testsuite/libgomp.c/pr70680-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235232 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAttach PR number to most recent entry.
bje [Wed, 20 Apr 2016 00:44:21 +0000 (00:44 +0000)] 
Attach PR number to most recent entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235231 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Wed, 20 Apr 2016 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235230 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove ssememalign
hjl [Tue, 19 Apr 2016 22:39:28 +0000 (22:39 +0000)] 
Remove ssememalign

From INSTRUCTION EXCEPTION SPECIFICATION section in Intel software
developer manual volume 2, only legacy SSE instructions with memory
operand not 16-byte aligned get General Protection fault.  There is
no need to check 1, 2, 4, 8 byte alignments.  Since x86 backend has
accurate constraints and predicates for 16-byte alignment, we can
remove alignment check in ix86_legitimate_combined_insn.

* config/i386/i386.c (ix86_legitimate_combined_insn): Remove
alignment check.
* config/i386/i386.md (ssememalign): Removed.
* config/i386/sse.md: Remove ssememalign attribute from patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235224 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * testsuite/lib/libjava.exp (libjava_arguments): Use 'file
bje [Tue, 19 Apr 2016 21:08:47 +0000 (21:08 +0000)] 
* testsuite/lib/libjava.exp (libjava_arguments): Use 'file
normalize' rather than the defunct DejaGnu 'absolute' proc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235222 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/66543 - -Wunused-but-set* false positives
jason [Tue, 19 Apr 2016 19:30:22 +0000 (19:30 +0000)] 
PR c++/66543 - -Wunused-but-set* false positives

* expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR.
* pt.c (make_pack_expansion): Call mark_exp_read.
* semantics.c (finish_id_expression): Call mark_type_use in
unevaluated context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235221 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Tue, 19 Apr 2016 19:24:28 +0000 (19:24 +0000)] 
2016-04-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/70684
* io/list_read (check_buffers): Add '\r' to check for end of line.
factor.

* gfortran.dg/list_read_14.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235220 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 2137 - copy-constructor rank in list-initialization
jason [Tue, 19 Apr 2016 18:50:08 +0000 (18:50 +0000)] 
DR 2137 - copy-constructor rank in list-initialization

* call.c (implicit_conversion): If we choose a copy constructor
for list-initialization from the same type, the conversion is an
exact match.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235219 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago Improve constexpr handling of other loop forms.
jason [Tue, 19 Apr 2016 18:50:01 +0000 (18:50 +0000)] 
Improve constexpr handling of other loop forms.

* constexpr.c (breaks): Handle EXIT_EXPR.
(cxx_eval_loop_expr): Handle COMPOUND_EXPR body.
(cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling
of COMPOUND_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235218 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/68206 - Fix constexpr diagnostics with loops.
jason [Tue, 19 Apr 2016 18:49:54 +0000 (18:49 +0000)] 
PR c++/68206 - Fix constexpr diagnostics with loops.

PR c++/68530
* constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR
and GOTO_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235217 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibstdc++/69703 ignore endianness in codecvt_utf8
redi [Tue, 19 Apr 2016 18:02:46 +0000 (18:02 +0000)] 
libstdc++/69703 ignore endianness in codecvt_utf8

PR libstdc++/69703
* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in)):
Override endianness bit in mode.
* testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
that little_endian mode is ignored.
* testsuite/experimental/filesystem/path/native/string.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235216 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibstdc++/70609 fix filesystem::copy()
redi [Tue, 19 Apr 2016 18:02:39 +0000 (18:02 +0000)] 
libstdc++/70609 fix filesystem::copy()

PR libstdc++/70609
* src/filesystem/ops.cc (close_fd): New function.
(do_copy_file): Set permissions before copying file contents. Check
result of closing file descriptors. Don't copy streambuf when file
is empty.
(copy(const path&, const path&, copy_options, error_code&)): Use
lstat for source file when copy_symlinks is set.
* testsuite/experimental/filesystem/operations/copy.cc: Test copy().

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235215 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd noexcept to Filesystem TS operators
redi [Tue, 19 Apr 2016 18:02:32 +0000 (18:02 +0000)] 
Add noexcept to Filesystem TS operators

* include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
operator~ operator&=, operator|=, operator^=): Add noexcept to
overloaded operators for copy_options, perms and directory_options.
* src/filesystem/ops.cc (make_file_type, make_file_status,
is_not_found_errno, file_time): Add noexcept.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235214 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago Tiny C++ cleanups.
jason [Tue, 19 Apr 2016 17:49:34 +0000 (17:49 +0000)] 
Tiny C++ cleanups.

* pt.c (tsubst_expr): Remove shadowing declaration.
(tsubst_pack_expansion): Add assert.
* semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235213 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAllocate memory on cache line if requested
hjl [Tue, 19 Apr 2016 17:01:11 +0000 (17:01 +0000)] 
Allocate memory on cache line if requested

Since GTM::gtm_thread has

gtm_thread *next_thread __attribute__((__aligned__(HW_CACHELINE_SIZE)));

GTM::gtm_thread::operator new () calls xmalloc with separate_cl == true.
xmalloc must return memory on cache line in this case.

PR libitm/70456
* util.cc (xmalloc): Use posix_memalign to allocate memory on
on cache line if requested.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235211 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
emsr [Tue, 19 Apr 2016 16:29:05 +0000 (16:29 +0000)] 
2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>

* include/bits/c++14_warning.h: Do not refer C++14 as experimental.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235210 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove UNSPEC_LOADU and UNSPEC_STOREU
hjl [Tue, 19 Apr 2016 14:33:36 +0000 (14:33 +0000)] 
Remove UNSPEC_LOADU and UNSPEC_STOREU

Since *mov<mode>_internal and <avx512>_(load|store)<mode>_mask patterns
can handle unaligned load and store, we can remove UNSPEC_LOADU and
UNSPEC_STOREU.  We use function prototypes with pointer to scalar for
unaligned load/store builtin functions so that memory passed to
*mov<mode>_internal is unaligned.

gcc/

PR target/69201
* config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
const short * to __builtin_ia32_loaddquhi512_mask.
(_mm512_maskz_loadu_epi16): Likewise.
(_mm512_mask_storeu_epi16): Pass short * to
__builtin_ia32_storedquhi512_mask.
(_mm512_mask_loadu_epi8): Pass const char * to
__builtin_ia32_loaddquqi512_mask.
(_mm512_maskz_loadu_epi8): Likewise.
(_mm512_mask_storeu_epi8): Pass char * to
__builtin_ia32_storedquqi512_mask.
* config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
const double * to __builtin_ia32_loadupd512_mask.
(_mm512_mask_loadu_pd): Likewise.
(_mm512_maskz_loadu_pd): Likewise.
(_mm512_storeu_pd): Pass double * to
__builtin_ia32_storeupd512_mask.
(_mm512_mask_storeu_pd): Likewise.
(_mm512_loadu_ps): Pass const float * to
__builtin_ia32_loadups512_mask.
(_mm512_mask_loadu_ps): Likewise.
(_mm512_maskz_loadu_ps): Likewise.
(_mm512_storeu_ps): Pass float * to
__builtin_ia32_storeups512_mask.
(_mm512_mask_storeu_ps): Likewise.
(_mm512_mask_loadu_epi64): Pass const long long * to
__builtin_ia32_loaddqudi512_mask.
(_mm512_maskz_loadu_epi64): Likewise.
(_mm512_mask_storeu_epi64): Pass long long *
to __builtin_ia32_storedqudi512_mask.
(_mm512_loadu_si512): Pass const int * to
__builtin_ia32_loaddqusi512_mask.
(_mm512_mask_loadu_epi32): Likewise.
(_mm512_maskz_loadu_epi32): Likewise.
(_mm512_storeu_si512): Pass int * to
__builtin_ia32_storedqusi512_mask.
(_mm512_mask_storeu_epi32): Likewise.
* config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
char * to __builtin_ia32_storedquqi256_mask.
(_mm_mask_storeu_epi8): Likewise.
(_mm256_mask_loadu_epi16): Pass const short * to
__builtin_ia32_loaddquhi256_mask.
(_mm256_maskz_loadu_epi16): Likewise.
(_mm_mask_loadu_epi16): Pass const short * to
__builtin_ia32_loaddquhi128_mask.
(_mm_maskz_loadu_epi16): Likewise.
(_mm256_mask_loadu_epi8): Pass const char * to
__builtin_ia32_loaddquqi256_mask.
(_mm256_maskz_loadu_epi8): Likewise.
(_mm_mask_loadu_epi8): Pass const char * to
__builtin_ia32_loaddquqi128_mask.
(_mm_maskz_loadu_epi8): Likewise.
(_mm256_mask_storeu_epi16): Pass short * to.
__builtin_ia32_storedquhi256_mask.
(_mm_mask_storeu_epi16): Pass short * to.
__builtin_ia32_storedquhi128_mask.
* config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
const double * to __builtin_ia32_loadupd256_mask.
(_mm256_maskz_loadu_pd): Likewise.
(_mm_mask_loadu_pd): Pass onst double * to
__builtin_ia32_loadupd128_mask.
(_mm_maskz_loadu_pd): Likewise.
(_mm256_mask_storeu_pd): Pass double * to
__builtin_ia32_storeupd256_mask.
(_mm_mask_storeu_pd): Pass double * to
__builtin_ia32_storeupd128_mask.
(_mm256_mask_loadu_ps): Pass const float * to
__builtin_ia32_loadups256_mask.
(_mm256_maskz_loadu_ps): Likewise.
(_mm_mask_loadu_ps): Pass const float * to
__builtin_ia32_loadups128_mask.
(_mm_maskz_loadu_ps): Likewise.
(_mm256_mask_storeu_ps): Pass float * to
__builtin_ia32_storeups256_mask.
(_mm_mask_storeu_ps): ass float * to
__builtin_ia32_storeups128_mask.
(_mm256_mask_loadu_epi64): Pass const long long * to
__builtin_ia32_loaddqudi256_mask.
(_mm256_maskz_loadu_epi64): Likewise.
(_mm_mask_loadu_epi64): Pass const long long * to
__builtin_ia32_loaddqudi128_mask.
(_mm_maskz_loadu_epi64): Likewise.
(_mm256_mask_storeu_epi64): Pass long long * to
__builtin_ia32_storedqudi256_mask.
(_mm_mask_storeu_epi64): Pass long long * to
__builtin_ia32_storedqudi128_mask.
(_mm256_mask_loadu_epi32): Pass const int * to
__builtin_ia32_loaddqusi256_mask.
(_mm256_maskz_loadu_epi32): Likewise.
(_mm_mask_loadu_epi32): Pass const int * to
__builtin_ia32_loaddqusi128_mask.
(_mm_maskz_loadu_epi32): Likewise.
(_mm256_mask_storeu_epi32): Pass int * to
__builtin_ia32_storedqusi256_mask.
(_mm_mask_storeu_epi32): Pass int * to
__builtin_ia32_storedqusi128_mask.
* config/i386/i386-builtin-types.def (PCSHORT): New.
(PINT64): Likewise.
(V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
(V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
(V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
(V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
(V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
(V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
(V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
(V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
(V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
(V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
(V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
(V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
(V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
(V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
(V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
(V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
(V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
(V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
(VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
(VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
(VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
(VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
(VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
(VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
(VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
(VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
(VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
(VOID_FTYPE_PINT_V16SI_UHI): Likewise.
(VOID_FTYPE_PINT_V8SI_UHI): Likewise.
(VOID_FTYPE_PINT_V4SI_UHI): Likewise.
(VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
(VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
(VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
(VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
(VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
(VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
(V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
(V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
(V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
(V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
(V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
(V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
(VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
(VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
(VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
(VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
(VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
(VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
* config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
use UNSPEC_STOREU.
(ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
(ix86_avx256_split_vector_move_misalign): Don't use unaligned
load nor store.
(ix86_expand_vector_move_misalign): Likewise.
(bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
to scalar function prototype for unaligned load/store builtins.
(ix86_expand_special_args_builtin): Updated.
* config/i386/sse.md (UNSPEC_LOADU): Removed.
(UNSPEC_STOREU): Likewise.
(VI_ULOADSTORE_BW_AVX512VL): Likewise.
(VI_ULOADSTORE_F_AVX512VL): Likewise.
(ssescalarsize): Handle V4TI, V2TI and V1TI.
(<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
(*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
(<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
(<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
(<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
(*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
(sse2_avx_avx512f>_storedqu<mode>): Likewise.
(<avx512>_storedqu<mode>_mask): Likewise.
(*sse4_2_pcmpestr_unaligned): Likewise.
(*sse4_2_pcmpistr_unaligned): Likewise.
(*mov<mode>_internal): Renamed to ...
(mov<mode>_internal): This.  Remove check of AVX and IAMCU on
misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
(movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
(movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.

gcc/testsuite/

PR target/69201
* gcc.target/i386/avx256-unaligned-store-1.c (a): Make it
extern to force it misaligned.
(b): Likewise.
(c): Likewise.
(d): Likewise.
Check vmovups.*movv8sf_internal/3 instead of avx_storeups256.
Don't check `*' before movv4sf_internal.
* gcc.target/i386/avx256-unaligned-store-2.c: Check
vmovups.*movv32qi_internal/3 instead of avx_storeups256.
Don't check `*' before movv16qi_internal.
* gcc.target/i386/avx256-unaligned-store-3.c (a): Make it
extern to force it misaligned.
(b): Likewise.
(c): Likewise.
(d): Likewise.
Check vmovups.*movv4df_internal/3 instead of avx_storeupd256.
Don't check `*' before movv2df_internal.
* gcc.target/i386/avx256-unaligned-store-4.c (a): Make it
extern to force it misaligned.
(b): Likewise.
(c): Likewise.
(d): Likewise.
Check movv8sf_internal instead of avx_storeups256.
Check movups.*movv4sf_internal/3 instead of avx_storeups256.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235209 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Richard Biener <rguenther@suse.de>
rguenth [Tue, 19 Apr 2016 14:03:59 +0000 (14:03 +0000)] 
2016-04-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70171
* tree-ssa-phiprop.c: Include stor-layout.h.
(phiprop_insert_phi): Handle the aggregate copy case.
(propagate_with_phi): Likewise.

* g++.dg/tree-ssa/pr70171.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235208 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
uros [Tue, 19 Apr 2016 14:01:21 +0000 (14:01 +0000)] 
* config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
instead of simplify_gen_subreg (... , 0).
(ix86_delegitimize_address): Ditto.
(ix86_split_divmod): Ditto.
(ix86_split_copysign_const): Ditto.
(ix86_split_copysign_var): Ditto.
(ix86_expand_args_builtin): Ditto.
(ix86_expand_round_builtin): Ditto.
(ix86_expand_special_args_builtin): Ditto.
* config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
(udivmodqi4): Ditto.
(absneg splitters): Ditto.
(*jcc_bt<mode>_1): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235207 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/70522
jason [Tue, 19 Apr 2016 13:40:03 +0000 (13:40 +0000)] 
PR c++/70522

* name-lookup.c (qualified_lookup_using_namespace): Look through
hidden names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235206 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
charlet [Tue, 19 Apr 2016 13:30:03 +0000 (13:30 +0000)] 
    * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        gnat_rm.texi: Update documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235205 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Olivier Hainque <hainque@adacore.com>
charlet [Tue, 19 Apr 2016 13:24:36 +0000 (13:24 +0000)] 
2016-04-19  Olivier Hainque  <hainque@adacore.com>

* par_sco.adb (Traverse_One, case N_Case_Statement):
Skip pragmas before the first alternative.
(Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise.

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

* adaint.c (__gnat_lwp_self): New function (for darwin).
* s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import
of __gnat_lwp_self.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235204 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Richard Biener <rguenther@suse.de>
rguenth [Tue, 19 Apr 2016 13:22:19 +0000 (13:22 +0000)] 
2016-04-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70724
* tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
restoring out from ...
(free_scc_vn): ... here.
* tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
* tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
tail merging.
(pass_fre::execute): Restore SSA info.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235203 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Olivier Hainque <hainque@adacore.com>
charlet [Tue, 19 Apr 2016 13:19:45 +0000 (13:19 +0000)] 
2016-04-19  Olivier Hainque  <hainque@adacore.com>

* sem_util.adb (Build_Elaboration_Entity): Always request an
elab counter when preserving control-flow.

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

* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set
Needs_Debug_Info when producing SCOs.
* par_sco.adb (Traverse_Aspects): Fix categorization of
Type_Invariant to match actual processing as activated depending
on pragma Assertion_Policy.
* sem_prag.adb (Analyze_Pragma): Remove special case for
Name_Invariant regarding SCO generation, which completely disabled
the production of SCOs for Invariant pragmas and aspects.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235202 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Tue, 19 Apr 2016 13:10:35 +0000 (13:10 +0000)] 
2016-04-19  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor
reformatting.

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

* freeze.adb (Freeze_Profile): Refine predicate that checks
whether a function that returns a limited view is declared in
another unit and cannot be frozen at this point.

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

* exp_aggr.adb (Component_Count): Handle properly superflat
arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the
return value of the function is Natural, rather than leaving
the handling of such arrays to the caller of this function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235200 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 19 Apr 2016 13:09:07 +0000 (13:09 +0000)] 
2016-04-19  Arnaud Charlet  <charlet@adacore.com>

* sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb
sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup.
* sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context):
Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name
to publicly visible routine in Sem_Util.

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

* checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply
the check if the type of the actual is By_Reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235199 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 19 Apr 2016 13:06:01 +0000 (13:06 +0000)] 
2016-04-19  Arnaud Charlet  <charlet@adacore.com>

* sem_res.adb (Within_Subprogram_Call): Detect
also nodes that appear in entry calls.
(Resolve_Actuals, Insert_Default): Propagate
dimension information if any, from default expression to the
copy that appears in the list of actuals.
* uintp.ads: minor whitespace fix in comment.
* sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb:
Minor code cleanup.
* set_targ.adb (Set_Targ): convert directly from
Natural to Pos, without intermediate conversion to Int.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235197 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 19 Apr 2016 13:03:49 +0000 (13:03 +0000)] 
2016-04-19  Arnaud Charlet  <charlet@adacore.com>

* sem_ch6.adb (Process_Formals): Mark suspicious reference to
SPARK RM in comment.
* sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM
in comment.
* sem_res.adb (Property_Error, Resolve_Actuals): Fix reference
to SPARK RM in both comment and error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235196 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Eric Botcazou <ebotcazou@adacore.com>
charlet [Tue, 19 Apr 2016 13:02:27 +0000 (13:02 +0000)] 
2016-04-19  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch6.adb (Possible_Freeze): If the type is an incomplete
CW type, then the subprogram must have a delayed freeze. This
ensures that the backend can properly recover the full view when
elaborating the access subprogram declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235195 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Ed Schonberg <schonberg@adacore.com>
charlet [Tue, 19 Apr 2016 12:59:27 +0000 (12:59 +0000)] 
2016-04-19  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Resolve_Attribute, case 'Access): Freeze
overloadable entity if originally overloaded.

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

* exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb,
exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb,
sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb
sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code
clean up.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235194 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Arnaud Charlet <charlet@adacore.com>
charlet [Tue, 19 Apr 2016 12:24:29 +0000 (12:24 +0000)] 
2016-04-19  Arnaud Charlet  <charlet@adacore.com>

* sem_util.adb (Copy_Node_With_Replacement):
use Set_Comes_From_Source instead of directly manipulating
internals of the node table.
* sem_util.adb (Within_Scope): refactored to remove duplicated code.
* sem_aux.adb (Get_Rep_Pragma,
Subprogram_Body_Entity, Subprogram_Spec): declare variables that
do not change as constants and initialize them in the declaration.
(Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare
variables that do not change as constants and initialize them
in the declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235193 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Ed Schonberg <schonberg@adacore.com>
charlet [Tue, 19 Apr 2016 12:22:12 +0000 (12:22 +0000)] 
2016-04-19  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Entry_Call): If the entry has
preconditions it is rewritten by means of a wrapper that
incorporates the original call. Before rewriting generate a
reference to the entry being called to prevent spurious warnings
and provide correct cross-reference information.

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

* sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add
local constant Scop. Ignore any internally generated loops when
performing the check concerning an abstract subprogram call
without a controlling argument.
* sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235192 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Bob Duff <duff@adacore.com>
charlet [Tue, 19 Apr 2016 12:18:59 +0000 (12:18 +0000)] 
2016-04-19  Bob Duff  <duff@adacore.com>

* sem_elab.adb (Check_A_Call): There are cases where we have No
(Ent) after the Alias loop, even when there was no previous error,
so we can't assert that there was an error.

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

* sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference):
Reject use of type name as a prefix to 'access within an aggregate
in a context that is not the declarative region of a type.

2016-04-19  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind
-P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild
-l" Fail if the invocation is "gnat find -P" or "gnat xref -P"
Remove anything related to project files
* g-mbdira.adb: minor whitespace cleanup
* g-spipat.adb: minor removal of extra spaces after closing paren

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

* exp_ch6.adb (Expand_Actuals):  If post-statements are present
and the enclosing context is a function call or indexing, build
an Expression_With_Actions for the call.

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

* lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate
a with line for an ignored Ghost unit.
* sem_ch7.adb (Analyze_Package_Declaration): Add local constant
Par. A child package is Ghost when its parent is Ghost.
* sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to
a subprogram declaration that acts as a compilation unit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235191 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-19 Richard Biener <rguenther@suse.de>
rguenth [Tue, 19 Apr 2016 12:13:04 +0000 (12:13 +0000)] 
2016-04-19  Richard Biener  <rguenther@suse.de>

* gimple-walk.h (struct walk_stmt_info): Add stmt member.
* gimple-walk.c (walk_gimple_op): Initialize it.
(walk_gimple_asm): Set wi->is_lhs before each callback invocation.
* tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
remapping SSA names of defs.
(copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
adjustment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235190 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Tue, 19 Apr 2016 02:49:54 +0000 (02:49 +0000)] 
2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/70689
* lra-constraints.c (equiv_substition_p): New.
(process_alt_operands): Use it.
(swap_operands): Swap it.
(curr_insn_transform): Update it.

2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/70689
* testsuite/gcc.target/i386/pr70689.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235184 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Tue, 19 Apr 2016 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235182 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
matz [Mon, 18 Apr 2016 20:36:27 +0000 (20:36 +0000)] 
* tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
(SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
* tree-core.h (tree_type_common.align): Use bit-field.
(tree_type_common.spare): New.
(tree_decl_common.off_align): Make smaller.
(tree_decl_common.align): Use bit-field.

* expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
* omp-low.c (install_var_field): Use SET_DECL_ALIGN.
(scan_sharing_clauses): Ditto.
(finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
(omp_finish_file): Ditto.
* stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
(layout_decl): Ditto.
(relayout_decl): Ditto.
(finalize_record_size): Use SET_TYPE_ALIGN.
(finalize_type_size): Ditto.
(finish_builtin_struct): Ditto.
(layout_type): Ditto.
(initialize_sizetypes): Ditto.
* targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
* tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
(lookup_field_for_decl): Use SET_DECL_ALIGN.
(get_chain_field): Ditto.
(get_trampoline_type): Ditto.
(get_nl_goto_field): Ditto.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
SET_DECL_ALIGN.
(unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
* gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
* tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
(build_qualified_type): Use SET_TYPE_ALIGN.
(build_aligned_type, build_range_type_1): Ditto.
(build_atomic_base): Ditto.
(build_common_tree_nodes): Ditto.
* cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
(expand_one_stack_var_at): Ditto.
* coverage.c (build_var): Use SET_DECL_ALIGN.
* except.c (init_eh): Ditto.
* function.c (assign_parm_setup_block): Ditto.
* symtab.c (increase_alignment_1): Ditto.
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
* tree-vect-stmts.c (ensure_base_align): Ditto.
* varasm.c (align_variable): Ditto.
(assemble_variable): Ditto.
(build_constant_desc): Ditto.
(output_constant_def_contents): Ditto.

* config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
* config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
* config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
* config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
* config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.

ada/
* gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN.
(gnat_to_gnu_field): Ditto.
(components_to_record): Ditto.
(create_variant_part_from): Ditto.
(copy_and_substitute_in_size): Ditto.
(substitute_in_type): Ditto.
* gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN.
(make_packable_type): Ditto.
(maybe_pad_type): Ditto.
(finish_fat_pointer_type): Ditto.
(finish_record_type): Ditto and use SET_DECL_ALIGN.
(rest_of_record_type_compilation): Use SET_TYPE_ALIGN.
(create_field_decl): Use SET_DECL_ALIGN.

c-family/
* c-common.c (handle_aligned_attribute): Use SET_TYPE_ALIGN
and SET_DECL_ALIGN.

c/
* c-decl.c (merge_decls): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
(grokdeclarator, parser_xref_tag, finish_enum): Use SET_TYPE_ALIGN.

cp/
* class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
(layout_class_type): Ditto.
(build_base_field): Use SET_DECL_ALIGN.
(fixup_attribute_variants): Use SET_TYPE_ALIGN.
* decl.c (duplicate_decls): Use SET_DECL_ALIGN.
(record_unknown_type): Use SET_TYPE_ALIGN.
(cxx_init_decl_processing): Ditto.
(copy_type_enum): Ditto.
(grokfndecl): Use SET_DECL_ALIGN.
(copy_type_enum): Use SET_TYPE_ALIGN.
* pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
(tsubst): Ditto.
* tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
* lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
* method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
* rtti.c (emit_tinfo_decl): Ditto.

fortran/
* trans-io.c (gfc_build_io_library_fndecls): Use SET_TYPE_ALIGN.
* trans-common.c (build_common_decl): Use SET_DECL_ALIGN.
* trans-types.c (gfc_add_field_to_struct): Use SET_DECL_ALIGN.

go/
* go-gcc.cc (Gcc_backend::implicit_variable): Use SET_DECL_ALIGN.

java/
* class.c (add_method_1): Use SET_DECL_ALIGN.
(make_class_data): Ditto.
(emit_register_classes_in_jcr_section): Ditto.
* typeck.c (build_java_array_type): Ditto.

objc/
* objc-act.c (objc_build_struct): Use SET_DECL_ALIGN.

libcc1/
* plugin.cc (plugin_finish_record_or_union): Use SET_TYPE_ALIGN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235172 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoOptimize load double into xmm with zero_extend
hjl [Mon, 18 Apr 2016 19:40:30 +0000 (19:40 +0000)] 
Optimize load double into xmm with zero_extend

"movq" should used to load double into xmm register with zero_extend:

(set (reg:V2DF 90)
     (vec_concat:V2DF (reg/v:DF 88 [ d ])
                      (const_double:DF 0.0 [0x0.0p+0])))

Unlike "movsd", which only works with load from memory, "movq" works
with both memory and xmm register.

gcc/

PR target/70708
* config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
replace %vmovsd with "%vmovq".
(vec_concatv2df): Likewise.

gcc/testsuite/

PR target/70708
* gcc.target/i386/pr70708.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235169 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/70690
jason [Mon, 18 Apr 2016 19:00:00 +0000 (19:00 +0000)] 
PR c++/70690

PR c++/70528
* class.c (type_maybe_constexpr_default_constructor): New.
(type_has_constexpr_default_constructor): Revert.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235165 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
uros [Mon, 18 Apr 2016 18:52:47 +0000 (18:52 +0000)] 
* config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
(*vec_extractv2si_0): Ditto.
* config/i386/sse.md (*vec_extractv4sf_0): Ditto.
(zero_extended_scalar_load_operand splitters): Ditto.
(vec_extract splitters): Ditto.
(*vec_extractv4si_0_zext): Ditto.
(avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
and lowpart_subreg.
(avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
(avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
(*sse4_1_extractps): Use lowpart_subreg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235164 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoUpdate install.texi for GCC 6 on Solaris
ro [Mon, 18 Apr 2016 18:39:03 +0000 (18:39 +0000)] 
Update install.texi for GCC 6 on Solaris

* doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
gld requirements.
(Specific, *-*-solaris2*): Update Solaris 11 bundled gcc
versions.
Mention Solaris 11 packaging changes.
Update gas and gld requirements.
Remove reference to pre-Solaris 10 bug.
(Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
systems and bugs.
(Specific, sparc64-*-solaris2*): Remove reference to bootstrap
with cc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235162 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR libstdc++/41759 reword static assertions in <random>
redi [Mon, 18 Apr 2016 18:03:50 +0000 (18:03 +0000)] 
PR libstdc++/41759 reword static assertions in <random>

PR libstdc++/41759
* include/bits/random.h: Reword static assertion messages to state
positive conditions.
* include/bits/random.tcc: Likewise.
* include/bits/uniform_int_dist.h: Likewise.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
patterns.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235160 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
hubicka [Mon, 18 Apr 2016 17:16:27 +0000 (17:16 +0000)] 
* tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
max_loop_iterations_int.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235158 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove unused typedefs in std::bind types
redi [Mon, 18 Apr 2016 16:37:56 +0000 (16:37 +0000)] 
Remove unused typedefs in std::bind types

* include/std/function (_Bind, _Bind_result): Remove unused typedefs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235157 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/cpu/sh/atomicity.h: Fix typo in comment.
redi [Mon, 18 Apr 2016 16:19:25 +0000 (16:19 +0000)] 
* config/cpu/sh/atomicity.h: Fix typo in comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235156 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDefine std::thread::id comparison operators at namespace-scope
redi [Mon, 18 Apr 2016 16:16:14 +0000 (16:16 +0000)] 
Define std::thread::id comparison operators at namespace-scope

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235155 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMake use of extensions more explicit in libstdc++ tests
redi [Mon, 18 Apr 2016 15:44:25 +0000 (15:44 +0000)] 
Make use of extensions more explicit in libstdc++ tests

* testsuite/18_support/bad_exception/23591_thread-1.c: Add
-Wno-pedantic to dg-options.
* testsuite/20_util/align/2.cc: Use type as operand of alignof.
* testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
to dg-options.
* testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
Remove extra semi-colon.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Always supply second argument to static_assert.
* testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
semi-colon.
* testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
dg-options.
* testsuite/26_numerics/complex/literals/values.cc: Likewise.
* testsuite/29_atomics/atomic/60695.cc: Likewise.
* testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
alignof when operand is an object not a type.
* testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
* testsuite/decimal/make-decimal.cc: Likewise.
* testsuite/experimental/type_traits/value.cc: Always supply second
argument to static_assert.
* testsuite/util/testsuite_common_types.h: Use __extension__ for
__int128 types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235154 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDon't include internal header in libstdc++ tests
redi [Mon, 18 Apr 2016 15:44:16 +0000 (15:44 +0000)] 
Don't include internal header in libstdc++ tests

* testsuite/experimental/type_erased_allocator/1.cc: Don't include
internal header.
* testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
* testsuite/experimental/type_erased_allocator/2.cc: Likewise.
* testsuite/experimental/type_erased_allocator/uses_allocator.cc:
Likewise. Add licence and change to compile-only test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235153 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd attribute((unused)) in libstdc++ headers
redi [Mon, 18 Apr 2016 15:44:12 +0000 (15:44 +0000)] 
Add attribute((unused)) in libstdc++ headers

* include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
unused parameter.
* include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235152 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAvoid -Wsign-compare warnings in std::to_string()
redi [Mon, 18 Apr 2016 15:43:50 +0000 (15:43 +0000)] 
Avoid -Wsign-compare warnings in std::to_string()

* include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
        warnings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235151 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Richard Biener <rguenther@suse.de>
rguenth [Mon, 18 Apr 2016 13:09:53 +0000 (13:09 +0000)] 
2016-04-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/43434
* tree-ssa-structalias.c (struct vls_data): New.
(visit_loadstore): Handle all pointer-based accesses.
(compute_dependence_clique): Compute a bitmap of restrict tags
assigned bases and pass it to visit_loadstore.

* gcc.dg/vect/pr43434.c: New testcase.
* c-c++-common/goacc/kernels-alias-3.c: Adjust.
* c-c++-common/goacc/kernels-alias-4.c: Likewise.
* c-c++-common/goacc/kernels-alias-5.c: Likewise.
* c-c++-common/goacc/kernels-alias-6.c: Likewise.
* c-c++-common/goacc/kernels-alias-7.c: Likewise.
* c-c++-common/goacc/kernels-alias-8.c: Likewise.
* gcc.dg/gomp/pr68640.c: Likewise.
* gfortran.dg/goacc/kernels-alias-3.f95: Likewise.
* gfortran.dg/goacc/kernels-alias-4.f95: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235147 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 18 Apr 2016 12:58:22 +0000 (12:58 +0000)] 
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

* einfo.adb (Overridden_Operation): assert that
function is called for valid arguments.
* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb,
s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads,
sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb,
sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb,
s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb:
No space after closing parenthesis except where required for
layout.
* sem_res.adb: Minor reformatting.

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

* exp_ch4.adb (Expand_N_Case_Expression): Convert into a case
statement when relevant.

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

* a-cuprqu.adb (Enqueue): Properly handle the
case where the new element has a unique priority.

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

* adaint.h: Define stat structures and functions for iOS
simulator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235146 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 18 Apr 2016 12:53:35 +0000 (12:53 +0000)] 
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

* sem_res.adb (Resolve_Entry_Call): reset
Is_Overloaded flag after resolving calls to overloaded protected
operations.
* exp_spark.adb (Expand_SPARK): call
Qualify_Entity_Names for tasking nodes, i.e. protected types,
task types and entries.
* exp_ch4.adb (Expand_N_If_Expression): Refine previous change
in case of an unconstrained type.

2016-04-18  Yannick Moy  <moy@adacore.com>

* sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add
comment to document usage of subprogram in GNATprove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235145 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Ed Schonberg <schonberg@adacore.com>
charlet [Mon, 18 Apr 2016 12:48:42 +0000 (12:48 +0000)] 
2016-04-18  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error
message for wrong placement of aspect Test_Case.

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

* einfo.ads: Update the documentation of attribute Renamed_Object.
* exp_spark.adb (Expand_Potential_Renaming): Reimplemented.

2016-04-18  Gary Dismukes  <dismukes@adacore.com>

* exp_ch4.adb (Optimize_Length_Comparison): Return immediately
in the case of AAMP (same as for use of the -gnatd.P switch) to
suppress this optimization, which avoids creating a dependence
on the 64-bit arithmetic package.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235144 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMinor editing.
charlet [Mon, 18 Apr 2016 12:47:22 +0000 (12:47 +0000)] 
Minor editing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235143 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-04-18 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 18 Apr 2016 12:47:02 +0000 (12:47 +0000)] 
2016-04-18  Arnaud Charlet  <charlet@adacore.com>

* exp_ch4.adb: Update comment.

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

* exp_ch6.adb (Expand_Call): Make sure instantiations are
registered only once as pending here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235142 138bc75d-0d04-0410-961f-82ee72b054a4