diff --git a/ChangeLog b/ChangeLog index 5fb0b87be34..b1a108be82a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2021-07-05 Iain Sandoe + + * Makefile.def: Add dsymutil defs. + * Makefile.in: Regenerated. + * Makefile.tpl: Add dsymutil to flags. + * configure: Regenerated. + * configure.ac: Add dsymutil to target and build recipes. + 2021-07-01 Ankur Saini * MAINTAINERS: Add myself for write after approval. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 88620d1d6ec..4e6b8744ae5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,93 @@ +2021-07-05 Jeff Law + + * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to + generate condition code aware RTL directly. + +2021-07-05 Andrew Pinski + + PR tree-optimization/101039 + * match.pd (A CMP 0 ? A : -A): New patterns. + * tree-ssa-phiopt.c (abs_replacement): Delete function. + (tree_ssa_phiopt_worker): Don't call abs_replacement. + Update comment about abs_replacement. + +2021-07-05 Andrew Pinski + + * tree-ssa-phiopt.c (gimple_simplify_phiopt): + If "A ? B : C" fails to simplify, try "(!A) ? C : B". + +2021-07-05 Andrew Pinski + + * tree-ssa-phiopt.c (match_simplify_replacement): + Add early_p argument. Call gimple_simplify_phiopt + instead of gimple_simplify. + (tree_ssa_phiopt_worker): Update call to + match_simplify_replacement and allow unconditionally. + (phiopt_early_allow): New function. + (gimple_simplify_phiopt): New function. + +2021-07-05 Andrew Pinski + + PR middle-end/101237 + * fold-const.c (negate_expr_p): Remove call to element_mode + and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS, + HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS. + (fold_negate_expr_1): Likewise. + (const_unop): Likewise. + (fold_cond_expr_with_comparison): Likewise. + (fold_binary_loc): Likewise. + (fold_ternary_loc): Likewise. + (tree_call_nonnegative_warnv_p): Likewise. + * match.pd (-(A + B) -> (-B) - A): Likewise. + +2021-07-05 Iain Sandoe + + * configure.ac: Handle --with-dsymutil in the same way as we + do for the assembler and linker. (DEFAULT_DSYMUTIL): New. + Extract the type and version for the dsymutil configured or + found by the default searches. + * config.in: Regenerated. + * configure: Regenerated. + * collect2.c (do_dsymutil): Handle locating dsymutil in the + same way as for the assembler and linker. + * config/darwin.h (DSYMUTIL): Delete. + * gcc.c: Report a configured dsymutil correctly. + * exec-tool.in: Allow for dsymutil. + +2021-07-05 Uroš Bizjak + + * config/i386/i386-expand.c (ix86_split_mmx_punpck): + Handle V4QI and V2HI modes. + (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. + Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. + (expand_vec_perm_pshufb): Rewrite to use switch statemets. + Handle 4-byte dual operands with TARGET_XOP and single operands + with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and + mmx_pshufbv4qi3 for TARGET_SSSE3. + (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. + (expand_vec_perm_interleave2): Allow 4-byte vector modes. + (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. + (expand_vec_perm_even_odd_1): Handle V4QI mode. + (expand_vec_perm_broadcast_1): Handle V4QI mode. + (ix86_vectorize_vec_perm_const): Handle V4QI mode. + * config/i386/mmx.md (mmx_ppermv32): New insn pattern. + (mmx_pshufbv4qi3): Ditto. + (*mmx_pblendw32): Ditto. + (*mmx_pblendw64): Rename from *mmx_pblendw. + (mmx_punpckhbw_low): New insn_and_split pattern. + (mmx_punpcklbw_low): Ditto. + +2021-07-05 Richard Biener + + * tree-vect-loop-manip.c (vect_loop_versioning): Do not + set LOOP_C_INFINITE on the vectorized loop. + +2021-07-05 Richard Biener + + PR middle-end/101291 + * cfgloopmanip.c (loop_version): Set the loop copy of the + versioned loop to the new loop. + 2021-07-04 Iain Sandoe PR target/100269 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 7596b54d476..740061aaec4 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20210705 +20210706 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 923c8a6fcf5..d1116c907dc 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,368 @@ +2021-07-05 Pierre-Marie de Rodat + + * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate. + +2021-07-05 Piotr Trojanek + + * sem_prag.adb (Analyze_Depends_In_Decl_Part): Reject overlays + in Depends and Refined_Depends contracts. + (Analyze_Global_In_Decl_Part): Likewise for Global and + Refined_Global. + (Analyze_Initializes_In_Decl_Part): Likewise for Initializes + (when appearing both as a single item and as a initialization + clause). + * sem_util.ads (Ultimate_Overlaid_Entity): New routine. + * sem_util.adb (Report_Unused_Body_States): Ignore overlays. + (Ultimate_Overlaid_Entity): New routine. + +2021-07-05 Claire Dross + + * libgnat/a-cfdlli.ads, libgnat/a-cfdlli.adb + libgnat/a-cfinve.ads, libgnat/a-cfinve.adb, + libgnat/a-cofove.ads, libgnat/a-cofove.adb, + libgnat/a-coboho.ads, libgnat/a-coboho.adb (Constant_Reference): + Get a read-only access to an element of the container. + (At_End): Ghost functions used to express pledges in the + postcondition of Reference. + (Reference): Get a read-write access to an element of the + container. + * libgnat/a-cfhama.ads, libgnat/a-cfhama.adb, + libgnat/a-cforma.ads, libgnat/a-cforma.adb: The full view of the + Map type is no longer a tagged type, but a wrapper over this + tagged type. This is to avoid issues with dispatching result in + At_End functions. + (Constant_Reference): Get a read-only access to an element of + the container. + (At_End): Ghost functions used to express pledges in the + postcondition of Reference. + (Reference): Get a read-write access to an element of the + container. + * libgnat/a-cfhase.ads, libgnat/a-cfhase.adb, + libgnat/a-cforse.ads, libgnat/a-cforse.adb: The full view of the + Map type is no longer a tagged type, but a wrapper over this + tagged type. + (Constant_Reference): Get a read-only access to an element of + the container. + * libgnat/a-cofuse.ads, libgnat/a-cofuve.ads (Copy_Element): + Expression function used to cause SPARK to make sure + Element_Type is copiable. + * libgnat/a-cofuma.ads (Copy_Key): Expression function used to + cause SPARK to make sure Key_Type is copiable. + (Copy_Element): Expression function used to cause SPARK to make + sure Element_Type is copiable. + +2021-07-05 Yannick Moy + + * sem_prag.adb (Analyze_Global_Item): Adapt to update SPARK RM + rule. + +2021-07-05 Arnaud Charlet + + * Make-generated.in: Add -f switch to ensure cp will never fail. + +2021-07-05 Steve Baird + + * exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): When + building the assignment statement corresponding to the default + expression for a component, we make a copy of the expression. + When making that copy (and if we have seen a component that + requires late initialization), pass a Map parameter into the + call to New_Copy_Tree to redirect references to the type to + instead refer to the _Init formal parameter of the init proc. + This includes hoisting the declaration of Has_Late_Init_Comp out + one level so that it becomes available to Build_Assignment. + (Find_Current_Instance): Return True for other kinds of current + instance references, instead of just access-valued attribute + references such as T'Access. + * sem_util.adb (Is_Aliased_View): Return True for the _Init + formal parameter of an init procedure. The changes in + exp_ch3.adb can have the effect of replacing a "T'Access" + attribute reference in an init procedure with an "_Init'Access" + attribute reference. We want such an attribute reference to be + legal. However, we do not simply mark the formal parameter as + being aliased because that might impact callers. + (Is_Object_Image): Return True if Is_Current_Instance returns + True for the prefix of an Image (or related attribute) attribute + reference. + +2021-07-05 Piotr Trojanek + + * exp_ch3.adb (Stream_Operation_OK): Reuse + Is_Concurrent_Interface. + * sem_ch3.adb (Analyze_Interface_Declaration, + Build_Derived_Record_Type): Likewise. + * sem_ch6.adb (Check_Limited_Return): Likewise. + * sem_util.adb (Is_Concurrent_Interface): Don't call + Is_Interface because each of the Is_Protected_Interface, + Is_Synchronized_Interface and Is_Task_Interface calls it anyway. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch6.adb (Check_Limited_Return): Replace Comes_From_Source + with Comes_From_Extended_Return_Statement. + +2021-07-05 Steve Baird + + * libgnat/a-stobbu.adb, libgnat/a-stobbu.ads, + libgnat/a-stobfi.adb, libgnat/a-stobfi.ads, + libgnat/a-stoubu.adb, libgnat/a-stoubu.ads, + libgnat/a-stoufi.adb, libgnat/a-stoufi.ads, + libgnat/a-stoufo.adb, libgnat/a-stoufo.ads, + libgnat/a-stouut.adb, libgnat/a-stouut.ads, + libgnat/a-stteou.ads: Delete files. + * Makefile.rtl, impunit.adb: Remove references to deleted files. + +2021-07-05 Piotr Trojanek + + * sem_util.adb (Has_Compatible_Alignment_Internal): If the + prefix of the Address expression is an entire object with a + known alignment, then skip checks related to its size. + +2021-07-05 Doug Rupp + + * libgnat/s-os_lib.ads: Import OS_Time comparison ops as + intrinsic. + * libgnat/s-os_lib.adb: Remove OS_TIme comparison ops + implementation. + +2021-07-05 Doug Rupp + + * libgnat/s-os_lib.ads: Add some comments about time_t. + * libgnat/s-os_lib.adb (GM_Split/To_GM_Time): Rename formal to + P_OS_Time. + (GM_Time_Of/To_OS_Time): Likewise. + +2021-07-05 Ghjuvan Lacambre + + * sem_res.adb (Resolve): Insert minus sign if needed. + +2021-07-05 Steve Baird + + * exp_put_image.adb: + (Enable_Put_Image, Preload_Root_Buffer_Type): Revert to querying + the -gnatd_z switch, as opposed to testing whether Ada_Version >= Ada_2022. + +2021-07-05 Justin Squirek + + * checks.adb (Accessibility_Checks_Suppressed): Add check + against restriction No_Dynamic_Accessibility_Checks. + (Apply_Accessibility_Check): Add assertion to check restriction + No_Dynamic_Accessibility_Checks is not active. + * debug.adb: Add documentation for new debugging switch to + control which accessibility model gets employed under + restriction No_Dynamic_Accessibility_Checks. + * exp_attr.adb (Expand_N_Attribute_Reference): Disable dynamic + accessibility check generation when + No_Dynamic_Accessibility_Checks is active. + * exp_ch4.adb (Apply_Accessibility_Check): Skip check generation + when restriction No_Dynamic_Accessibility_Checks is active. + (Expand_N_Allocator): Disable dynamic accessibility checks when + No_Dynamic_Accessibility_Checks is active. + (Expand_N_In): Disable dynamic accessibility checks when + No_Dynamic_Accessibility_Checks is active. + (Expand_N_Type_Conversion): Disable dynamic accessibility checks + when No_Dynamic_Accessibility_Checks is active. + * exp_ch5.adb (Expand_N_Assignment_Statement): Disable + alternative accessibility model calculations when computing a + dynamic level for a SAOAAT. + * exp_ch6.adb (Add_Call_By_Copy_Code): Disable dynamic + accessibility check generation when + No_Dynamic_Accessibility_Checks is active. + (Expand_Branch): Disable alternative accessibility model + calculations. + (Expand_Call_Helper): Disable alternative accessibility model + calculations. + * restrict.adb, restrict.ads: Add new restriction + No_Dynamic_Accessibility_Checks. + (No_Dynamic_Accessibility_Checks_Enabled): Created to test when + experimental features (which are generally incompatible with + standard Ada) can be enabled. + * sem_attr.adb (Safe_Value_Conversions): Add handling of new + accessibility model under the restriction + No_Dynamic_Accessibility_Checks. + * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): + Disallow new restriction No_Dynamic_Accessibility_Checks from + being exclusively specified within a body or subunit without + being present in a specification. + * sem_res.adb (Check_Fully_Declared_Prefix): Minor comment + fixup. + (Valid_Conversion): Omit implicit conversion checks on anonymous + access types and perform static checking instead when + No_Dynamic_Accessibility_Checks is active. + * sem_util.adb, sem_util.ads (Accessibility_Level): Add special + handling of anonymous access objects, formal parameters, + anonymous access components, and function return objects. + (Deepest_Type_Access_Level): When + No_Dynamic_Accessibility_Checks is active employ an alternative + model. Add paramter Allow_Alt_Model to override the new behavior + in certain cases. + (Type_Access_Level): When No_Dynamic_Accessibility_Checks is + active employ an alternative model. Add parameter + Allow_Alt_Model to override the new behavior in certain cases. + (Typ_Access_Level): Created within Accessibility_Level for + convenience. + * libgnat/s-rident.ads, snames.ads-tmpl: Add handing for + No_Dynamic_Accessibility_Checks. + +2021-07-05 Doug Rupp + + * adaint.h (__gnat_set_file_time_name): Use OS_Time. + * adaint.c (__gnat_set_file_time_name): Likewise. + +2021-07-05 Doug Rupp + + * adaint.h (OS_Time): typedef as long long. + * osint.adb (Underlying_OS_Time): Declare as 64-bit signed type. + * libgnat/s-os_lib.adb ("<"): Compare OS_Time as + Long_Long_Integer. + ("<="): Likewise. + (">"): Likewise. + (">="): Likewise. + * libgnat/s-os_lib.ads (OS_Time): Declare as 64-bit signed type. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch3.adb (Check_Abstract_Overriding): Post error message on + renaming node. + +2021-07-05 Yannick Moy + + * libgnat/a-uncdea.ads: Add Depends/Post to + Ada.Unchecked_Deallocation. + * sem_ch4.adb (Analyze_Allocator): Remove checking of allocator + placement. + * sem_res.adb (Flag_Object): Same. + +2021-07-05 Ghjuvan Lacambre + + * aspects.ads: Add GNAT_Annotate aspect. + * gnat1drv.adb (Adjust_Global_Switches): Stop defining + Name_Gnat_Annotate as an alias of Name_Annotate. + * snames.ads-tmpl: Define Gnat_Annotate. + * par-prag.adb, sem_prag.ads: Add Pragma_Gnat_Annotate to list + of pragmas. + * lib-writ.adb, sem_ch13.adb, sem_prag.adb: Handle Gnat_Annotate + like Aspect_Annotate. + +2021-07-05 Piotr Trojanek + + * ttypes.ads (Target_Strict_Alignment): Fix comment. + +2021-07-05 Piotr Trojanek + + * sem_util.adb (Has_Compatible_Alignment_Internal): Fix + indentation of ELSIF comments; remove explicit calls to + UI_To_Int; remove extra parens around the MOD operand. + +2021-07-05 Ed Schonberg + + * sem_aggr.adb (Resolve_Record_Aggregate, Step_5): Do not check + for the need to use an extension aggregate for a given component + when within an instance and the type of the component hss a + private ancestor: the instantiation is legal if the generic + compiles, and spurious errors may be generated otherwise. + +2021-07-05 Ghjuvan Lacambre + + * errout.adb (Output_JSON_Message): Recursively call + Output_JSON_Message for continuation messages instead of + appending their content to the initial message. + +2021-07-05 Steve Baird + + * debug.adb: Remove comments about -gnatd_z switch. + * exp_ch3.adb (Make_Predefined_Primitive_Specs): A one-line fix + for a subtle bug that took some effort to debug. Append a new + Put_Image procedure for a type extension even if it seems to + already have one, just as is done for (for example) the + streaming-related Read procedure. + * exp_put_image.adb: + (Build_Record_Put_Image_Procedure.Make_Component_Attributes): Do + not treat _Parent component like just another component, for two + reasons. 1. If the _parent component's type has a + user-specified Put_Image procedure, then we want to generate a + call to that procedure and then generate extension aggregate + syntax. 2. Otherwise, we still don't want to see any mention of + "_parent" in the generated image text. + (Build_Record_Put_Image_Procedure.Make_Component_Name): Add + assertion that we are not generating a reference to an "_parent" + component. + (Build_Record_Put_Image_Procedure): Add special treatment for + null records. Add call to Duplicate_Subexpr for image attribute + prefix in order to help with expansion needed in the class-wide + case (where the prefix is also referenced in the call to + Wide_Wide_Expanded_Name) if evaluation of the prefix has side + effects. Add new local helper function, Put_String_Exp. Add + support for case where prefix type is class-wide. + (Enable_Put_Image, Preload_Root_Buffer_Type): Query Ada_Version + > Ada_2022 instead of (indirectly) querying -gnatd_z switch. + * freeze.adb (In_Expanded_Body): A one-line change to add + TSS_Put_Image to the list of subprograms that have + expander-created bodies. + * rtsfind.ads: Add support for accessing + Ada.Tags.Wide_Wide_Expanded_Name. + * sem_ch3.ads, sem_ch3.adb: Delete Is_Null_Extension function, + as part of moving it to Sem_Util. + * sem_ch13.adb + (Analyze_Put_Image_TSS_Definition.Has_Good_Profile): Improve + diagnostic messages in cases where the result is going to be + False and the Report parameter is True. Relax overly-restrictive + checks in order to implement mode conformance. + (Analyze_Stream_TSS_Definition.Has_Good_Profile): Add similar + relaxation of parameter subtype checking for the Stream + parameter of user-defined streaming subprograms. + * sem_disp.adb (Check_Dispatching_Operation): A one-line + change (and an accompanying comment change) to add TSS_Put_Image + to the list of compiler-generated dispatching primitive + operations. + * sem_util.ads, sem_util.adb: Add Ignore_Privacy Boolean + parameter to Is_Null_Record_Type function (typically the + parameter will be False when the function is being used in the + implementation of static semantics and True for dynamic + semantics; the parameter might make a difference in the case of, + for example, a private type that is implemented as a null record + type). Add related new routines Is_Null_Extension (formerly + declared in Sem_Ch3), Is_Null_Extension_Of, and + Is_Null_Record_Definition. + +2021-07-05 Justin Squirek + + * freeze.adb (Freeze_Profile): Use N's Sloc, F_type's chars. + +2021-07-05 Bob Duff + + * checks.adb, exp_aggr.adb, exp_ch5.adb, freeze.adb, + sem_util.adb, sem_util.ads: Change L and H to be First and Last, + to match the attributes in the RM. Change calls from procedure + to function where appropriate. + +2021-07-05 Bob Duff + + * sem_util.ads, sem_util.adb (Compute_Returns_By_Ref): New + procedure to compute Returns_By_Ref, to avoid some code + duplication. This will likely change soon, so it's good to have + the code in one place. + (CW_Or_Has_Controlled_Part): Move here from Exp_Ch7, because + it's called by Compute_Returns_By_Ref, and this is a better + place for it anyway. + (Needs_Finalization): Fix comment to be vague instead of wrong. + * exp_ch6.adb (Expand_N_Subprogram_Body, Freeze_Subprogram): + Call Compute_Returns_By_Ref. + * sem_ch6.adb (Check_Delayed_Subprogram): Call + Compute_Returns_By_Ref. + * exp_ch7.ads, exp_ch7.adb (CW_Or_Has_Controlled_Part): Move to + Sem_Util. + (Has_New_Controlled_Component): Remove unused function. + +2021-07-05 Ghjuvan Lacambre + + * sem_ch3.adb (Check_Abstract_Overriding): Check for renamings. + +2021-07-05 Boris Yakobowski + + * exp_ch4.adb (Expand_N_Op_Rem): Remove special case for rem -1 + in CodePeer_Mode. + 2021-07-01 Eric Botcazou PR ada/101094 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 187a6ef9f06..87cd3ed7ad6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,25 @@ +2021-07-05 Andrew Pinski + + PR tree-optimization/101039 + * gcc.dg/tree-ssa/phi-opt-15.c: Update test to expect + ABSU and still not expect ABS_EXPR. + * gcc.dg/tree-ssa/phi-opt-23.c: New test. + * gcc.dg/tree-ssa/phi-opt-24.c: New test. + +2021-07-05 Christophe Lyon + + PR debug/101321 + * gcc.dg/debug/btf/btf-bitfields-3.c: Add -fno-short-enums. + +2021-07-05 Richard Biener + + PR testsuite/101299 + * gcc.dg/vect/bb-slp-74.c: Add vect_double requires. + +2021-07-05 liuhongt + + * gcc.target/i386/pr92658-avx512vl.c: Refine testcase. + 2021-07-03 David Edelsohn * gcc.dg/debug/btf/btf.exp: Skip on AIX.