Age | Commit message (Collapse) | Author | Files | Lines |
|
* modulo-sched.c (sms_schedule): Use param_sms_max_ii_factor
value instead of macro. Adjust comment.
(sms_schedule_by_order): Use parameter value without macro.
* params.opt: Add ranges for modulo scheduler parameters,
set param_sms_max_ii_factor = 2 by default.
From-SVN: r279376
|
|
PR rtl-optimization/90001
* ddg.c (create_ddg): Init max_dist array for each node.
(free_ddg): Free max_dist array.
(create_ddg_edge): Use bool field instead of aux union.
(set_recurrence_length): Use prepared max_dist information instead
of calling longest_simple_path.
(create_scc): Remove graph argument, fill node's aux.count with
SCC id, and move set_recurrence_length call to...
(create_ddg_all_sccs): ...here, after filling all max_dist arrays
using Floyd–Warshall-like algorithm.
(update_dist_to_successors): Remove the whole function.
(longest_simple_path): Likewise.
* ddg.h (struct ddg_node): Add max_dist pointer.
(struct ddg_edge): Use bool field instead of unused aux union.
From-SVN: r279375
|
|
2019-12-13 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/gcn/gcn-valu.md (mulv64si3<exec>): Rename to ...
(mul<mode>3<exec>): ... this, and implement sub-dword patterns.
(mulv64si3_dup<exec>): Rename to ...
(mul<mode>3_dup<exec>): ... this, and implement sub-dword patterns.
From-SVN: r279374
|
|
* ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common
targets.
From-SVN: r279373
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2019-12-13 Piotr Trojanek <trojanek@adacore.com>
gcc/ada/
* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.
From-SVN: r279358
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2019-12-13 Bob Duff <duff@adacore.com>
gcc/ada/
* rtsfind.ads: Minor comment fix.
From-SVN: r279345
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
* typeck.c (cp_build_binary_op): Handle error from spaceship_type.
From-SVN: r279331
|
|
From-SVN: r279330
|
|
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
|
|
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
|
|
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
|
|
* 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
|
|
* 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
|
|
execution of function call parameters.
* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
of execution of function call parameters.
From-SVN: r279306
|
|
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
|
|
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
|