gcc.git
4 years agoSub-dword vector extend and truncate for amdgcn
Andrew Stubbs [Fri, 13 Dec 2019 15:29:26 +0000 (15:29 +0000)]
Sub-dword vector extend and truncate for amdgcn

2019-12-13  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-valu.md (sdwa): New mode attribute.
(VCVT_FROM_MODE): Rename to ...
(VCVT_MODE): ... this.
(VCVT_TO_MODE): Delete mode iterator.
(VCVT_FMODE): New mode iterator.
(VCVT_IMODE): Likewise.
(<cvt_name><VCVT_FROM_MODE:mode><VCVT_TO_MODE:mode>2<exec>): Change ...
(<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): ... to this.
(<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): New.
(zero_convert): New code iterator.
(convop): New code attribute.
(<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
: New.
(extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>)
: New.
(vec_truncatev64div64si): Rename to ...
(truncv64di<mode>2): ... this and implement sub-dword patterns.
(vec_truncatev64div64si_exec): Rename to ...
(truncv64di<mode>2_exec): ... this and implement sub-dword patterns.
(<convop><mode>v64di2): New insn_and_split.
(<convop><mode>v64di2_exec): Likewise.
(mask_gather_load<mode>): Update truncate names.
(mask_scatter_store<mode>): Likewise.
* config/gcn/gcn.c (gcn_expand_scaled_offsets): Update truncate names.

From-SVN: r279372

4 years ago[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16
Dennis Zhang [Fri, 13 Dec 2019 10:22:39 +0000 (10:22 +0000)]
[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16

2019-12-13  Dennis Zhang  <dennis.zhang@arm.com>

gcc/
* config/aarch64/aarch64-arches.def (armv8.6-a): New.
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and
__ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled.
* config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New.
(fp): Disabling fp also disables i8mm and bf16.
(simd): Disabling simd also disables i8mm.
* config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro.
(AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise.
(AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise.
(TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise.
* doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options
and add a new table to list permissible values for ARCH.

gcc/testsuite/
* gcc.target/aarch64/pragma_cpp_predefs_2.c: Add tests for i8mm
and bf16 features.

From-SVN: r279370

4 years agore PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare)
Jakub Jelinek [Fri, 13 Dec 2019 10:12:55 +0000 (11:12 +0100)]
re PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare)

PR target/92908
* simplify-rtx.c (simplify_relational_operation): Punt for vector
cmp_mode and scalar mode, if simplify_relational_operation returned
const_true_rtx.
(simplify_const_relational_operation): Change VOID_mode in function
comment to VOIDmode.

* gcc.target/i386/avx512bw-pr92908.c: New test.

From-SVN: r279369

4 years ago[Ada] Minor rewording of one sentence
Gary Dismukes [Fri, 13 Dec 2019 09:05:43 +0000 (09:05 +0000)]
[Ada] Minor rewording of one sentence

2019-12-13  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* doc/gnat_rm/implementation_defined_pragmas.rst: Minor
rewording of one sentence.
* gnat_rm.texi: Regenerate.

From-SVN: r279368

4 years ago[Ada] Unnesting and annex E
Arnaud Charlet [Fri, 13 Dec 2019 09:05:38 +0000 (09:05 +0000)]
[Ada] Unnesting and annex E

2019-12-13  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* exp_unst.adb (Unnest_Subprogram): Account for trees produced
by Annex E constructs.

From-SVN: r279367

4 years ago[Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs
Ghjuvan Lacambre [Fri, 13 Dec 2019 09:05:33 +0000 (09:05 +0000)]
[Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docs

2019-12-13  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

* doc/gnat_rm/implementation_defined_pragmas.rst: Update
Initialize_Scalars documentation.
* gnat_rm.texi: Regenerate.

From-SVN: r279366

4 years ago[Ada] Spurious error on precondition of subprogram instantiation
Javier Miranda [Fri, 13 Dec 2019 09:05:28 +0000 (09:05 +0000)]
[Ada] Spurious error on precondition of subprogram instantiation

2019-12-13  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* sem_ch13.adb (Analyze_Aspect_Specification): Processing a
precondition, if the expression is of the form A and then B, do
not generate separate Pre/Post aspects for the separate clases
when we are processing a generic unit. Required to avoid
reporting spurious visibility errors on the instantiations.

From-SVN: r279365

4 years ago[Ada] Better error message for aliased formal and atomic actual
Eric Botcazou [Fri, 13 Dec 2019 09:05:23 +0000 (09:05 +0000)]
[Ada] Better error message for aliased formal and atomic actual

2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* sem_res.adb (Resolve_Actuals): Give canonical error for
illegal case of atomic/volatile parameter also if the formal is
aliased.

From-SVN: r279364

4 years ago[Ada] Clear confusion about subcomponents of atomic object
Eric Botcazou [Fri, 13 Dec 2019 09:05:18 +0000 (09:05 +0000)]
[Ada] Clear confusion about subcomponents of atomic object

2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses.
* sem_util.adb (Is_Atomic_Object): For an indexed component,
only look at the Has_Atomic_Components aspect of the prefix and
do not recurse on it; for a selected component, do not look at
the prefix.
(Is_Atomic_Or_VFA_Object): Minor tweak.

From-SVN: r279363

4 years ago[Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting
Arnaud Charlet [Fri, 13 Dec 2019 09:05:13 +0000 (09:05 +0000)]
[Ada] Fix support for > 24 hours image in Ada.Calendar.Formatting

2019-12-13  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration):
New procedure.
(Split, Image): Use Split_Duration. Update Image spec.

From-SVN: r279362

4 years ago[Ada] Adding support for unsupported type conversions in CCG
Javier Miranda [Fri, 13 Dec 2019 09:05:08 +0000 (09:05 +0000)]
[Ada] Adding support for unsupported type conversions in CCG

2019-12-13  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_unst.adb (Unnest_Subprogram): Generate an extra temporary
to facilitate the C backend processing dereferences.

From-SVN: r279361

4 years ago[Ada] Pragma Linker_Section in subprogram instantiations in CCG
Javier Miranda [Fri, 13 Dec 2019 09:05:03 +0000 (09:05 +0000)]
[Ada] Pragma Linker_Section in subprogram instantiations in CCG

2019-12-13  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* sem_prag.adb (Analyze_Pragma): Propagate the
Linker_Section_Attribute to the ultimate alias of the subprogram
to facilitate the C backend processing this attribute.

From-SVN: r279360

4 years ago[Ada] Avoid spurious mismatch error of assertion policy in generics
Yannick Moy [Fri, 13 Dec 2019 09:04:58 +0000 (09:04 +0000)]
[Ada] Avoid spurious mismatch error of assertion policy in generics

2019-12-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_util.adb (Original_Aspect_Pragma_Name): Go through
Original_Node for pragma.

From-SVN: r279359

4 years ago[Ada] Minor fix typo in comment
Piotr Trojanek [Fri, 13 Dec 2019 09:04:53 +0000 (09:04 +0000)]
[Ada] Minor fix typo in comment

2019-12-13  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.

From-SVN: r279358

4 years ago[Ada] Detect illegal implicit type conversions
Steve Baird [Fri, 13 Dec 2019 09:04:48 +0000 (09:04 +0000)]
[Ada] Detect illegal implicit type conversions

2019-12-13  Steve Baird  <baird@adacore.com>

gcc/ada/

* sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call
when testing whether a type is a general access type.

From-SVN: r279357

4 years ago[Ada] Adding support for unsupported type conversion in CCG
Javier Miranda [Fri, 13 Dec 2019 09:04:43 +0000 (09:04 +0000)]
[Ada] Adding support for unsupported type conversion in CCG

2019-12-13  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an
extra temporary for cases unsupported by the C backend.

From-SVN: r279356

4 years ago[Ada] Implement AI12-0109 (prohibit some "early" derivations)
Steve Baird [Fri, 13 Dec 2019 09:04:38 +0000 (09:04 +0000)]
[Ada] Implement AI12-0109 (prohibit some "early" derivations)

2019-12-13  Steve Baird  <baird@adacore.com>

gcc/ada/

* einfo.ads: Correct comment for Derived_Type_Link to reflect
that fact that this function is now used for more than just
generation of warnings.
* sem_ch3.adb (Build_Derived_Type): Do not call
Set_Derived_Type_Link if the derived type and the parent type
are in different compilation units. Such a derivation cannot be
a problematic "early" derivation (identifying these is what the
Derived_Type_Link attribute is used for) and we don't like
inter-unit references that go in the opposite direction of
semantic dependencies.
* sem_ch13.adb (Is_Type_Related_Rep_Item): A new function,
analogous to the existing function Is_Operational_Item.
(Rep_Item_Too_Late): Generate a hard error (with same text as
the warning that was previously being generated) if the
AI12-0109 legality rule is violated.

From-SVN: r279355

4 years ago[Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM
Eric Botcazou [Fri, 13 Dec 2019 09:04:33 +0000 (09:04 +0000)]
[Ada] Minor tweak to Volatile_Full_Access wording in GNAT RM

2019-12-13  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to
Volatile_Full_Access wording in GNAT RM.
* gnat_rm.texi: Regenerate.

From-SVN: r279354

4 years ago[Ada] Suppress Base_Address call on init of activation record components
Gary Dismukes [Fri, 13 Dec 2019 09:04:28 +0000 (09:04 +0000)]
[Ada] Suppress Base_Address call on init of activation record components

2019-12-13  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* exp_attr.adb (Expand_N_Attribute_Reference,
Attribute_Address): Suppress generation of a call to
Base_Address in the case where the Address attribute is being
used to initialize a corresponding component of an activation
record.
(Is_Unnested_Component_Init): New function to determine whether
an attribute reference for Address is used to initialized a
component of an activation record object that corresponds to the
object denoted by the prefix of the attribute (an assignment
used in support of unnesting for back ends like LLVM).

From-SVN: r279353

4 years ago[Ada] Crash on implicit dereference not made explicit
Ed Schonberg [Fri, 13 Dec 2019 09:04:23 +0000 (09:04 +0000)]
[Ada] Crash on implicit dereference not made explicit

2019-12-13  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_res.adb (Resolve): IF an entity reference is overloaded
because its type has an Implicit_Dereference aspect, we must
examine the discriminants of the type to determine whether an
explicit dereference must be inserted for use in code
generation. Previously this was done for other expressions but
not for entity references by themselves.  This was sufficient to
handle uses of the aspect in container handling and iteration,
but not more generally.

From-SVN: r279352

4 years ago[Ada] Deallocation of controlled type implementing interface types
Javier Miranda [Fri, 13 Dec 2019 09:04:18 +0000 (09:04 +0000)]
[Ada] Deallocation of controlled type implementing interface types

2019-12-13  Javier Miranda  <miranda@adacore.com>

gcc/ada/

* exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the
interface type).
* exp_disp.adb (Expand_Interface_Thunk): Using the added formal
to ensure the correct profile of the thunk generated for
predefined primitives; in addition, the added formal is also
used to perform a check that ensures that the controlling type
of the thunk is the one expected by the GCC backend.
(Make_Secondary_DT, Register_Primitive): Adding the new formal
to the calls to Expand_Interface_Thunk.
* exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new
formal to the call to Expand_Interface_Thunk.
* exp_intr.adb (Expand_Unc_Deallocation): When deallocating a
controlled type and the call to unchecked deallocation is
performed with a pointer to one of the convered interface types,
displace the pointer to the object to reference the base of the
object to deallocate its memory.
* gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the
controlling type of the thunk is an interface type.

From-SVN: r279351

4 years ago[Ada] Remove Is_Available function
Bob Duff [Fri, 13 Dec 2019 09:04:12 +0000 (09:04 +0000)]
[Ada] Remove Is_Available function

2019-12-13  Bob Duff  <duff@adacore.com>

gcc/ada/

* exp_attr.adb (Is_Available): Remove this function, and replace
all calls with RTE_Available. RTE_Available will return True if
"not Configurable_Run_Time_Mode". Remove the "???" comment.

From-SVN: r279350

4 years ago[Ada] Crash on inherited private operation in child package
Ed Schonberg [Fri, 13 Dec 2019 09:04:06 +0000 (09:04 +0000)]
[Ada] Crash on inherited private operation in child package

2019-12-13  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch7.adb (Analyze_Package_Body_Helper): Do not call
Declare_Inherited_Private_Subprograms on s child body: the
required operations have already been created when analyzing the
corresponding package declaration. This prevents a redeclaration
of inehrited operation, and a crash when inserting the new
operation in the current scope.

From-SVN: r279349

4 years ago[Ada] Avoid spurious errors on Global/Depends in instantiations
Yannick Moy [Fri, 13 Dec 2019 09:04:01 +0000 (09:04 +0000)]
[Ada] Avoid spurious errors on Global/Depends in instantiations

2019-12-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_prag.adb (Analyze_Depends_In_Decl_Part,
Analyze_Global_In_Decl_Part,
Analyze_Refined_Depends_In_Decl_Part,
Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of):
Skip redundant checking involving visibility inside
instantiations.

From-SVN: r279348

4 years ago[Ada] Prevent inlining inside condition of while loop in GNATprove
Yannick Moy [Fri, 13 Dec 2019 09:03:56 +0000 (09:03 +0000)]
[Ada] Prevent inlining inside condition of while loop in GNATprove

2019-12-13  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_res.adb (Resolve_Call): Prevent inlining inside while loop
conditions.
* sem_util.adb, sem_util.ads (In_While_Loop_Condition): New
query function.

From-SVN: r279347

4 years ago[Ada] Ada2020: Update Impunit for Ada 202X
Bob Duff [Fri, 13 Dec 2019 09:03:50 +0000 (09:03 +0000)]
[Ada] Ada2020: Update Impunit for Ada 202X

2019-12-13  Bob Duff  <duff@adacore.com>

gcc/ada/

* impunit.ads: Add Ada_202X_Unit.
* impunit.adb: Add a table Non_Imp_File_Names_2X analogous to
the other tables. Add code to search this table.
* opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently
always True.
* sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada
2020 unit is with-ed when Ada_Version < Ada_2020.  Change 'if'
to 'case': Full coverage rules rule.

From-SVN: r279346

4 years ago[Ada] Rtsfind: minor comment fixes
Bob Duff [Fri, 13 Dec 2019 09:03:45 +0000 (09:03 +0000)]
[Ada] Rtsfind: minor comment fixes

2019-12-13  Bob Duff  <duff@adacore.com>

gcc/ada/

* rtsfind.ads: Minor comment fix.

From-SVN: r279345

4 years ago[Ada] Up-level addressing problems with private tasks and selective accept procs
Gary Dismukes [Fri, 13 Dec 2019 09:03:40 +0000 (09:03 +0000)]
[Ada] Up-level addressing problems with private tasks and selective accept procs

2019-12-13  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* sem_util.adb (Scope_Within): For the case of checking for a
task type procedure, check the Implementation_Base_Type of Curr.
(Scope_Within_Or_Same): For the case of checking for a task type
procedure, check the Implementation_Base_Type of Curr.

From-SVN: r279344

4 years ago[Ada] Add Ada.Containers.Vectors.Generic_Parallel_Sorting to known units
Arnaud Charlet [Fri, 13 Dec 2019 09:03:34 +0000 (09:03 +0000)]
[Ada] Add Ada.Containers.Vectors.Generic_Parallel_Sorting to known units

2019-12-13  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* impunit.adb (Non_Imp_File_Names_12): Add
Ada.Containers.Vectors.Generic_Parallel_Sorting.

From-SVN: r279343

4 years ago[Ada] Missing accessibility checks on conditionals
Justin Squirek [Fri, 13 Dec 2019 09:03:28 +0000 (09:03 +0000)]
[Ada] Missing accessibility checks on conditionals

2019-12-13  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* sem_res.adb (Resolve_Allocator): Add calls to
Check_Cond_Expr_Accessibility when a conditional expression is
found.
(Check_Allocator_Discrim_Accessibility_Exprs): Created to
recursively traverse a potentially compound conditional
expression and perform accessibility checks for each
alternative.
* sem_util.adb (Dynamic_Accessibility_Level): Avoid use of
original node of the expression in question so we can handle
dynamic accessibility in the limited case of a constant folded
conditional expression.

From-SVN: r279342

4 years ago[Ada] Implement AI12-0101
Steve Baird [Fri, 13 Dec 2019 09:03:23 +0000 (09:03 +0000)]
[Ada] Implement AI12-0101

2019-12-13  Steve Baird  <baird@adacore.com>

gcc/ada/

* exp_ch4.adb (Expand_N_Op_Eq.Is_Equality): Move this function
from within Expand_N_Op_Eq.Find_Equality out to immediately
within Expand_N_Op_Eq in order to give it greater visibility.
Add a new Typ parameter (defaulted to Empty) which, if
non-empty, means the function will return False in the case of
an equality op for some other type.
* (Expand_N_Op_Eq.User_Defined_Primitive_Equality_Op): A new
function. Given an untagged record type, finds the corresponding
user-defined primitive equality op (if any).  May return Empty.
Ignores visibility.
* (Expand_N_Op): For Ada2012 or later, check for presence of a
user-defined primitive equality op before falling back on the
usual predefined component-by-component comparison. If found,
then call the user-defined op instead.

From-SVN: r279341

4 years ago[Ada] Spurious error on overriding controlled primitive
Justin Squirek [Fri, 13 Dec 2019 09:03:18 +0000 (09:03 +0000)]
[Ada] Spurious error on overriding controlled primitive

2019-12-13  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* sem_ch6.adb (Check_Overriding_Indicator): Modify condition to
take into account the modification of the Is_Hidden flag within
generic instances.
(Verify_Overriding_Indicator): Add an exception for controlled
primitives within an instance.

From-SVN: r279340

4 years ago[Ada] New flag to indicate whether aspect appears on partial view
Ed Schonberg [Fri, 13 Dec 2019 09:03:02 +0000 (09:03 +0000)]
[Ada] New flag to indicate whether aspect appears on partial view

2019-12-13  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sinfo.ads, sinfo.adb (Aspect_On_Partial_View,
Set_Aspect_On_Partial_View): New flag for use by SPARK, to
indicate whether an aspect that appears on a type declaration
applies to the partial view of that type.
* sem_ch13.adb (Analyze_Aspect_Specification): Set new flag
appropriately.

From-SVN: r279339

4 years agoAdd C testcases for PR 86659
Andrew Pinski [Fri, 13 Dec 2019 08:31:42 +0000 (08:31 +0000)]
Add C testcases for PR 86659

testsuite/ChangeLog:
2019-12-13  Andrew Pinski  <apinski@marvell.com>

       * gcc.c-torture/execute/pr86659-1.c: New test.
       * gcc.c-torture/execute/pr86659-2.c: New test.

From-SVN: r279338

4 years agolibgomp/openacc.f90 – clean-up public/private attributes
Tobias Burnus [Fri, 13 Dec 2019 07:58:53 +0000 (07:58 +0000)]
libgomp/openacc.f90 – clean-up public/private attributes

        libgomp/
        * openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark all symbols
        as public except for the 'use …, only' imported symbol, which is
        private.
        (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark
        all symbols from module openacc_kinds as PUBLIC; add missing PUBLIC
        attributes for acc_copyout_finalize and acc_delete_finalize.

From-SVN: r279337

4 years ago[rs6000] Adjust vectorization cost for scalar COND_EXPR
Kewen Lin [Fri, 13 Dec 2019 06:00:53 +0000 (06:00 +0000)]
[rs6000] Adjust vectorization cost for scalar COND_EXPR

We found that the vectorization cost modeling on scalar COND_EXPR is a bit off
on rs6000.  One typical case is 548.exchange2_r, -Ofast -mcpu=power9 -mrecip
-fvect-cost-model=unlimited is better than -Ofast -mcpu=power9 -mrecip (the
default is -fvect-cost-model=dynamic) by 1.94%.  Scalar COND_EXPR is expanded
into compare + branch or compare + isel normally, either of them should be
priced more than the simple FXU operation.  This patch is to add additional
vectorization cost onto scalar COND_EXPR on top of builtin_vectorization_cost.
The idea to use additional cost value 2 instead of the others: 1) try various
possible value candidates from 1 to 5, 2 is the best measured on Power9.  2)
from latency view, compare takes 3 cycles and isel takes 2 on Power9, it's
2.5 times of simple FXU instruction which takes cost 1 in the current
modeling, it's close.  3) get fine SPEC2017 ratio on Power8 as well.

gcc/ChangeLog

    * config/rs6000/rs6000.c (adjust_vectorization_cost): New function.
    (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update
    stmt_cost.

From-SVN: r279336

4 years agoPR c++/92496 - ICE with <=> and no #include <compare>.
Jason Merrill [Fri, 13 Dec 2019 05:05:51 +0000 (00:05 -0500)]
PR c++/92496 - ICE with <=> and no #include <compare>.

* typeck.c (cp_build_binary_op): Handle error from spaceship_type.

From-SVN: r279331

4 years agoDaily bump.
GCC Administrator [Fri, 13 Dec 2019 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279330

4 years agore PR target/92904 (varargs for __int128 is placed at an unaligned location and uses...
Jakub Jelinek [Fri, 13 Dec 2019 00:09:34 +0000 (01:09 +0100)]
re PR target/92904 (varargs for __int128 is placed at an unaligned location and uses movdqa for the load)

PR target/92904
* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
not need_temp, decrease alignment of the read because the GPR save
area only guarantees 8-byte alignment.

* gcc.c-torture/execute/pr92904.c: New test.

From-SVN: r279327

4 years agore PR fortran/92898 (ICE in gfc_check_is_contiguous, at fortran/check.c:7157)
Harald Anlauf [Thu, 12 Dec 2019 20:39:48 +0000 (20:39 +0000)]
re PR fortran/92898 (ICE in gfc_check_is_contiguous, at fortran/check.c:7157)

2019-12-12  Harald Anlauf  <anlauf@gmx.de>

PR fortran/92898
* check.c (gfc_check_is_contiguous): Simplify check to handle
arbitrary NULL() argument.

PR fortran/92898
* gfortran.dg/pr92898.f90: New test.

From-SVN: r279314

4 years ago[Committed, testsuite] Fix PR92870
Sudakshina Das [Thu, 12 Dec 2019 18:01:18 +0000 (18:01 +0000)]
[Committed, testsuite] Fix PR92870

With my recent commit, I added a test that is not passing on all targets.
My change was valid for targets that have a vector/scalar shift/rotate optabs
(optab that supports vector shifted by scalar).

Since it does not seem to be easy to find out which targets would support it,
I am limiting the test to the targets that I know pass.

gcc/testsuite/ChangeLog

2019-12-12  Sudakshina Das  <sudi.das@arm.com>

PR testsuite/92870
* gcc.dg/vect/vect-shift-5.c: Add target to scan-tree-dump.

From-SVN: r279310

4 years agoAdd support for some more AVR devices from avrxmega3 family.
Georg-Johann Lay [Thu, 12 Dec 2019 17:00:46 +0000 (17:00 +0000)]
Add support for some more AVR devices from avrxmega3 family.

* config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607)
(attiny402, attiny404, attiny406)
(attiny804, attiny806, attiny807)
(attiny202, attiny204): Add AVR_MCU lines to support them.
* doc/avr-mmcu.texi: Regenerate.

From-SVN: r279309

4 years agolibstdc++: Simplify std::common_comparison_category
Jonathan Wakely [Thu, 12 Dec 2019 14:35:55 +0000 (14:35 +0000)]
libstdc++: Simplify std::common_comparison_category

* libsupc++/compare (common_comparison_category): Define without using
concepts and optimise for compilation time.
(__detail::__cmp_cat_ids): Remove.
(__detail::__common_cmp_cat): Replace class template and
specializations with constexpr function.

From-SVN: r279307

4 years agoipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering of execution of...
Jan Hubicka [Thu, 12 Dec 2019 14:32:48 +0000 (15:32 +0100)]
ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering of execution of function call parameters.

* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
of execution of function call parameters.

From-SVN: r279306

4 years ago[Ada] Spurious warning about change of representastion in call
Ed Schonberg [Thu, 12 Dec 2019 10:03:53 +0000 (10:03 +0000)]
[Ada] Spurious warning about change of representastion in call

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch13.adb (Same_Reprewentation): if the actual in a call is
a generic actual type, use its bsae type to determine whether a
change of representastion may be necessary for proper parameter
passing.

From-SVN: r279305

4 years ago[Ada] Spurious error on universal access equality operator
Ed Schonberg [Thu, 12 Dec 2019 10:03:48 +0000 (10:03 +0000)]
[Ada] Spurious error on universal access equality operator

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_type.adb (Find_Unique_Type): A call to the universal
access equality operator requires one operand to be a universal
access, and the other to be an access type. There is no
requirement, as previously implied by this routine, that
pool-specific access types were illegal in this context.

From-SVN: r279304

4 years ago[Ada] Tighten up semantic checking for protected subprogram declarations
Steve Baird [Thu, 12 Dec 2019 10:03:43 +0000 (10:03 +0000)]
[Ada] Tighten up semantic checking for protected subprogram declarations

2019-12-12  Steve Baird  <baird@adacore.com>

gcc/ada/

* sem_ch6.adb
(New_Overloaded_Entity.Check_Conforming_Paramters): Add new
Conformance_Type parameter. With the value of
Subtype_Conformant, the behavior of Check_Conforming_Parameters
is unchanged.  The call in Matching_Entry_Or_Subprogram to
instead passes in Type_Conformant. This corresponds to the use
of "type conformant" in Ada RM 9.4(11.4/3).
(New_Overloaded_Entity.Has_Matching_Entry_Or_Subprogram): Add
new Normalized_First_Parameter_Type function to help in ignoring
the distinction between protected and access-to-protected first
parameters when checking prefixed-view profile matching. Replace
computations of the type of the first parameter with calls to
this function as appropriate.

From-SVN: r279303

4 years ago[Ada] Missing dereference in bound of slice in element iterator
Ed Schonberg [Thu, 12 Dec 2019 10:03:39 +0000 (10:03 +0000)]
[Ada] Missing dereference in bound of slice in element iterator

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch5.adb: (Analyze_Iterator_Specification): If the
iteration is over a slice, complete the resolution of its
bounds, which may be aebitrary expressions. The previous
pre-analysis may have created itypes for the slice but has not
performed the expansion that for example may introduce actions
that specify explicit dereferences and run-time checks.

From-SVN: r279302

4 years ago[Ada] Improve error message for dispatching subprogram formals
Ed Schonberg [Thu, 12 Dec 2019 10:03:35 +0000 (10:03 +0000)]
[Ada] Improve error message for dispatching subprogram formals

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch8.adb: Improve error message for dispatching subprogram
formals.

From-SVN: r279301

4 years ago[Ada] Fix related to handling up-level references in protected entries
Gary Dismukes [Thu, 12 Dec 2019 10:03:30 +0000 (10:03 +0000)]
[Ada] Fix related to handling up-level references in protected entries

2019-12-12  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* exp_ch9.adb (Build_Protected_Entry): Set the Scope of the new
block to be the entity of the procedure created for the entry.

From-SVN: r279300

4 years ago[Ada] Improved handling of circular compilation dependencies
Steve Baird [Thu, 12 Dec 2019 10:03:26 +0000 (10:03 +0000)]
[Ada] Improved handling of circular compilation dependencies

2019-12-12  Steve Baird  <baird@adacore.com>

gcc/ada/

* sem_ch10.adb (Install_With_Clause): Check for the case of a
circular dependency involving a predefined (or GNAT-defined)
unit and handle that case by generating an appropropriate error
message.

From-SVN: r279299

4 years ago[Ada] Fix various typos, plus minor reformatting
Gary Dismukes [Thu, 12 Dec 2019 10:03:20 +0000 (10:03 +0000)]
[Ada] Fix various typos, plus minor reformatting

2019-12-12  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* sem_ch4.adb, sem_res.adb: Minor reformatting.

From-SVN: r279298

4 years ago[Ada] Broken privacy on Controlled type extensions
Justin Squirek [Thu, 12 Dec 2019 10:03:16 +0000 (10:03 +0000)]
[Ada] Broken privacy on Controlled type extensions

2019-12-12  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* sem_ch4.adb (Analyze_One_Call): Add condition to check for
incorrectly resolved hidden controlled primitives.

From-SVN: r279297

4 years ago[Ada] Fix processing of standard predefined operators
Ed Schonberg [Thu, 12 Dec 2019 10:03:11 +0000 (10:03 +0000)]
[Ada] Fix processing of standard predefined operators

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_res.adb: Fix processing of standard predefined operators.

From-SVN: r279296

4 years ago[Ada] Fix Global contract for the predefined Yield procedure
Piotr Trojanek [Thu, 12 Dec 2019 10:03:06 +0000 (10:03 +0000)]
[Ada] Fix Global contract for the predefined Yield procedure

2019-12-12  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* libgnarl/a-dispat.ads (Yield): Update Global contract.

From-SVN: r279295

4 years ago[Ada] Fix repeated words and typos in doc and comments
Piotr Trojanek [Thu, 12 Dec 2019 10:03:01 +0000 (10:03 +0000)]
[Ada] Fix repeated words and typos in doc and comments

2019-12-12  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

* libgnat/g-altive.ads: Fix typo in comment.
* bindo-graphs.adb: Fix repeated words in comment.
* exp_ch4.adb: Likewise.
* exp_ch5.adb: Likewise.
* exp_ch7.adb: Likewise.
* exp_pakd.adb: Likewise.
* exp_unst.adb: Likewise.
* exp_util.adb: Likewise.
* freeze.adb: Likewise.
* inline.adb: Likewise.
* layout.adb: Likewise.
* sem_ch12.adb: Likewise.
* sem_ch13.adb: Likewise.
* sem_ch4.adb: Likewise.
* sem_ch9.adb: Likewise.
* sem_elab.adb: Likewise.
* doc/gnat_ugn/gnat_and_program_execution.rst: Fix repeated
words in user documentation.
* gnat_ugn.texi: Regenerate.

From-SVN: r279294

4 years ago[Ada] Fix wrong value of 'Size for slices of bit-packed arrays (2)
Eric Botcazou [Thu, 12 Dec 2019 10:02:55 +0000 (10:02 +0000)]
[Ada] Fix wrong value of 'Size for slices of bit-packed arrays (2)

2019-12-12  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* exp_attr.adb (Expand_Size_Attribute): Look directly at the
prefix to detect the bit-packed slices.  Apply the checks last
in case the attribute needs to be processed by the back-end.
* exp_ch4.adb (Expand_N_Slice): Do not create a temporary for
a prefix of the Size attribute.

From-SVN: r279293

4 years ago[Ada] Implement AI12-0036 (a new legality check for instantiations)
Steve Baird [Thu, 12 Dec 2019 10:02:51 +0000 (10:02 +0000)]
[Ada] Implement AI12-0036 (a new legality check for instantiations)

2019-12-12  Steve Baird  <baird@adacore.com>

gcc/ada/

* sem_ch12.adb
(Instantiate_Type.Validate_Derived_Type_Instance): Implement the
legality check of AI12-0036

From-SVN: r279292

4 years ago[Ada] Spurious visibility error on subunit with optimization
Ed Schonberg [Thu, 12 Dec 2019 10:02:47 +0000 (10:02 +0000)]
[Ada] Spurious visibility error on subunit with optimization

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch10.adb (Analyze_Subunit): Fix spurious visibility error
on subunit with optimization.

From-SVN: r279291

4 years ago[Ada] Define __gnat_personality_v0 for SEH
Arnaud Charlet [Thu, 12 Dec 2019 10:02:42 +0000 (10:02 +0000)]
[Ada] Define __gnat_personality_v0 for SEH

2019-12-12  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* raise-gcc.c (__gnat_personality_v0): Define for SEH.

From-SVN: r279290

4 years ago[Ada] Handling up-level references in protected entries and freeze nodes
Gary Dismukes [Thu, 12 Dec 2019 10:02:38 +0000 (10:02 +0000)]
[Ada] Handling up-level references in protected entries and freeze nodes

2019-12-12  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* exp_ch9.adb (Build_Protected_Entry): Analyze the block created
to hold the declarations and statements of the protected entry
body right after it's created, and then call Reset_Scopes_To on
that block to reset the Scope of nested entities to the block
scope.
(Reset_Scope): Add handling for N_Freeze_Entity nodes, calling
Reset_Scopes recursively on the Actions of such nodes. Also, for
subprogram bodies that are encountered that might not have a
separate declaration (such as type init procedures), reset the
Scope of the subprogram's entity.

From-SVN: r279289

4 years ago[Ada] Missing error on incorrect use of Result attribute
Justin Squirek [Thu, 12 Dec 2019 10:02:32 +0000 (10:02 +0000)]
[Ada] Missing error on incorrect use of Result attribute

2019-12-12  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* sem_attr.adb (Analyze_Attribute): Add error message for
invalid usage of Attribute_Result.

From-SVN: r279288

4 years ago[Ada] Crash on Descriptor_Size attribute
Bob Duff [Thu, 12 Dec 2019 10:02:27 +0000 (10:02 +0000)]
[Ada] Crash on Descriptor_Size attribute

2019-12-12  Bob Duff  <duff@adacore.com>

gcc/ada/

* sem_attr.adb (Eval_Attribute): Never mark T'Descriptor_Size as
static, even if T is a static subtype, because otherwise we will
request the value of the attribute, which will crash because we
have not evaluated it.

From-SVN: r279287

4 years ago[Ada] Missing length check on private type with unknown discriminants
Ed Schonberg [Thu, 12 Dec 2019 10:02:23 +0000 (10:02 +0000)]
[Ada] Missing length check on private type with unknown discriminants

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* exp_ch5.adb (Expand_N_Assognment_Statement): Extend the
processing involving private types with unknown discriminants to
handle the case where the full view of the type is an
unconstrained array type.

From-SVN: r279286

4 years ago[Ada] Compiler crash on prefix call in generic body
Bob Duff [Thu, 12 Dec 2019 10:02:19 +0000 (10:02 +0000)]
[Ada] Compiler crash on prefix call in generic body

2019-12-12  Bob Duff  <duff@adacore.com>

gcc/ada/

* sem_ch4.adb (Transform_Object_Operation): Deal properly with
prefix notation in instances.

From-SVN: r279285

4 years ago[Ada] Use correct subtype for call to Last in formal vectors
Claire Dross [Thu, 12 Dec 2019 10:02:14 +0000 (10:02 +0000)]
[Ada] Use correct subtype for call to Last in formal vectors

2019-12-12  Claire Dross  <dross@adacore.com>

gcc/ada/

* libgnat/a-cofove.adb, libgnat/a-cfinve.adb (Find_Index): Use
Extended_Index for call to Last.

From-SVN: r279284

4 years ago[Ada] Fix a number of typos, plus minor reformatting
Gary Dismukes [Thu, 12 Dec 2019 10:02:09 +0000 (10:02 +0000)]
[Ada] Fix a number of typos, plus minor reformatting

2019-12-12  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

* sem_ch3.adb, sem_util.adb: Minor reformatting.

From-SVN: r279283

4 years ago[Ada] Update gnatmetric documentation for average lengths
Bob Duff [Thu, 12 Dec 2019 10:02:05 +0000 (10:02 +0000)]
[Ada] Update gnatmetric documentation for average lengths

2019-12-12  Bob Duff  <duff@adacore.com>

gcc/ada/

* doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric
documentation for average lengths

From-SVN: r279282

4 years ago[Ada] Constraint is ignored on constrained access record component
Ed Schonberg [Thu, 12 Dec 2019 10:02:00 +0000 (10:02 +0000)]
[Ada] Constraint is ignored on constrained access record component

2019-12-12  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_ch3.adb (Constrain_Access): Remove obsolete comments and
warning concerning component types of an access type whose
designated type is a constrained record type. (Such constraints
were previously ignored). Set scope of itype for component to
the scope of the enclosing record.
* sem_ch4.adb: Remove call to Set_Ekind.
* sem_util.adb (Build_Actual_Subtype_Of_Component): Handle
components whose type is an access to a constrained
discriminant, where the constraints may be given by the
discriminants of the enclosing type. New subprogram
Build_Access_Record_Constraint.

gcc/testsuite/

* gnat.dg/warn24.adb: Remove expected warning.

From-SVN: r279281

4 years ago[Ada] Crash on use of Loop_Entry, Result, and Old as actuals
Justin Squirek [Thu, 12 Dec 2019 10:01:55 +0000 (10:01 +0000)]
[Ada] Crash on use of Loop_Entry, Result, and Old as actuals

2019-12-12  Justin Squirek  <squirek@adacore.com>

gcc/ada/

* exp_ch6.adb (Expand_Call_Helper): Added null case for
'Loop_Entry, 'Old, and 'Result when calculating whether to
create extra accessibility parameters.
* sem_util.adb (Dynamic_Accessibility_Level): Added null case
for 'Loop_Entry, 'Old, and 'Result when  calculating
accessibility level based on access-valued attributes.  Also
added special handling for uses of 'Loop_Entry when used in its
indexed component form.

From-SVN: r279280

4 years ago[Ada] Remove references to VMS
Arnaud Charlet [Thu, 12 Dec 2019 10:01:51 +0000 (10:01 +0000)]
[Ada] Remove references to VMS

2019-12-12  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* raise-gcc.c: Remove references to VMS

From-SVN: r279279

4 years ago[Ada] Mark Ada subprograms and variables referenced from gigi
Eric Botcazou [Thu, 12 Dec 2019 10:01:46 +0000 (10:01 +0000)]
[Ada] Mark Ada subprograms and variables referenced from gigi

2019-12-12  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* atree.ads, comperr.ads, debug.ads, einfo.ads, elists.ads,
err_vars.ads, errout.ads, exp_ch11.ads, exp_code.ads,
exp_dbug.ads, exp_tss.ads, exp_util.ads, lib.ads, namet.ads,
nlists.ads, opt.ads, repinfo.ads, restrict.ads, scos.ads,
sem_aggr.ads, sem_aux.ads, sem_eval.ads, sem_util.ads,
sinfo.ads, sinput.ads, stringt.ads, targparm.ads, types.ads,
urealp.ads warnsw.ads: Add WARNING line(s) in commentary.
* atree.h, elists.h, namet.h, nlists.h, repinfo.h, scos.h,
stringt.h, types.h, uintp.h, urealp.h: Tidy up.
* fe.h: Likewise.  Document WARNING mark.

From-SVN: r279278

4 years ago[Ada] Improve end of command line arguments detection
Dmitriy Anisimkov [Thu, 12 Dec 2019 10:01:41 +0000 (10:01 +0000)]
[Ada] Improve end of command line arguments detection

2019-12-12  Dmitriy Anisimkov  <anisimko@adacore.com>

gcc/ada/

* libgnat/g-comlin.ads (Get_Argument): New routine similar to
original Get_Argument but with one more out parameter
End_Of_Arguments.
(Get_Arguments): Comment improved.
* libgnat/g-comlin.adb (Get_Argument): Implementation taken from
original Get_Argument and improved.
(Get_Argument): Calls new routine Get_Argument with additional
parameter.

From-SVN: r279277

4 years ago[Ada] Remove implicit anonymous access conversion in testcase
Pierre-Marie de Rodat [Thu, 12 Dec 2019 10:01:36 +0000 (10:01 +0000)]
[Ada] Remove implicit anonymous access conversion in testcase

2019-12-12  Pierre-Marie de Rodat  <derodat@adacore.com>

gcc/testsuite/

* gnat.dg/subp_inst_pkg.adb: Remove implicit anonymous access
conversion.

From-SVN: r279276

4 years ago[ARC] generate signaling FDCMPF for hard float comparisons
Vineet Gupta [Thu, 12 Dec 2019 08:42:21 +0000 (08:42 +0000)]
[ARC] generate signaling FDCMPF for hard float comparisons

PR 92846:
ARC gcc generates FDCMP instructions which raises Invalid operation for
signaling NaN only. This causes glibc iseqsig() primitives to fail (in
the current ongoing glibc port to ARC)

So break up the hard float compares into tw categories and for unordered
compares generate the FDCMPF instructions which raised exception for
either NaNs.

With this fix testsuite/gcc.dg/torture/pr52451.c passes for ARC.

Also no regressions for the glibc math testsuite, only 6 additional
passes for test*iseqsig

gcc/
xxxx-xx-xx  Vineet Gupta  <vgupta@synopsys.com>

* config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
helps codegen generate exceptions even for quiet NaN.
* config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
(get_arc_condition_code): Likewise.
(arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
* config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
* config/arc/predicates.md (proper_comparison_operator): Likewise.
* config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
(cmpdf_fpu_trap): Likewise.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
From-SVN: r279274

4 years ago[ARC] Use hardware support for double-precision compare instructions.
Claudiu Zissulescu [Thu, 12 Dec 2019 08:42:10 +0000 (09:42 +0100)]
[ARC] Use hardware support for double-precision compare instructions.

Allow the compiler to use the double-precision compare instructions.

xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
(cstoredi4): Use TARGET_HARD_FLOAT.

From-SVN: r279273

4 years agolibstdc++: Fix tr1 definition ambiguity in versioned namespace
François Dumont [Thu, 12 Dec 2019 07:23:34 +0000 (07:23 +0000)]
libstdc++: Fix tr1 definition ambiguity in versioned namespace

* include/tr1/cctype: Add _GLIBCXX_BEGIN_VERSION_NAMESPACE and
_GLIBCXX_END_VERSION_NAMESPACE.
* include/tr1/cfenv: Likewise.
* include/tr1/cinttypes: Likewise.
* include/tr1/cstdint: Likewise.
* include/tr1/cstdio: Likewise.
* include/tr1/cstdlib: Likewise.
* include/tr1/cwchar: Likewise.
* include/tr1/cwctype: Likewise.

From-SVN: r279272

4 years agolibstdc++: Qualify isdigit call to fix versioned namespace build.
François Dumont [Thu, 12 Dec 2019 07:14:55 +0000 (07:14 +0000)]
libstdc++: Qualify isdigit call to fix versioned namespace build.

* src/c++11/random.cc: Include <cctype>.
(random_devise::_M_init_pretr1): Qualify isdigit call.

From-SVN: r279271

4 years agoDaily bump.
GCC Administrator [Thu, 12 Dec 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r279270

4 years agoopts.c (default_options_table): Move -ftree-loop-distribute-patterns entry from ...
Jakub Jelinek [Wed, 11 Dec 2019 23:59:14 +0000 (00:59 +0100)]
opts.c (default_options_table): Move -ftree-loop-distribute-patterns entry from -O3 or later section to -O2 or...

* opts.c (default_options_table): Move -ftree-loop-distribute-patterns
entry from -O3 or later section to -O2 or later section.
* doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the
option is enabled by default at -O2+ rather than just at -O3.

From-SVN: r279267

4 years agore PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp...
Jakub Jelinek [Wed, 11 Dec 2019 23:58:04 +0000 (00:58 +0100)]
re PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3769)

PR fortran/92899
* trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP,
do look through conversion on expr2 if any.

* testsuite/libgomp.fortran/atomic1.f90: New test.

From-SVN: r279266

4 years agore PR target/92723 (ICE in expand_shift_1, at expmed.c:2635)
Jakub Jelinek [Wed, 11 Dec 2019 23:49:30 +0000 (00:49 +0100)]
re PR target/92723 (ICE in expand_shift_1, at expmed.c:2635)

PR target/92723
* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
vect_internal_def, use oprnd1 as is, without trying to cast it.
Formatting fix.

* gcc.dg/vect/pr92723.c: New test.

From-SVN: r279265

4 years agoconfigure.ac: Factor out common cases for compare_exclusions.
Matthias Klose [Wed, 11 Dec 2019 20:59:35 +0000 (20:59 +0000)]
configure.ac: Factor out common cases for compare_exclusions.

2019-12-11  Matthias Klose  <doko@ubuntu.com>

        * configure.ac: Factor out common cases for compare_exclusions.
        * configure: Regenerate.

From-SVN: r279250

4 years agobuiltins.c (compute_objsize): Add an argument and set it to offset into destination.
Martin Sebor [Wed, 11 Dec 2019 19:50:43 +0000 (19:50 +0000)]
builtins.c (compute_objsize): Add an argument and set it to offset into destination.

gcc/ChangeLog:

* builtins.c (compute_objsize): Add an argument and set it to offset
into destination.
* builtins.h (compute_objsize): Add an argument.
* tree-object-size.c (addr_object_size): Add an argument and set it
to offset into destination.
(compute_builtin_object_size): Same.
* tree-object-size.h (compute_builtin_object_size): Add an argument.
* tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it
to offset into destination.
(maybe_warn_overflow): New function.
(handle_store): Call maybe_warn_overflow to issue warnings.

gcc/testsuite/ChangeLog:

* c-c++-common/Wstringop-overflow-2.c: Adjust text of expected messages.
* g++.dg/warn/Wstringop-overflow-3.C: Same.
* gcc.dg/Wstringop-overflow-17.c: Same.

From-SVN: r279248

4 years agore PR fortran/92897 ([Coarray] ICE in gfc_set_array_spec, at fortran/array.c:864)
Steven G. Kargl [Wed, 11 Dec 2019 19:28:57 +0000 (19:28 +0000)]
re PR fortran/92897 ([Coarray] ICE in gfc_set_array_spec, at fortran/array.c:864)

2019-12-11 Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/92897
* array.c (gfc_set_array_spec):  Remove invalid assert() triggered
by invalid Fortran code.

2019-12-11 Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/92897
* gfortran.dg/pr92897.f90: New test.

From-SVN: r279247

4 years agoMSP430: Add -fno-exceptions multilib
Jozef Lawrynowicz [Wed, 11 Dec 2019 19:19:50 +0000 (19:19 +0000)]
MSP430: Add -fno-exceptions multilib

ChangeLog:

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config-ml.in (msp430-*-*): Support --disable-no-exceptions configure
flag.

gcc/ChangeLog:

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use
crtbegin_no_eh.o if building for the C language.
[fno-exceptions]: Use crtbegin_no_eh.o if building for any language
except C.
(ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for
the C language.
[fno-exceptions]: Use crtend_no_eh.o if building for any language
except C.
* config/msp430/t-msp430: Add -fno-exceptions multilib.
* doc/install.texi: Document --disable-no-exceptions multilib configure
option.
* doc/sourcebuild.texi: Document exceptions_enabled effective target.

gcc/testsuite/ChangeLog:

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* lib/gcc-dg.exp: Add dg-prune messages for when exception handling is
disabled.
* lib/target-supports.exp (check_effective_target_exceptions_enabled):
New.

libgcc/ChangeLog:

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config.host: Add crt{begin,end}_no_eh.o to "extra_parts".
* config.host (msp430*-*-elf): Add crt{begin,end}_no_eh.o to
"extra_parts".

From-SVN: r279246

4 years agoIntroduce pretty_printer::clone vfunc
David Malcolm [Wed, 11 Dec 2019 19:06:39 +0000 (19:06 +0000)]
Introduce pretty_printer::clone vfunc

This patch provides a way to clone a pretty_printer.

This is needed so that we can capture text in a label_text and make
layout decisions based on it, using the policy of global_dc's printer,
whilst within a call to diagnostic_show_locus.  We can't print with
the pretty_printer itself within a call to diagnostic_show_locus since
it has partly-buffered content.

gcc/c-family/ChangeLog:
* c-pretty-print.c (c_pretty_printer::clone): New vfunc
implementation.
* c-pretty-print.h (c_pretty_printer::clone): New vfunc decl.

gcc/cp/ChangeLog:
* cxx-pretty-print.c (cxx_pretty_printer::clone): New vfunc
implementation.
* cxx-pretty-print.h (cxx_pretty_printer::clone): New vfunc decl.
* error.c (cxx_format_postprocessor::clone): New vfunc.

gcc/ChangeLog:
* pretty-print.c (pretty_printer::pretty_printer): New copy-ctor.
(pretty_printer::clone): New vfunc implementation.
* pretty-print.h (format_postprocessor::clone): New pure vfunc
decl.
(pretty_printer::pretty_printer): New copy-ctor decl.
(pretty_printer::clone): New vfunc decl.

From-SVN: r279244

4 years agolibgcc: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is true
Jozef Lawrynowicz [Wed, 11 Dec 2019 18:59:38 +0000 (18:59 +0000)]
libgcc: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is true

2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* crtstuff.c: Declare __dso_handle only if DEFAULT_USE_CXA_ATEXIT is
true.

From-SVN: r279243

4 years agofunction-tests.c: expose selftest::make_fndecl for use elsewhere
David Malcolm [Wed, 11 Dec 2019 18:58:56 +0000 (18:58 +0000)]
function-tests.c: expose selftest::make_fndecl for use elsewhere

This is used by new selftests in the analyzer patch kit.

gcc/ChangeLog:
* function-tests.c (selftest::make_fndecl): Make non-static.
* selftest.h (selftest::make_fndecl): New decl.

From-SVN: r279242

4 years agore PR c++/92869 (C++17 wrongly reports aggregate type as not-aggregate (when explicit...
Jakub Jelinek [Wed, 11 Dec 2019 18:44:02 +0000 (19:44 +0100)]
re PR c++/92869 (C++17 wrongly reports aggregate type as not-aggregate (when explicitly defaulted ctors are added))

PR c++/92869
* class.c (finish_struct): For C++17 and earlier, check
type_has_user_provided_or_explicit_constructor rather than
TYPE_HAS_USER_CONSTRUCTOR whether to set CLASSTYPE_NON_AGGREGATE.

* g++.dg/cpp0x/aggr3.C: New test.

From-SVN: r279241

4 years agoPR c++/92878 - Parenthesized init of aggregates in new-expression.
Marek Polacek [Wed, 11 Dec 2019 18:40:55 +0000 (18:40 +0000)]
PR c++/92878 - Parenthesized init of aggregates in new-expression.

Ville pointed out that our paren init of aggregates doesn't work for

  auto a = new A(1, 2, 3);

and I think it should:

A new-expression that creates an object of type T initializes that object
as follows:
...
-- Otherwise, the new-initializer is interpreted according to the
   initialization rules of [dcl.init] for direct-initialization.

so I think it follows that we should perform dcl.init#17.6.2.2.

This doesn't work with new[]; we have:
  error ("parenthesized initializer in array new");

* init.c (build_new_1): Handle parenthesized initialization of
aggregates in new-expression.

* g++.dg/cpp2a/paren-init20.C: New test.

From-SVN: r279240

4 years ago* g++.dg/cpp0x/initlist-new2.C: Clarify comment.
Jason Merrill [Wed, 11 Dec 2019 16:55:02 +0000 (11:55 -0500)]
* g++.dg/cpp0x/initlist-new2.C: Clarify comment.

From-SVN: r279239

4 years agoPR c++/92105 - decltype(decltype) error cascade.
Jason Merrill [Wed, 11 Dec 2019 16:51:14 +0000 (11:51 -0500)]
PR c++/92105 - decltype(decltype) error cascade.

The primary change here is to do the CPP_DECLTYPE replacement even when we
get an error, so we don't keep trying and giving the same parse error each
time.  We also commit to the tentative firewall parse more often, leading to
better diagnostics.

* parser.c (cp_parser_decltype_expr): Don't tentative_firewall here.
(cp_parser_decltype): Do it here.  Remember a non-tentative error.

From-SVN: r279237

4 years agoPR c++/57082 - new X{} and private destructor.
Jason Merrill [Wed, 11 Dec 2019 16:51:09 +0000 (11:51 -0500)]
PR c++/57082 - new X{} and private destructor.

build_new_1 already passes tf_no_cleanup to build_value_init, but in this
testcase we end up calling build_value_init by way of
build_special_member_call, so we need to pass it to that function as well.

* init.c (build_new_1): Also pass tf_no_cleanup to
build_special_member_call.

From-SVN: r279236

4 years agoPR c++/92774 - ICE with implicitly deleted operator<=>.
Jason Merrill [Wed, 11 Dec 2019 16:51:05 +0000 (11:51 -0500)]
PR c++/92774 - ICE with implicitly deleted operator<=>.

Missing error-recovery code.  While I was poking at this I also figured we
don't need to iterate over the members of a union.

* method.c (comp_info::~comp_info): Factor out of...
(build_comparison_op): Here.  Handle error return from build_new_op.

From-SVN: r279235

4 years ago[PR92843] [OpenACC] Fix dynamic reference counting for structured 'REFCOUNT_INFINITY'
Thomas Schwinge [Wed, 11 Dec 2019 16:49:27 +0000 (17:49 +0100)]
[PR92843] [OpenACC] Fix dynamic reference counting for structured 'REFCOUNT_INFINITY'

libgomp/
PR libgomp/92843
* oacc-mem.c (present_create_copy, delete_copyout): Fix dynamic
reference counting for structured 'REFCOUNT_INFINITY'.  Add some
assertions.
(goacc_insert_pointer, goacc_remove_pointer): Adjust accordingly.
* testsuite/libgomp.oacc-c-c++-common/pr92843-1.c: New file.
* testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Fix OpenACC.
* testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.

From-SVN: r279234

4 years ago[OpenACC] Consolidate 'GOACC_enter_exit_data' and its helper functions in 'libgomp...
Thomas Schwinge [Wed, 11 Dec 2019 16:49:17 +0000 (17:49 +0100)]
[OpenACC] Consolidate 'GOACC_enter_exit_data' and its helper functions in 'libgomp/oacc-mem.c'

libgomp/
* oacc-parallel.c (find_pointer, GOACC_enter_exit_data): Move...
* oacc-mem.c: ... here.
(gomp_acc_insert_pointer, gomp_acc_remove_pointer): Rename to
'goacc_insert_pointer', 'goacc_remove_pointer', and make 'static'.
* libgomp.h (gomp_acc_insert_pointer, gomp_acc_remove_pointer):
Remove.
* libgomp_g.h: Update.

From-SVN: r279233

4 years ago[OpenACC] Consolidate 'async'/'wait' code in 'libgomp/oacc-async.c'
Thomas Schwinge [Wed, 11 Dec 2019 16:49:08 +0000 (17:49 +0100)]
[OpenACC] Consolidate 'async'/'wait' code in 'libgomp/oacc-async.c'

libgomp/
* oacc-parallel.c (GOACC_wait, goacc_wait): Move...
* oacc-async.c: ... here.
* oacc-int.h (goacc_wait): Declare.
* libgomp_g.h: Update

From-SVN: r279232

4 years ago[PR92854] Add 'libgomp.oacc-c-c++-common/acc_map_data-device_already-*.c', 'libgomp...
Thomas Schwinge [Wed, 11 Dec 2019 16:48:59 +0000 (17:48 +0100)]
[PR92854] Add 'libgomp.oacc-c-c++-common/acc_map_data-device_already-*.c', 'libgomp.oacc-c-c++-common/acc_map_data-host_already-*.c'

... to document the status quo.

libgomp/
PR libgomp/92854
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-1.c:
New file.
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-device_already-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-3.c:
Likewise.

From-SVN: r279231

4 years ago[OpenACC] Initialize 'dynamic_refcount' whenever we initialize 'refcount'
Thomas Schwinge [Wed, 11 Dec 2019 16:48:44 +0000 (17:48 +0100)]
[OpenACC] Initialize 'dynamic_refcount' whenever we initialize 'refcount'

Cases missed in r261813 "Update OpenACC data clause semantics to the 2.5
behavior".

libgomp/
* target.c (gomp_load_image_to_device, omp_target_associate_ptr):
Initialize 'dynamic_refcount' whenever we initialize 'refcount'.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r279230