1. 04 Jul, 2016 14 commits
    • [multiple changes] · d4b56371
      2016-07-04  Gary Dismukes  <dismukes@adacore.com>
      
      	* 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.
      
      From-SVN: r237968
      Arnaud Charlet committed
    • ghost.adb (Prune_Node): A freeze node for an ignored ghost entity must be pruned as well. · 7c14db40
      2016-07-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* ghost.adb (Prune_Node): A freeze node for an ignored ghost
      	entity must be pruned as well.
      
      From-SVN: r237967
      Ed Schonberg committed
    • sem_type.adb, [...]: Minor reformatting and typo fix. · 607114db
      2016-07-04  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_type.adb, einfo.ads, freeze.adb, exp_ch6.adb: Minor reformatting
      	and typo fix.
      
      From-SVN: r237966
      Gary Dismukes committed
    • sem_ch3.adb, [...]: Minor reformatting. · c308e762
      2016-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* 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.
      
      From-SVN: r237965
      Hristian Kirtchev committed
    • [multiple changes] · f50f7e2c
      2016-07-04  Justin Squirek  <squirek@adacore.com>
      
      	* 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.
      
      From-SVN: r237964
      Arnaud Charlet committed
    • [multiple changes] · 96df3ff4
      2016-07-04  Bob Duff  <duff@adacore.com>
      
      	* 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.
      
      From-SVN: r237963
      Arnaud Charlet committed
    • Minor reformatting. · 015f33d7
      From-SVN: r237962
      Arnaud Charlet committed
    • einfo.adb (Has_Pragma_Unused): Create this function as a setter for a new… · 9d1d00ca
      einfo.adb (Has_Pragma_Unused): Create this function as a setter for a new flag294 (Set_Has_Pragma_Unused):...
      
      2016-07-04  Justin Squirek  <squirek@adacore.com>
      
      	* 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.
      
      From-SVN: r237961
      Justin Squirek committed
    • freeze.adb (Check_Inherited_Conditions): Perform two passes over the primitive… · 002e3d16
      freeze.adb (Check_Inherited_Conditions): Perform two passes over the primitive operations of the type...
      
      2016-07-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* 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.
      
      From-SVN: r237960
      Ed Schonberg committed
    • [multiple changes] · 10edebe7
      2016-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* 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.
      
      From-SVN: r237959
      Arnaud Charlet committed
    • [AArch64] Fix PR target/63874 · 15f6e0da
           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.
      
      From-SVN: r237957
      Ramana Radhakrishnan committed
    • [AArch64] ARMv8.2 command line and feature macros support · c61465bd
      	* 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".
      
      
      Co-Authored-By: Jiong Wang <jiong.wang@arm.com>
      
      From-SVN: r237956
      Matthew Wahab committed
    • fix interaction of -S and -x {c,c++}-header · 79335075
      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.
      
      From-SVN: r237955
      Jan Beulich committed
    • Daily bump. · b32086d3
      From-SVN: r237954
      GCC Administrator committed
  2. 03 Jul, 2016 2 commits
  3. 02 Jul, 2016 3 commits
  4. 01 Jul, 2016 15 commits
    • re PR fortran/71687 (ICE in omp_add_variable, at gimplify.c:5821) · 79a592e3
      	PR fortran/71687
      	* 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.
      
      From-SVN: r237926
      Jakub Jelinek committed
    • const-float128-ped.c: Require __float128 effective target and options. · e2298656
      2016-07-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* 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.
      
      From-SVN: r237924
      Bill Schmidt committed
    • update changelog · a550396b
      From-SVN: r237921
      Michael Meissner committed
    • re PR target/71720 (initialization of a vector of floats generates incorrect code for -mcpu=power9) · 70c11966
      [gcc]
      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.
      
      From-SVN: r237920
      Michael Meissner committed
    • re PR fortran/71717 (A gfortran silent "wrong code" bug in the transition from… · a8dbab92
      re PR fortran/71717 (A gfortran silent "wrong code" bug in the transition from 4.9.0 -> 4.9.1, using OpenMP.)
      
      	PR fortran/71717
      	* 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.
      
      From-SVN: r237916
      Jakub Jelinek committed
    • check initializer to be zero in .bss-like sections · 059541fd
      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.
      
      From-SVN: r237913
      Jan Beulich committed
    • altivec.md (*altivec_vpermr_<mode>_internal): Exchange the order of the second… · 51433308
      altivec.md (*altivec_vpermr_<mode>_internal): Exchange the order of the second and third operands in the vpermr instruction...
      
      gcc/ChangeLog:
      
      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.
      
      From-SVN: r237912
      Kelvin Nilsen committed
    • re PR target/71698 (ICE related to decimal float when compiling with -mcpu=power9) · 2c1e4964
      gcc/
      	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.
      
      From-SVN: r237911
      Peter Bergner committed
    • re PR target/71151 ([avr] -fmerge-constants and… · 22e1cb39
      re PR target/71151 ([avr] -fmerge-constants and -fdata-sections/-ffunction-sections results in string constants in .progmem.gcc_sw section)
      
      gcc/testsuite/
      	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.
      
      From-SVN: r237910
      Georg-Johann Lay committed
    • strcpy arg optimised out · 55dcc361
      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.
      
      From-SVN: r237909
      Alan Modra committed
    • ix86: fix PR/65105 testcase 2 · 466cf574
      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.
      
      From-SVN: r237908
      Jan Beulich committed
    • re PR tree-optimization/70729 (Loop marked with omp simd pragma is not vectorized) · 677ef4dd
      PR tree-optimization/70729
      
      gcc/
      	* tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
      	of loop since it can be not valid after transformation.
      
      From-SVN: r237907
      Yuri Rumyantsev committed
    • [ARM] Delete thumb_reload_in_h · 02c19e2b
      	* config/arm/arm.c (thumb_reload_in_hi): Delete.
      	* config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
      
      From-SVN: r237906
      Kyrylo Tkachov committed
    • arm.c (arm_function_ok_for_sibcall): Add another check for NULL decl. · 920eed8c
      	* config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
      	for NULL decl.
      
      From-SVN: r237903
      Eric Botcazou committed
    • Daily bump. · 4bfebb72
      From-SVN: r237902
      GCC Administrator committed
  5. 30 Jun, 2016 6 commits
    • re PR target/71677 (PowerPC ISA 3.0 DImode load/store needs a fix) · ec538527
      2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	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.
      
      From-SVN: r237898
      Michael Meissner committed
    • re PR tree-optimization/71707 (ICE in get_stridx_plus_constant) · 55a0f21a
      	PR tree-optimization/71707
      	* tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
      	strinfo even for ADDR_EXPR ptr.
      
      	* gcc.dg/strlenopt-29.c: New test.
      
      From-SVN: r237889
      Jakub Jelinek committed
    • re PR fortran/71704 (ICE with -fopenmp and some omp constructs) · 6245ad72
      	PR fortran/71704
      	* 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.
      
      From-SVN: r237888
      Jakub Jelinek committed
    • re PR fortran/71705 (ICE in lower_omp_target, at omp-low.c:16136) · 351beab7
      	PR fortran/71705
      	* trans-openmp.c (gfc_trans_omp_clauses): Set TREE_ADDRESSABLE on
      	decls in to/from clauses.
      
      	* gfortran.dg/gomp/pr71705.f90: New test.
      
      From-SVN: r237887
      Jakub Jelinek committed
    • altivec.md (darn_32): Change the condition to TARGET_P9_MISC instead of TARGET_MODULO. · 5a3a6a5e
      gcc/ChangeLog:
      
      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.
      
      From-SVN: r237885
      Kelvin Nilsen committed
    • This patch sets the branch cost to the same most optimal setting for all Cortex cores... · 0bc24338
      This patch sets the branch cost to the same most optimal setting for all Cortex
      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.
      
      From-SVN: r237884
      Wilco Dijkstra committed