platform/upstream/gcc.git
7 years agotree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's exit...
Bin Cheng [Tue, 10 Oct 2017 09:02:13 +0000 (09:02 +0000)]
tree-loop-distribution.c (generate_loops_for_partition): Remove inner loop's exit stmt by making it always exit the loop...

* tree-loop-distribution.c (generate_loops_for_partition): Remove
inner loop's exit stmt by making it always exit the loop, otherwise
we would generate an infinite empty loop.

gcc/testsuite
* gcc.dg/tree-ssa/ldist-27.c: New test.

From-SVN: r253580

7 years agotree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip renaming variab...
Bin Cheng [Tue, 10 Oct 2017 08:59:23 +0000 (08:59 +0000)]
tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip renaming variables in new preheader if it's deleted.

* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
renaming variables in new preheader if it's deleted.

From-SVN: r253579

7 years agotree-loop-distribution.c (struct partition): Remove unused field loops of the structure.
Bin Cheng [Tue, 10 Oct 2017 08:57:21 +0000 (08:57 +0000)]
tree-loop-distribution.c (struct partition): Remove unused field loops of the structure.

* tree-loop-distribution.c (struct partition): Remove unused field
loops of the structure.
(partition_alloc, partition_free): Ditto.
(build_rdg_partition_for_vertex): Ditto.

From-SVN: r253578

7 years agotarghooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return type...
Jeff Law [Tue, 10 Oct 2017 06:42:08 +0000 (00:42 -0600)]
targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix return type to match prototype and documentation.

* targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
return type to match prototype and documentation.

From-SVN: r253575

7 years agoDaily bump.
GCC Administrator [Tue, 10 Oct 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253574

7 years agors6000: Move processor_costs to header
Segher Boessenkool [Mon, 9 Oct 2017 23:05:37 +0000 (01:05 +0200)]
rs6000: Move processor_costs to header

This moves the processor_costs structure declaration to the rs6000.h
header file, so that things in other files can use it (not just things
in rs6000.c).

* config/rs6000/rs6000.c (processor_costs): Move to ...
* config/rs6000/rs6000.h: ... here.
(rs6000_cost): Declare.

From-SVN: r253570

7 years agoexcept.c (setjmp_fn): New global variable.
Eric Botcazou [Mon, 9 Oct 2017 22:32:01 +0000 (22:32 +0000)]
except.c (setjmp_fn): New global variable.

* except.c (setjmp_fn): New global variable.
(init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
(sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP if
DONT_USE_BUILTIN_SETJMP is defined.

From-SVN: r253569

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 20:47:26 +0000 (20:47 +0000)]
[multiple changes]

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement
as a scoping construct when it is byproduct of exception handling.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of
semantic field Target of node N_Call_Marker.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (Resolve_Allocator): Reject properly an allocator that
attempts to copy a limited value, when the allocator is the expression
in an expression function.

2017-10-09  Joel Brobecker  <brobecker@adacore.com>

* doc/share/conf.py: Tell the style checker that this is a Python
fragment, and therefore that pyflakes should not be run to validate
this file.

2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.ads (Is_Boolean_Type): Add pragma Inline.
(Is_Entity_Name): Likewise.
(Is_String_Type): Likewise.
* sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here
and remove useless comparisons on the base types.
(Covers): Use simple tests for Standard_Void_Type.  Move up cheap tests
on T2.  Always test Is_Private_Type before Full_View_Covers.

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch4.adb: Minor refactoring.

From-SVN: r253568

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 20:36:41 +0000 (20:36 +0000)]
[multiple changes]

2017-10-09  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Replace_Components): Browse the list of discriminants,
not components.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements
are verified only in the static model.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb (Analyze_Iterator_Specification,
Check_Reverse_Iteration): Check that the domain of iteration supports
reverse iteration when it is a formal container.  This requires the
presence of a Previous primitive in the Iterable aspect.
* sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of
primitives Last and Previous to support reverse iteration over formal
containers.
(Validate_Iterable_Aspect): Add check for reverse iteration operations.
* exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion
for reverse iteration using primitives Last and Previous in generated
loop.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Subprogram_Name): If this is a child unit, use the name
of the Defining_Program_Unit_Name, which is an identifier, in order to
construct the string for the fully qualified name.

From-SVN: r253567

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 20:28:22 +0000 (20:28 +0000)]
[multiple changes]

2017-10-09  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb: Rename Uses_Unseen_Priv into
Contains_Lib_Incomplete_Type.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_aggr.adb, sem_spark.adb, adabkend.adb, exp_ch5.adb, frontend.adb,
sem_ch12.adb, fmap.adb, exp_ch6.adb, exp_spark.adb, lib-load.adb,
exp_ch9.adb, osint.adb, exp_disp.adb, sem_ch8.adb, sem_ch8.ads,
prepcomp.adb, gnat1drv.adb, atree.adb, sinput-l.adb, targparm.adb,
sem_ch10.adb, par-ch8.adb: Minor reformatting.

From-SVN: r253566

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 20:19:13 +0000 (20:19 +0000)]
[multiple changes]

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Is_Suitable_Access): This scenario is now only relevant
in the static model.
(Is_Suitable_Variable_Assignment): This scenario is now only relevant
in the static model.
(Is_Suitable_Variable_Reference): This scenario is now only relevant in
the static model.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Declarations): In ASIS mode, resolve aspect
expressions when the enclosing scope is a subprogram body and the next
declaration is a body that freezes entities previously declared in the
scope.

2017-10-09  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Analyze_Use_Package): Remove checking of mixture between
ghost packages and living packages in use clauses.
(Use_One_Type, Note_Redundant_Use): Correct warning messages

2017-10-09  Justin Squirek  <squirek@adacore.com>

* osint.ads: Document new parameter FD for Read_Source_File.

From-SVN: r253564

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 19:59:11 +0000 (19:59 +0000)]
[multiple changes]

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Make_Predicate_Call): If the type of the expression to
which the predicate check applies is tagged, convert the expression to
that type. This is in most cases a no-op, but is relevant if the
expression is clas-swide, because the predicate function being invoked
is not a primitive of the type and cannot take a class-wide actual.

2017-10-09  Gary Dismukes  <dismukes@adacore.com>

* exp_disp.adb: Minor reformatting.

2017-10-09  Arnaud Charlet  <charlet@adacore.com>

* sem_warn.adb (Warn_On_Unreferenced_Entity): Fix typo.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Install_ABE_Check): Do not generate an ABE check for
GNATprove.
(Install_ABE_Failure): Do not generate an ABE failure for GNATprove.

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Return
immediately if the call has already been processed (by a previous call
to Make_Build_In_Place_Call_In_Anonymous_Context).
* sem_elab.adb: Minor typo fixes.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Replace_Type_Ref): In the expression for a dynamic
predicate, do not replace an identifier that matches the type if the
identifier is a selector in a selected component, because this
indicates a reference to some homograph of the type itself, and  not to
the current occurence in the predicate.

2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>

* repinfo.adb (List_Record_Layout): Tweak formatting.
(Write_Val): Remove superfluous spaces in back-end layout mode.

2017-10-09  Piotr Trojanek  <trojanek@adacore.com>

* sem_res.adb (Property_Error): Remove.
(Resolve_Actuals): check for SPARK RM 7.1.3(10) rewritten to match the
current wording of the rule.

2017-10-09  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Add check for ghost packages
before analyzing a given scope due to an expression function.
(Uses_Unseen_Lib_Unit_Priv): Rename to Uses_Unseen_Priv.

From-SVN: r253563

7 years agoAdd targetm.insn_cost hook
Segher Boessenkool [Mon, 9 Oct 2017 19:47:08 +0000 (21:47 +0200)]
Add targetm.insn_cost hook

This adds a new hook that the insn_cost function uses if a target has
implemented it (it uses the old pattern_cost nee insn_rtx_cost if not).

* target.def (insn_cost): New hook.
* doc/tm.texi.in (TARGET_INSN_COST): New hook.
* doc/tm.texi: Regenerate.
* rtlanal.c (insn_cost): Use the new hook.

From-SVN: r253562

7 years agocombine: Use insn_cost instead of pattern_cost everywhere
Segher Boessenkool [Mon, 9 Oct 2017 19:45:50 +0000 (21:45 +0200)]
combine: Use insn_cost instead of pattern_cost everywhere

* combine.c (combine_validate_cost): Compute the new insn_cost,
not just pattern_cost.
(try_combine): Adjust comment.

From-SVN: r253561

7 years agoReplace insn_rtx_cost with insn_cost and pattern_cost
Segher Boessenkool [Mon, 9 Oct 2017 19:44:13 +0000 (21:44 +0200)]
Replace insn_rtx_cost with insn_cost and pattern_cost

This replaces insn_rtx_cost with insn_cost if an insn is readily
available, and with pattern_cost otherwise.

* cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
insn_cost.
* combine.c (uid_insn_cost): Adjust comment.
(combine_validate_cost): Adjust comment.  Use pattern_cost instead
of insn_rtx_cost
(combine_instructions): Use insn_cost instead of insn_rtx_cost.
* dse.c (find_shift_sequence): Ditto.
* ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
(bb_valid_for_noce_process_p): Use pattern_cost.
* rtl.h (insn_rtx_cost): Delete.
(pattern_cost): New prototype.
(insn_cost): New prototype.
* rtlanal.c (insn_rtx_cost): Rename to...
(pattern_cost): ... this.
(insn_cost): New.

From-SVN: r253560

7 years ago[multiple changes]
Pierre-Marie de Rodat [Mon, 9 Oct 2017 19:43:32 +0000 (19:43 +0000)]
[multiple changes]

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
Defining_Identifier (Obj_Decl) in two places, because it might have
changed.
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Deal with cases
involving 'Input on (not visibly) derived types.

2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>

* atree.adb: Add new soft link Rewriting_Proc.
(Rewrite): Invoke the subprogram attached to the rewriting soft link.
(Set_Rewriting_Proc): New routine.
* attree.ads: Add new access-to-subprogram type Rewrite_Proc.
(Set_Rewriting_Proc): New routine.
* checks.adb (Install_Primitive_Elaboration_Check): Use 'E' character
for *E*laboration flag to maintain consistency with other elaboration
flag generating subprograms.
* debug.adb: Document the new usage of flag -gnatdL.
* einfo.adb: Node19 is now used as Receiving_Entry.  Node39 is now used
as Protected_Subprogram.  Flag148 is now used as
Is_Elaboration_Checks_OK_Id.  Flag302 is now used as
Is_Initial_Condition_Procedure.
(Is_Elaboration_Checks_OK_Id): New routine.
(Is_Initial_Condition_Procedure): New routine.
(Protected_Subprogram): New routine.
(Receiving_Entry): New routine.
(SPARK_Pragma): Update assertion.
(SPARK_Pragma_Inherited): Update assertion.
(Suppress_Elaboration_Warnings): Removed.
(Set_Is_Elaboration_Checks_OK_Id): New routine.
(Set_Is_Initial_Condition_Procedure): New routine.
(Set_Protected_Subprogram): New routine.
(Set_Receiving_Entry): New routine.
(Set_SPARK_Pragma): Update assertion.
(Set_SPARK_Pragma_Inherited): Update assertion.
(Write_Entity_Flags): Update the output for Flag148 and Flag302.
(Write_Field19_Name): Add output for Receiving_Entry.
(Write_Field39_Name): Add output for Protected_Subprogram.
(Write_Field40_Name): Update the output for SPARK_Pragma.
* einfo.ads: New attributes Is_Elaboration_Checks_OK_Id,
Is_Initial_Condition_Procedure, Protected_Subprogram, Receiving_Entry.
Remove attribute Suppress_Elaboration_Warnings.  Update the stricture
of various entities.
(Is_Elaboration_Checks_OK_Id): New routine along with pragma Inline.
(Is_Initial_Condition_Procedure): New routine along with pragma Inline.
(Protected_Subprogram): New routine along with pragma Inline.
(Receiving_Entry): New routine along with pragma Inline.
(Suppress_Elaboration_Warnings): Removed.
(Set_Is_Elaboration_Checks_OK_Id): New routine along with pragma
Inline.
(Set_Is_Initial_Condition_Procedure): New routine along with pragma
Inline.
(Set_Protected_Subprogram): New routine along with pragma Inline.
(Set_Receiving_Entry): New routine along with pragma Inline.
(Set_Suppress_Elaboration_Warnings): Removed.
* exp_ch3.adb (Build_Init_Procedure): Use name _Finalizer to maintain
consistency with other finalizer generating subprograms.
(Default_Initialize_Object): Mark the block which wraps the call to
finalize as being part of initialization.
* exp_ch7.adb (Expand_N_Package_Declaration): Directly expand pragma
Initial_Condition.
(Expand_N_Package_Body): Directly expand pragma Initial_Condition.
(Next_Suitable_Statement): Update the comment on usage. Skip over call
markers generated by the ABE mechanism.
* exp_ch9.adb (Activation_Call_Loc): New routine.
(Add_Accept): Link the accept procedure to the original entry.
(Build_Protected_Sub_Specification): Link the protected or unprotected
version to the original subprogram.
(Build_Task_Activation_Call): Code cleanup. Use a source location which
is very close to the "begin" or "end" keywords when generating the
activation call.
* exp_prag.adb (Expand_Pragma_Initial_Condition): Reimplemented.
* exp_spark.adb (Expand_SPARK): Use Expand_SPARK_N_Loop_Statement to
process loops.
(Expand_SPARK_N_Loop_Statement): New routine.
(Expand_SPARK_N_Object_Declaration): Code cleanup. Partially insert the
call to the Default_Initial_Condition procedure.
(Expand_SPARK_Op_Ne): Renamed to Expand_SPARK_N_Op_Ne.
* exp_util.adb (Build_DIC_Procedure_Body): Capture the SPARK_Mode in
effect.
(Build_DIC_Procedure_Declaration): Capture the SPARK_Mode in effect.
(Insert_Actions): Add processing for N_Call_Marker.
(Kill_Dead_Code): Explicitly kill an elaboration scenario.
* exp_util.ads (Make_Invariant_Call): Update the comment on usage.
* frontend.adb: Initialize Sem_Elab. Process all saved top level
elaboration scenarios for ABE issues.
* gcc-interface/trans.c (gnat_to_gnu): Add processing for N_Call_Marker
nodes.
* lib.adb (Earlier_In_Extended_Unit): New variant.
* sem.adb (Analyze): Ignore N_Call_Marker nodes.
(Preanalysis_Active): New routine.
* sem.ads (Preanalysis_Active): New routine.
* sem_attr.adb (Analyze_Access_Attribute): Save certain
elaboration-related attributes. Save the scenario for ABE processing.
* sem_ch3.adb (Analyze_Object_Declaration): Save the SPARK mode in
effect. Save certain elaboration-related attributes.
* sem_ch5.adb (Analyze_Assignment): Save certain elaboration-related
attributes. Save the scenario for ABE processing.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Save the SPARK
mode in effect. Save certain elaboration-related attributes.
(Analyze_Subprogram_Body_Helper): Skip N_Call_Marker nodes when
locating the first real statement.
(Analyze_Subprogram_Declaration): Save the SPARK mode in effect. Save
certain elaboration-related attributes.
* sem_ch7.adb (Analyze_Package_Declaration): Do not suppress
elaboration warnings.
* sem_ch8.adb (Attribute_Renaming): Mark a subprogram body which was
generated for purposes of wrapping an attribute used as a generic
actual.
(Find_Direct_Name): Save certain elaboration-related attributes. Save
the scenario for ABE processing.
(Find_Expanded_Name): Save certain elaboration-related attributes. Save
the scenario for ABE processing.
* sem_ch9.adb (Analyze_Entry_Declaration): Save certain
elaboration-related attributes.
(Analyze_Requeue): Save certain elaboration-related attributes. Save
the scenario for ABE processing.
(Analyze_Single_Task_Declaration): Save certain elaboration-related
attributes.
(Analyze_Task_Type_Declaration): Save certain elaboration-related
attributes.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Save certain
elaboration-related attributes.
(Analyze_Generic_Subprogram_Declaration): Save the SPARK mode in
effect. Save certain elaboration-related attributes.
(Analyze_Package_Instantiation): Save certain elaboration-related
attributes.  Save the scenario for ABE processing. Create completing
bodies in case the instantiation results in a guaranteed ABE.
(Analyze_Subprogram_Instantiation): Save certain elaboration-related
attributes Save the scenario for ABE processing. Create a completing
body in case the instantiation results in a guaranteed ABE.
(Provide_Completing_Bodies): New routine.
* sem_elab.ads: Brand new implementation.
* sem_prag.adb (Analyze_Pragma, cases Elaborate, Elaborate_All,
Elaborate_Body): Do not suppress elaboration warnings.
* sem_res.adb (Make_Call_Into_Operator): Set the parent field of the
operator.
(Resolve_Call): Save certain elaboration-related attributes. Save the
scenario for ABE processing.
(Resolve_Entity_Name): Do not perform any ABE processing here.
(Resolve_Entry_Call): Inherit certain attributes from the original call.
* sem_util.adb (Begin_Keyword_Location): New routine.
(Defining_Entity): Update the parameter profile. Add processing for
concurrent subunits that are rewritten as null statements.
(End_Keyword_Location): New routine.
(Find_Enclosing_Scope): New routine.
(In_Instance_Visible_Part): Code cleanup.
(In_Subtree): Update the parameter profile. Add new version.
(Is_Preelaborable_Aggregate): New routine.
(Is_Preelaborable_Construct): New routine.
(Mark_Elaboration_Attributes): New routine.
(Scope_Within): Update the parameter profile.
(Scope_Within_Or_Same): Update the parameter profile.
* sem_util.ads (Begin_Keyword_Location): New routine.
(Defining_Entity): Update the parameter profile and the comment on
usage.
(End_Keyword_Location): New routine.
(Find_Enclosing_Scope): New routine.
(In_Instance_Visible_Part): Update the parameter profile.
(In_Subtree): Update the parameter profile. Add new version.
(Is_Preelaborable_Aggregate): New routine.
(Is_Preelaborable_Construct): New routine.
(Mark_Elaboration_Attributes): New routine.
(Scope_Within): Update the parameter profile and the comment on usage.
(Scope_Within_Or_Same): Update the parameter profile and the comment on
usage.
* sem_warn.adb (Check_Infinite_Loop_Warning): Use Has_Condition_Actions
to determine whether a loop has meaningful condition actions.
(Has_Condition_Actions): New routine.
* sinfo.adb (ABE_Is_Certain): Removed.
(Is_Declaration_Level_Node): New routine.
(Is_Dispatching_Call): New routine.
(Is_Elaboration_Checks_OK_Node): New routine.
(Is_Initialization_Block): New routine.
(Is_Known_Guaranteed_ABE): New routine.
(Is_Recorded_Scenario): New routine.
(Is_Source_Call): New routine.
(Is_SPARK_Mode_On_Node): New routine.
(No_Elaboration_Check): Removed.
(Target): New routine.
(Was_Attribute_Reference): New routine.
(Set_ABE_Is_Certain): Removed.
(Set_Is_Declaration_Level_Node): New routine.
(Set_Is_Dispatching_Call): New routine.
(Set_Is_Elaboration_Checks_OK_Node): New routine.
(Set_Is_Initialization_Block): New routine.
(Set_Is_Known_Guaranteed_ABE): New routine.
(Set_Is_Recorded_Scenario): New routine.
(Set_Is_Source_Call): New routine.
(Set_Is_SPARK_Mode_On_Node): New routine.
(Set_No_Elaboration_Check): Removed.
(Set_Target): New routine.
(Set_Was_Attribute_Reference): New routine.
* sinfo.ads: Remove attribute ABE_Is_Certain.  Attribute
Do_Discriminant_Check now utilizes Flag3.  Attribute
No_Side_Effect_Removal now utilizes Flag17.  Add new node
N_Call_Marker.  Update the structure of various nodes.
(ABE_Is_Certain): Removed along with pragma Inline.
(Is_Declaration_Level_Node): New routine along with pragma Inline.
(Is_Dispatching_Call): New routine along with pragma Inline.
(Is_Elaboration_Checks_OK_Node): New routine along with pragma Inline.
(Is_Initialization_Block): New routine along with pragma Inline.
(Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
(Is_Recorded_Scenario): New routine along with pragma Inline.
(Is_Source_Call): New routine along with pragma Inline.
(Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
(No_Elaboration_Check): Removed along with pragma Inline.
(Target): New routine along with pragma Inline.
(Was_Attribute_Reference): New routine along with pragma Inline.
(Set_ABE_Is_Certain): Removed along with pragma Inline.
(Set_Is_Declaration_Level_Node): New routine along with pragma Inline.
(Set_Is_Dispatching_Call): New routine along with pragma Inline.
(Set_Is_Elaboration_Checks_OK_Node): New routine along with pragma
Inline.
(Set_Is_Initialization_Block): New routine along with pragma Inline.
(Set_Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
(Set_Is_Recorded_Scenario): New routine along with pragma Inline.
(Set_Is_Source_Call): New routine along with pragma Inline.
(Set_Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
(Set_No_Elaboration_Check): Removed along with pragma Inline.
(Set_Target): New routine along with pragma Inline.
(Set_Was_Attribute_Reference): New routine along with pragma Inline.
* sprint.adb (Sprint_Node_Actual): Add an entry for N_Call_Marker.

From-SVN: r253559

7 years agoi386.md (*jcc_2): Remove insn pattern.
Uros Bizjak [Mon, 9 Oct 2017 19:12:53 +0000 (21:12 +0200)]
i386.md (*jcc_2): Remove insn pattern.

* config/i386/i386.md (*jcc_2): Remove insn pattern.
(*jcc<mode>_0_r_i387): Ditto.
(*jccxf_r_i387): Ditto.
(*jcc<mode>_r_i387): Ditto.
(*jccu<mode>_r_i387): Ditto.
(*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
(*jcc): Rename from *jcc_1.

From-SVN: r253558

7 years agoexp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer.
Bob Duff [Mon, 9 Oct 2017 18:46:19 +0000 (18:46 +0000)]
exp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer.

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer.

2017-10-09  Bob Duff  <duff@adacore.com>

* freeze.ads: Minor comment fixed.

From-SVN: r253557

7 years ago<forgot to do svn add on the amo.h file>
Michael Meissner [Mon, 9 Oct 2017 18:44:41 +0000 (18:44 +0000)]
<forgot to do svn add on the amo.h file>

[gcc]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
memory operation instruction support.
* config.gcc (powerpc*-*-*): Include amo.h as an extra header.
(rs6000-ibm-aix[789]*): Likewise.
* doc/extend.texi (PowerPC Atomic Memory Operation Functions):
Document new functions.

[gcc/testsuite]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/amo1.c: New test.
* gcc.target/powerpc/amo2.c: Likewise.

From-SVN: r253556

7 years agors6000-p8swap.c (rs6000_analyze_swaps): Process deferred rescans after the lvx/stvx...
Bill Schmidt [Mon, 9 Oct 2017 18:38:42 +0000 (18:38 +0000)]
rs6000-p8swap.c (rs6000_analyze_swaps): Process deferred rescans after the lvx/stvx recombination pre-pass.

2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
deferred rescans after the lvx/stvx recombination pre-pass.

From-SVN: r253555

7 years agoexp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take care of unchecked...
Pierre-Marie de Rodat [Mon, 9 Oct 2017 18:23:07 +0000 (18:23 +0000)]
exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take care of unchecked...

gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take
care of unchecked conversions in addition to regular conversions. This
takes care of a case where a type is derived from a private untagged
type that is completed by a tagged controlled type.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When
rewriting a class-wide condition, handle properly the case where the
controlling argument of the operation to which the condition applies is
an access to a tagged type, and the condition includes a dispatching
call with an implicit dereference.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* gnat.dg/class_wide4.adb, gnat.dg/class_wide4_pkg.ads,
gnat.dg/class_wide4_pkg2.ads: New testcase.

From-SVN: r253554

7 years agoamo.h: New include file to provide ISA 3.0 atomic memory operation instruction support.
Michael Meissner [Mon, 9 Oct 2017 18:20:01 +0000 (18:20 +0000)]
amo.h: New include file to provide ISA 3.0 atomic memory operation instruction support.

[gcc]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
memory operation instruction support.
* config.gcc (powerpc*-*-*): Include amo.h as an extra header.
(rs6000-ibm-aix[789]*): Likewise.
* doc/extend.texi (PowerPC Atomic Memory Operation Functions):
Document new functions.

[gcc/testsuite]
2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/amo1.c: New test.
* gcc.target/powerpc/amo2.c: Likewise.

From-SVN: r253552

7 years agoexp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove the code at...
Pierre-Marie de Rodat [Mon, 9 Oct 2017 15:49:59 +0000 (15:49 +0000)]
exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove the code at the end of...

gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove
the code at the end of this procedure that was setting the type of a
class-wide object to the specific type returned by a function call.
Treat this case as indefinite instead.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Class_Wide_Operation, Traverse_Homonyms):
Suppress spurious ambiguity error when two traversals of the homonym
chain (first directly, and then through an examination of relevant
interfaces) retrieve the same operation, when other irrelevant homonyms
of the operatioh are also present.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Object_Access_Level): If the object is the return
statement of an expression function, return the level of the function.
This is relevant when the object involves an implicit conversion
between access types and the expression function is a completion, which
forces the analysis of the expression before rewriting it as a body, so
that freeze nodes can appear in the proper scope.

2017-10-09  Bob Duff  <duff@adacore.com>

* atree.adb: Make nnd apply to everything "interesting", including
Rewrite.  Remove rrd.

2017-10-09  Javier Miranda  <miranda@adacore.com>

* exp_ch3.adb (Expand_N_Object_Declaration): Avoid never-ending loop
processing the declaration of the dummy object internally created by
Make_DT to compute the offset to the top of components referencing
secondary dispatch tables.
(Initialize_Tag): Do not initialize the offset-to-top field if it has
been initialized initialized.
* exp_disp.ads (Building_Static_Secondary_DT): New subprogram.
* exp_disp.adb (Building_Static_Secondary_DT): New subprogram.
(Make_DT): Create a dummy constant object if we can statically build
secondary dispatch tables.
(Make_Secondary_DT): For statically allocated secondary dispatch tables
use the dummy object to compute the offset-to-top field value by means
of the attribute 'Position.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* gnat.dg/class_wide3.adb, gnat.dg/class_wide3_pkg.ads: New testcase.

From-SVN: r253550

7 years agoexp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking code so if BIPAll...
Pierre-Marie de Rodat [Mon, 9 Oct 2017 15:17:16 +0000 (15:17 +0000)]
exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking code so if BIPAlloc is not passed in...

gcc/ada/

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking
code so if BIPAlloc is not passed in, it will likely raise
Program_Error instead of cause miscellaneous chaos.
(Is_Build_In_Place_Result_Type): Return False if not Expander_Active,
as for the other Is_B-I-P... functions.
* sem_aggr.adb (Resolve_Extension_Aggregate): For an extension
aggregate whose ancestor part is a build-in-place call returning a
nonlimited type, transform the assignment to the ancestor part to use a
temp.
* sem_ch3.adb (Build_Itype_Reference): Handle the case where we're
creating an Itype for a library unit entity.
(Check_Initialization): Avoid spurious error message on
internally-generated call.
* sem_ch5.adb (Analyze_Assignment): Handle the case where the
right-hand side is a build-in-place call. This didn't happen when b-i-p
was only for limited types.
* sem_ch6.adb (Create_Extra_Formals): Remove assumption that b-i-p
implies >= Ada 2005.
* sem_ch7.adb (Scan_Subprogram_Refs): Avoid traversing the same nodes
repeatedly.
* sem_util.adb (Next_Actual): Handle case of build-in-place call.

2017-10-09  Arnaud Charlet  <charlet@adacore.com>

* doc/gnat_ugn/gnat_and_program_execution.rst: Minor edit.

2017-10-09  Piotr Trojanek  <trojanek@adacore.com>

* libgnarl/s-taprob.adb: Minor whitespace fix.

2017-10-09  Bob Duff  <duff@adacore.com>

* namet.ads: Minor comment fix.

2017-10-09  Piotr Trojanek  <trojanek@adacore.com>

* sem_aux.adb (Unit_Declaration_Node): Detect protected declarations,
just like other program units listed in Ada RM 10.1(1).

2017-10-09  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Update_Chain_In_Scope): Modify warning messages.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Analyze_Associations, Check_Generic_Parent): If an
actual for a formal package is an instantiation of a child unit, create
a freeze node for the instance of the parent if it appears in the same
scope and is not frozen yet.

2017-10-09  Pierre-Marie de Rodat  <derodat@adacore.com>

* exp_atag.ads, libgnat/a-tags.adb, libgnat/a-tags.ads: Enhance
in-source documentation for tagged types's Offset_To_Top.

2017-10-09  Bob Duff  <duff@adacore.com>

* exp_ch3.adb (Build_Assignment): Parameter name N was somewhat
confusing.  Same for N_Loc.  Remove assumption that b-i-p implies
limited.  This is for the case of a function call that occurs as the
default for a record component.
(Expand_N_Object_Declaration): Deal with the case where expansion has
created an object declaration initialized with something like
F(...)'Reference.
* exp_ch3.adb: Minor reformatting.

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* exp_attr.adb (Expand_Attribute_Reference, case 'Valid): The prefix of
the attribute is an object, but it may appear within a conversion. The
object itself must be retrieved when generating the range test that
implements the validity check on a scalar type.

gcc/testsuite/

2017-10-09  Ed Schonberg  <schonberg@adacore.com>

* gnat.dg/validity_check2.adb, gnat.dg/validity_check2_pkg.ads:
New testcase.

From-SVN: r253548

7 years agore PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1...
Richard Biener [Mon, 9 Oct 2017 14:13:43 +0000 (14:13 +0000)]
re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses)

2017-10-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82397
* tree-data-ref.c (data_ref_compare_tree): Make sure to return
equality only for semantically equal trees.

From-SVN: r253547

7 years agore PR tree-optimization/82449 (code-gen error in get_rename_from_scev)
Richard Biener [Mon, 9 Oct 2017 13:50:10 +0000 (13:50 +0000)]
re PR tree-optimization/82449 (code-gen error in get_rename_from_scev)

2017-10-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82449
* sese.c (scev_analyzable_p): Check whether the SCEV is linear.
* tree-chrec.h (evolution_function_is_constant_p): Adjust to
allow constant addresses.
* tree-chrec.c (scev_is_linear_expression): Constant evolutions
are linear.

* gfortran.dg/graphite/pr82449.f: New testcase.

From-SVN: r253546

7 years ago[BRIGFE] Support BRIG_KIND_NONE directives.
Pekka Jääskeläinen [Mon, 9 Oct 2017 13:06:01 +0000 (13:06 +0000)]
[BRIGFE] Support BRIG_KIND_NONE directives.

These directives are legal everywhere.  They can be used to
patch away BRIG entries at the binary level.

Also add extra error detection for zeroed regions: make sure
the byteCount field is never zero.

The call code still failed a few PRM test cases. Now all PRM
branch cases pass again.

From-SVN: r253545

7 years agoS/390: Fix vec_nabs and vec_vfi builtin flags
Andreas Krebbel [Mon, 9 Oct 2017 12:08:46 +0000 (12:08 +0000)]
S/390: Fix vec_nabs and vec_vfi builtin flags

gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
flags.

From-SVN: r253544

7 years agoS/390: PR82463: Fix vec_madd header file definition
Andreas Krebbel [Mon, 9 Oct 2017 12:07:54 +0000 (12:07 +0000)]
S/390: PR82463: Fix vec_madd header file definition

The builtin was not correctly defined in the vecintrin.h header file.

gcc/testsuite/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82463
* gcc.target/s390/zvector/pr82463.c: New test.

gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82463
* config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
definitions.

From-SVN: r253543

7 years agoS/390: PR82465: Fix vec_sqrt builtin flags
Andreas Krebbel [Mon, 9 Oct 2017 12:06:11 +0000 (12:06 +0000)]
S/390: PR82465: Fix vec_sqrt builtin flags

The vector double variant is available with z13.  A wrong flag in the
s390-builtins.def file triggered an error when compiling for z13.

gcc/testsuite/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82465
* gcc.target/s390/zvector/pr82465.c: New test.

gcc/ChangeLog:

2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82465
* config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.

From-SVN: r253542

7 years agore PR target/82464 (s390x z14: vector float: invalid parameter combination for intrin...
Jakub Jelinek [Mon, 9 Oct 2017 11:40:23 +0000 (13:40 +0200)]
re PR target/82464 (s390x z14: vector float: invalid parameter combination for intrinsic '__builtin_s390_vec_xor')

PR target/82464
* config/s390/s390-builtins.def (s390_vec_xor_flt_a,
s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.

From-SVN: r253541

7 years agoFix ssa-dse-26.c
Wilco Dijkstra [Mon, 9 Oct 2017 11:00:17 +0000 (11:00 +0000)]
Fix ssa-dse-26.c

Add missing -fno-short-enums to ensure this test passes on arm-none-eabi
which uses short enums.

    gcc/testsuite/
* gcc.dg/tree-ssa/ssa-dse-26.c (dg-options): Add -fno-short-enums.

From-SVN: r253540

7 years agoAllow non-wi <op> wi
Richard Sandiford [Mon, 9 Oct 2017 10:51:45 +0000 (10:51 +0000)]
Allow non-wi <op> wi

This patch uses global rather than member operators for wide-int.h,
so that the first operand can be a non-wide-int type.

The patch also removes the and_not and or_not member functions.
It was already inconsistent to have member functions for these
two operations (one of which was never used) and not other wi::
ones like udiv.  After the operator change, we'd have the additional
inconsistency that "non-wi & wi" would work but "non-wi.and_not (wi)"
wouldn't.

2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
(WI_BINARY_PREDICATE_RESULT): Likewise.
(wi::binary_traits::operator_result): New type.
(wi::binary_traits::predicate_result): Likewise.
(generic_wide_int::operator~, unary generic_wide_int::operator-)
(generic_wide_int::operator==, generic_wide_int::operator!=)
(generic_wide_int::operator&, generic_wide_int::and_not)
(generic_wide_int::operator|, generic_wide_int::or_not)
(generic_wide_int::operator^, generic_wide_int::operator+
(binary generic_wide_int::operator-, generic_wide_int::operator*):
Delete.
(operator~, unary operator-, operator==, operator!=, operator&)
(operator|, operator^, operator+, binary operator-, operator*): New
functions.
* expr.c (get_inner_reference): Use wi::bit_and_not.
* fold-const.c (fold_binary_loc): Likewise.
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
* tree-ssa-ccp.c (get_value_from_alignment): Likewise.
(bit_value_binop): Likewise.
* tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
* tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
(extract_range_from_binary_expr_1): Likewise.
(masked_increment): Likewise.
(simplify_bit_ops_using_ranges): Likewise.

From-SVN: r253539

7 years ago[PR 82416] Do not extend operands to at least 32 bits
Martin Jambor [Mon, 9 Oct 2017 09:41:44 +0000 (11:41 +0200)]
[PR 82416] Do not extend operands to at least 32 bits

2017-10-09  Martin Jambor  <mjambor@suse.cz>

PR hsa/82416
gcc/
* hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
* hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
(hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
COMPLEX types.
(hsa_fixup_mov_insn_type): New function.
(hsa_op_with_type::get_in_type): Use it.
(hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
immediates in an assert.
(hsa_op_with_type::extend_int_to_32bit): New method.
(gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
types.  Convert to dest type if necessary.
(gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
(reg_for_gimple_ssa): Pass false as min32int to
hsa_type_for_scalar_tree_type.
(gen_hsa_addr): Fixup type when creating addresable temporary.
(gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
(gen_hsa_unary_operation): Extend operands and convert to dest type if
necessary.  Call hsa_fixup_mov_insn_type.
(gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
extend operands and convert to dest type if necessary.
(gen_hsa_insns_for_operation_assignment): Extend operands and convert
to dest type if necessary.
(set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
if conversion nt necessary and size matches.
(gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
to dest type if necessary.
(gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
(gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
necessary.
(gen_hsa_clrsb): Likewise.
(gen_hsa_ffs): Likewise.
(gen_hsa_divmod): Extend operands and convert to dest type if
necessary.
(gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.

libgomp/
* testsuite/libgomp.hsa.c/pr82416.c: New test.

From-SVN: r253538

7 years agoFix gcc.dg/cold-1.c
Tom de Vries [Mon, 9 Oct 2017 09:20:38 +0000 (09:20 +0000)]
Fix gcc.dg/cold-1.c

2017-10-09  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/cold-1.c (foo1): Fix warning line number.  Make warning line
number relative.
(abort): Declare.

From-SVN: r253537

7 years agoDaily bump.
GCC Administrator [Mon, 9 Oct 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253536

7 years agors6000: Cleanup of various jump patterns
Segher Boessenkool [Sun, 8 Oct 2017 22:38:25 +0000 (00:38 +0200)]
rs6000: Cleanup of various jump patterns

This cleans up formatting of many jump patterns.  Mostly it is writing
output statements as brace blocks, and deleting default arguments.  It
also makes indentation a little bit more consistent, and uses b%T0
(instead of bctr/blr alternatives) in two more places.

* config/rs6000/rs6000.md (conditional branch): Clean up formatting.
Remove empty default arguments.  Use a brace block as output
statement.
(conditional return): Ditto.
(jump): Ditto.
(indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
(tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
Ditto.
(group_ending_nop): Ditto.
(doloop_end): Ditto.
(ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
(splitters for those): Ditto.

From-SVN: r253532

7 years agors6000: Update conditional jump patterns, no more (pc) (label_ref)
Segher Boessenkool [Sun, 8 Oct 2017 22:36:36 +0000 (00:36 +0200)]
rs6000: Update conditional jump patterns, no more (pc) (label_ref)

Currently we have two patterns for every conditional jump: one jumping
if some condition is met, and the other jumping if it is not met.  We
don't need that second form because all our conditions have an opposite
already, and the generic code can deal with that just fine.

This patch deletes that second form.  We generated it directly in one
case; adjusted here.

* config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
a conditional jump (and the compare for it) so that pc_rtx is the
last operand.
* config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
for the deleted and renamed ctr<mode>_internal[234] patterns.
* config/rs6000/rs6000.md: Delete second conditional branch pattern.
Delete second conditional return pattern.
(ctr<mode>_internal2): Delete this second bdnz pattern.
(ctr<mode>_internal3): Rename to ctr<mode>_internal2.
(ctr<mode>_internal4): Delete this second bdz pattern.

From-SVN: r253531

7 years agotree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
Eric Botcazou [Sun, 8 Oct 2017 21:13:52 +0000 (21:13 +0000)]
tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.

* tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
(always_initialized_rtx_for_ssa_name_p): New predicate.
* tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
(finish_out_of_ssa): Free new field of SA.
* tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
* tree-ssa-coalesce.c: Include tree-ssa.h.
(get_parm_default_def_partitions): Remove extern keyword.
(get_undefined_value_partitions): New function.
* expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
uninitialized bits.
* loop-iv.c (iv_get_reaching_def): Disqualify all subregs.

From-SVN: r253530

7 years ago* builtins.def (BUILT_IN_SETJMP): Revert latest change.
Eric Botcazou [Sun, 8 Oct 2017 20:44:14 +0000 (20:44 +0000)]
* builtins.def (BUILT_IN_SETJMP): Revert latest change.

From-SVN: r253529

7 years agocheck.c (gfc_check_x): Remove function.
Steven G. Kargl [Sun, 8 Oct 2017 18:02:31 +0000 (18:02 +0000)]
check.c (gfc_check_x): Remove function.

2017-10-08  Steven G. Kargl  <kargl@gcc.gnu.org>

* check.c (gfc_check_x): Remove function.
* intrinsic.c (add_functions): Use gfc_check_fn_r.

From-SVN: r253528

7 years agostack-check-5.c: Skip with -fstack-protector.
Jeff Law [Sun, 8 Oct 2017 15:44:39 +0000 (09:44 -0600)]
stack-check-5.c: Skip with -fstack-protector.

* gcc.dg/stack-check-5.c: Skip with -fstack-protector.
* gcc.dg/stack-check-6.c: Likewise.
* gcc.dg/stack-check-6a.c: Likewise.

From-SVN: r253527

7 years agore PR fortran/82375 (PDT components in PDT declarations fail to compile)
Paul Thomas [Sun, 8 Oct 2017 15:23:24 +0000 (15:23 +0000)]
re PR fortran/82375 (PDT components in PDT declarations fail to compile)

2017-10-08  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82375
* module.c : Bump up MOD_VERSION to 15.
(mio_component): Edit comment about PDT specification list.
(mio_expr, mio_symbol): Include the expression and symbol PDT
specification lists in the same way as in mio_component.

From-SVN: r253526

7 years agodump_prase_tree (show_symbol): Output list of variables in NAMELIST.
Thomas Koenig [Sun, 8 Oct 2017 12:54:40 +0000 (12:54 +0000)]
dump_prase_tree (show_symbol): Output list of variables in NAMELIST.

2017-10-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

* dump_prase_tree (show_symbol): Output list of variables in
NAMELIST.
(show_code_node): Add new line for ELSE and END DO for DO
CONCURRENT.
* invoke.texi: Document that the output of
-fdump-fortran-original, -fdump-fortran-optimized and
-fdump-parse-tree is unsable and may lead to ICEs.

From-SVN: r253525

7 years agoi386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer...
Jan Hubicka [Sun, 8 Oct 2017 10:42:54 +0000 (12:42 +0200)]
i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit.

* i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets
that preffer 128bit.

From-SVN: r253524

7 years ago* i386.c (has_dispatch): Disable for Ryzen.
Jan Hubicka [Sun, 8 Oct 2017 10:41:44 +0000 (12:41 +0200)]
* i386.c (has_dispatch): Disable for Ryzen.

From-SVN: r253523

7 years agoarm.c (arm_set_return_address): Use MEM_VOLATILE_P on the target mem instead of RTX_F...
Olivier Hainque [Sun, 8 Oct 2017 08:20:25 +0000 (08:20 +0000)]
arm.c (arm_set_return_address): Use MEM_VOLATILE_P on the target mem instead of RTX_FRAME_RELATED_P on the insn...

2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
        on the target mem instead of RTX_FRAME_RELATED_P on the insn to
        prevent DSE.
        (thumb_set_return_address): Likewise.

From-SVN: r253522

7 years agoarm-common.c (arm_except_unwind_info): Handle DWARF2_UNWIND_INFO.
Olivier Hainque [Sun, 8 Oct 2017 08:10:41 +0000 (08:10 +0000)]
arm-common.c (arm_except_unwind_info): Handle DWARF2_UNWIND_INFO.

2017-10-08  Olivier Hainque  <hainque@adacore.com>

        * common/config/arm/arm-common.c (arm_except_unwind_info):
        Handle DWARF2_UNWIND_INFO.

From-SVN: r253521

7 years agoaarch64.md (*aarch64_reg_<optab>_minus<mode>3): New pattern.
Michael Collison [Sun, 8 Oct 2017 03:57:36 +0000 (03:57 +0000)]
aarch64.md (*aarch64_reg_<optab>_minus<mode>3): New pattern.

2017-10-07  Michael Collison <michael.collison@arm.com>

* config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
New pattern.

2017-10-07  Michael Collison <michael.collison@arm.com>

* gcc.target/aarch64/var_shift_mask_2.c: New test.

From-SVN: r253520

7 years agoDaily bump.
GCC Administrator [Sun, 8 Oct 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253519

7 years agobuiltins.def (BUILT_IN_SETJMP): Declare as library builtin instead of GCC builtin...
Eric Botcazou [Sat, 7 Oct 2017 22:17:16 +0000 (22:17 +0000)]
builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead of GCC builtin if...

* builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
* except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
defined, force the creation of a new block for a dispatch label.

From-SVN: r253515

7 years agore PR fortran/82375 (PDT components in PDT declarations fail to compile)
Paul Thomas [Sat, 7 Oct 2017 21:14:06 +0000 (21:14 +0000)]
re PR fortran/82375 (PDT components in PDT declarations fail to compile)

2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82375
* class.c (gfc_find_derived_vtab): Return NULL for a passed
pdt template to prevent bad procedures from being written.
* decl.c (gfc_get_pdt_instance): Do not use the default
initializer for pointer and allocatable pdt type components. If
the component is allocatbale, set the 'alloc_comp' attribute of
'instance'.
* module.c : Add a prototype for 'mio_actual_arglist'. Add a
boolean argument 'pdt'.
(mio_component): Call it for the parameter list of pdt type
components with 'pdt' set to true.
(mio_actual_arg): Add the boolean 'pdt' and, if it is set, call
mio_integer for the 'spec_type'.
(mio_actual_arglist): Add the boolean 'pdt' and use it in the
call to mio_actual_arg.
(mio_expr, mio_omp_udr_expr): Call mio_actual_arglist with
'pdt' set false.
* resolve.c (get_pdt_spec_expr): Add the parameter name to the
KIND parameter error.
(get_pdt_constructor): Check that cons->expr is non-null.
* trans-array.c (structure_alloc_comps): For deallocation of
allocatable components, ensure that parameterized components
are deallocated first. Likewise, when parameterized components
are allocated, nullify allocatable components first. Do not
recurse into pointer or allocatable pdt components while
allocating or deallocating parameterized components. Test that
parameterized arrays or strings are allocated before freeing
them.
(gfc_trans_pointer_assignment): Call the new function. Tidy up
a minor whitespace issue.
trans-decl.c (gfc_trans_deferred_vars): Set 'tmp' to NULL_TREE
to prevent the expression from being used a second time.

2017-10-07  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82375
* gfortran.dg/pdt_13.f03 : New test.
* gfortran.dg/pdt_14.f03 : New test.
* gfortran.dg/pdt_15.f03 : New test.

From-SVN: r253514

7 years agoinvoke.texi (Wsuggest-attribute=cold): Document.
Jan Hubicka [Sat, 7 Oct 2017 16:48:34 +0000 (18:48 +0200)]
invoke.texi (Wsuggest-attribute=cold): Document.

* invoke.texi (Wsuggest-attribute=cold): Document.
* common.opt (Wsuggest-attribute=cold): New
* ipa-pure-const.c (warn_function_cold): New function.
* predict.c (compute_function_frequency): Use it.
* predict.h (warn_function_cold): Declare.

* gcc.dg/cold-1.c: New testcase.

From-SVN: r253513

7 years agotree-switch-conversion.c (do_jump_if_equal, [...]): Update profile.
Jan Hubicka [Sat, 7 Oct 2017 16:33:26 +0000 (18:33 +0200)]
tree-switch-conversion.c (do_jump_if_equal, [...]): Update profile.

* tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
Update profile.

From-SVN: r253512

7 years agore PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
Paolo Carlini [Sat, 7 Oct 2017 16:10:21 +0000 (16:10 +0000)]
re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))

2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80805
* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253511

7 years agore PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))
Paolo Carlini [Sat, 7 Oct 2017 16:10:02 +0000 (16:10 +0000)]
re PR c++/80805 (ICE in sufficiently complex code with -g (dump_aggr_type))

2017-10-07  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80805
* g++.dg/cpp0x/pr80805.C: New.

From-SVN: r253510

7 years agore PR fortran/49232 (Pointer assignment of stride to CONTIGUOUS pointer not diagnosed...
Thomas Koenig [Sat, 7 Oct 2017 11:48:28 +0000 (11:48 +0000)]
re PR fortran/49232 (Pointer assignment of stride to CONTIGUOUS pointer not diagnosed as invalid)

2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/49232
* expr.c (gfc_check_pointer_assign): Error
for non-contiguous rhs.

2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/49232
* gfortran.dg/contiguous_4.f90: New test.

From-SVN: r253509

7 years agogfortran.h (async_io_dt): Add external reference.
Thomas Koenig [Sat, 7 Oct 2017 11:43:58 +0000 (11:43 +0000)]
gfortran.h (async_io_dt): Add external reference.

2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

* gfortran.h (async_io_dt): Add external reference.
* io.c (async_io_dt): Add variable.
(compare_to_allowed_values): Add prototyte. Add optional argument
num. If present, set it to the number of the entry that was
matched.
(check_io_constraints): If this is for an asynchronous I/O
statement, set async_io_dt and set the asynchronous flag for
a SIZE tag.
* resolve.c (resolve_transfer): If async_io_dt is set, set
the asynchronous flag on the variable.
(resolve_fl_namelist): If async_io_dt is set, set the asynchronous
flag on all elements of the namelist.

From-SVN: r253508

7 years agoFix libgomp.oacc-fortran/{firstprivate-1,parallel-reduction}.f90 for non-nvidia devices
Tom de Vries [Sat, 7 Oct 2017 08:46:00 +0000 (08:46 +0000)]
Fix libgomp.oacc-fortran/{firstprivate-1,parallel-reduction}.f90 for non-nvidia devices

2017-10-07  Tom de Vries  <tom@codesourcery.com>

* testsuite/libgomp.oacc-fortran/firstprivate-1.f90 (firstprivate):
Remove acc_device_nvidia references.
* testsuite/libgomp.oacc-fortran/parallel-reduction.f90 (reduction):
Same.

From-SVN: r253507

7 years agoDaily bump.
GCC Administrator [Sat, 7 Oct 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253506

7 years agore PR c++/66690 (error: use of ‘X’ before deduction of ‘auto’)
Paolo Carlini [Fri, 6 Oct 2017 19:04:25 +0000 (19:04 +0000)]
re PR c++/66690 (error: use of â€˜X’ before deduction of â€˜auto’)

2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66690
* g++.dg/cpp1y/pr66690.C: New.

From-SVN: r253502

7 years ago2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
Paolo Carlini [Fri, 6 Oct 2017 16:28:27 +0000 (16:28 +0000)]
2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

* Fix last ChangeLog entry.

From-SVN: r253498

7 years agore PR c++/47791 (finish function is using literal value instead of a #defined one)
Paolo Carlini [Fri, 6 Oct 2017 16:26:00 +0000 (16:26 +0000)]
re PR c++/47791 (finish function is using literal value instead of a #defined one)

2017-10-06  Paolo Carlini  <paolo.carlini@oracle>

PR c++/47791
* decl.c (finish_function): Take a bool intead of an int; adjust.
* cp-tree.h (finish_function): Adjust declaration.
* decl2.c (generate_tls_wrapper, finish_objects,
finish_static_storage_duration_function): Adjust calls.
* lambda.c (maybe_add_lambda_conv_op, finish_lambda_function):
Likewise.
* method.c (synthesize_method): Likewise.
* optimize.c (maybe_thunk_body, maybe_clone_body): Likewise.
* pt.c (instantiate_decl): Likewise.
* parser.c (cp_parser_function_definition_after_declarator,
cp_parser_late_parsing_for_member, cp_parser_omp_declare_reduction):
Likewise.
(cp_parser_ctor_initializer_opt,
cp_parser_ctor_initializer_opt_and_function_body,
cp_parser_function_try_block,
cp_parser_function_definition_after_declarator,
cp_parser_function_transaction): Return void; adjust declarations.

From-SVN: r253497

7 years ago[PR c++/82424] Dont convert dependent types
Nathan Sidwell [Fri, 6 Oct 2017 16:02:13 +0000 (16:02 +0000)]
[PR c++/82424] Dont convert dependent types

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00385.html
cp/
PR c++/82424
* name-lookup.c (check_local_shadow): Don't try and convert
dependent types.

testsuite/
PR c++/82424
* g++.dg/warn/pr82424.C: New.

From-SVN: r253496

7 years agore PR c++/82299 (-Wuseless-cast errors on typed enums used in member data initializer...
Jakub Jelinek [Fri, 6 Oct 2017 15:50:50 +0000 (17:50 +0200)]
re PR c++/82299 (-Wuseless-cast errors on typed enums used in member data initializers in c++1z)

PR c++/82299
* decl.c (reshape_init): Suppress warn_useless_cast for direct enum
init.
* typeck.c (convert_for_assignment): Likewise.

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

From-SVN: r253495

7 years agoP0704R1 - fixing const-qualified pointers to members
Jakub Jelinek [Fri, 6 Oct 2017 15:43:17 +0000 (17:43 +0200)]
P0704R1 - fixing const-qualified pointers to members

P0704R1 - fixing const-qualified pointers to members
* typeck2.c (build_m_component_ref): For -std=c++2a allow
pointer to const & qualified method on rvalue.

* g++.dg/cpp2a/ptrmem1.C: New test.

From-SVN: r253494

7 years ago[C++ PATCH] hash-table for extern-c fns.
Nathan Sidwell [Fri, 6 Oct 2017 14:19:23 +0000 (14:19 +0000)]
[C++ PATCH] hash-table for extern-c fns.

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00376.html
Use hash_table for extern "C" names
* name-lookup.c (extern_c_fns): Use hash_table.
(check_extern_c_conflict): Adjust.
(c_linkage_bindings): Adjust.

From-SVN: r253493

7 years agoAdd sanopt support for UBSAN_PTR.
Martin Liska [Fri, 6 Oct 2017 14:14:14 +0000 (16:14 +0200)]
Add sanopt support for UBSAN_PTR.

2017-10-06  Martin Liska  <mliska@suse.cz>

* sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
keyword for member functions.
(struct sanopt_tree_couple): New struct.
(struct sanopt_tree_couple_hash): New function.
(struct sanopt_ctx): Add new hash_map.
(has_dominating_ubsan_ptr_check): New function.
(record_ubsan_ptr_check_stmt): Likewise.
(maybe_optimize_ubsan_ptr_ifn): Likewise.
(sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
(pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
2017-10-06  Martin Liska  <mliska@suse.cz>

* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: New test.

From-SVN: r253492

7 years agoztest.c (test_large): Pass unsigned long *, not size_t *, to zlib uncompress function.
Ian Lance Taylor [Fri, 6 Oct 2017 13:37:20 +0000 (13:37 +0000)]
ztest.c (test_large): Pass unsigned long *, not size_t *, to zlib uncompress function.

* ztest.c (test_large): Pass unsigned long *, not size_t *, to
zlib uncompress function.

From-SVN: r253491

7 years agoCommitted on behalf of Sudi Das
Sudakshina Das [Fri, 6 Oct 2017 13:25:18 +0000 (13:25 +0000)]
Committed on behalf of Sudi Das

2017-10-06  Sudakshina Das  <sudi.das@arm.com>

PR target/82440
* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
aarch64_simd_valid_immediate on CONST_VECTORs.
(aarch64_reg_or_bic_imm): Likewise.

*** gcc/testsuite/ChangeLog ***

2017-10-06  Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/bic_imm_1.c: New test.
* gcc.target/aarch64/orr_imm_1.c: Likewise.

From-SVN: r253490

7 years ago[C++ PATCH] use hash-table for namespace contents
Nathan Sidwell [Fri, 6 Oct 2017 13:15:23 +0000 (13:15 +0000)]
[C++ PATCH] use hash-table for namespace contents

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00365.html
Use hash_table for namespace bindings
* cp-tree.h (struct named_decl_hash): New.
(lang_decl_ns): Change type of bindings field.
* lex.c (maybe_add_lang_decl_raw): Adjust.
* name-lookup.c (find_namespace_slot): Adjust.
(do_pushdecl): Push NULL-named namespace.
(do_push_nested_namespace): Adjust.
(push_namespace): Push anonymous namespace as NULL name.

From-SVN: r253489

7 years agoPR82396 workaround
Wilco Dijkstra [Fri, 6 Oct 2017 11:54:51 +0000 (11:54 +0000)]
PR82396 workaround

r253236 broke AArch64 bootstrap.  This is a temporary workaround that
disables qsort checking in the scheduler to enable continued development
and testing on AArch64.  This will be removed once the autopref scheduling
code has been fixed.

    gcc/
PR rtl-optimization/82396
* haifa-sched.c (ready_sort_real): Disable qsort checking.

From-SVN: r253487

7 years agographite-dependences.c (scop_get_reads): Move code to...
Sebastian Pop [Fri, 6 Oct 2017 11:26:33 +0000 (11:26 +0000)]
graphite-dependences.c (scop_get_reads): Move code to...

2017-10-06  Sebastian Pop  <sebpop@gmail.com>

* graphite-dependences.c (scop_get_reads): Move code to...
        (scop_get_must_writes): Move code to...
        (scop_get_may_writes): Move code to...
        (scop_get_reads_and_writes): ... here.
        (scop_get_dependences): Call scop_get_reads_and_writes.

From-SVN: r253486

7 years agore PR c++/60153 (internal compiler error: in dependent_type_p, at cp/pt.c:21951)
Paolo Carlini [Fri, 6 Oct 2017 10:06:14 +0000 (10:06 +0000)]
re PR c++/60153 (internal compiler error: in dependent_type_p, at cp/pt.c:21951)

2017-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/60153
* g++.dg/cpp0x/variadic-crash3.C: New.

From-SVN: r253484

7 years agore PR tree-optimization/82434 (-fstore-merging does not work reliably.)
Jakub Jelinek [Fri, 6 Oct 2017 09:39:07 +0000 (11:39 +0200)]
re PR tree-optimization/82434 (-fstore-merging does not work reliably.)

PR tree-optimization/82434
* fold-const.h (can_native_encode_type_p,
can_native_encode_string_p): Remove.
* fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
don't encode anything, just return what would be otherwise returned.
(native_encode_fixed, native_encode_complex, native_encode_vector):
Likewise.
(native_encode_string): Likewise.  Inline by hand
can_native_encode_string_p.
(can_native_encode_type_p): Remove.
(can_native_encode_string_p): Remove.
* tree-vect-stmts.c (vectorizable_store): Instead of testing just
STRING_CSTs using can_native_encode_string_p, test all
CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
* gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
argument from native_encode_expr.
(rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
(pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
but just 2.

* gcc.dg/store_merging_9.c: New test.

From-SVN: r253483

7 years agore PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1...
Richard Biener [Fri, 6 Oct 2017 09:27:09 +0000 (09:27 +0000)]
re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses)

2017-10-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82397
* tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
operand_equal_p but rely on data_ref_compare_tree for detecting
equalities.
(vect_analyze_data_ref_accesses): Use data_ref_compare_tree
to match up with dr_group_sort_cmp.

* gfortran.dg/pr82397.f: New testcase.

From-SVN: r253482

7 years agoPR82322: S/390: Fix vec_ceil and friends
Andreas Krebbel [Fri, 6 Oct 2017 09:19:46 +0000 (09:19 +0000)]
PR82322: S/390: Fix vec_ceil and friends

vec_ceil and friends are expanded by vecintrin.h to __builtin_s390_vfi
which is an overloaded builtin being replaced by either
__builtin_s390_vfisb or __builtin_s390_vfidb depending on its argument
types.

The problem in this PR was that the overloaded builtin definition of
__builtin_s390_vfi was missing in s390-builtins.def.

gcc/ChangeLog:

2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82322
* config/s390/s390-builtins.def (s390_vfi): Define new overloaded
builtin.
* config/s390/s390-builtin-types.def: Regenerate.

gcc/testsuite/ChangeLog:

2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82322
* gcc.target/s390/zvector/pr82322.c: New test.

From-SVN: r253481

7 years agoPR82317: S/390: Fix vec_min/vec_max builtins for IBM z13.
Andreas Krebbel [Fri, 6 Oct 2017 09:18:37 +0000 (09:18 +0000)]
PR82317: S/390: Fix vec_min/vec_max builtins for IBM z13.

With IBM z14 a hardware instruction for floating point min and max has
been added while for IBM z13 we emulated min/max for vector double with
compare and select.  This testcase makes sure that we fall back to the
emulated variant when compiling for z13.

gcc/ChangeLog:

2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82317
* config/s390/s390-builtin-types.def: Regenerate.
* config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
Change flag from B_VXE to B_VX.
(s390_vec_min_dbl): Remove B_VXE flag.

gcc/testsuite/ChangeLog:

2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/82317
* gcc.target/s390/zvector/pr82317.c: New test.

From-SVN: r253480

7 years agore PR tree-optimization/82422 ([graphite] ICE in set_codegen_error, at graphite-isl...
Richard Biener [Fri, 6 Oct 2017 08:23:56 +0000 (08:23 +0000)]
re PR tree-optimization/82422 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:248)

2017-10-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82422
* gcc.dg/graphite/pr82422.c: New testcase.

From-SVN: r253479

7 years agore PR tree-optimization/82421 ([graphite] ICE: tree check: expected ssa_name, have...
Richard Biener [Fri, 6 Oct 2017 08:20:58 +0000 (08:20 +0000)]
re PR tree-optimization/82421 ([graphite] ICE: tree check: expected ssa_name, have integer_cst in get_rename, at graphite-isl-ast-to-gimple.c:1127)

2017-10-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82421
* gcc.dg/graphite/pr82421.c: New testcase.

From-SVN: r253478

7 years agore PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89)
Jakub Jelinek [Fri, 6 Oct 2017 07:11:25 +0000 (09:11 +0200)]
re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89)

PR c/82437
* c-warn.c (warn_tautological_bitwise_comparison): Instead of
using to_widest use wide_int with the larger of the two precisions.

* c-c++-common/Wtautological-compare-6.c: New test.

From-SVN: r253476

7 years agographite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
Richard Biener [Fri, 6 Oct 2017 07:06:17 +0000 (07:06 +0000)]
graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.

2017-10-06  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
(translate_isl_ast_to_gimple::translate_pending_phi_nodes,
translate_isl_ast_to_gimple::is_valid_rename,
translate_isl_ast_to_gimple::get_rename,
translate_isl_ast_to_gimple::get_def_bb_for_const,
translate_isl_ast_to_gimple::get_new_name,
translate_isl_ast_to_gimple::collect_all_ssa_names,
translate_isl_ast_to_gimple::copy_loop_phi_args,
translate_isl_ast_to_gimple::collect_all_ssa_names,
translate_isl_ast_to_gimple::copy_loop_phi_args,
translate_isl_ast_to_gimple::copy_loop_phi_nodes,
translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
translate_isl_ast_to_gimple::copy_loop_close_phi_args,
translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
translate_isl_ast_to_gimple::copy_cond_phi_args,
translate_isl_ast_to_gimple::copy_cond_phi_nodes,
translate_isl_ast_to_gimple::edge_for_new_close_phis,
translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
translate_isl_ast_to_gimple::rename_uses,
translate_isl_ast_to_gimple::rename_all_uses): Remove.
(translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
(set_rename_for_each_def): Likewise.
(graphite_copy_stmts_from_block): Handle debug stmt resetting
here.  Handle rewriting SCEV analyzable uses here.
(copy_bb_and_scalar_dependences): Generate code for PHI
copy-in/outs.
(graphite_regenerate_ast_isl): Adjust.
* graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
(add_write, add_read): New functions.
(build_cross_bb_scalars_def): Use it and simplify.
(build_cross_bb_scalars_use): Likewise.
(graphite_find_cross_bb_scalar_vars): Inline into...
(try_generate_gimple_bb): ...here.  Add dependences for PHIs,
simulating out-of-SSA.  Compute liveout and add dependencies.
(build_scops): Force an empty entry block.
* sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
members.
(sese_build_liveouts): Declare.
(sese_trivially_empty_bb_p): Likewise.
* sese.c (sese_build_liveouts_bb): Properly handle PHIs,
compute liveout and debug_liveout.
(sese_bad_liveouts_use): Remove.
(sese_reset_debug_liveouts_bb): Likewise.
(sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
(sese_build_liveouts): Build liveout and debug_liveout and store
it in region.
(new_sese_info): Adjust.
(free_sese_info): Likewise.
(sese_insert_phis_for_liveouts): Reset debug stmts from here,
do not build liveout here.
(move_sese_in_condition): Adjust region entry.
(scev_analyzable_p): Match up with chrec_apply requirements.
(sese_trivially_empty_bb_p): New.
* tree-into-ssa.c (get_reaching_def): Properly support generating
default-defs for incremental rewrite of anonymous names.

* gcc.dg/graphite/id-15.c: No longer expect a code generation error.
* gcc.dg/graphite/id-16.c: Likewise.
* gcc.dg/graphite/pr46168.c: Likewise.
* gcc.dg/graphite/pr68756.c: Likewise.
* gcc.dg/graphite/pr69728.c: Likewise.
* gcc.dg/graphite/pr71575-2.c: Likewise.
* gcc.dg/graphite/pr77362.c: Likewise.
* gcc.dg/graphite/pr81373.c: Likewise.
* gcc.dg/graphite/run-id-pr67700-1.c: Likewise.
* gfortran.dg/graphite/interchange-1.f: Likewise.
* gfortran.dg/graphite/pr42334-1.f: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Likewise.
* gfortran.dg/graphite/pr42393.f90: Likewise.
* gfortran.dg/graphite/pr47019.f: Likewise.
* gfortran.dg/graphite/id-17.f: Likewise.
* gfortran.dg/graphite/id-19.f: Likewise.
* gfortran.dg/graphite/run-id-2.f90: Likewise.
* gfortran.dg/graphite/pr42326-1.f90: Likewise.
* gfortran.dg/graphite/pr42326.f90: Likewise.
* gfortran.dg/graphite/pr68550-2.f90: Likewise.
* gfortran.dg/graphite/pr29581.f90: Likewise.  No longer expect
a code generation error.
* gfortran.dg/graphite/run-id-3.f90: Likewise.
* gfortran.dg/graphite/pr29832.f90: Likewise.

From-SVN: r253475

7 years agographite-sese-to-poly.c (extract_affine): For casts increasing precision do not perfo...
Richard Biener [Fri, 6 Oct 2017 07:03:51 +0000 (07:03 +0000)]
graphite-sese-to-poly.c (extract_affine): For casts increasing precision do not perform modulo reduction.

2017-10-06  Richard Biener  <rguenther@suse.de>

* graphite-sese-to-poly.c (extract_affine): For casts increasing
precision do not perform modulo reduction.

From-SVN: r253474

7 years agore PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect...
Richard Biener [Fri, 6 Oct 2017 07:03:23 +0000 (07:03 +0000)]
re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410)

2017-10-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82436
* tree-vect-slp.c (vect_supported_load_permutation_p): More
conservatively choose the vectorization factor when checking
whether we can perform the required load permutation.
(vect_transform_slp_perm_load): Assert when we may not fail.

* gcc.dg/vect/pr82436.c: New testcase.

From-SVN: r253473

7 years agoDaily bump.
GCC Administrator [Fri, 6 Oct 2017 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253472

7 years agocompiler: drop special handling of unexported func/var assembler names
Ian Lance Taylor [Thu, 5 Oct 2017 23:25:51 +0000 (23:25 +0000)]
compiler: drop special handling of unexported func/var assembler names

    For example, for the package math/big, we used to generate unexported
    names as `big.trim` and exported names as `math_big.NewInt`.  After
    this change we will use `math_big` consistently.

    Reviewed-on: https://go-review.googlesource.com/68651

From-SVN: r253468

7 years agors6000: Fix an error message in sysv4.h
Segher Boessenkool [Thu, 5 Oct 2017 21:55:50 +0000 (23:55 +0200)]
rs6000: Fix an error message in sysv4.h

While looking at PR82411, I got the error message

error: '-msdata=-mcall' and 'eabi-linux' are incompatible

which caused some head-scratching.

* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
message for incompatible -msdata=* and -mcall-* options.

From-SVN: r253467

7 years ago* call.c (convert_arg_to_ellipsis): Use the result of force_rvalue.
Jason Merrill [Thu, 5 Oct 2017 21:26:50 +0000 (17:26 -0400)]
* call.c (convert_arg_to_ellipsis): Use the result of force_rvalue.

From-SVN: r253465

7 years agoFix new testsuite failure on newlib targets
Jonathan Wakely [Thu, 5 Oct 2017 20:26:08 +0000 (21:26 +0100)]
Fix new testsuite failure on newlib targets

* testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.

From-SVN: r253463

7 years agoc-pretty-print.c (pp_c_parameter_type_list): Print ...
Bernd Edlinger [Thu, 5 Oct 2017 20:08:27 +0000 (20:08 +0000)]
c-pretty-print.c (pp_c_parameter_type_list): Print ...

2017-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

* c-pretty-print.c (pp_c_parameter_type_list): Print ... for variadic
functions.

testsuite:
2017-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

* gcc.dg/Wincompatible-pointer-types-1.c: New test.

From-SVN: r253460

7 years agocompiler: centralize all symbol name handling
Ian Lance Taylor [Thu, 5 Oct 2017 17:20:30 +0000 (17:20 +0000)]
compiler: centralize all symbol name handling

    Consolidate all symbol name handling into the new file names.cc.  This
    is intended to define all the names that will appear in the generated
    assembly code.  Names that will not appear in the assembly code, such
    as local variable names or label names, remain where they are.

    This consolidation is not intended to change any of the existing
    symbol names.  Tested by building without and without this patch and
    comparing the libgo symbol table.

    Reviewed-on: https://go-review.googlesource.com/68310

* Make-lang.in (GO_OBJS): Add go/names.o.

From-SVN: r253458

7 years agoelf.c (elf_zlib_fetch): Change pval argument to uint64_t *.
Ian Lance Taylor [Thu, 5 Oct 2017 16:39:38 +0000 (16:39 +0000)]
elf.c (elf_zlib_fetch): Change pval argument to uint64_t *.

* elf.c (elf_zlib_fetch): Change pval argument to uint64_t *.
Read a four byte integer.
(elf_zlib_inflate): Change val to uint64_t.  Align pin to a 32-bit
boundary before ever calling elf_zlib_fetch.
* ztest.c (test_large): Simplify print statements a bit.

From-SVN: r253456

7 years agore PR ada/82393 (Compilation error on cygwin64)
Eric Botcazou [Thu, 5 Oct 2017 16:32:21 +0000 (16:32 +0000)]
re PR ada/82393 (Compilation error on cygwin64)

PR ada/82393
* mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete.
* sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin.

From-SVN: r253454

7 years agoi386.c (ia32_multipass_dfa_lookahead): Default to issue rate for post-reload scheduling.
Jan Hubicka [Thu, 5 Oct 2017 16:29:42 +0000 (18:29 +0200)]
i386.c (ia32_multipass_dfa_lookahead): Default to issue rate for post-reload scheduling.

* i386.c (ia32_multipass_dfa_lookahead): Default to issue rate
for post-reload scheduling.

From-SVN: r253453

7 years agoslp-perm-9.c: Use vect_sizes_16B_8B.
Tamar Christina [Thu, 5 Oct 2017 15:17:39 +0000 (15:17 +0000)]
slp-perm-9.c: Use vect_sizes_16B_8B.

gcc/testsuite/
2017-10-05  Tamar Christina  <tamar.christina@arm.com>

* gcc.dg/vect/slp-perm-9.c: Use vect_sizes_16B_8B.
* lib/target-supports.exp (vect_sizes_16B_8B): New.

gcc/
2017-10-05  Tamar Christina  <tamar.christina@arm.com>

* doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.

From-SVN: r253452

7 years agovect-align-1.c: Fix vect_hw_misalign condition.
Tamar Christina [Thu, 5 Oct 2017 15:13:31 +0000 (15:13 +0000)]
vect-align-1.c: Fix vect_hw_misalign condition.

2017-09-28  Tamar Christina  <tamar.christina@arm.com>

* gcc.dg/vect/vect-align-1.c: Fix vect_hw_misalign condition.
* gcc.dg/vect/vect-align-2.c: Likewise.
* gcc.dg/vect/vect-multitypes-1.c: Likewise

From-SVN: r253451

7 years agoi386.c (znver1_cost): Set branch_cost to 3 (instead of 2) to improve monte carlo...
Jan Hubicka [Thu, 5 Oct 2017 15:00:25 +0000 (17:00 +0200)]
i386.c (znver1_cost): Set branch_cost to 3 (instead of 2) to improve monte carlo in scimark.

* i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
to improve monte carlo in scimark.

From-SVN: r253449

7 years agoi386.c (ix86_size_cost, [...]): Set reassociation width to 1.
Jan Hubicka [Thu, 5 Oct 2017 14:56:32 +0000 (16:56 +0200)]
i386.c (ix86_size_cost, [...]): Set reassociation width to 1.

* i386.c (ix86_size_cost, i386_cost, i486_cost, pentium_cost,
lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
pentium4_cost, nocona_cost): Set reassociation width to 1.
(bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
width to 2 for fp operations and 1 otherwise.
(znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
for int and fp.
(atom_cost): Set reassociation width to 2.
(slm_cost, generic_cost): Set fp reassociation width to 2 and 1 otherwise.
(intel_cost): Set fp reassociation width to 4 and 1 otherwise.
(core_cost): Set fp reassociation width to 4 and vector to 2.
(ix86_reassociation_width): Rewrite using cost table; special case
plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
and TARGET_AVX128_OPTIMAL.
* i386.h (processor_costs): Add
reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
(TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
TARGET_REASSOC_FP_TO_PARALLEL): Remove.
* x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
(X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
(X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.

From-SVN: r253448

7 years agoRe: [PATCH] C++ warning on vexing parse
Nathan Sidwell [Thu, 5 Oct 2017 13:27:37 +0000 (13:27 +0000)]
Re: [PATCH] C++ warning on vexing parse

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00249.html
gcc/cp/
Warn on MVP declarations
* cp-tree.h (struct cp_declarator): Add parenthesized field.
* decl.c (grokdeclarator): Warn about unnecessary parens.
* parser.c (make_declarator): Init parenthesized field.
(cp_parser_direct_declarator): Set parenthesized field.

gcc/
* doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.

gcc/testsuite/
* g++.dg/warn/mvp.C: New.

From-SVN: r253446

7 years ago[C++ PATCH] Kill IDENTIFIER_GLOBAL_VALUE
Nathan Sidwell [Thu, 5 Oct 2017 12:10:55 +0000 (12:10 +0000)]
[C++ PATCH] Kill IDENTIFIER_GLOBAL_VALUE

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00239.html
Kill IDENTIFIER_GLOBAL_VALUE, SET_IDENTIFIER_GLOBAL_VALUE
* cp-tree.h (IDENTIFIER_GLOBAL_VALUE,
SET_IDENTIFIER_GLOBAL_VALUE): Delete.
* name-lookup.h (set_global_binding): Remove NAME parm.
(get_global_binding): New inline fn.
* name-lookup.c (set_global_binding): Remove NAME parm. Adjust.
(identifier_global_value): Move to ...
* cp-objcp-common.c (identifier_global_value): ... here.
* class.c (build_ctor_vtbl_group, build_vtbl_initializer): Adjust.
* decl.c (record_builtin_type, expand_static_init,
grokdeclarator): Adjust.
* decl2.c (get_guard, get_local_tls_init_fn, get_tls_init_fn,
get_tls_wrapper_fn, maybe_warn_sized_delete): Adjust.
* except.c (declare_library_fn, build_throw): Adjust.
* init.c (throw_bad_array_length): Adjust.
* rtti.c (throw_bad_cast, throw_bad_typeid, get_tinfo_decl): Adjust.

From-SVN: r253444