]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years agoMove "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd
glisse [Mon, 2 May 2016 14:09:07 +0000 (14:09 +0000)] 
Move "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd

2016-05-02  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* flag-types.h (enum warn_strict_overflow_code): Move ...
* coretypes.h: ... here.
* fold-const.h (fold_overflow_warning): Declare.
* fold-const.c (fold_overflow_warning): Make non-static.
(fold_comparison): Move the transformation of X +- C1 CMP C2
into X CMP C2 -+ C1 ...
* match.pd: ... here.
* gimple-fold.c (fold_stmt_1): Protect with
fold_defer_overflow_warnings.

gcc/testsuite/
* gcc.dg/tree-ssa/20040305-1.c: Adjust.

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

9 years ago gcc/
nathan [Mon, 2 May 2016 13:16:22 +0000 (13:16 +0000)] 
gcc/
* omp-low.c (struct oacc_loop): Add 'inner' field.
(new_oacc_loop_raw): Initialize it to zero.
(oacc_loop_fixed_partitions): Initialize it.
(oacc_loop_auto_partitions): Partition outermost loop to outermost
available partitioning.

gcc/testsuite/
* c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
expected partitioning.

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

9 years agoFix make install-gcc-specs with empty GCC_SPEC_FILES
ro [Mon, 2 May 2016 13:08:59 +0000 (13:08 +0000)] 
Fix make install-gcc-specs with empty GCC_SPEC_FILES

* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
Honor DESTDIR.

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

9 years ago PR c/70851
mpolacek [Mon, 2 May 2016 11:35:59 +0000 (11:35 +0000)] 
PR c/70851
* c-decl.c (grokdeclarator): Diagnose when array's size has an
incomplete type.

* gcc.dg/enum-incomplete-3.c: New test.

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

9 years ago[ARC] Various instruction pattern fixes
claziss [Mon, 2 May 2016 11:26:57 +0000 (11:26 +0000)] 
[ARC] Various instruction pattern fixes

gcc/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
register_operand.
(umulsidi3): Likewise.
(indirect_jump): Fix jump instruction assembly patterns.

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

9 years ago[PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value
tschwinge [Mon, 2 May 2016 11:25:17 +0000 (11:25 +0000)] 
[PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value

gcc/
PR target/70860
* config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
(nvptx_function_value): Assert non-NULL cfun.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 10:37:34 +0000 (10:37 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Tristan Gingold <gingold@adacore.com>
charlet [Mon, 2 May 2016 10:36:45 +0000 (10:36 +0000)] 
2016-05-02  Tristan Gingold  <gingold@adacore.com>

* fname.adb (Is_Predefined_File_Name): Also consider non-krunched
i-* names.

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

* sem_util.adb (Aggregate_Constraint_Checks): Separate
accessibility checks and non-null checks for aggregate components,
to prevent spurious accessibility errors.

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

* sem_ch3.adb (OK_For_Limited_Init): A type conversion is not
always legal in the in-place initialization of a limited entity
(e.g. an allocator).
* sem_res.adb (Resolve_Allocator): Improve error message with RM
reference  when allocator expression is illegal.

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

9 years ago2016-05-02 Ed Schonberg <schonberg@adacore.com>
charlet [Mon, 2 May 2016 10:34:16 +0000 (10:34 +0000)] 
2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Call): When inlining a call to a function
declared in a package instance, locate the instance node of the
package after the actual package declaration. skipping over
pragmas that may have been introduced when the generic unit
carries aspects that are transformed into pragmas.

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

* s-memory.adb (Alloc, Realloc): Move checks
for Size = 0 or size_t'Last into the Result = System.Null_Address
path for efficiency. Improve comments (based on actual C language
requirements for malloc).
* exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the
case where we are using the default Global_Pool_Object, and we
don't need the heavy finalization machinery.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 10:31:39 +0000 (10:31 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Gary Dismukes <dismukes@adacore.com>
charlet [Mon, 2 May 2016 10:31:25 +0000 (10:31 +0000)] 
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_util.ads, sem_ch12.adb: Minor reformatting.

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

9 years ago2016-05-02 Javier Miranda <miranda@adacore.com>
charlet [Mon, 2 May 2016 10:30:23 +0000 (10:30 +0000)] 
2016-05-02  Javier Miranda  <miranda@adacore.com>

* exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal.
(Remove_Side_Effects): Adding a new formal.
* exp_ch6.adb (Expand_Simple_Function_Return): Generating the
call to the _Postconditions procedure ensure that side-effects
are unconditionally removed.

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

* sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch):
Use original node to determine whether the declaration is for
a formal type declaration, to take into account that formwl
private types are rewritten as private extension declarations
to simplify semantic analysis.

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

9 years ago2016-05-02 Gary Dismukes <dismukes@adacore.com>
charlet [Mon, 2 May 2016 10:29:12 +0000 (10:29 +0000)] 
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo
fixes.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 10:27:18 +0000 (10:27 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor
reformatting.

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

* exp_ch4.adb (Expand_N_Allocator): If the designated type
is a private derived type with no discriminants, examine its
underlying_full_view to determine whether the full view has
defaulted discriminants, so their defaults can be used in the
call to the initialization procedure for the designated object.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 10:18:12 +0000 (10:18 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_prag.adb, comperr.adb: Minor reformatting.

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

* exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an
unchecked conversion if the source size is 0 (indicating that
its RM size is unknown). This will happen with packed arrays of
non-discrete types, in which case the component type is known
to match.

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

* debug.adb: Reserve -gnatd.V.

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

* sem_ch3.adb (Process_Full_View): Remove from visibility
wrappers of synchronized types to avoid spurious errors with
their wrapped entity.
* exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper
if no interface primitive is covered by the subprogram and this is
not a primitive declared between two views; see Process_Full_View.
(Build_Protected_Sub_Specification): Link the dispatching
subprogram with its original non-dispatching protected subprogram
since their names differ.
(Expand_N_Protected_Type_Declaration):
If a protected subprogram overrides an interface primitive then
do not build a wrapper if it was already built.
* einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute.
* sem_ch4.adb (Names_Match): New subprogram.
* sem_ch6.adb (Check_Synchronized_Overriding): Moved
to library level and defined in the public part of the
package to invoke it from Exp_Ch9.Build_Wrapper_Spec
(Has_Matching_Entry_Or_Subprogram): New subprogram.
(Report_Conflict): New subprogram.

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

9 years ago2016-05-02 Jerome Lambourg <lambourg@adacore.com>
charlet [Mon, 2 May 2016 10:14:23 +0000 (10:14 +0000)] 
2016-05-02  Jerome Lambourg  <lambourg@adacore.com>

* s-unstyp.ads: Code cleanups.

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

* sem_ch13.adb (Size_Too_Small_Error): Fix the error message format.

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

* exp_prag.adb (Expand_attributes_In_Consequence,
Expand_Attributes): If the prefix of'Old is an unconstrained type,
for example an unconstrained formal of the enclosing subprogram,
create an object declaration with an expression to obtain the
actual subtype of the temporary.

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

* comperr.adb (Delete_SCIL_Files): Add missing handling of
N_Subprogram_Declaration.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 10:10:21 +0000 (10:10 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Gary Dismukes <dismukes@adacore.com>
charlet [Mon, 2 May 2016 10:10:01 +0000 (10:10 +0000)] 
2016-05-02  Gary Dismukes  <dismukes@adacore.com>

* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
fixes.
* sem_prag.adb, sem_ch12.adb: Minor typo fixes.

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

* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
function call may be wrapped in an explicit type conversion.

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

* interfac.ads: use pragma No_Elaboration_Code_All.
* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.

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

* sem.adb (Analyze: If node is an error node previously created
by the parser, disable expansion to prevent subsequent glitches
in error recovery.

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

9 years ago PR rtl-optimization/70886
ebotcazou [Mon, 2 May 2016 10:08:59 +0000 (10:08 +0000)] 
PR rtl-optimization/70886
* sched-deps.c (estimate_dep_weak): Canonicalize cselib values.

* cselib.h (rtx_equal_for_cselib_1): Declare.
(rtx_equal_for_cselib_p: New inline function.
* cselib.c (rtx_equal_for_cselib_p): Delete.
(rtx_equal_for_cselib_1): Make public.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 10:07:02 +0000 (10:07 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 10:06:45 +0000 (10:06 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Alignment_Error): Removed.
(Get_Alignment_Value): Code cleanup.

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

9 years ago2016-05-02 Tristan Gingold <gingold@adacore.com>
charlet [Mon, 2 May 2016 10:05:03 +0000 (10:05 +0000)] 
2016-05-02  Tristan Gingold  <gingold@adacore.com>

* sem_ch3.adb (Analyze_Object_Declaration): Use Has_Protected
to check for the no local protected objects restriction.

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

* einfo.adb Anonymous_Master now uses Node35.
(Anonymous_Master): Update the assertion and node reference.
(Set_Anonymous_Master): Update the assertion and node reference.
(Write_Field35_Name): Add output for Anonymous_Master.
(Write_Field36_Name): The output is now undefined.
* einfo.ads Update the node and description of attribute
Anonymous_Master. Remove prior occurrences in entities as this
is now a type attribute.
* exp_ch3.adb (Expand_Freeze_Array_Type): Remove local variable
Ins_Node. Anonymous access- to-controlled component types no
longer need finalization masters. The master is now built when
a related allocator is expanded.
(Expand_Freeze_Record_Type): Remove local variable Has_AACC. Do not
detect whether the record type has at least one component of anonymous
access-to- controlled type. These types no longer need finalization
masters. The master is now built when a related allocator is expanded.
* exp_ch4.adb Remove with and use clauses for Lib and Sem_Ch8.
(Current_Anonymous_Master): Removed.
(Expand_N_Allocator): Call Build_Anonymous_Master to create a
finalization master for an anonymous access-to-controlled type.
* exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
Call routine Build_Anonymous_Master to create a finalization master
for an anonymous access-to-controlled type.
* exp_ch7.adb (Allows_Finalization_Master): New routine.
(Build_Anonymous_Master): New routine.
(Build_Finalization_Master): Remove formal parameter
For_Anonymous. Use Allows_Finalization_Master to determine whether
circumstances warrant a finalization master. This routine no
longer creates masters for anonymous access-to-controlled types.
(In_Deallocation_Instance): Removed.
* exp_ch7.ads (Build_Anonymous_Master): New routine.
(Build_Finalization_Master): Remove formal parameter For_Anonymous
and update the comment on usage.
* sem_util.adb (Get_Qualified_Name): New routines.
(Output_Name): Reimplemented.
(Output_Scope): Removed.
* sem_util.ads (Get_Qualified_Name): New routines.

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

* debug.adb: Document the use of switch -gnatd.H.
* gnat1drv.adb (Adjust_Global_Switches): Set ASIS_GNSA mode when
-gnatd.H is present.
(Gnat1drv): Suppress the call to gigi when ASIS_GNSA mode is active.
* opt.ads: Add new option ASIS_GNSA_Mode.
* sem_ch13.adb (Alignment_Error): New routine.
(Analyze_Attribute_Definition_Clause): Suppress certain errors in
ASIS mode for attribute clause Alignment, Machine_Radix, Size, and
Stream_Size.
(Check_Size): Use routine Size_Too_Small_Error to
suppress certain errors in ASIS mode.
(Get_Alignment_Value): Use routine Alignment_Error to suppress certain
errors in ASIS mode.
(Size_Too_Small_Error): New routine.

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

9 years ago2016-05-02 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 2 May 2016 10:00:00 +0000 (10:00 +0000)] 
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* spark_xrefs.ads Description of the spark cross-references
clarified; small style fixes.
* lib-xref-spark_specific.adb (Add_SPARK_Scope,
Detect_And_Add_SPARK_Scope): consider protected types and bodies
as yet another scopes.
(Enclosing_Subprogram_Or_Library_Package): refactored using
Hristian's suggestions; added support for scopes of protected
types and bodies; fix for entries to return the scope of the
enclosing concurrent type, which is consistent with what is
returned for protected subprograms.
* sem_intr.adb: Minor style fix in comment.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 09:57:54 +0000 (09:57 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-xref.ads, lib-xref-spark_specific.adb, get_spark_xrefs.adb,
put_spark_xrefs.adb: Minor reformatting.

2016-05-02  Doug Rupp  <rupp@adacore.com>

* g-traceb.ads: Document traceback for ARM.

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

* exp_disp.adb (Make_Tags): Do not generate the
external name of interface tags adding the suffix counter since
it causes problems at link time when the IP routines are inlined
across units with optimization.

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

* einfo.ads, einfo.adb (Predicates_Ignared): new flag to indicate
that predicate checking is disabled for predicated subtypes in
the context of an Assertion_Policy pragma.
* checks.adb (Apply_Predicate_Check): Do nothing if
Predicates_Ignored is true.
* exp_ch3.adb (Expand_Freeze_Enumeration_Type): If
Predicates_Ignores is true, the function Rep_To_Pos does raise
an exception for invalid data.
* exp_ch4.adb (Expand_N_Type_Conversion): IF target is a predicated
type do not apply check if Predicates_Ignored is true.
* exp_ch5.adb (Expand_N_Case_Statement): If Predicates_Ignored
is true, sem_prag.adb:
* sem_ch3.adb (Analyze_Object_Declaration): If Predicates_Ignored
is true do not emit predicate check on initializing expression.

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

9 years ago2016-05-02 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 2 May 2016 09:53:16 +0000 (09:53 +0000)] 
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* get_spark_xrefs.adb (Get_Nat, Get_Name): Initialize variables when
they are declared; refine type of a counter from Integer to Natural.
* sem_ch5.adb, gnatcmd.adb, s-intman-posix.adb, eval_fat.adb,
prj.adb, sem_util.adb, s-intman-android.adb, prj-nmsc.adb, sem_ch8.adb,
exp_ch3.adb: Minor editing.

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

9 years ago2016-05-02 Yannick Moy <moy@adacore.com>
charlet [Mon, 2 May 2016 09:50:45 +0000 (09:50 +0000)] 
2016-05-02  Yannick Moy  <moy@adacore.com>

* a-tigeli.adb (Get_Line): Always set Last prior to returning.

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

* lib-xref.adb: Minor style fix in whitespace of declarations.
* put_spark_xrefs.adb (Put_SPARK_Xrefs): printing of strings
refactored without loops.
* put_spark_xrefs.ads (Write_Info_Str): new formal argument of
generic procedure.
* spark_xrefs.adb (Write_Info_Str): new actual in instantiation
of generic procedure.

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

9 years ago * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
uros [Mon, 2 May 2016 09:49:39 +0000 (09:49 +0000)] 
* config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
(register_mixssei387nonimm_operand): Remove predicate.
* config/i386/i386.md (*fop_<mode>_comm): Merge from
*fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
for TARGET_MIX_SSE_I387 alternatives.
(*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
Disable unsupported alternatives using "enabled" attribute.  Use
nonimm_ssenomem_operand as operand 1 predicate.  Also check
X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
* config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
(register_mixssei387nonimm_operand): Remove predicate.

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

9 years ago2016-05-02 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 2 May 2016 09:48:55 +0000 (09:48 +0000)] 
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* lib-xref-spark_specific.adb (Add_SPARK_Scope): add task type scope.
(Detect_And_Add_SPARK_Scope): detect and add task type scope.
(Enclosing_Subprogram_Or_Package): Respect boundaries of task
and entry declarations.
* spark_xrefs.ads: minor typo in comment.

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

9 years ago2016-05-02 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 2 May 2016 09:47:42 +0000 (09:47 +0000)] 
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* make.adb: Minor: avoid an exception when calling gnatmake with
no argument and gnatmake is built with checks on.
* lib-xref-spark_specific.adb: Minor code cleanup.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 09:45:17 +0000 (09:45 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Ed Schonberg <schonberg@adacore.com>
charlet [Mon, 2 May 2016 09:44:54 +0000 (09:44 +0000)] 
2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Normalize_Actuals): Take into account extra
actuals that may have been introduced previously. Normally extra
actuals are introduced when a call is expanded, but a validity
check may copy and reanalyze a call that carries an extra actual
(e.g. an accessibility parameter) before the call itself is
marked Analzyed, and the analysis of the copy has to be able to
cope with the added actual.

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

9 years agoSimplify cst_and_fits_in_hwi
rsandifo [Mon, 2 May 2016 09:40:32 +0000 (09:40 +0000)] 
Simplify cst_and_fits_in_hwi

While looking at the use of cst_and_fits_in_hwi in tree-ssa-loop-ivopts.c,
I had difficulty working out what the function actually tests.  The
final NUNITS check seems redundant, since it asks about the number of
HWIs in the _unextended_ constant.  We've already checked that the
unextended constant has no more than HOST_BITS_PER_WIDE_INT bits, so the
length must be 1.

I think this was my fault, sorry.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
* tree.c (cst_and_fits_in_hwi): Simplify.

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

9 years agoAdd a wi::to_wide helper function
rsandifo [Mon, 2 May 2016 09:40:09 +0000 (09:40 +0000)] 
Add a wi::to_wide helper function

As Richard says, we ought to have a convenient way of converting
an INTEGER_CST to a wide_int of a particular precision without
having to extract the sign of the INTEGER_CST's type each time.
This patch adds a wi::to_wide helper for that, alongside the
existing wi::to_offset and wi::to_widest.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
* tree.h (wi::to_wide): New function.
* expr.c (expand_expr_real_1): Use wi::to_wide.
* fold-const.c (int_const_binop_1): Likewise.
(extract_muldiv_1): Likewise.

gcc/c-family/
* c-common.c (shorten_compare): Use wi::to_wide.

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

9 years agoSupport << and >> for offset_int and widest_int
rsandifo [Mon, 2 May 2016 09:39:38 +0000 (09:39 +0000)] 
Support << and >> for offset_int and widest_int

Following on from the comparison patch, I think it makes sense to
support << and >> for offset_int (int128_t) and widest_int (intNNN_t),
with >> being arithmetic shift.  It doesn't make sense to use
logical right shift on a potentially negative offset_int, since
the precision of 128 bits has no meaning on the target.

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
* wide-int.h: Update offset_int and widest_int documentation.
(WI_SIGNED_SHIFT_RESULT): New macro.
(wi::binary_shift): Define signed_shift_result_type for
shifts on offset_int- and widest_int-like types.
(generic_wide_int): Support <<= and >>= if << and >> are supported.
* tree.h (int_bit_position): Use shift operators instead of wi::
 shifts.
* alias.c (adjust_offset_for_component_ref): Likewise.
* expr.c (get_inner_reference): Likewise.
* fold-const.c (fold_comparison): Likewise.
* gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
* gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
* tree-dfa.c (get_ref_base_and_extent): Likewise.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
(stmt_kills_ref_p): Likewise.
* tree-ssa-ccp.c (bit_value_binop_1): Likewise.
* tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
(ao_ref_init_from_vn_reference): Likewise.

gcc/cp/
* init.c (build_new_1): Use shift operators instead of wi:: shifts.

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

9 years agoSupport <, <=, > and >= for offset_int and widest_int
rsandifo [Mon, 2 May 2016 09:39:09 +0000 (09:39 +0000)] 
Support <, <=, > and >= for offset_int and widest_int

offset_int and widest_int are supposed to be at least one bit wider
than all the values they need to represent, with the extra bits
being signs.  Thus offset_int is effectively int128_t and widest_int
is effectively intNNN_t, for target-dependent NNN.

Because the types are signed, there's not really any need to specify
a sign for operations like comparison.  I think things would be clearer
if we supported <, <=, > and >= for them (but not for wide_int, which
doesn't have a sign).

Tested on x86_64-linux-gnu and aarch64-linux-gnu.

gcc/
* wide-int.h: Update offset_int and widest_int documentation.
(WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
(wi::binary_traits): Allow ordered comparisons between offset_int and
offset_int, between widest_int and widest_int, and between either
of these types and basic C types.
(operator <, <=, >, >=): Define for the same combinations.
* tree.h (tree_int_cst_lt): Use comparison operators instead
of wi:: comparisons.
(tree_int_cst_le): Likewise.
* gimple-fold.c (fold_array_ctor_reference): Likewise.
(fold_nonarray_ctor_reference): Likewise.
* gimple-ssa-strength-reduction.c (record_increment): Likewise.
* tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
* tree-sra.c (completely_scalarize): Likewise.
* tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
* tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
* tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
(check_for_binary_op_overflow): Likewise.
(search_for_addr_array): Likewise.
* ubsan.c (ubsan_expand_objsize_ifn): Likewise.

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

9 years agoFix warnings, update source code.
claziss [Mon, 2 May 2016 09:37:17 +0000 (09:37 +0000)] 
Fix warnings, update source code.

include/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
(arc_save_restore): Likewise.
(arc_dwarf_register_span): Likewise.
(arc_output_pic_addr_const): Initialize suffix variable.

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

9 years ago2016-05-02 Bob Duff <duff@adacore.com>
charlet [Mon, 2 May 2016 09:30:59 +0000 (09:30 +0000)] 
2016-05-02  Bob Duff  <duff@adacore.com>

* sem_ch10.adb (Analyze_Compilation_Unit): Preserve
treeishness. Previous version had Context_Items shared between
the spec and body.

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

* sem_aggr.adb (Resolve_Aggr_Expression): For both array and
record cases, apply predicate check on component for expression
only if expression has been analyzed already. For expressions
that need to be duplicated when they cover multiple components,
resolution and predicate checking take place later.

2016-05-02  Olivier Hainque  <hainque@adacore.com>

* a-direct.adb (Delete_Tree): Use full names to designate subdirs
and files therein, instead of local names after a change of
current directory.

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

9 years ago2016-05-02 Thomas Quinot <quinot@adacore.com>
charlet [Mon, 2 May 2016 09:29:09 +0000 (09:29 +0000)] 
2016-05-02  Thomas Quinot  <quinot@adacore.com>

* freeze.adb (Check_Component_Storage_Order): Get full view of
component type.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 09:27:18 +0000 (09:27 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb, freeze.adb, sem_res.adb, s-stposu.adb, repinfo.adb:
Minor reformatting.

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

9 years ago2016-05-02 Hristian Kirtchev <kirtchev@adacore.com>
charlet [Mon, 2 May 2016 09:23:49 +0000 (09:23 +0000)] 
2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch4.adb (Find_Indexing_Operations): Use the underlying type
of the container base type in case the container is a subtype.
* sem_ch5.adb (Analyze_Iterator_Specification): Ensure that
the selector has an entity when checking for a component of a
mutable object.

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

Remove dead code.
* opt.ads (Latest_Ada_Only): New flag.
* sem_prag.adb, par-prag.adb: Ignore pragma Ada_xx under this flag.
* usage.adb, switch-c.adb: Disable support for -gnatxx under this flag.
* einfo.ads (Has_Predicates, Predicate_Function):
Clarify that Has_Predicates does not imply that Predicate_Function
will return a non-empty entity.

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

* sem_res.adb (Resolve_Qualified_Expression): Generate a predicate
check if type requires it.
* checks.adb (Apply_Predicate_Check): Disable checks in the
object declaration created for an expression with side-effects
that requires a predicate check to prevent infinite recursion
during expansion.

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

* sem_ch6.adb (Process_Formals): Check properly the type of a
formal to determine whether a given convention applies to it.

2016-05-02  Doug Rupp  <rupp@adacore.com>

* tracebak.c: Add incantations for arm-vxworks[67] traceback.

2016-05-02  Thomas Quinot  <quinot@adacore.com>

* freeze.adb (Check_Component_Storage_Order): Make it a warning, not an
error, to have a component with implicit SSO within a composite type
that has explicit SSO.

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

* s-stposu.adb (Allocate_Any_Controlled): Don't lock/unlock twice.

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

* repinfo.adb (List_Entities): Make procedure recursive, to
provide representation information for subprograms declared
within subprogram bodies.

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

9 years agoSymbol summary: refactor usage of gcc_checking_asserts
marxin [Mon, 2 May 2016 09:20:01 +0000 (09:20 +0000)] 
Symbol summary: refactor usage of gcc_checking_asserts

* symbol-summary.h (function_summary::function_summary):
Remove checking assert for all cgraph nodes.
(function_summary::get): Check summary_uid.
(symtab_insertion): Check summary_uid.

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

9 years agoMinor reformatting.
charlet [Mon, 2 May 2016 09:12:46 +0000 (09:12 +0000)] 
Minor reformatting.

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

9 years ago2016-05-02 Arnaud Charlet <charlet@adacore.com>
charlet [Mon, 2 May 2016 09:11:03 +0000 (09:11 +0000)] 
2016-05-02  Arnaud Charlet  <charlet@adacore.com>

* exp_ch5.adb, layout.adb, gnatcmd.adb exp_attr.adb, make.adb,
bindgen.adb, debug.adb, exp_pakd.adb, freeze.adb, sem_util.adb,
gnatlink.adb, switch-m.adb, exp_ch4.adb, repinfo.adb, adabkend.adb,
osint.adb: Remove dead code.

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

* a-tigeli.adb (Get_Line): Fix bound for test to
decide when to compensate for character 0 added by call to fgets.

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

9 years ago2016-05-02 Ed Schonberg <schonberg@adacore.com>
charlet [Mon, 2 May 2016 09:08:44 +0000 (09:08 +0000)] 
2016-05-02  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Allocator): If the expression does not
have a subtype indication and the type is an unconstrained tagged
type with defaulted discriminants, create an explicit constraint
for it during analysis to prevent out-of-order freezing actions
on generated classwide types.

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

* exp_ch5.adb (Expand_N_Assignment_Statement):
In the runtime check that ensures that the tags of source an
target match, add missing displacement of the pointer to the
objects if they cover interface types.

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

* sem_attr.adb (Analyze_Attribute, case 'Old): Do not use
base type for attribute when type is discrete: transformation
is not needed for such types, and leads to spurious errors if
the context is a case construct.

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

9 years ago[ARC] Add new ARCv2 instructions.
claziss [Mon, 2 May 2016 08:54:34 +0000 (08:54 +0000)] 
[ARC] Add new ARCv2 instructions.

gcc/
2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (compact_memory_operand_p): Declare.
* config/arc/arc.c (arc_output_commutative_cond_exec): Consider
bmaskn instruction.
(arc_dwarf_register_span): Remove enum keyword.
(compact_memory_operand_p): New function.
* config/arc/arc.h (reg_class): Add code density register classes.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
* config/arc/arc.md (*movqi_insn): Add code density instructions.
(*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
(*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
(*cmpsi_cc_c_insn, *movsi_ne): Likewise.
* config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
constraints.
(h, Rcd, Rsd, Rzd): New register constraints.
(T): Use compact_memory_operand_p function.
* config/arc/predicates.md (compact_load_memory_operand): Remove.

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

9 years ago2016-05-02 Richard Biener <rguenther@suse.de>
rguenth [Mon, 2 May 2016 08:28:33 +0000 (08:28 +0000)] 
2016-05-02  Richard Biener  <rguenther@suse.de>

cp/
* decl.c (grokdeclarator): Properly insert a DECL_EXPR for
anonymous VLAs.

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

9 years ago2016-05-02 Richard Biener <rguenther@suse.de>
rguenth [Mon, 2 May 2016 08:27:54 +0000 (08:27 +0000)] 
2016-05-02  Richard Biener  <rguenther@suse.de>

fortran/
* trans-array.c (gfc_trans_create_temp_array): Properly
create a DECL_EXPR for the anonymous VLA array type.

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

9 years agogcc/
olegendo [Mon, 2 May 2016 08:21:27 +0000 (08:21 +0000)] 
gcc/
* config/sh/sh.md (*negnegt, *movtt): Remove.

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

9 years ago * gcc-interface/decl.c (elaborate_reference_1): Do not bother about
ebotcazou [Mon, 2 May 2016 07:46:05 +0000 (07:46 +0000)] 
* gcc-interface/decl.c (elaborate_reference_1): Do not bother about
operand #2 for COMPONENT_REF.
* gcc-interface/utils2.c (gnat_save_expr): Likewise.
(gnat_protect_expr): Likewise.
(gnat_stabilize_reference_1): Likewise.
(gnat_rewrite_reference): Do not bother about operand #3 for ARRAY_REF.
(get_inner_constant_reference): Likewise.
(gnat_invariant_expr): Likewise.
* gcc-interface/trans.c (fold_constant_decl_in_expr): Likewise.

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

9 years agoFix ICE in dump_pred_graph
vries [Mon, 2 May 2016 07:42:06 +0000 (07:42 +0000)] 
Fix ICE in dump_pred_graph

2016-05-02  Marek Polacek  <polacek@redhat.com>
    Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/70700
* tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
bigger than FIRST_REF_NODE.

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

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

9 years ago * gcc-interface/trans.c (Range_to_gnu): New static function.
ebotcazou [Mon, 2 May 2016 07:38:37 +0000 (07:38 +0000)] 
* gcc-interface/trans.c (Range_to_gnu): New static function.
(Raise_Error_to_gnu) <N_In>: Call it to translate the range.
(gnat_to_gnu) <N_In>: Likewise.

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

9 years agogcc/
olegendo [Mon, 2 May 2016 05:25:46 +0000 (05:25 +0000)] 
gcc/
PR target/52898
* config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
TARGET_CMPEQDI_T.
(prepare_cbranch_operands): Don't use scratch register.  Assume that
function is used when pseudos can be created.
(expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
* config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
(cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
define_expand.  Allow it only when pseudos can be created.
* config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.

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

9 years agoDaily bump.
gccadmin [Mon, 2 May 2016 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * config/i386/constraints.md (BC): Only allow -1 operands.
uros [Sun, 1 May 2016 19:04:05 +0000 (19:04 +0000)] 
* config/i386/constraints.md (BC): Only allow -1 operands.
* config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
Add "enabled" attribute.  Update XI mode attribute calculation.
* config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
(*movoi_internal_avx): Update XI mode attribute calculation.
(*movti_internal): Ditto.

testsuite/ChangeLog:

* gcc.target/i386/avx256-unaligned-load-1.c: Update scan strings.
* gcc.target/i386/avx256-unaligned-store-1.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-3.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-4.c: Ditto.

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

9 years ago PR bootstrap/70704
jakub [Sun, 1 May 2016 10:49:25 +0000 (10:49 +0000)] 
PR bootstrap/70704
* configure.ac (--enable-stage1-checking): Add missing
--enable-checking=.
* configure: Regenerated.

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

9 years agogcc/
olegendo [Sun, 1 May 2016 07:52:32 +0000 (07:52 +0000)] 
gcc/
* config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.

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

9 years ago * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
ebotcazou [Sun, 1 May 2016 07:32:01 +0000 (07:32 +0000)] 
* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
statement on instruction code.  Remove trailing spaces.
(altivec_expand_stv_builtin): Likewise.

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

9 years agogcc/
olegendo [Sun, 1 May 2016 05:06:08 +0000 (05:06 +0000)] 
gcc/
* config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
(TARGET_FPU_DOUBLE): Simplify.
(BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
* config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
with 'TARGET_FPU_DOUBLE'.
* config/sh/sh.md: Likewise.

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

9 years agogcc/
olegendo [Sun, 1 May 2016 03:59:39 +0000 (03:59 +0000)] 
gcc/
* config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
SH_DIV_STR_FOR_SIZE): Remove.
* config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
SH_DIV_STR_FOR_SIZE): Remove.

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

9 years agogcc/
olegendo [Sun, 1 May 2016 03:23:26 +0000 (03:23 +0000)] 
gcc/
* config/sh/predicates.md (any_register_operand, zero_extend_operand,
logical_reg_operand): Delete.
(arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
match_operand and match_test.
(sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
variables on their first use.  Return bool values.
* config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
* config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
arith_reg_operand for input operand.  Remove empty constraints.
(xorsi3): Delete.
(*xorsi3_compact): Rename to xorsi3.
(zero_extend<mode>si2): Use arith_reg_operand for input operand.
(*zero_extend<mode>si2_disp_mem): Update comment.
(mov_nop): Delete.

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

9 years agoDaily bump.
gccadmin [Sun, 1 May 2016 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

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

9 years ago * zh_CN.po: Update.
jsm28 [Sat, 30 Apr 2016 21:49:44 +0000 (21:49 +0000)] 
* zh_CN.po: Update.

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

9 years ago * sv.po: Update.
jsm28 [Sat, 30 Apr 2016 14:11:52 +0000 (14:11 +0000)] 
* sv.po: Update.

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

9 years agoada/
ebotcazou [Sat, 30 Apr 2016 10:42:14 +0000 (10:42 +0000)] 
ada/
* gcc-interface/Make-lang.in (ACATSCMD): New variable.
(check-acats): Use it.
(check_acats_targets): Likewise.
testsuite/
* ada/acats/run_acats: Rename into...
* ada/acats/run_acats.sh: ...this.  Only export BASE variable.
* ada/acats/run_all.sh: Remove redundant test.
(target_run): Move around.
(target_gnatchop): Use newly built executable.
(target_gnatmake): Likewise.
Check that the compilation of impbit succeeds.

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

9 years ago/
olegendo [Sat, 30 Apr 2016 10:26:14 +0000 (10:26 +0000)] 
/
* config.guess: Revert r235676.
* config.sub: Revert r235676.

libjava/
* classpath/config.guess: Revert r235676.
* classpath/config.sub: Revert r235676.

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

9 years ago/
olegendo [Sat, 30 Apr 2016 09:11:03 +0000 (09:11 +0000)] 
/
* config.guess:  Remove SH5 support.
* config.sub: Likewise.
* configure: Likewise.
* configure.ac: Likewise.

config/
* picflag.m4:  Remove SH5 support.

gcc/
* config/sh/t-sh: Remove SH5 support.
* config.gcc: Likewise.
* configure: Likewise.

contrib/
* compare-all-tests: Remove SH5 support.
* config-list.mk: Likewise.

libada/
* configure: Remove SH5 support.

libgcc/
* config.host: Remove SH5 support.
* configure: Likewise.

libiberty/
* configure: Remove SH5 support.

libjava/
* classpath/config.guess: Remove SH5 support.
* classpath/config.sub: Likewise.

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

9 years agoHandle -fcilkplus in Mac OS X LINK_COMMAND_SPEC
ro [Sat, 30 Apr 2016 06:27:10 +0000 (06:27 +0000)] 
Handle -fcilkplus in Mac OS X LINK_COMMAND_SPEC

* config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.

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

9 years agogcc/
olegendo [Sat, 30 Apr 2016 05:39:59 +0000 (05:39 +0000)] 
gcc/
* config/sh/sh.c (register_sh_passes, sh_option_override,
sh_print_operand, prepare_move_operands,
sh_can_follow_jump): Remove TARGET_SH1 checks.
* config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
PROMOTE_MODE): Likewise.
* config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
movdi): Likewise.

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

9 years agotestsuite/
olegendo [Sat, 30 Apr 2016 01:56:55 +0000 (01:56 +0000)] 
testsuite/
* g++.old-deja/g++.jason/thunk3.C: Remove SH5 checks.
* gcc.dg/20021029-1.c: Likewise.
* gcc.target/sh/attr-isr-trap_exit.c: Likewise.
* gcc.target/sh/attr-isr-trapa.c: Likewise.
* gcc.target/sh/cmpstr.c: Likewise.
* gcc.target/sh/cmpstrn.c: Likewise.
* gcc.target/sh/memset.c: Likewise.
* gcc.target/sh/pr21255-2-mb.c: Likewise.
* gcc.target/sh/pr21255-2-ml.c: Likewise.
* gcc.target/sh/pr39423-1.c: Likewise.
* gcc.target/sh/pr49468-di.c: Likewise.
* gcc.target/sh/pr49468-si.c: Likewise.
* gcc.target/sh/pr49880-1.c: Likewise.
* gcc.target/sh/pr49880-2.c: Likewise.
* gcc.target/sh/pr49880-3.c: Likewise.
* gcc.target/sh/pr50751-1.c: Likewise.
* gcc.target/sh/pr50751-4.c: Likewise.
* gcc.target/sh/pr50751-7.c: Likewise.
* gcc.target/sh/pr51244-1.c: Likewise.
* gcc.target/sh/pr51244-10.c: Likewise.
* gcc.target/sh/pr51244-11.c: Likewise.
* gcc.target/sh/pr51244-12.c: Likewise.
* gcc.target/sh/pr51244-13.c: Likewise.
* gcc.target/sh/pr51244-14.c: Likewise.
* gcc.target/sh/pr51244-17.c: Likewise.
* gcc.target/sh/pr51244-18.c: Likewise.
* gcc.target/sh/pr51244-19.c: Likewise.
* gcc.target/sh/pr51244-4.c: Likewise.
* gcc.target/sh/pr51244-5.c: Likewise.
* gcc.target/sh/pr51244-7.c: Likewise.
* gcc.target/sh/pr51244-8.c: Likewise.
* gcc.target/sh/pr51244-9.c: Likewise.
* gcc.target/sh/pr51697.c: Likewise.
* gcc.target/sh/pr52483-1.c: Likewise.
* gcc.target/sh/pr52483-2.c: Likewise.
* gcc.target/sh/pr52483-3.c: Likewise.
* gcc.target/sh/pr52483-5.c: Likewise.
* gcc.target/sh/pr52933-1.c: Likewise.
* gcc.target/sh/pr52933-2.c: Likewise.
* gcc.target/sh/pr52933-3.c: Likewise.
* gcc.target/sh/pr53568-1.c: Likewise.
* gcc.target/sh/pr53976-1.c: Likewise.
* gcc.target/sh/pr53988-1.c: Likewise.
* gcc.target/sh/pr53988.c: Likewise.
* gcc.target/sh/pr54089-1.c: Likewise.
* gcc.target/sh/pr54089-6.c: Likewise.
* gcc.target/sh/pr54089-7.c: Likewise.
* gcc.target/sh/pr54089-8.c: Likewise.
* gcc.target/sh/pr54089-9.c: Likewise.
* gcc.target/sh/pr54236-1.c: Likewise.
* gcc.target/sh/pr54236-2.c: Likewise.
* gcc.target/sh/pr54236-3.c: Likewise.
* gcc.target/sh/pr54236-4.c: Likewise.
* gcc.target/sh/pr54386.c: Likewise.
* gcc.target/sh/pr54602-1.c: Likewise.
* gcc.target/sh/pr54685.c: Likewise.
* gcc.target/sh/pr54760-1.c: Likewise.
* gcc.target/sh/pr54760-2.c: Likewise.
* gcc.target/sh/pr54760-3.c: Likewise.
* gcc.target/sh/pr54760-4.c: Likewise.
* gcc.target/sh/pr54760-5.c: Likewise.
* gcc.target/sh/pr54760-6.c: Likewise.
* gcc.target/sh/pr55146.c: Likewise.
* gcc.target/sh/pr55160.c: Likewise.
* gcc.target/sh/pr59278.c: Likewise.
* gcc.target/sh/pr59401-1.c: Likewise.
* gcc.target/sh/pr59533-1.c: Likewise.
* gcc.target/sh/pr63260.c: Likewise.
* gcc.target/sh/pragma-isr-trap-exit.c: Likewise.
* gcc.target/sh/pragma-isr-trapa.c: Likewise.
* gcc.target/sh/strlen.c: Likewise.
* gcc.target/sh/torture/pr30807.c: Likewise.
* gcc.target/sh/torture/pr34777.c: Likewise.
* gcc.target/sh/torture/pr64652.c: Likewise.
* gcc.target/sh/torture/pr65505.c: Likewise.
* gcc.target/sh/torture/pragma-isr.c: Likewise.
* gcc.target/sh/torture/pragma-isr2.c: Likewise.

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

9 years ago[RS6000] Allow saving of fixed regs.
amodra [Sat, 30 Apr 2016 00:35:39 +0000 (00:35 +0000)] 
[RS6000] Allow saving of fixed regs.

As I noted a long time ago in the comment on fixed_reg_p, the real
problem with saving fixed/global regs is that exception frame
unwinding might restore them.  So don't emit eh_frame info for any
such reg, and the unwinder won't restore them.

Also, tidy rs6000_savres_strategy.  Delaying some checks means we
won't iterate over regs quite so often.

* config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
restoring when fixed_reg_p, but allow out-of-line or stmw save.
Check for user regs later to avoid unnecessary looping over regs.
Merge user reg check with non-saved reg check.  Don't force
inline VR restore when static chain used.
(rs6000_frame_related): Omit eh_frame info for user regs when
saving.
(fixed_regs_p): Delete.

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

9 years ago[RS6000] Split SAVRES_STRATEGY
amodra [Sat, 30 Apr 2016 00:34:58 +0000 (00:34 +0000)] 
[RS6000] Split SAVRES_STRATEGY

No functional change here.  A single bit becomes two bits, which
always have the same value at the moment.

* config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
(SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
Update all uses.

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

9 years ago[RS6000] PR69645, -ffixed-reg ignored
amodra [Sat, 30 Apr 2016 00:34:16 +0000 (00:34 +0000)] 
[RS6000] PR69645, -ffixed-reg ignored

Treat -ffixed-reg as we do for global asm regs.

PR target/69645
* config/rs6000/rs6000.c (fixed_reg_p): New function.
(fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
Update all uses.

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

9 years ago[RS6000] Simplify setting of fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]
amodra [Sat, 30 Apr 2016 00:33:26 +0000 (00:33 +0000)] 
[RS6000] Simplify setting of fixed_regs[RS6000_PIC_OFFSET_TABLE_REGNUM]

This makes the conditions look the same as other places that deal with
RS6000_PIC_OFFSET_TABLE_REGNUM, eg. first_reg_to_save.  No functional
changes.

* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
flag_pic test for Darwin.

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

9 years agoDaily bump.
gccadmin [Sat, 30 Apr 2016 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

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

9 years agoGoodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED
amodra [Sat, 30 Apr 2016 00:01:52 +0000 (00:01 +0000)] 
Goodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED

* regs.h (struct reg_info_t): Delete freq_calls_crossed and
throw_calls_crossed.
(REG_FREQ_CALLS_CROSSED): Delete.
(REG_N_THROWING_CALLS_CROSSED): Delete.
* regstat.c (regstat_bb_compute_ri): Don't calculate
REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
(dump_reg_info): Don't print call cross frequency.
* ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
and REG_N_THROWING_CALLS_CROSSED.

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

9 years agoGoodbye REG_LIVE_LENGTH
amodra [Sat, 30 Apr 2016 00:01:07 +0000 (00:01 +0000)] 
Goodbye REG_LIVE_LENGTH

* regs.h (struct reg_info_t): Delete live_length.
(REG_LIVE_LENGTH): Delete macro.
* regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
local_live, local_processed and local_live_last_luid params.
Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
Formatting fixes.
(regstat_compute_ri): Adjust for above.  Don't set
REG_LIVE_LENGTH.
(dump_reg_info): Don't print live length.
* ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
Localize loop_depth var.

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

9 years ago/cp
paolo [Sat, 30 Apr 2016 00:00:51 +0000 (00:00 +0000)] 
/cp
2016-04-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66644
* class.c (check_field_decl): Remove final int* parameter, change
the return type to bool; fix logic in order not to reject multiple
initialized fields in anonymous struct.
(check_field_decls): Adjust call.

/testsuite
2016-04-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66644
* g++.dg/cpp0x/nsdmi-anon-struct1.C: New.

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

9 years agoira.c validate_equiv_mem
amodra [Sat, 30 Apr 2016 00:00:22 +0000 (00:00 +0000)] 
ira.c validate_equiv_mem

This function is used to validate REG_EQUIV notes generated by ira,
and to validate potential insn combines performed by ira.  The two
conditions are not exactly the same, with reload being more
restrictive.  Separate them so more combines/moves can occur.

For example, this sequence from cfgexpand.c:expand_gimple_cond
callq  _Z18update_bb_for_insnP15basic_block_def
mov    0x10(%rbx),%rdi
mov    0x0(%rip),%rbp        # x_rtl+0x34
callq  _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_
mov    %r13,%rdx
mov    %rbp,%rsi
mov    %rax,%rdi
callq  _Z18create_basic_blockP7rtx_defS0_P15basic_block_def

becomes
callq  _Z18update_bb_for_insnP15basic_block_def
mov    0x10(%rbx),%rdi
callq  _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_
mov    0x0(%rip),%rsi        # x_rtl+0x34
mov    %r13,%rdx
mov    %rax,%rdi
callq  _Z18create_basic_blockP7rtx_defS0_P15basic_block_def

* ira.c (enum valid_equiv): New.
(validate_equiv_mem): Return enum.
(update_equiv_mem): Create replacement in more cases.
(add_store_equivs): Update validate_equiv_mem call.

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

9 years agoira.c use DF infrastructure for combine_and_move_insns
amodra [Fri, 29 Apr 2016 23:59:22 +0000 (23:59 +0000)] 
ira.c use DF infrastructure for combine_and_move_insns

This patch actually improves generated code, because REG_DEAD notes
used by the old insn scan are not always present.  On x86_64, see
gcc/wide-int-print.o:print_hex for an example of a function that is
smaller and uses one less callee saved reg.

* ira.c (combine_and_move_insns): Rather than scanning insns,
use DF infrastucture to find use and def insns.

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

9 years agoira.c combine_and_move_insns, and ordering of functions
amodra [Fri, 29 Apr 2016 23:58:17 +0000 (23:58 +0000)] 
ira.c combine_and_move_insns, and ordering of functions

Notes added by add_store_equivs are not used directly or indirectly by
combine_and_move_insns.  add_store_equivs can therefore run later
without affecting the output of combine_and_move_insns, and thus
add_store_equivs need not take into account potentially moved insns.
Since not all potentially combined/moved insns are in fact combined or
moved, this may allow add_store_equivs to add more REG_EQUIV notes.

grow_reg_equivs isn't needed until the reload reg_equivs array is
changed.

ira.c (combine_and_move_insns): Move invariant conditions..
(ira.c): ..to here.  Call combine_and_move_insns before
add_store_equivs.  Call grow_reg_equivs later.  Allocate
req_equiv later using max_reg_num() rather than global max_regno.
(contains_replace_regs): Delete.
(add_store_equivs): Remove contains_replace_regs test.

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

9 years agoira.c tidies: validate_equiv_mem_from_store
amodra [Fri, 29 Apr 2016 23:57:33 +0000 (23:57 +0000)] 
ira.c tidies: validate_equiv_mem_from_store

* ira.c (struct equiv_mem_data): New.
(equiv_mem, equiv_mem_modified): Delete static vars.
(validate_equiv_mem_from_store): Use "data" param to communicate..
(validate_equiv_mem): ..from here.

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

9 years agoira.c tidies: split update_reg_equivs
amodra [Fri, 29 Apr 2016 23:57:00 +0000 (23:57 +0000)] 
ira.c tidies: split update_reg_equivs

* ira.c (add_store_equivs, combine_and_move_insns): New functions,
split out from..
(update_reg_equivs): ..here.  Move allocation and freeing of
reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
end_alias_analysis to..
(ira): ..here.

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

9 years agoira.c tidies: move pdx_subregs into reg_equiv
amodra [Fri, 29 Apr 2016 23:56:16 +0000 (23:56 +0000)] 
ira.c tidies: move pdx_subregs into reg_equiv

Where pdx_subregs[regno] is used, reg_equiv[regno] is also used.

* ira.c (pdx_subregs): Delete.
(struct equivalence): Add pdx_subregs field.
(set_paradoxical_subreg): Remove pdx_subregs param.  Update
pdx_subregs access.
(update_equiv_regs): Don't create or free pdx_subregs.  Update
pdx_subregs access.

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

9 years ago[gcc]
wschmidt [Fri, 29 Apr 2016 20:57:14 +0000 (20:57 +0000)] 
[gcc]

2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/altivec.h: Change definitions of vec_xl and
vec_xst.
* config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
(LD_ELEMREV_V2DI): New.
(LD_ELEMREV_V4SF): New.
(LD_ELEMREV_V4SI): New.
(LD_ELEMREV_V8HI): New.
(LD_ELEMREV_V16QI): New.
(ST_ELEMREV_V2DF): New.
(ST_ELEMREV_V2DI): New.
(ST_ELEMREV_V4SF): New.
(ST_ELEMREV_V4SI): New.
(ST_ELEMREV_V8HI): New.
(ST_ELEMREV_V16QI): New.
(XL): New.
(XST): New.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
(altivec_expand_builtin): Add handling for
VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
(rs6000_invalid_builtin): Add error-checking for
RS6000_BTM_P9_VECTOR.
(altivec_init_builtins): Define builtins used to implement vec_xl
and vec_xst.
(rs6000_builtin_mask_names): Define power9-vector.
* config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
(RS6000_BTM_P9_VECTOR): Define.
(RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
* config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
(vsx_ld_elemrev_v2df): Likewise.
(vsx_ld_elemrev_v4sf): Likewise.
(vsx_ld_elemrev_v4si): Likewise.
(vsx_ld_elemrev_v8hi): Likewise.
(vsx_ld_elemrev_v16qi): Likewise.
(vsx_st_elemrev_v2df): Likewise.
(vsx_st_elemrev_v2di): Likewise.
(vsx_st_elemrev_v4sf): Likewise.
(vsx_st_elemrev_v4si): Likewise.
(vsx_st_elemrev_v8hi): Likewise.
(vsx_st_elemrev_v16qi): Likewise.
* doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
grammar.

[gcc/testsuite]

2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/vsx-elemrev-1.c: New.
* gcc.target/powerpc/vsx-elemrev-2.c: New.
* gcc.target/powerpc/vsx-elemrev-3.c: New.
* gcc.target/powerpc/vsx-elemrev-4.c: New.

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

9 years ago2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
law [Fri, 29 Apr 2016 19:15:25 +0000 (19:15 +0000)] 
2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>

* tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
out into ...
(simplify_control_stmt_condition_1): ... here.  Recurse into
BIT_AND_EXPRs and BIT_IOR_EXPRs.

* gcc.dg/tree-ssa/ssa-thread-14.c: New test.
* gcc.dg/tree-ssa/ssa-thread-11.c: Update expected output.

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

9 years ago gcc/c-family/
cesar [Fri, 29 Apr 2016 17:42:04 +0000 (17:42 +0000)] 
gcc/c-family/
PR middle-end/70626
* c-common.h (c_oacc_split_loop_clauses): Add boolean argument.
* c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate
reduction clauses in acc parallel loops.

gcc/c/
PR middle-end/70626
* c-parser.c (c_parser_oacc_loop): Don't augment mask with
OACC_LOOP_CLAUSE_MASK.
(c_parser_oacc_kernels_parallel): Update call to
c_oacc_split_loop_clauses.

gcc/cp/
PR middle-end/70626
* parser.c (cp_parser_oacc_loop): Don't augment mask with
OACC_LOOP_CLAUSE_MASK.
(cp_parser_oacc_kernels_parallel): Update call to
c_oacc_split_loop_clauses.

gcc/fortran/
PR middle-end/70626
* trans-openmp.c (gfc_trans_oacc_combined_directive): Duplicate
the reduction clause in both parallel and loop directives.

gcc/testsuite/
PR middle-end/70626
* c-c++-common/goacc/combined-reduction.c: New test.
* gfortran.dg/goacc/reduction-2.f95: Add check for kernels reductions.

libgomp/
PR middle-end/70626
* testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test.
* testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test.
* testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test.

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

9 years ago escape: Remove previously existing analysis.
ian [Fri, 29 Apr 2016 17:33:01 +0000 (17:33 +0000)] 
escape: Remove previously existing analysis.

* Make-lang.in (GO_OBJS): Remove go/dataflow.o, go/escape.o.

    Reviewed-on: https://go-review.googlesource.com/18261

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

9 years agoUpdate scan-assembler-not in PR target/70155 tests
hjl [Fri, 29 Apr 2016 17:27:59 +0000 (17:27 +0000)] 
Update scan-assembler-not in PR target/70155 tests

Since PIC leads to the *movdi_internal pattern, check for nonexistence
of the *movdi_internal pattern in PR target/70155 tests only if PIC is
off.

* gcc.target/i386/pr70155-1.c: Check for nonexistence of the
*movdi_internal pattern only if PIC off.
* gcc.target/i386/pr70155-2.c: Likewise.
* gcc.target/i386/pr70155-3.c: Likewise.
* gcc.target/i386/pr70155-4.c: Likewise.
* gcc.target/i386/pr70155-5.c: Likewise.
* gcc.target/i386/pr70155-6.c: Likewise.
* gcc.target/i386/pr70155-7.c: Likewise.
* gcc.target/i386/pr70155-8.c: Likewise.
* gcc.target/i386/pr70155-15.c: Likewise.
* gcc.target/i386/pr70155-17.c: Likewise.
* gcc.target/i386/pr70155-22.c: Likewise.

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

9 years ago PR target/69810
dje [Fri, 29 Apr 2016 17:20:36 +0000 (17:20 +0000)] 
    PR target/69810
        * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
        (zero_extendqi<mode>2_dot): Revert earlier conversion from
        define_insn_and_split to define_insn.
        (zero_extendqi<mode>2_dot2): Same.
        (extendqi<mode>2_dot): Same.
        (extendqi<mode>2_dot2): Same.

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

9 years agoRemove trailing whitespace from libstdc++-v3 files
redi [Fri, 29 Apr 2016 16:11:43 +0000 (16:11 +0000)] 
Remove trailing whitespace from libstdc++-v3 files

2016-04-29  Chris Gregory  <czipperz@gmail.com>

* config/*: Remove trailing whitespace.
* src/*: Likewise.
* testsuite/tr1/*: Likewise.
* testsuite/util/*: Likewise.

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

9 years ago gcc/testsuite/ChangeLog
amker [Fri, 29 Apr 2016 15:13:03 +0000 (15:13 +0000)] 
gcc/testsuite/ChangeLog
PR tree-optimization/70803
* gcc.dg/vect/pr56625.c: Require vect_int_mult.

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

9 years agoAdd DW_LANG_Rust
tromey [Fri, 29 Apr 2016 15:01:30 +0000 (15:01 +0000)] 
Add DW_LANG_Rust

include/
* dwarf2.h (enum dwarf_source_language) <DW_LANG_Rust,
DW_LANG_Rust_old>: New constants.

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

9 years ago * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
uros [Fri, 29 Apr 2016 14:43:29 +0000 (14:43 +0000)] 
* config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
(probe_stack): New expander.
(probe_stack_<mode>): New insn pattern.

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

9 years ago * config/i386/i386.md
uros [Fri, 29 Apr 2016 14:31:56 +0000 (14:31 +0000)] 
* config/i386/i386.md
(operations with memory inputs setting flags peephole2):
Remove uneeded REG_P checks.  Cleanup pattern generation.

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

9 years agolibgcc/
olegendo [Fri, 29 Apr 2016 14:10:26 +0000 (14:10 +0000)] 
libgcc/
* config/sh/crt1.S: Remove SH5 support.
* config/sh/crti.S: Likewise.
* config/sh/crtn.S: Likewise.
* config/sh/lib1funcs-4-300.S: Likewise.
* config/sh/lib1funcs-Os-4-200.S: Likewise.
* config/sh/lib1funcs.S: Likewise.
* config/sh/linux-unwind.h: Likewise.
* config/sh/t-sh64: Delete.

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

9 years agogcc/
ienkovich [Fri, 29 Apr 2016 13:27:24 +0000 (13:27 +0000)] 
gcc/

* tree-vect-loop.c (vect_transform_loop): Fix
nb_iterations_upper_bound computation for vectorized loop.

gcc/testsuite/

* gcc.target/i386/vect-unpack-2.c (avx512bw_test): Avoid
optimization of vector loop.
* gcc.target/i386/vect-unpack-3.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-1.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-2.c: New test.
* gcc.dg/vect/vect-nb-iter-ub-3.c: New test.

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

9 years ago PR c/70852
mpolacek [Fri, 29 Apr 2016 12:39:25 +0000 (12:39 +0000)] 
PR c/70852
* c-common.c (warn_for_memset): Check domain before accessing it.

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

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

9 years ago PR sanitizer/70342
mpolacek [Fri, 29 Apr 2016 12:32:45 +0000 (12:32 +0000)] 
PR sanitizer/70342
* fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
TARGET_EXPR_SLOT as a base.

* g++.dg/ubsan/null-7.C: New test.

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

9 years ago2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Fri, 29 Apr 2016 12:07:31 +0000 (12:07 +0000)] 
2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*loadqi_update): Replace use of 'rI'
        constraint with 'rCm2' constraints to limit possible immediate
        size.
        (*load_zeroextendqisi_update): Likewise.
        (*load_signextendqisi_update): Likewise.
        (*loadhi_update): Likewise.
        (*load_zeroextendhisi_update): Likewise.
        (*load_signextendhisi_update): Likewise.
        (*loadsi_update): Likewise.
        (*loadsf_update): Likewise.

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

9 years ago * config/i386/predicates.md (constm1_operand): Fix comparison.
uros [Fri, 29 Apr 2016 12:00:48 +0000 (12:00 +0000)] 
* config/i386/predicates.md (constm1_operand): Fix comparison.

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