aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-12-16[Ada] Fix warning on _REENTRANTArnaud Charlet2-0/+6
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * socket.c: Shutdown warning. From-SVN: r279436
2019-12-16[Ada] Mark Deallocator as Favor_Top_LevelArnaud Charlet2-0/+5
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level. From-SVN: r279435
2019-12-16[Ada] AI12-0234/321 atomic operationsArnaud Charlet11-2/+620
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/s-aotase.adb, libgnat/s-aotase.ads, libgnat/s-atoope.ads, libgnat/s-atopar.adb, libgnat/s-atopar.ads, libgnat/s-atopex.adb, libgnat/s-atopex.ads: New files. * libgnat/s-atopri.ads: Add new intrinsics. * Makefile.rtl: Add new runtime files. * impunit.adb: Add new units to Ada 2020 list. From-SVN: r279434
2019-12-16[Ada] Remove new strict-alignment check added by AI12-0001Eric Botcazou2-16/+19
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Check_Strict_Alignment): Remove new check on Has_Aliased_Components for array types. From-SVN: r279433
2019-12-16[Ada] Crash on constrained container in generalized indexing operationEd Schonberg2-1/+13
2019-12-16 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_ch4.adb (Try_Container_Indexing): In the case of a derived container type, use the base type to look for candidate indexing operations, because the object may be a constrained subtype or itype with no explicit declaration. Candidate indexing operations are found in the same scope and list of declarations as the declaration of the base type. From-SVN: r279432
2019-12-16[Ada] Prototype implementastion of Ada2020 Map-reduce constructEd Schonberg10-5/+371
2019-12-16 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * scng.adb (Scan): In Ada2020, a left-bracket indicates the start of an homogenous aggregate. * par-ch4.adb (P_Reduction_Attribute_Reference): New procedure. (P_Aggregate): Recognize Ada2020 bracket-delimited aggregates. (P_Primary): Ditto. * par-util.adb (Comma_Present): Return false on a right bracket in Ada2020, indicating the end of an aggregate. * snames.ads-tmpl: Introduce Name_Reduce and Attribute Reduce. * sinfo.ads, sinfo.adb (Is_Homogeneous_Aggregate): New flag on aggregates, to designate an Ada2020 array or container aggregate that is bracket-delimited in the source. * sem_attr.adb (Analyze_Attribute): For attribute Reduce, verify that two arguments are present, and verify that the prefix is a stream or an object that is iterable (array or contrainer). (Resolve_Attribute): For attribute Reduce, resolve initial value with the type of the context. Type-checking of element type of prefix is performed after expansion. * exp_attr.adb (Expand_N_Attribute_Reference): For attribute Reduce, expand into a loop: a) If prefix is an aggregate with a single iterated component association, use its iterator specification to construct a loop, b) If prefix is a name, build a loop using an element iterator loop. * scans.ads: Add brackets tokens. From-SVN: r279431
2019-12-16[Ada] AI12-0001: Independence and Representation clauses for atomic objectsEric Botcazou13-272/+398
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to validate_size. (gnat_to_gnu_component_type): Likewise. (gnat_to_gnu_field): Likewise and pass string for error messages. (components_need_strict_alignment): Remove test on Is_Aliased and add test for the independence of the component. (validate_size): Add S1 and S2 string parameters and use them to give better error messages for fields. Tweak a couple of messages. * einfo.ads (Has_Independent_Components): Document more cases. (Is_Independent): Likewise. (Strict_Alignment): Document new semantics. * exp_ch9.adb (Install_Private_Data_Declarations): Also set the Is_Independent flag along with Is_Aliased on the renaming entity. * freeze.adb (Size_Known): Remove always-false test and add test for the strict-alignment on the record type. Remove redundant tests and add test for the strict-alignment on the component type. (Check_Strict_Alignment): Set the flag if the type is by-ref and remove now redundant conditions. Set the flag on an array type if it has aliased components. In the record type case, do not set type for C_Pass_By_Copy convention. (Freeze_Array_Type): Move code checking for conflicts between representation aspects and clauses to before specific handling of packed array types. Give a warnind instead of an error for a conflict with pragma Pack. Do not test Has_Pragma_Pack for the specific handling of packed array types. (Freeze_Record_Type): Move error checking of representation clause to... (Freeze_Entity): ...here after Check_Strict_Alignment is called. * sem_aggr.adb (Array_Aggr_Subtype): Also set the Is_Independent flag along with Is_Aliased on the Itype. * sem_ch13.adb (Check_Record_Representation_Clause): Do not set the RM size for a strict-alignment type. * sem_ch3.adb (Add_Interface_Tag_Components): Also set the Is_Independent flag along with Is_Aliased on the tag. (Add_Interface_Tag_Components): Likewise on the offset. (Analyze_Component_Declaration): Likewise on the component. (Analyze_Object_Declaration): Likewise on the object. (Constrain_Array): Likewise on the array. (Record_Type_Declaration: Likewise on the tag. (Array_Type_Declaration): Also set the Has_Independent_Components flag along with Has_Aliased_Components on the array. (Copy_Array_Base_Type_Attributes): Copy Has_Independent_Components. (Copy_Array_Subtype_Attributes): Copy Is_Atomic, Is_Independent and Is_Volatile_Full_Access. (Analyze_Iterator_Specification): Set Is_Independent on the loop variable according to Independent_Components on the array. * sem_ch5.adb: Likewise. * sem_ch6.adb (Process_Formals): Also set the Is_Independent flag along with Is_Aliased on the formal. gcc/testsuite/ * gnat.dg/specs/clause_on_volatile.ads, gnat.dg/specs/size_clause3.ads: Update expected diagnostics. From-SVN: r279430
2019-12-16[Ada] Fully propagate representation aspects through renamingEric Botcazou5-134/+216
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch8.adb (Analyze_Object_Renaming): Set Atomic, Independent and Volatile_Full_Access aspects on the entity of the renaming the same way as the Volatile aspect is set. * sem_util.ads (Is_Atomic_Object_Entity): Move declaration to... (Is_Independent_Object): New function. (Is_Volatile_Full_Access_Object): Likewise. * sem_util.adb (Is_Atomic_Object_Entity): ...here. (Prefix_Has_Atomic_Components): Minor tweak. (Is_Atomic_Object): Test Is_Atomic on the Etype uniformly. (Is_Atomic_Or_VFA_Object): Call Is_Volatile_Full_Access_Object. (Is_Independent_Object): New predicate. (Is_Subcomponent_Of_Atomic_Object): Remove redundant test. (Is_Volatile_Full_Access_Object): New predicate. (Is_Volatile_Prefix): Rename into... (Prefix_Has_Volatile_Components): ... and call Is_Volatile_Object. (Object_Has_Volatile_Components): Delete. (Is_Volatile_Object): Simplify. * gcc-interface/trans.c (node_is_volatile_full_access): Adjust comment. From-SVN: r279429
2019-12-16[Ada] Syntax error on improperly indented imported subprogramBob Duff13-187/+232
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * par.adb: Add Scopes function to do range checking on the scope stack. Call Scopes all over the parser. Add SIS_Aspect_Import_Seen flag. * par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen to False at the start, and check it at the end. * par-ch13.adb (Get_Aspect_Specifications): Set SIS_Aspect_Import_Seen to True when appropriate. * par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb, par-util.adb: Call Scopes. From-SVN: r279428
2019-12-16[Ada] Fix couple of oversights in the implementation of AI12-0128Eric Botcazou4-143/+203
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_prag.adb (Atomic_Components): Remove local variable and fix consistency issues. Call Component_Type on the Etype of E. (Independent_Components): Remove local variable. * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): Properly deal with prefixes that are access values. * gcc-interface/trans.c (atomic_acces_t): New enumeral type. (node_is_atomic) <N_Indexed_Component>: Test the prefix. (node_has_volatile_full_access): Rename into... (node_is_volatile_full_access): ...this. (node_is_component): New predicare. (gnat_strip_type_conversion): Delete. (outer_atomic_access_required_p): Likewise. (atomic_access_required_p): Rename into... (get_atomic_access): ...this. Implement the 3 different semantics of Atomic and Volatile_Full_Access. (simple_atomic_access_required_p): New predicate. (Call_to_gnu): Remove outer_atomic_access parameter and change the type of atomic_access parameter to atomic_acces_t. Replace call to atomic_access_required_p with simple_atomic_access_required_p for the in direction and call get_atomic_access for the out direction instead of [outer_]atomic_access_required_p. (lhs_or_actual_p): Constify local variables. (present_in_lhs_or_actual_p): Likewise. (gnat_to_gnu) <N_Identifier>: Replace call to atomic_access_required_p with simple_atomic_access_required_p. <N_Explicit_Dereference>: Likewise. <N_Indexed_Component>: Likewise. <N_Selected_Component>: Likewise. <N_Assignment_Statement>: Call get_atomic_access for the name instead of [outer_]atomic_access_required_p. Adjust call to Call_to_gnu. <N_Function_Call>: Adjust call to Call_to_gnu. (get_controlling_type): Fix typo in comment. From-SVN: r279427
2019-12-16[Ada] Export the Ada version through the C interfaceEric Botcazou3-2/+22
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * fe.h (Ada_Version_Type): New typedef. (Ada_Version): Declare. * opt.ads (Ada_Version_Type): Add Convention C and WARNING line. (Ada_Version): Add WARNING line. (Exception_Mechanism_Type): Likewise. From-SVN: r279426
2019-12-16[Ada] Minor reformatting and U.S. spelling adjustmentGary Dismukes3-12/+16
2019-12-16 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * checks.adb, sem_util.adb: Minor reformatting and U.S. spelling adjustment. From-SVN: r279425
2019-12-16[Ada] Better error message for "is null" subunitBob Duff2-0/+20
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * sem_ch10.adb (Analyze_Subunit): Give an error if the subunit is not a proper body. This hides the confusing "duplicate body" message that was previously given. From-SVN: r279424
2019-12-16[Ada] Expand renamings of subcomponents of an atomic or VFA objectEric Botcazou2-5/+25
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document third special case of renamings requiring special handling. (Evaluation_Required): Return true for an atomic or VFA prefix. From-SVN: r279423
2019-12-16[Ada] Crash on conversion in branch of if-expressionEd Schonberg2-1/+26
2019-12-16 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * checks.adb (Apply_Float_Conversion_Check): Use node of type conversion and not its parent, when inserting the declaration for the temporary that hold the result of the conversion. Previously the declaration was inserted above the parent of the conversion, apparently as a small optimization for the subsequent traversal in Insert_Actions. Unfortunately a similar optimization takes place in Insert_Actions, assuming that the insertion point must be above the expression that creates the actions to insert. This is not correct in the presence of conditional expressions (i.e. since Ada2012), where the insertion must be in the list of actions attached to the current alternative. From-SVN: r279422
2019-12-16[Ada] Bad warning: Size in Compile_Time_Error in nested instanceBob Duff2-2/+12
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we still need Size_Known_At_Compile_Time, because when the size really is known, sometimes only one or the other of these is True. From-SVN: r279421
2019-12-16[Ada] Small consistency fix for Volatile_Full_Access objectsEric Botcazou3-7/+51
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for components whose type is Volatile_Full_Access or which are subject to the aspect/pragma individually. * sem_util.ads (Is_Atomic_Object_Entity): Small comment fix. From-SVN: r279420
2019-12-16[Ada] Do not issue restriction violations on ignored ghost codeYannick Moy3-3/+16
2019-12-16 Yannick Moy <moy@adacore.com> gcc/ada/ * exp_ch6.adb: Fix comment. * sem_res.adb (Resolve_Call): Do not check No_Recursion restriction or indirectly No_Secondary_Stack restriction, when inside an ignored ghost subprogram. From-SVN: r279419
2019-12-16[Ada] AI12-0208 Support for Ada.Numerics.Big_Numbers.Big_Integers and Big_RealsArnaud Charlet13-1100/+3454
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020 units. * Makefile.rtl: Enable new file. * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads, libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads, libgnat/a-nubinu.ads: New files. Provide default standalone implementation of Ada.Numerics.Big_Numbers.Big_* based on System.Generic_Bignum. * libgnat/a-nbnbin__gmp.adb: Alternate implementation of Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled for now. * libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple wrapper on top of s-genbig.ads. * libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making s-bignum generic for reuse in Ada.Numerics.Big_Numbers. From-SVN: r279418
2019-12-16[Ada] Correct documentation of -gnatw_C switchBob Duff3-2/+8
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Correct documentation of -gnatw_C switch * gnat_ugn.texi: Regenerate. From-SVN: r279417
2019-12-16[Ada] Reword the impact of -minimal on the debuggerJoel Brobecker3-2/+15
2019-12-16 Joel Brobecker <brobecker@adacore.com> gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (_Switches_for_gnatbind): Reword the section explaining the impact of -minimal on debugging. * gnat_ugn.texi: Regenerate. From-SVN: r279416
2019-12-16[Ada] Typo fixes and minor reformattingGary Dismukes3-8/+17
2019-12-16 Gary Dismukes <dismukes@adacore.com> gcc/ada/ * libgnat/g-exptty.adb, libgnat/g-exptty.ads: Typo fixes and minor reformatting. From-SVN: r279415
2019-12-16[Ada] Implement RM C.6(19) clause entirely in the front-endEric Botcazou5-76/+68
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): New predicate. (Expand_Actuals): Use it to decide whether to add call by copy code as per the RM C.6(19) clause. * fe.h (Is_Atomic_Object): Remove. (Is_Volatile_Object): Likewise. * sem_util.ads (Is_Atomic_Object): Remove WARNING note. (Is_Volatile_Object): Likewise. * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): Delete. (Call_to_gnu): Do not implement the RM C.6(19) clause. From-SVN: r279414
2019-12-16[Ada] Validate_Access_Subprogram_Instance: check if not null types matchGhjuvan Lacambre2-0/+11
2019-12-16 Ghjuvan Lacambre <lacambre@adacore.com> gcc/ada/ * sem_ch12.adb (Validate_Access_Subprogram_Instance): Add Can_Never_Be_Null checks. From-SVN: r279413
2019-12-16[Ada] Implement new legality rules introduced in C.6(13) by AI12-0128Eric Botcazou9-161/+394
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document extension of the no-aliasing rule to any subcomponent. * freeze.adb (Freeze_Object_Declaration): Small comment tweak. (Freeze_Record_Type): Do not deal with delayed aspect specifications for components here but... (Freeze_Entity): ...here instead. * sem_ch12.adb (Instantiate_Object): Improve wording of errors given for legality rules in C.6(12) and implement the new rule in C.6(13). * sem_res.adb (Resolve_Actuals): Likewise. * sem_prag.adb (Check_Atomic_VFA): New procedure implementing the new legality rules in C.6(13). (Process_Atomic_Independent_Shared_Volatile): Call Check_Atomic_VFA to check the legality rules. Factor out code marking types into... (Mark_Type): ...this new procedure. (Check_VFA_Conflicts): Do not check the legality rules here. (Pragma_Atomic_Components): Call Check_Atomic_VFA on component type. * sem_util.ads (Is_Subcomponent_Of_Atomic_Object): Declare. * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): New predicate. * gnat_rm.texi: Regenerate. From-SVN: r279412
2019-12-16Fix PR92950: Wrong code emitted for movv1qiAndreas Krebbel4-7/+40
The backend emits 16 bit memory loads for single element character vector. As a result the character will not be right justified in the GPR. gcc/ChangeLog: 2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> PR target/92950 * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy, and lhrl with llc. gcc/testsuite/ChangeLog: 2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> PR target/92950 * gcc.target/s390/vector/pr92950.c: New test. From-SVN: r279410
2019-12-15Add a couple int128_t bit-field testcases.Andrew Pinski4-0/+49
2019-12-15 Andrew Pinski <apinski@marvell.com> * gcc.c-torture/compile/bitfield-1.c: New test. * gcc.c-torture/compile/bitfield-endian-1.c: New test. * gcc.c-torture/compile/bitfield-endian-2.c: New test. From-SVN: r279409
2019-12-16Daily bump.GCC Administrator1-1/+1
From-SVN: r279408
2019-12-15Daily bump.GCC Administrator1-1/+1
From-SVN: r279402
2019-12-14extend.texi (attribute access): Correct typos.Martin Sebor2-10/+14
gcc/ChangeLog: * doc/extend.texi (attribute access): Correct typos. From-SVN: r279398
2019-12-14re PR ipa/92357 (ICE in IPA pass fnsummary in openmp offload)Jakub Jelinek2-9/+15
PR ipa/92357 * ipa-fnsummary.c (ipa_fn_summary_write): Use lto_symtab_encoder_iterator with lsei_start_function_in_partition and lsei_next_function_in_partition instead of walking all cgraph nodes in encoder. From-SVN: r279395
2019-12-14re PR tree-optimization/92930 (GCC incorrectly optimizes away ↵Jakub Jelinek4-28/+59
__builtin_apply() calls) PR tree-optimization/92930 * ipa-pure-const.c (special_builtin_state): Don't handle BUILT_IN_APPLY. Formatting fixes. (check_call): Formatting fixes. * gcc.dg/tree-ssa/pr92930.c: New test. From-SVN: r279394
2019-12-14[Darwin, PPC] Use Darwin9 bundle header for Rosetta builds.Iain Sandoe3-11/+22
On Darwin10 it's possible to make a 32b PPC build using the 'Rosetta' emulator. However, these builds need to make use of Darwin9 crts (for exes, dylibs and bundles). This adds the change to cater for bundles. gcc/ChangeLog: 2019-12-14 Iain Sandoe <iain@sandoe.co.uk> * config/darwin.h (DARWIN_EXTRA_SPECS): Add new bundle spec. (DARWIN_BUNDLE1_SPEC): New. (STARTFILE_SPEC): Use darwin bundle spec. * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. (DARWIN_DYLIB1_SPEC): Delete duplicate. From-SVN: r279393
2019-12-13PR middle-end/91582 - missing heap overflow detection for strcpyMartin Sebor22-392/+1543
PR middle-end/91582 - missing heap overflow detection for strcpy PR middle-end/92868 - ICE: tree check: expected integer_cst, have ssa_name gcc/ChangeLog: PR middle-end/91582 PR middle-end/92868 * builtins.c (addr_decl_size): New function. (gimple_call_alloc_size): Add arguments. (compute_objsize): Add an argument. Set *PDECL even for allocated objects. Correct checking for negative wide_int. Correct handling of negative outer offsets into unknown regions or with unknown inner offsets. Extend offsets to at most sizetype precision. Only handle constant subobject sizes. * builtins.h (gimple_call_alloc_size): Add arguments. * tree.c (component_ref_size): Always return sizetype. * tree-ssa-strlen.c (strinfo::alloc): New member. (get_addr_stridx): Add argument. (get_stridx): Use ptrdiff_t. Add argument. (new_strinfo): Set new member. (get_string_length): Handle alloca and VLA. (dump_strlen_info): Dump more state. (maybe_invalidate): Print more info. Decrease indentation. (unshare_strinfo): Set new member. (valid_builtin_call): Handle alloca and VLA. (maybe_warn_overflow): Check and set no-warning bit. Improve handling of offsets. Print allocated objects. (handle_builtin_strlen): Handle strinfo records with null lengths. (handle_builtin_strcpy): Add argument. Call maybe_warn_overflow. (is_strlen_related_p): Handle dynamically allocated objects. (get_range): Add argument. (handle_builtin_malloc): Rename... (handle_alloc): ...to this and handle all allocation functions. (handle_builtin_memset): Call maybe_warn_overflow. (count_nonzero_bytes): Handle more MEM_REF forms. (strlen_check_and_optimize_call): Call handle_alloc_call. Pass arguments to more callees. (handle_integral_assign): Add argument. Create strinfo entries for MEM_REF assignments. (check_and_optimize_stmt): Handle more MEM_REF forms. gcc/testsuite/ChangeLog: PR middle-end/91582 * c-c++-common/Wrestrict.c: Adjust expected warnings. * gcc/testsuite/c-c++-common/Wstringop-truncation-4.c: Enable more warnings. * gcc/testsuite/c-c++-common/Wstringop-truncation.c: Remove an xfail. * gcc.dg/Warray-bounds-46.c: Disable -Wstringop-overflow. * gcc.dg/Warray-bounds-47.c: Same. * gcc.dg/Warray-bounds-52.c: New test. * gcc.dg/Wstringop-overflow-27.c: New test. * gcc.dg/Wstringop-overflow-28.c: New test. * gcc.dg/Wstringop-overflow-29.c: New test. * gcc.dg/attr-alloc_size.c (test): Disable -Warray-bounds. * gcc.dg/attr-copy-2.c: Adjust expected warnings. * gcc.dg/builtin-stringop-chk-5.c: Adjust text of expected messages. * gcc.dg/strlenopt-86.c: Relax test. * gcc.target/i386/pr82002-1.c: Prune expected warnings. From-SVN: r279392
2019-12-14Daily bump.GCC Administrator1-1/+1
From-SVN: r279391
2019-12-13[Darwin, PPC] Use Darwin9 dylib header for Rosetta builds.Iain Sandoe2-0/+10
On Darwin10 it's possible to make a 32b PPC build using the 'Rosetta' emulator. However, these builds need to make use of Darwin9 crts (for exes and dylibs). This adds the change to cater for dylibs. gcc/ChangeLog: 2019-12-13 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (DARWIN_DYLIB1_SPEC): New. From-SVN: r279381
2019-12-13lto-streamer-in.c (input_function): Add node parameter.Jan Hubicka2-6/+9
* lto-streamer-in.c (input_function): Add node parameter. (lto_read_body_or_constructor): Use it. From-SVN: r279379
2019-12-13modulo-sched: fix branch rescheduling issue (PR92591)Roman Zhuykov5-15/+53
PR rtl-optimization/92591 * modulo-sched.c (ps_add_node_check_conflicts): Improve checking for history > 0 case. testsuite: PR rtl-optimization/92591 * gcc.dg/pr92951-1.c: New test. * gcc.dg/pr92951-2.c: New test. From-SVN: r279377
2019-12-13modulo-sched: fix parameters usage and their rangesRoman Zhuykov3-14/+19
* 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
2019-12-13modulo-sched: speed up DDG analysis (PR90001)Roman Zhuykov3-94/+87
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-13Sub-dword vector multiply for amdgcnAndrew Stubbs2-11/+18
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
2019-12-13Fix merging of common traget info.Jan Hubicka2-33/+151
* ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common targets. From-SVN: r279373
2019-12-13Sub-dword vector extend and truncate for amdgcnAndrew Stubbs3-34/+169
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[AArch64] Enable CLI for Armv8.6-a: armv8.6-a, i8mm and bf16Dennis Zhang8-26/+178
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
2019-12-13re PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector ↵Jakub Jelinek4-1/+45
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[Ada] Minor rewording of one sentenceGary Dismukes3-4/+10
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[Ada] Unnesting and annex EArnaud Charlet2-2/+10
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[Ada] implementation_defined_pragmas.rst: Update Initialize_Scalars docsGhjuvan Lacambre3-4/+14
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[Ada] Spurious error on precondition of subprogram instantiationJavier Miranda2-1/+12
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[Ada] Better error message for aliased formal and atomic actualEric Botcazou2-1/+7
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