- 20 Apr, 2016 39 commits
-
-
* tree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true. From-SVN: r235272
Marek Polacek committed -
From-SVN: r235271
Arnaud Charlet committed -
gcc/ * config/i386/sse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target. From-SVN: r235270
Ilya Enkovich committed -
* tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR. * gcc.dg/tree-ssa/scev-11.c: New test. * gcc.dg/tree-ssa/scev-12.c: New test. From-SVN: r235269
Bin Cheng committed -
2016-04-20 Bob Duff <duff@adacore.com> * s-os_lib.ads: Minor comment fix. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate a discriminant check for a type whose partial view has unknown discriminants when the full view has discriminants with defaults. 2016-04-20 Javier Miranda <miranda@adacore.com> * exp_util.adb (Remove_Side_Effects): When generating C code remove side effect of type conversion of access to unconstrained array type. (Side_Effect_Free): Return false for the type conversion of access to unconstrained array type when generating C code. * sem_res.adb (Resolved_Type_Conversion): Remove side effects of access to unconstrained array type conversion when generating C code. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Build_Predicate_Function_Declaration): New function, to construct the declaration of a predicate function at the end of the current declarative part rather than at the (possibly later) freeze point of the type. This also allows uses of a type with predicates in instantiations elsewhere. (Resolve_Aspect_Expression): New procedure to detect visiblity errors in aspect expressions, at the end of the declarative part that includes the type declaration. * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the predicate function from private to full view. * einfo.adb (Predicate_Function): Refine search for predicate function when type has a full view and predicate function may be defined on either view. 2016-04-20 Javier Miranda <miranda@adacore.com> * frontend.adb: Passing the root of the tree to Unnest_Subprograms(). * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that took care of adding subprograms to the Unest_Bodies table since performing such action too early disables the ability to process generic instantiations. (Unnest_Subprograms): Adding parameter. (Search_Unnesting_Subprograms): New subprogram. * exp_ch6.ads (Unnest_Subrograms): Update documentation. From-SVN: r235268
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * exp_unst.adb (Check_Static_Type): For a private type, check full view. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Check_Type): Reject an attribute reference in an aspect expression, when the prefix of the reference is the current instance of the type to which the aspect applies. From-SVN: r235267
Arnaud Charlet committed -
2016-04-20 Bob Duff <duff@adacore.com> * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about hiding unless we're actually hiding something. The previous code would (for example) warn about a "<" on a record type because it incorrectly thought it was hiding the "<" on Boolean in Standard. We need to check that the homonym S is in fact a homograph of a predefined operator. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here from exp_ch6.adb, for use in SPARK_To_C mode when creating the procedure equivalent to a function returning an array, when this construction is deferred to the freeze point of the function. * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a function that renames an instance of Unchecked_Conversion. * freeze.adb (Freeze_Subprogram): Generate the proper procedure declaration for a function returning an array. * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util. From-SVN: r235266
Arnaud Charlet committed -
sem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time... 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time, a function call is an expansion of a reference to attribute Priority. * sem_ch5.adb (Analyze_Function_Call): use it. * exp_ch5.adb (Expand_N_Subprogram_Call): use it. From-SVN: r235265
Ed Schonberg committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb Flag286 is now used as Is_Exception_Handler. (Is_Exception_Handler): New routine. (Set_Is_Exception_Handler): New routine. (Write_Entity_Flags): Output the status of Is_Exception_Handler. * einfo.ads New attribute Is_Exception_Handler along with occurrences in entities. (Is_Exception_Handler): New routine along with pragma Inline. (Set_Is_Exception_Handler): New routine along with pragma Inline. * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated for exception handlers with a choice parameter. * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope generated for a choice parameter as an exception handler. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code. (Constrain_Discriminated_Type): In an instance, if the type has unknown discriminants, use its full view. (Process_Subtype): Check that the base type is private before adding subtype to Private_Dependents list. 2016-04-20 Bob Duff <duff@adacore.com> * sem_ch13.adb: Minor comment fix. From-SVN: r235264
Arnaud Charlet committed -
2016-04-20 Yannick Moy <moy@adacore.com> * sem_ch4.adb: Fix typos in comments. * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives. From-SVN: r235263
Yannick Moy committed -
From-SVN: r235262
Arnaud Charlet committed -
2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component): A reference to the current instance of a task type is legal if the prefix is an expression of that task type and the selector is an entry or entry family. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move varsize field at the end for efficiency. From-SVN: r235261
Arnaud Charlet committed -
2016-04-20 Vincent Celier <celier@adacore.com> * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat ls" includes the switch -V. * clean.adb: "<target>-gnatclean -P" now calls "gprclean --target=<target>" * make.adb: "<target>-gnatmake -P" now calls "gprbuild --target=<target>" 2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.adb (Qualify_Type): Do not perform partial qualification when the immediate scope is a generic unit. From-SVN: r235260
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * exp_unst.adb: Minor reformatting. From-SVN: r235259
Hristian Kirtchev committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the tag assignment and adjustment preceed the accessibility check. * exp_ch7.adb (Is_Subprogram_Call): Reimplemented. 2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * exp_prag.adb (Expand_Attributes): Ensure that the temporary used to capture the value of attribute 'Old's prefix is properly initialized. 2016-04-20 Javier Miranda <miranda@adacore.com> * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library level. From-SVN: r235258
Arnaud Charlet committed -
2016-04-20 Arnaud Charlet <charlet@adacore.com> * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning in codepeer mode. 2016-04-20 Vincent Celier <celier@adacore.com> * make.adb: Code cleanup. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * exp_ch4.adb (Expand_Allocator_Expression): Help C code generation. From-SVN: r235257
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.adb (Copy_Generic_Node): Handle the special qualification installed for universal literals that act as operands in binary or unary operators. (Qualify_Operand): Mark the qualification to signal the instantiation mechanism how to handle global reference propagation. * sinfo.adb (Is_Qualified_Universal_Literal): New routine. (Set_Is_Qualified_Universal_Literal): New routine. * sinfo.ads New attribute Is_Qualified_Universal_Literal along with occurrences in nodes. (Is_Qualified_Universal_Literal): New routine along with pragma Inline. (Set_Is_Qualified_Universal_Literal): New routine along with pragma Inline. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length so that the corresponding checks are preserved across compilations that include System.Constants in their context. 2016-04-20 Gary Dismukes <dismukes@adacore.com> * sem_type.adb: Minor typo fix and reformatting. * a-conhel.ads: Update comment. 2016-04-20 Bob Duff <duff@adacore.com> * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the code so it doesn't trigger an "uninit var" warning. From-SVN: r235256
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.ads Add new table Universal_Type_Attribute. * sem_util.adb (Yields_Universal_Type): Use a table lookup when checking attributes. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Init_Stored_Discriminants, Init_Visible_Discriminants): New procedures, subsidiary of Build_Record_Aggr_Code, to handle properly the construction of aggregates for a derived type that constrains some parent discriminants and renames others. From-SVN: r235255
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.adb (Qualify_Universal_Operands): New routine. (Save_References_In_Operator): Add explicit qualifications in the generic template for all operands of universal type. * sem_type.adb (Disambiguate): Update the call to Matches. (Matches): Reimplemented. * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine. From-SVN: r235254
Hristian Kirtchev committed -
2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Rep_Item_Too_Late): Better error message for an illegal aspect that freezes the entity to which it applies. 2016-04-20 Bob Duff <duff@adacore.com> * a-stwibo.ads, a-stzbou.ads ("="): Add overriding keyword before function to avoid crash when compiler is called with -gnatyO (check overriding indicators). 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this is a configuration pragma and it uses the ARG syntax, insert the rewritten pragma after the current one rather than using Insert_Actions. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * exp_aggr.adb (Backend_Processing_Possible): Add handling of C back-end. From-SVN: r235253
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Minor reformatting. From-SVN: r235251
Hristian Kirtchev committed -
PR tree-optimization/70725 * tree-if-conv.c (is_false_predicate): New function. (predicate_mem_writes): Use it. * gcc.dg/pr70725.c: New test. From-SVN: r235250
Marek Polacek committed -
sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a... 2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a pre/postcondition. * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine. From-SVN: r235249
Hristian Kirtchev committed -
2016-04-20 Yannick Moy <moy@adacore.com> * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix. * einfo.adb (Set_Overridden_Operation): Add assertion. * sem_util.adb (Unique_Entity): for renaming-as-body return the spec entity. 2016-04-20 Javier Miranda <miranda@adacore.com> * exp_unst.adb (Append_Unique_Call): New subprogram. (Unnest_Subprogram): Replace the unique occurrence of Call.Append() by Append_Unique_Call() which protects us from adding to the Calls table duplicated entries. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * exp_attr.adb (Is_GCC_Target): Fix for C backend. * xref_lib.ads (Dependencies_Tables): instantiate Table package with types that guarantee its safe use. * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested procedures. From-SVN: r235248
Arnaud Charlet committed -
exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code. * sinfo.ads, inline.ads: Minor editing. From-SVN: r235247
Arnaud Charlet committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor reformatting. From-SVN: r235246
Hristian Kirtchev committed -
2016-04-20 Javier Miranda <miranda@adacore.com> * contracts.adb (Build_Postconditions_Procedure): Code cleanup. * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the declaration of the internally built _postcondition procedure. From-SVN: r235245
Javier Miranda committed -
2016-04-20 Arnaud Charlet <charlet@adacore.com> * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix indentation. * sem_util.adb (Is_Unchecked_Conversion_Instance): defense against library-level renamings of other functions, which are never instances of Unchecked_Conversion. * einfo.ads: minor fix of casing in comment 2016-04-20 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body that has been analyzed and expanded already. Qualify the names in the proper body for use in the generation of C code. From-SVN: r235244
Arnaud Charlet committed -
2016-04-20 Javier Miranda <miranda@adacore.com> * contracts.adb (Build_Postconditions_Procedure): Force its inlining when generating C code. * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined _postconditions when generating C code. * exp_ch6.adb (Inlined_Subprogram): Inline calls to _postconditions when generating C code. * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec): types of return value and argument changed from Node_Id to Entity_Id. 2016-04-20 Vincent Celier <celier@adacore.com> * make.adb, clean.adb, gnatname.adb: Revert previous change for now. 2016-04-20 Eric Botcazou <ebotcazou@adacore.com> * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset the Has_Delayed_Freeze flag on the anonymous instance node. From-SVN: r235243
Arnaud Charlet committed -
2016-04-20 Javier Miranda <miranda@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient scope associated with the renaming object declaration. * exp_util.adb (Insert_Actions): Remove handling of iterator loop marked as requiring the secondary stack. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Analyze_Attribute, case 'Image): Implement AI12-0124, which extends the functionality of the attribute so it reflects the semantics of GNAT 'Img when applied to scalar types. * lib-xref.adb: minor whitespace layout fix. From-SVN: r235242
Arnaud Charlet committed -
2016-04-20 Vincent Celier <celier@adacore.com> * clean.adb (Gnatclean): Fail if project file specified and gprclean is not available. * gnatname.adb: Fail is -P is used and gprname is not available. * make.adb (Initialize): Fail if project file specified and gprbuild is not available. 2016-04-20 Bob Duff <duff@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary stack when possible. From-SVN: r235241
Arnaud Charlet committed -
2016-04-20 Gary Dismukes <dismukes@adacore.com> * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and reformatting. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): If the pragma comes from an aspect specification, verify that the aspect applies to an entity with a declarative part. * exp_ch5.adb: Code cleanup. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_If_Expression): If first expression is universal, resolve subsequent ones with the corresponding class type (Any_Integer or Any_Real). 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is disabled, complete the analysis of the iterator name to ensure that reference for entities within are properly generated. 2016-04-20 Arnaud Charlet <charlet@adacore.com> * a-dispat.ads (Yield): add Global contract. * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time. * a-taside.adb: Added Initializes => Tasking_State. From-SVN: r235240
Arnaud Charlet committed -
sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure spec and body insertion. 2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure spec and body insertion. From-SVN: r235239
Hristian Kirtchev committed -
2016-04-20 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Add_Invariant): Do not replace the saved expression of an invariatn aspect when inheriting a class-wide type invariant as this clobbers the existing expression. Do not use New_Copy_List as it is unnecessary and leaves the parent pointers referencing the wrong part of the tree. Do not replace the type references for ASIS when inheriting a class-wide type invariant as this clobbers the existing replacement. 2016-04-20 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Build_Explicit_Dereference): If the designated expression is an entity name, generate reference to the entity because it will not be resolved again. From-SVN: r235238
Arnaud Charlet committed -
2016-04-20 Richard Biener <rguenther@suse.de> PR tree-optimization/70726 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar shift amounts from a pattern stmt operand. * g++.dg/vect/pr70726.cc: New testcase. From-SVN: r235236
Richard Biener committed -
This patches fixes a problem with stack variable accesses being scheduled after the stack pointer restore instructions. In the testcase this happened with the stack variable 'a' accessed through the frame pointer. The existing stack_tie we have in the backend is basically useless when trying to block stack variable accesses from being scheduled across an insn. The alias set of stack variables and the frame alias set usually differ and hence aren't in conflict with each other. The solution appears to be a magic MEM term with a scratch register which is handled as a full memory barrier when analyzing scheduling dependencies. With the patch a (clobber (mem:BLK (scratch))) is being added to the restore instruction in order to prevent any memory operations to be scheduled across the insn. The patch does that only for the one case where the stack pointer is restored from an FPR. Theoretically this might happen also in the case where the stack pointer gets restored using a load multiple. However, triggering that problem with load-multiple appears to be much harder since the load-multiple will restore the frame pointer as well. So in order to see the problem a different call-clobbered register would need to be used as temporary stack pointer. Another case which needs to be handled some day is the stack pointer allocation part. It needs to be a memory barrier as well. Bootstrapped and regression tested with --with-arch z196 and z13 on s390 and s390x. -Andreas- gcc/ChangeLog: 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/70674 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new stack_restore_from_fpr pattern when restoring r15. (s390_optimize_prologue): Strip away the memory barrier in the parallel when trying to get rid of restore insns. * config/s390/s390.md ("stack_restore_from_fpr"): New insn definition for loading the stack pointer from an FPR. Compared to the normal move insn this pattern includes a full memory barrier. gcc/testsuite/ChangeLog: 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/70674 * gcc.target/s390/pr70674.c: New test. From-SVN: r235234
Andreas Krebbel committed -
PR middle-end/70680 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for implicitly linear or lastprivate iterator on the outer context. * testsuite/libgomp.c/pr70680-1.c: New test. * testsuite/libgomp.c/pr70680-2.c: New test. From-SVN: r235232
Jakub Jelinek committed -
From-SVN: r235231
Ben Elliston committed -
From-SVN: r235230
GCC Administrator committed
-
- 19 Apr, 2016 1 commit
-
-
From INSTRUCTION EXCEPTION SPECIFICATION section in Intel software developer manual volume 2, only legacy SSE instructions with memory operand not 16-byte aligned get General Protection fault. There is no need to check 1, 2, 4, 8 byte alignments. Since x86 backend has accurate constraints and predicates for 16-byte alignment, we can remove alignment check in ix86_legitimate_combined_insn. * config/i386/i386.c (ix86_legitimate_combined_insn): Remove alignment check. * config/i386/i386.md (ssememalign): Removed. * config/i386/sse.md: Remove ssememalign attribute from patterns. From-SVN: r235224
H.J. Lu committed
-