summaryrefslogtreecommitdiff
path: root/gcc
Commit message (Collapse)AuthorAgeFilesLines
* 2016-07-04 Bob Duff <duff@adacore.com>charlet2016-07-0418-83/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_eval.adb (Decompose_Expr): Set 'out' parameters Kind and Cons to valid values, to avoid use of uninit vars. (Extract_Length): Reorder the check to make it clearer that we're depending on BOTH Ent1 and Ent2 to be Present. * sem_aggr.adb (Resolve_Aggregate): Remove dead code. (Check_Misspelled_Component): Remove exit statement, because it's covered by the 'while' condition. * checks.adb (Apply_Selected_Range_Checks): Remove useless condition "or else not Checks_On". (Selected_Range_Checks): Initialize Known_LB and Known_HB to False, because they are tested unconditionally; avoid use of uninit vars. * frontend.adb (Frontend): Removed useless condition "Operating_Mode = Check_Semantics and then", and added an Assert to clarify why it was useless. * prep.adb (Preprocess): Remove redundant condition. Add an assertion. * sem_ch10.adb (Analyze_Proper_Body): Moved redundant condition "Original_Operating_Mode = Generate_Code" to an Assert. (Process_Spec_Clauses, Process_Body_Clauses): Change parameters from 'in out' to 'out', and don't initialize actuals. * sem_ch12.adb (Is_In_Main_Unit): Removed useless condition "Unum = Main_Unit or else". (Save_Global_Descendant): Moved redundant condition "D = Union_Id (No_List)" to an Assert. * sem_ch4.adb (Check_Misspelled_Selector): Remove exit statement, because it's covered by the 'while' condition. (Analyze_Case_Expression): Initialize Wrong_Alt to Empty, because it looks like it is used uninitialized otherwise. * sem_ch6.adb (Check_Return_Subtype_Indication): Moved redundant condition "not R_Type_Is_Anon_Access" to an Assert. * sem_elim.adb (Line_Num_Match): Moved redundant condition "Sloc_Trace (Idx) = '['" to an Assert. * sem_util.adb (Compile_Time_Constraint_Error): Change "J" to "J - 1". This code is trying to replace "?" with "<", but not if the "?" is quoted, as in "'?", so we want to check the PREVIOUS character for '''. * snames.adb-tmpl (Is_Pragma_Name): Remove useless condition "or else N = Name_Relative_Deadline". It's useless because Name_Relative_Deadline is in the range First_Pragma_Name .. Last_Pragma_Name. * treepr.adb (Visit_Node): Moved redundant condition "D = Union_Id (No_List)" to an Assert. * sem_ch3.adb (Derive_Subprogram, Derive_Subprograms): Change parameters from 'in out' to 'out'. * errout.adb (Error_Msg_Internal): Replace redundant test with Assert. * inline.adb (Add_Inlined_Body): Code cleanup. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237972 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Hristian Kirtchev <kirtchev@adacore.com>charlet2016-07-043-13/+14
| | | | | | | | * g-sercom-mingw.adb, sem_ch6.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237971 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Olivier Hainque <hainque@adacore.com>charlet2016-07-043-3/+34
| | | | | | | | | | | | | | | * g-sercom-mingw.adb (Set): Fix port configuration for the non-blocking + null-timeout case, request of immediate return. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Is_Non_Overriding_Operation): Add guard to test of generic parent type when operation is a parameterless function that may dispatch on result. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237970 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Hristian Kirtchev <kirtchev@adacore.com>charlet2016-07-047-46/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * freeze.adb, ghost.adb, sem_ch13.adb: Minor reformatting. 2016-07-04 Pascal Obry <obry@adacore.com> * g-forstr.ads: More documentation for the Formatted_String support. 2016-07-04 Justin Squirek <squirek@adacore.com> * sem_ch7.adb (Install_Parent_Private_Declarations): When instantiating a child unit, do not install private declaration of a non-generic ancestor of the generic that is also an ancestor of the current unit: its private part will be installed when private part of ancestor itself is analyzed. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Instantiate_Object): In SPARK mode add a guard to verify that the actual is an object reference before checking for volatility. (Check_Generic_Child_Unit): Prevent cascaded errors when prefix is illegal. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237969 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Gary Dismukes <dismukes@adacore.com>charlet2016-07-0410-46/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | * sem_ch12.ads, freeze.adb: Minor reformatting and typo fixes. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (New_Stream_Subprogram): If the attribute definition clause comes from an aspect specification, place the generated subprogram renaming in the freeze actions of the type. 2016-07-04 Philippe Gil <gil@adacore.com> * g-debpoo.adb (Dump.Do_Report) - add space prefix to backtrace address dump - avoid new line sent directly to stdout. 2016-07-04 Arnaud Charlet <charlet@adacore.com> * gnat1drv.adb, sem_ch12.adb, sem_elab.adb, sem_prag.adb, sem_res.adb: Relax elaboration checks in SPARK_Mode so that we rely on the static elaboration model (if used). We'll have a more precise check performed in flow analysis of gnat2why. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237968 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Ed Schonberg <schonberg@adacore.com>charlet2016-07-042-0/+14
| | | | | | | | | * ghost.adb (Prune_Node): A freeze node for an ignored ghost entity must be pruned as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237967 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Gary Dismukes <dismukes@adacore.com>charlet2016-07-045-14/+19
| | | | | | | | | * sem_type.adb, einfo.ads, freeze.adb, exp_ch6.adb: Minor reformatting and typo fix. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237966 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Hristian Kirtchev <kirtchev@adacore.com>charlet2016-07-049-60/+72
| | | | | | | | | | * sem_ch3.adb, sem_type.adb, sem_ch12.adb, xref_lib.adb, freeze.adb, sinput-l.adb, sinput-l.ads, sem_ch4.adb, sem_ch8.adb: Minor reformatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237965 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Justin Squirek <squirek@adacore.com>charlet2016-07-047-22/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sem_prag.adb (Analyze_Unmodified_Or_Unused and Analyze_Unreferenced_Or_Unused): Change warning message to be more clear about pragma duplicates. 2016-07-04 Yannick Moy <moy@adacore.com> * sinput-l.adb (Create_Instantiation_Source): Set component Inlined_Call for inherited pragma case. * sinput.adb, sinput.ads (Instantiation): Return component Inlined_Call for inherited pragma case. 2016-07-04 Bob Duff <duff@adacore.com> * sem_type.adb (Remove_Conversions): Protect the call to Left_Opnd by checking for Nkind in N_Unary_Op -- unary operators do not have a left operand. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): A declaration of a constant in a protected operation may be a homonym of a private component of the enclosing protected type. This declaration hides the component renaming constructed within the protected operation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237964 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Bob Duff <duff@adacore.com>charlet2016-07-0415-56/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * xref_lib.adb (Parse_X_Filename, Parse_Identifier_Info): Ignore unknown files. Check that File_Nr is in the range of files we know about. The previous code was checking the lower bound, but not the upper bound. 2016-07-04 Arnaud Charlet <charlet@adacore.com> * tracebak.c: Minor reformatting. 2016-07-04 Yannick Moy <moy@adacore.com> * sem_ch12.adb, sem_ch12.ads Update calls to Create_Instantiation_Source to use default argument. (Adjust_Inherited_Pragma_Sloc): New function to adjust sloc of inherited pragma. (Set_Copied_Sloc_For_Inherited_Pragma): New function that wraps call to Create_Instantiation_Source for copying an inherited pragma. (Set_Copied_Sloc_For_Inlined_Body): Update call to Create_Instantiation_Source with new arguments. * sem_prag.adb (Build_Pragma_Check_Equivalent): In the case of inherited pragmas, use the generic machinery to get chained locations for the pragma and its sub-expressions. * sinput-c.adb: Adapt to new type Source_File_Record. * sinput-l.adb, sinput-l.ads (Create_Instantiation_Source): Add parameter Inherited_Pragma and make parameter Inlined_Body optional. * sinput.adb, sinput.ads (Comes_From_Inherited_Pragma): New function to return when a location comes from an inherited pragma. (Inherited_Pragma): New function to detect when a location comes from an inherited pragma. (Source_File_Record): New component Inherited_Pragma. 2016-07-04 Yannick Moy <moy@adacore.com> * sem_elab.adb: Register existence of quickfix for error message. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Resolve_One_Call): In the context of a predicate function the formal and the actual in a call may have different views of the same type, because of the delayed analysis of predicates aspects. Extend the patch that handles this potential discrepancy to handle private and full views as well. * sem_ch8.adb (Find_Selected_Component): Refine predicate that produces additional error when an illegal selected component looks like a prefixed call whose first formal is untagged. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237963 138bc75d-0d04-0410-961f-82ee72b054a4
* Minor reformatting.charlet2016-07-042-9/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237962 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Justin Squirek <squirek@adacore.com>charlet2016-07-048-250/+399
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * einfo.adb (Has_Pragma_Unused): Create this function as a setter for a new flag294 (Set_Has_Pragma_Unused): Create this procedure as a getter for flag294 (Write_Entity_Flags): Register the new flag with an alias * einfo.ads Add comment documenting Has_Pragma_Unused (flag294) and subsequent getter and setter declarations. * lib-xref.adb (Generate_Reference): Recognize Has_Pragma_Unused flag to print appropriate warning messages. * par-prag.adb (Prag): Classify Pragma_Unused into "All Other Pragmas." * snames.ads-tmpl Add a new name to the name constants and a new pramga to Pragma_Id for pramga Unused. * sem_prag.adb (Analyze_Pragma): Create case for Pragma_Unused and move the block for Pragma_Unmodified and Pragma_Unreferenced out and into local subprograms. (Analyze_Unmodified, Analyze_Unreferenced): From the old pragma blocks that have been separated in to local subprograms add a parameter to indicate the if they are being called in the context of Pragma_Unused and handle it accordingly. (Is_Non_Significant_Pragma_Reference): Add an entry for Pragma_Unused and correct the position of Pragma_Unevaluated_Use_Of_Old. * sem_util.adb (Note_Possible_Modification): Recognize Has_Pragma_Unused flag to print appropriate warning messages. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237961 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Ed Schonberg <schonberg@adacore.com>charlet2016-07-044-23/+67
| | | | | | | | | | | | | | | | | * freeze.adb (Check_Inherited_Conditions): Perform two passes over the primitive operations of the type: one over source overridings to build the primitives mapping, and one over inherited operations to check for the need to create wrappers, and to check legality of inherited condition in SPARK. * sem_prag.ads (Update_Primitive_Mapping): Make public, for use in freeze actions. * sem_prag.adb (Build_Pragma_Check_Equivalent): Refine error message in the case of an inherited condition in SPARK that includes a call to some other overriding primitive. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237960 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-04 Hristian Kirtchev <kirtchev@adacore.com>charlet2016-07-0410-130/+349
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * exp_aggr.adb (Ctrl_Init_Expression): New routine. (Gen_Assign): Code cleanup. Perform in-place side effect removal when the expression denotes a controlled function call. * exp_util.adb (Remove_Side_Effects): Do not remove side effects on a function call which has this behavior suppressed. * sem_aggr.adb Code cleanup. * sinfo.adb (No_Side_Effect_Removal): New routine. (Set_Side_Effect_Removal): New routine. * sinfo.ads New attribute No_Side_Effect_Removal along with occurences in nodes. (No_Side_Effect_Removal): New routine along with pragma Inline. (Set_Side_Effect_Removal): New routine along with pragma Inline. 2016-07-04 Arnaud Charlet <charlet@adacore.com> * opt.ads, sem_prag.adb (Universal_Addressing_On_AAMP): Removed. Remove support for pragma No_Run_Time. Update comments. 2016-07-04 Pascal Obry <obry@adacore.com> * g-forstr.ads: More documentation for the Formatted_String support. 2016-07-04 Ed Schonberg <schonberg@adacore.com> * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): If the address comes from an aspect specification and not a source attribute definition clause, do not remove side effects from the expression, because the expression must be elaborated at the freeze point of the object and not at the object declaration, because of the delayed analysis of aspect specifications. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237959 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64] Fix PR target/63874ramana2016-07-044-4/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this PR we have a situation where we aren't really detecting weak references vs weak definitions. If one has a weak definition that binds locally there's no reason not to put out PC relative relocations. However if you have a genuine weak reference that is known not to bind locally it makes very little sense to put out an entry into the literal pool which doesn't always work with DSOs and shared objects. Tested aarch64-none-linux-gnu bootstrap and regression test with no regressions 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/63874 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix typo in comment. Only force to memory if it is a weak external reference. 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/63874 * gcc.target/aarch64/pr63874.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237957 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64] ARMv8.2 command line and feature macros supportjiwang2016-07-046-3/+46
| | | | | | | | | | | | | | | | | | | | * config/aarch64/aarch64-arches.def: Add "armv8.2-a". * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New. (AARCH64_FL_F16): New. (AARCH64_FL_FOR_ARCH8_2): New. (AARCH64_ISA_8_2): New. (AARCH64_ISA_F16): New. (TARGET_FP_F16INST): New. (TARGET_SIMD_F16INST): New. * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry. ("fp"): Disabling "fp" also disables "fp16". * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins): Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC. * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237956 138bc75d-0d04-0410-961f-82ee72b054a4
* fix interaction of -S and -x {c,c++}-headerjbeulich2016-07-047-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | Irrespective of the use of -o this so far resulted in "error: output filename specified twice", since cc1_options already produces a -o option when -S was specified. gcc/ 2016-07-04 Jan Beulich <jbeulich@suse.com> * gcc.c (default_compilers["@c-header"]): Conditionalize "-o". gcc/cp/ 2016-07-04 Jan Beulich <jbeulich@suse.com> * lang-specs.h ("@c++-header"): Conditionalize "-o". gcc/testsuite/ 2016-07-04 Jan Beulich <jbeulich@suse.com> * g++.dg/header.c: New. * gcc.dg/header.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237955 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-07-041-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237954 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-07-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237949 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c/71719jakub2016-07-024-0/+31
| | | | | | | | | * c-typeck.c (mark_exp_read): Handle VIEW_CONVERT_EXPR. * c-c++-common/Wunused-var-15.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237937 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-07-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237936 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/71687jakub2016-07-015-4/+37
| | | | | | | | | | | | | | | * f95-lang.c (struct binding_level): Add reversed field. (clear_binding_level): Adjust initializer. (getdecls): If reversed is clear, set it and nreverse the names chain before returning it. (poplevel): Use getdecls. * trans-decl.c (gfc_generate_function_code, gfc_process_block_locals): Use nreverse to pushdecl decls in the declaration order. * gfortran.dg/gomp/pr71687.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237926 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-07-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>wschmidt2016-07-0111-9/+87
| | | | | | | | | | | | | | | | | | | | | | | * gcc.dg/const-float128-ped.c: Require __float128 effective target and options. * gcc.dg/const-float128.c: Likewise. * gcc.dg/torture/float128-cmp-invalid.c: Require __float128 and base_quadfloat_support effective targets, and __float128 options. * gcc.dg/torture/float128-div-underflow.c: Likewise. * gcc.dg/torture/float128-extend-nan.c: Likewise. * gcc.dg/torture/float128-nan.c: Likewise. * gcc.dg/torture/fp-int-convert-float128-timode-2.c: Likewise. * gcc.dg/torture/fp-int-convert-float128-timode-3.c: Likewise. * gcc.dg/torture/fp-int-convert-float128-timode.c: Likewise. * lib/target-supports.exp (check_effective_target___float128): New. (add_options_for___float128): New. (check_effective_target_base_quadword_support): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237924 138bc75d-0d04-0410-961f-82ee72b054a4
* update changelogmeissner2016-07-011-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237921 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc]meissner2016-07-014-3/+29
| | | | | | | | | | | | | | | | | | | 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/71720 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting the insns, use vsx_xxspltw_v4sf_direct which does not check for little endian. [gcc/testsuite] 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/71720 * gcc.target/powerpc/pr71720.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237920 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/71717jakub2016-07-012-0/+7
| | | | | | | | | | * trans-openmp.c (gfc_omp_privatize_by_reference): Return false for GFC_DECL_ASSOCIATE_VAR_P with POINTER_TYPE. * testsuite/libgomp.fortran/associate3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237916 138bc75d-0d04-0410-961f-82ee72b054a4
* check initializer to be zero in .bss-like sectionsjbeulich2016-07-014-1/+29
| | | | | | | | | | | | | | | | | | | Just like gas, which has recently learned to reject such initializers, gcc shouldn't accept such either. gcc/ 2016-07-01 Jan Beulich <jbeulich@suse.com> * varasm.c (get_variable_section): Validate initializer in named .bss-like sections. gcc/testsuite/ 2016-07-01 Jan Beulich <jbeulich@suse.com> * gcc.dg/bss.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237913 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:kelvin2016-07-012-1/+7
| | | | | | | | | | | | 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): Exchange the order of the second and third operands in the vpermr instruction tmeplate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237912 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/bergner2016-07-014-2/+27
| | | | | | | | | | | | | PR target/71698 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move): Disallow TDmode values. gcc/testsuite/ PR target/71698 * gcc.target/powerpc/pr71698.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237911 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/testsuite/gjl2016-07-019-21/+58
| | | | | | | | | | | | | | | | | PR target/71151 * gcc.target/avr/pr71151-common.h (foo): Use macro SECTION_NAME instead of ".foo" for its section name. * gcc.target/avr/pr71151-2.c (SECTION_NAME): Define appropriately depending on MCU's flash size. * gcc.target/avr/pr71151-3.c (SECTION_NAME): Dito. * gcc.target/avr/pr71151-4.c (SECTION_NAME): Dito. * gcc.target/avr/pr71151-5.c (SECTION_NAME): Dito. * gcc.target/avr/pr71151-6.c (SECTION_NAME): Dito. * gcc.target/avr/pr71151-7.c (SECTION_NAME): Dito. * gcc.target/avr/pr71151-8.c (SECTION_NAME): Dito. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237910 138bc75d-0d04-0410-961f-82ee72b054a4
* strcpy arg optimised outamodra2016-07-012-1/+7
| | | | | | | | | | | | | | | | | | For functions that return an argument unchanged, like strcat, find_call_crossed_cheap_reg attempts to find an assignment between a pseudo reg and the arg reg before the call, so that uses of the pseudo after the call can instead use the return value. The exit condition on the loop looking at previous insns was wrong. Uses of the arg reg don't matter. What matters is the insn setting the arg reg as any assignment involving the arg reg prior to that insn is likely a completely unrelated use of the hard reg. PR rtl-optimization/71709 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg being set, not referenced. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237909 138bc75d-0d04-0410-961f-82ee72b054a4
* ix86: fix PR/65105 testcase 2jbeulich2016-07-012-1/+5
| | | | | | | | | | | | | | I cannot see how without allowing the compiler to use SSE2 instructions (as is done by all other tests for this PR scanning for particular instructions) this test could ever have succeeded anywhere. gcc/testsuite/ 2016-07-01 Jan Beulich <jbeulich@suse.com> * gcc.target/i386/pr65105-2.c: Add -msse2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237908 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/70729kyukhin2016-07-012-0/+10
| | | | | | | | | gcc/ * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field of loop since it can be not valid after transformation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237907 138bc75d-0d04-0410-961f-82ee72b054a4
* [ARM] Delete thumb_reload_in_hktkachov2016-07-013-8/+5
| | | | | | | | * config/arm/arm.c (thumb_reload_in_hi): Delete. * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237906 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/arm/arm.c (arm_function_ok_for_sibcall): Add another checkebotcazou2016-07-012-1/+6
| | | | | | | for NULL decl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237903 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-07-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237902 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>meissner2016-06-304-8/+38
| | | | | | | | | | | | | | | | | | | | PR target/71677 * config/rs6000/constraints.md (wY constraint): New constraint to match the requirements for the LXSD and STXSD instructions. * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New predicate to match the requirements for the LXSD and STXSD instructions. * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case): Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y' to make sure that the bottom 2 bits of offset are 0, the address form is offsettable, and no updating is done in the address mode. (mov<mode>_hardfloat64, FMOVE64 case): Likewise. (movdi_internal32): Likewise (movdi_internal64): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237898 138bc75d-0d04-0410-961f-82ee72b054a4
* PR tree-optimization/71707jakub2016-06-304-2/+44
| | | | | | | | | | * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present strinfo even for ADDR_EXPR ptr. * gcc.dg/strlenopt-29.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237889 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/71704jakub2016-06-304-33/+150
| | | | | | | | | | | | | | | | | | | * parse.c (matchs, matcho): Move right before decode_omp_directive. If spec_only, only gfc_match the keyword and if successful, goto do_spec_only. (matchds, matchdo): Define. (decode_omp_directive): Add spec_only local var and set it. Use matchds or matchdo macros instead of matchs or matcho for declare target, declare simd, declare reduction and threadprivate directives. Return ST_GET_FCN_CHARACTERISTICS if a non-declarative directive could be matched. (next_statement): For ST_GET_FCN_CHARACTERISTICS restore gfc_current_locus from old_locus even if there is no label. * gfortran.dg/gomp/pr71704.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237888 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/71705jakub2016-06-304-0/+20
| | | | | | | | | | * trans-openmp.c (gfc_trans_omp_clauses): Set TREE_ADDRESSABLE on decls in to/from clauses. * gfortran.dg/gomp/pr71705.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237887 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:kelvin2016-06-3092-13/+1782
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org> * config/rs6000/altivec.md (darn_32): Change the condition to TARGET_P9_MISC instead of TARGET_MODULO. (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the condition expression. (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the condition expression. * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant. (DFP_TEST): New code iterator. (dfptstsfi_<code>_mode>): New define_expand. (*dfp_sgnfcnc_<mode>): New define_insn. * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro definition next to BU_P9_MISC_1 definition and change the MASK value to RS6000_BTM_P9_MISC. (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC. (BU_P9_64BIT_MISC_0): Likewise. (BU_P9_DFP_MISC_0): New macro definition. (BU_P9_DFP_MISC_1): New macro definition. (BU_P9_DFP_MISC_2): New macro definition. (BU_P9_DFP_OVERLOAD_1): New macro definition. (BU_P9_DFP_OVERLOAD_2): New macro definition. (BU_P9_DFP_OVERLOAD_3): New macro definition. (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2. (TSTSFI_LT_TD): Likewise. (TSTSFI_EQ_DD): Likewise. (TSTSFI_EQ_TD): Likewise. (TSTSFI_GT_DD): Likewise. (TSTSFI_GT_TD): Likewise. (TSTSFI_OV_DD): Likewise. (TSTSFI_OV_TD): Likewise. (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2. (TSTSFI_LT_DD): Likewise. (TSTSFI_LT_TD): Likewise. (TSTSFI_EQ): Likewise. (TSTSFI_EQ_DD): Likewise. (TSTSFI_EQ_TD): Likewise. (TSTSFI_GT): Likewise. (TSTSFI_GT_DD): Likewise. (TSTSFI_GT_TD): Likewise. (TSTSFI_OV): Likewise. (TSTSFI_OV_DD): Likewise. (TSTSFI_OV_TD): Likewise. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add overloaded test significance functions. * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add OPTION_MASK_P9_MISC into the representation of this mask. (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation of this mask. * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is non-zero. (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp argument is a 6-bit unsigned literal value if the icode argument represents a DFP test significance built-in call. (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC flag used independently and in combination with the RS6000_BTM_64BIT flag. (rs6000_opt_masks): Add entry for power9-misc command-line option. (rs6000_builtin_mask_names): Add entry for power9-misc command-line option. * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and RS6000_BTM_P9_MISC macros. * config/rs6000/rs6000.opt: Add support for the -mpower9-misc option and change the description of the -mpower9-vector option to enable only vector instructions, removing its erroneously claimed support for scalar instructions. * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document the ISA 3.0 digital floating point test significance built-in functions. gcc/testsuite/ChangeLog: 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org> * gcc.target/powerpc/dfp/dfp.exp: New dejagnu test script. * gcc.target/powerpc/dfp/dtstsfi-0.c: New test. * gcc.target/powerpc/dfp/dtstsfi-1.c: New test. * gcc.target/powerpc/dfp/dtstsfi-10.c: New test. * gcc.target/powerpc/dfp/dtstsfi-11.c: New test. * gcc.target/powerpc/dfp/dtstsfi-12.c: New test. * gcc.target/powerpc/dfp/dtstsfi-13.c: New test. * gcc.target/powerpc/dfp/dtstsfi-14.c: New test. * gcc.target/powerpc/dfp/dtstsfi-15.c: New test. * gcc.target/powerpc/dfp/dtstsfi-16.c: New test. * gcc.target/powerpc/dfp/dtstsfi-17.c: New test. * gcc.target/powerpc/dfp/dtstsfi-18.c: New test. * gcc.target/powerpc/dfp/dtstsfi-19.c: New test. * gcc.target/powerpc/dfp/dtstsfi-2.c: New test. * gcc.target/powerpc/dfp/dtstsfi-20.c: New test. * gcc.target/powerpc/dfp/dtstsfi-21.c: New test. * gcc.target/powerpc/dfp/dtstsfi-22.c: New test. * gcc.target/powerpc/dfp/dtstsfi-23.c: New test. * gcc.target/powerpc/dfp/dtstsfi-24.c: New test. * gcc.target/powerpc/dfp/dtstsfi-25.c: New test. * gcc.target/powerpc/dfp/dtstsfi-26.c: New test. * gcc.target/powerpc/dfp/dtstsfi-27.c: New test. * gcc.target/powerpc/dfp/dtstsfi-28.c: New test. * gcc.target/powerpc/dfp/dtstsfi-29.c: New test. * gcc.target/powerpc/dfp/dtstsfi-3.c: New test. * gcc.target/powerpc/dfp/dtstsfi-30.c: New test. * gcc.target/powerpc/dfp/dtstsfi-31.c: New test. * gcc.target/powerpc/dfp/dtstsfi-32.c: New test. * gcc.target/powerpc/dfp/dtstsfi-33.c: New test. * gcc.target/powerpc/dfp/dtstsfi-34.c: New test. * gcc.target/powerpc/dfp/dtstsfi-35.c: New test. * gcc.target/powerpc/dfp/dtstsfi-36.c: New test. * gcc.target/powerpc/dfp/dtstsfi-37.c: New test. * gcc.target/powerpc/dfp/dtstsfi-38.c: New test. * gcc.target/powerpc/dfp/dtstsfi-39.c: New test. * gcc.target/powerpc/dfp/dtstsfi-4.c: New test. * gcc.target/powerpc/dfp/dtstsfi-40.c: New test. * gcc.target/powerpc/dfp/dtstsfi-41.c: New test. * gcc.target/powerpc/dfp/dtstsfi-42.c: New test. * gcc.target/powerpc/dfp/dtstsfi-43.c: New test. * gcc.target/powerpc/dfp/dtstsfi-44.c: New test. * gcc.target/powerpc/dfp/dtstsfi-45.c: New test. * gcc.target/powerpc/dfp/dtstsfi-46.c: New test. * gcc.target/powerpc/dfp/dtstsfi-47.c: New test. * gcc.target/powerpc/dfp/dtstsfi-48.c: New test. * gcc.target/powerpc/dfp/dtstsfi-49.c: New test. * gcc.target/powerpc/dfp/dtstsfi-5.c: New test. * gcc.target/powerpc/dfp/dtstsfi-50.c: New test. * gcc.target/powerpc/dfp/dtstsfi-51.c: New test. * gcc.target/powerpc/dfp/dtstsfi-52.c: New test. * gcc.target/powerpc/dfp/dtstsfi-53.c: New test. * gcc.target/powerpc/dfp/dtstsfi-54.c: New test. * gcc.target/powerpc/dfp/dtstsfi-55.c: New test. * gcc.target/powerpc/dfp/dtstsfi-56.c: New test. * gcc.target/powerpc/dfp/dtstsfi-57.c: New test. * gcc.target/powerpc/dfp/dtstsfi-58.c: New test. * gcc.target/powerpc/dfp/dtstsfi-59.c: New test. * gcc.target/powerpc/dfp/dtstsfi-6.c: New test. * gcc.target/powerpc/dfp/dtstsfi-60.c: New test. * gcc.target/powerpc/dfp/dtstsfi-61.c: New test. * gcc.target/powerpc/dfp/dtstsfi-62.c: New test. * gcc.target/powerpc/dfp/dtstsfi-63.c: New test. * gcc.target/powerpc/dfp/dtstsfi-64.c: New test. * gcc.target/powerpc/dfp/dtstsfi-65.c: New test. * gcc.target/powerpc/dfp/dtstsfi-66.c: New test. * gcc.target/powerpc/dfp/dtstsfi-67.c: New test. * gcc.target/powerpc/dfp/dtstsfi-68.c: New test. * gcc.target/powerpc/dfp/dtstsfi-69.c: New test. * gcc.target/powerpc/dfp/dtstsfi-7.c: New test. * gcc.target/powerpc/dfp/dtstsfi-70.c: New test. * gcc.target/powerpc/dfp/dtstsfi-71.c: New test. * gcc.target/powerpc/dfp/dtstsfi-72.c: New test. * gcc.target/powerpc/dfp/dtstsfi-73.c: New test. * gcc.target/powerpc/dfp/dtstsfi-74.c: New test. * gcc.target/powerpc/dfp/dtstsfi-75.c: New test. * gcc.target/powerpc/dfp/dtstsfi-76.c: New test. * gcc.target/powerpc/dfp/dtstsfi-77.c: New test. * gcc.target/powerpc/dfp/dtstsfi-78.c: New test. * gcc.target/powerpc/dfp/dtstsfi-79.c: New test. * gcc.target/powerpc/dfp/dtstsfi-8.c: New test. * gcc.target/powerpc/dfp/dtstsfi-9.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237885 138bc75d-0d04-0410-961f-82ee72b054a4
* This patch sets the branch cost to the same most optimal setting for all Cortexwilco2016-06-302-6/+15
| | | | | | | | | | | | | | | | | | cores, reducing codesize and improving performance due to using more CSEL instructions. Set the autoprefetcher model in Cortex-A72 to weak like the others. Enable AES fusion in Cortex-A35. As a result generated code is now more similar as well as more optimal across Cortex cores. gcc/ * config/aarch64/aarch64.c (cortexa35_tunings): Enable AES fusion. Use cortexa57_branch_cost. (cortexa53_tunings): Use cortexa57_branch_cost. (cortexa72_tunings): Use cortexa57_branch_cost. Use AUTOPREFETCHER_WEAK. (cortexa73_tunings): Use cortexa57_branch_cost. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237884 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64][2/2] (Re)Implement vcopy<q>_lane<q> intrinsicsktkachov2016-06-304-156/+501
| | | | | | | | | | | | | | | | | | | | | | | | | | 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64, vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16, vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16, vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C. (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16, vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64, vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64, vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16, vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64, vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64, vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16, vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64, vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64): New intrinsics. * gcc.target/aarch64/vect_copy_lane_1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237883 138bc75d-0d04-0410-961f-82ee72b054a4
* [AArch64][1/2] Add support INS (element) instruction to copy lanes between ↵ktkachov2016-06-304-0/+127
| | | | | | | | | | | | | | | | | vectors 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com> Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>): New define_insn. (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise. * gcc.target/aarch64/vget_set_lane_1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237882 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix bogus option suggestions for RejectNegative options (PR driver/71651)dmalcolm2016-06-306-5/+37
| | | | | | | | | | | | | | | | | | | gcc/ChangeLog: PR driver/71651 * gcc.c (driver::build_option_suggestions): Pass "option" to add_misspelling_candidates. * opts-common.c (add_misspelling_candidates): Add "option" param; use it to avoid adding negated forms for options marked with RejectNegative. * opts.h (add_misspelling_candidates): Add "option" param. gcc/testsuite/ChangeLog: PR driver/71651 * gcc.dg/spellcheck-options-12.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237880 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/71693jakub2016-06-304-6/+33
| | | | | | | | | | | | * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type first when permuting bitwise operation with rotate. Cast TREE_OPERAND (arg0, 0) to type when cancelling two rotations. * gcc.c-torture/compile/pr71693.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237875 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2016-06-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237869 138bc75d-0d04-0410-961f-82ee72b054a4
* Offer suggestions for misspelled --param names.dmalcolm2016-06-309-19/+66
| | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog: * opts.c (handle_param): Use find_param_fuzzy to offer suggestions for misspelled param names. * params.c: Include spellcheck.h. (find_param_fuzzy): New function. * params.h (find_param_fuzzy): New prototype. * spellcheck.c (struct edit_distance_traits<const char *>): Move to... * spellcheck.h (struct edit_distance_traits<const char *>): ...here. gcc/testsuite/ChangeLog: * gcc.dg/spellcheck-params.c: New testcase. * gcc.dg/spellcheck-params-2.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237865 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc]meissner2016-06-299-3/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/predicates.md (const_0_to_7_operand): New predicate, recognize 0..7. * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add support for doing extracts from V16QImode, V8HImode, V4SImode under ISA 3.0. * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0 vector extract support. (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number for ISA 3.0 vector extract. (VSX_EX): Constraints to use for ISA 3.0 vector extract. (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing extracts of a constant element number from small integer vectors on 64-bit ISA 3.0 systems. (vsx_extract_<mode>_di): Likewise. * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to say when we can do ISA 3.0 vector extracts. * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec registers, using the stxsiwx instruction. [gcc/testsuite] 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/p9-extract-1.c: New file to test ISA 3.0 vector extract instructions. * gcc.target/powerpc/p9-extract-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237864 138bc75d-0d04-0410-961f-82ee72b054a4
* 2016-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2016-06-293-0/+19
| | | | | | | | PR fortran/71686 * gfortran.dg/unexpected_eof_2.f90: New test. * gfortran.dg/unexpected_eof_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237861 138bc75d-0d04-0410-961f-82ee72b054a4