1. 18 Nov, 2015 19 commits
    • [multiple changes] · a25e72b5
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_aggr.adb (Is_Completely_Hidden_Discriminant): New routine.
      	(Init_Hidden_Discriminants): Code reformatting. Do not initialize
      	a completely hidden discriminant.
      	* a-interr.ads (Get_CPU): Added SPARK_Mode, Volatile_Function
      	and Global aspects on the function.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_intr.adb (Expand_Unc_Deallocation): If the designated
      	type is a concurrent type, the deallocation applies to the
      	corresponding record type, or to its class-wide type if the type
      	is tagged.
      
      From-SVN: r230535
      Arnaud Charlet committed
    • s-parame-vxworks.adb: Reduce default stack size for stack limit check to a reasonable value · 86e066aa
      2015-11-18  Doug Rupp  <rupp@adacore.com>
      
      	* s-parame-vxworks.adb: Reduce default stack size for stack
      	limit check to a reasonable value
      	* s-tpopsp-vxworks.adb: Make Stack_Limit a task variable for vx5 and
      	vxmils.
      
      From-SVN: r230534
      Doug Rupp committed
    • [multiple changes] · 72d5c70b
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch5.adb (Analyze_Assignment): Diagnose assignment where
      	left-hand side has a limited view of a class-wide type.
      	* sem_ch6.adb (Detected_And_Exchange): Do not install a non-limited
      	view if the scope of the type of the formal is visible through
      	a limited_with_clause, even if the non-limited view is available.
      
      2015-11-18  Emmanuel Briot  <briot@adacore.com>
      
      	* s-pooglo.ads: Make Global_Pool_Object aliased.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Access): If the prefix
      	is an expression function, do not analyze the generated body if
      	the current scope is not the scope of the expression function,
      	as may happen if the attribute is an actual in an instantiation.
      	* sem_ch10.adb, sem_ch12.adb, a-stzmap.adb, s-soflin.adb,
      	a-stwima.adb: Fix typos.
      
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_ch11.adb (Expand_N_Exception_Declaration): No-op when
      	generating C code.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* g-comlin.adb (Find_Longest_Matching_Switch): Do not take into
      	account a switch ending with '=' when the actual command line
      	switch is not followed with a space or '='.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (Resolve_Explicit_Dereference): Do not add an access
      	check if the type of the prefix is known to exclude null.
      	* a-coinve.adb (Get_Element_Access): The function returns an
      	access type that excludes null, so add an explicit check for
      	a null element pointer, which is created when Insert_Spaces is
      	called on an indefinite vector container.
      
      From-SVN: r230533
      Arnaud Charlet committed
    • re PR ada/66242 (Front-end error if exception propagation disabled) · 7bf911b5
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	PR ada/66242
      
      	* exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort
      	defer / undefer pairs are now encapsulated in a block with
      	an AT END handler. Partial finalization now takes restriction
      	No_Exception_Propagation into account when generating blocks.
      	* exp_ch7.adb Various reformattings.
      	(Create_Finalizer): Change
      	the generation of abort defer / undefer pairs and explain the
      	lack of an AT END handler.
      	(Process_Transient_Objects): Add generation of abort defer/undefer
      	pairs.
      	* exp_ch9.adb Various reformattings.
      	(Build_Protected_Subprogram_Body): Use
      	Build_Runtime_Call to construct a call to Abort_Defer.
      	(Build_Protected_Subprogram_Call_Cleanup): Use
      	Build_Runtime_Call to construct a call to Abort_Undefer.
      	(Expand_N_Asynchronous_Select): Use Build_Runtime_Call to
      	construct a call to Abort_Defer.
      	* exp_intr.adb (Expand_Unc_Deallocation): Abort defer
      	/ undefer pairs are now encapsulated in a block with
      	an AT END handler. Finalization now takes restriction
      	No_Exception_Propagation into account when generating blocks.
      	* exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed.
      
      From-SVN: r230531
      Hristian Kirtchev committed
    • re PR tree-optimization/68157 (internal compiler error: in… · 8ebcad86
      re PR tree-optimization/68157 (internal compiler error: in reassoc_stmt_dominates_stmt_p, at tree-ssa-reassoc.c:1287)
      
      	PR tree-optimization/68157
      	* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
      	pow_stmt or mul_stmt from stmt's uid.
      	(reassociate_bb): Set uid of mul_stmt from stmt's uid.
      
      	* g++.dg/opt/pr68157.C: New test.
      
      From-SVN: r230530
      Jakub Jelinek committed
    • [multiple changes] · 7d4c4fde
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* switch-c.adb (Scan_Front_End_Switches): Add a check requiring
      	-gnatc with -gnateg.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch7.adb (Uninstall_Declarations): Before swapping private
      	and full views, ensure that the potential use visbility of the
      	two views is consistent.
      
      2015-11-18  Doug Rupp  <rupp@adacore.com>
      
      	* s-parame-vxworks.adb: Increase default stack size for targets
      	using stack limit checking.
      
      2015-11-18  Jose Ruiz  <ruiz@adacore.com>
      
      	* a-interr.adb, a-interr.ads (Ada.Interrupts.Get_CPU): Add this
      	function that was added to Ada 2005 returning the processor where
      	interrupt handlers execute.
      
      2015-11-18  Tristan Gingold  <gingold@adacore.com>
      
      	* exp_ch9.adb (Is_Pure_Barrier): Handle expanded component
      	declaration of a protected definition.
      
      From-SVN: r230529
      Arnaud Charlet committed
    • [multiple changes] · 3a2b1457
      2015-11-18  Ed Falis  <falis@adacore.com>
      
      	* s-soflin.adb, s-stchop-vxworks.adb: Code clean ups.
      
      2015-11-18  Gary Dismukes  <dismukes@adacore.com>
      
      	* bcheck.adb: Minor editorial changes.
      
      From-SVN: r230528
      Arnaud Charlet committed
    • [multiple changes] · 5a99fda7
      2015-11-18  Arnaud Charlet  <charlet@adacore.com>
      
      	* interfac.ads (Unsigned_24): New type.
      	* sem_ch13.adb (Validate_Unchecked_Conversion): Disable error on
      	unconstrained arrays in Relaxed_RM_Semantics mode.
      
      2015-11-18  Vincent Celier  <celier@adacore.com>
      
      	* bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): No
      	warning is withed unit is the interface of a Stand-Alone Library.
      
      From-SVN: r230527
      Arnaud Charlet committed
    • [multiple changes] · 1d74252d
      2015-11-18  Thomas Quinot  <quinot@adacore.com>
      
      	* s-os_lib.ads, s-os_lib.adb(Normalize_Pathname): Support the case of
      	an unresolved Directory argument, by recursively resolving it
      	against the current dir.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Process_Formals): A function declaration that
      	returns a class-wide type must have freeing deferred, so that it
      	is not frozen before the class-wide type and its root type are
      	frozen. This is significant when there may be a limited view of
      	the class_wide type in another package.
      
      From-SVN: r230526
      Arnaud Charlet committed
    • [multiple changes] · 2f54ef3d
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb (Has_Non_Null_Refinement): Rename to
      	Has_Non_Null_Visible_Refinement.
      	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement.
      	* einfo.ads Update the documentation of
      	attribute Has_Non_Null_Refinement and attribute Has_Null_Refinement.
      	(Has_Non_Null_Refinement): Rename to Has_Non_Null_Visible_Refinement
      	and update occurrences in entities.
      	(Has_Null_Refinement): Rename to Has_Null_Visible_Refinement and update
      	occurrences in entities.
      	* sem_prag.adb (Check_In_Out_States): Update the calls to
      	Has_[Non_]Null_Refinement.
      	(Check_Input_States): Update the
      	calls to Has_[Non_]Null_Refinement.
      	(Check_Output_States): Update the calls to Has_[Non_]Null_Refinement.
      	(Check_Proof_In_States): Update the calls to Has_[Non_]Null_Refinement.
      	(Collect_Global_Item): Update the calls to Has_[Non_]Null_Refinement.
      	(Is_Null_Refined_State): Update the calls to Has_[Non_]Null_Refinement.
      	(Match_Item): Update the calls to Has_[Non_]Null_Refinement.
      	* sem_util.adb (Has_Non_Null_Refinement): New routine.
      	(Has_Null_Refinement): New routine.
      	* sem_util.ads (Has_Non_Null_Refinement): New routine.
      	(Has_Null_Refinement): New routine.
      
      2015-11-18  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.adb: Minor reformatting and typo fixes.
      
      From-SVN: r230525
      Arnaud Charlet committed
    • sem_ch4.adb: Minor reformatting. · d9307840
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch4.adb: Minor reformatting.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb (Expand_Subtype_From_Expr): Add new formal
      	parameter Related_Id and propagate it to Make_Subtype_From_Expr.
      	(Make_Subtype_From_Expr): Add new formal parameter
      	Related_Id. Create external entities when requested by the caller.
      	* exp_util.ads (Expand_Subtype_From_Expr): Add new formal
      	parameter Related_Id. Update the comment on usage.
      	(Make_Subtype_From_Expr): Add new formal parameter
      	Related_Id. Update the comment on usage.
      	* sem_ch3.adb (Analyze_Object_Declaration): Add local variable
      	Related_Id. Generate an external constrained subtype when the
      	object is a public symbol.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma): Update the grammars of pragmas
      	Abstract_State, Depends, Global, Initializes, Refined_Depends,
      	Refined_Global and Refined_State.
      
      From-SVN: r230524
      Hristian Kirtchev committed
    • [multiple changes] · 5904016a
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Has_Full_Default_Initialization):
      	Perform the test for the presence of pragma
      	Default_Initial_Condition prior to the specialized type
      	checks. Add a missing case where the lack of a pragma argument
      	yields full default initialization.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_res.adb (Resolve_Entity_Name): Do not check
      	for elaboration issues when a variable appears as the name of
      	an object renaming declaration as this constitutes an aliasing,
      	not a read.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* checks.adb (Overlap_Check): An actual that is an aggregate
      	cannot overlap with another actual, and no check should be
      	generated for it.
      	* targparm.ads: Fix typos.
      
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* adaint.c: Routine __gnat_killprocesstree only implemented on
      	Linux and Windows.
      
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* g-ctrl_c.adb: Minor style fixes.
      
      From-SVN: r230523
      Arnaud Charlet committed
    • [multiple changes] · 287aa0ed
      2015-11-18  Pascal Obry  <obry@adacore.com>
      
      	* adaint.c, s-os_lib.adb, s-os_lib.ads (Kill_Process_Tree): New.
      
      2015-11-18  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_util.adb (Check_Nonvolatile_Function_Profile): Place the error
      	message concerning the return type on the result definition.
      	(Is_Volatile_Function): A function with a parameter of a protected
      	type is a protected function if it is defined within a protected
      	definition.
      
      2015-11-18  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Try_Container_Indexing): When building the
      	parameter list for the function call on indexing functions,
      	preserve overloading of the parameters, which may themselves be
      	generalized indexing operations.
      
      From-SVN: r230522
      Arnaud Charlet committed
    • Add missing test-case for PR ipa/68035 · da54052e
      From-SVN: r230521
      Martin Liska committed
    • Release memory in haifa-sched · 36fb33de
      	* haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
      
      From-SVN: r230520
      Martin Liska committed
    • Fix memory leaks in tree-ssa-uninit.c · a4f0c29d
      	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
      	Fix GNU coding style.
      	(find_def_preds): Use auto_vec.
      	(destroy_predicate_vecs): Change signature of the function.
      	(prune_uninit_phi_opnds_in_unrealizable_paths): Use the
      	new signature.
      	(simplify_preds_4): Use destroy_predicate_vecs instread of
      	just releasing preds vector.
      	(normalize_preds): Likewise.
      	(is_use_properly_guarded): Use new signature of
      	destroy_predicate_vecs.
      	(find_uninit_use): Likewise.
      
      From-SVN: r230519
      Martin Liska committed
    • re PR middle-end/67790 (verify_ssa failed: definition in block 20 follows the use) · 0b176958
      2015-11-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67790
      	* tree-vect-loop.c (vect_is_simple_reduction_1): Remove
      	IL rewrite for MINUS_EXPR reductions, rename back to ...
      	(vect_is_simple_reduction): ... this, removing the wrapper.
      	(vect_force_simple_reduction): Adjust.
      	(vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
      	reductions and make use if reduc_index in all places.  For
      	the final reduction of MINUS_EXPR use PLUS_EXPR.
      
      	* gcc.dg/vect/pr67790.c: New testcase.
      
      From-SVN: r230518
      Richard Biener committed
    • Daily bump. · cceac13f
      From-SVN: r230515
      GCC Administrator committed
  2. 17 Nov, 2015 21 commits
    • A default of -z relro (as on Fedora) defeats the deliberate mis-alignment of .got in the testcase. · 458bc9b1
      POWERPC64_TOC_POINTER_ALIGNMENT
      
      A default of -z relro (as on Fedora) defeats the deliberate
      mis-alignment of .got in the testcase.
      
      	* configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
      	to ld.
      	* configure: Regenerate.
      
      From-SVN: r230509
      Alan Modra committed
    • re PR bootstrap/68346 (Bootstrap failure on i686-linux) · 0465369f
      	PR bootstrap/68346
      
      	* typeck.c (build_static_cast_1): Force a NOP when converting to
      	the same type.
      
      From-SVN: r230508
      Jason Merrill committed
    • LITERAL_ZERO_P obsoleted by delayed folding. · f26a415e
      	* cp-tree.h (LITERAL_ZERO_P): Remove.
      	* parser.c (cp_parser_postfix_expression, literal_zeros)
      	(cp_parser_parenthesized_expression_list): Don't mess with it.
      
      From-SVN: r230507
      Jason Merrill committed
    • Don't fold -(constant) or -0. · 8c2bebdd
      	* parser.c (cp_parser_unary_expression): Fold -constant here.
      	* typeck.c (cp_build_unary_op): Not here.
      
      From-SVN: r230506
      Jason Merrill committed
    • Improve comments in pass_tree_loop_init::execute · 33c6daf4
      2015-11-17  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
      
      From-SVN: r230505
      Tom de Vries committed
    • Make fdump-tree-sccp-details more complete · ed22b76f
      2015-11-17  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
      	uses of ssa_name with constant.
      
      From-SVN: r230504
      Tom de Vries committed
    • Clear LOOP_CLOSED_SSA after pass_ccp · 635d5dd5
      2015-11-17  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
      	something changed.
      
      From-SVN: r230503
      Tom de Vries committed
    • Add in_oacc_kernels_region in struct loop · 886c388d
      2015-11-17  Tom de Vries  <tom@codesourcery.com>
      
      	* cfgloop.h (struct loop): Add in_oacc_kernels_region field.
      	* omp-low.c (mark_loops_in_oacc_kernels_region): New function.
      	(expand_omp_target): Call mark_loops_in_oacc_kernels_region.
      
      From-SVN: r230502
      Tom de Vries committed
    • Preliminary regrename patch for i386 ROP patch · 211c9305
      	* regrename.c (regrename_find_superclass): New function, code moved
      	from ...
      	(rename_chains): ... here.  Call it.
      	* regrename.h (regrename_find_superclass): Declare.
      
      From-SVN: r230501
      Bernd Schmidt committed
    • Ensure earlyclobbered operands go through a terminate_write stage. · e85883d4
      	* regrename.c (record_out_operands): Terminate earlyclobbered
      	operands here.
      
      From-SVN: r230500
      Bernd Schmidt committed
    • re PR target/66785 (internal compiler error in record_operand_use) · d534bf56
      	PR target/66785
      	* regrename.c (record_operand_use): Keep track of failed operands
      	and stop appending if we see any.
      	* regrename.h (struct operand_rr_info): Add a failed field and shrink
      	n_chains to short.
      
      From-SVN: r230499
      Bernd Schmidt committed
    • re PR c/48568 (Missing documentation for __attribute__((visibility ("protected"))) on variables.) · 9f50f67c
      2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR 48568
      	* doc/extend.texi (Common Function Attributes) [visibility]:
      	Add cross-references to matching variable and type attributes.
      	(Common Variable Attributes) [visibility]: Add missing entry.
      
      From-SVN: r230498
      Sandra Loosemore committed
    • Fix uninitialized src_range values for c_expr · bef08b71
      gcc/c/ChangeLog:
      	* c-parser.c (set_c_expr_source_range): Bulletproof both
      	overloaded implementations against NULL expr->value.
      	(c_parser_braced_init): Set src_range for "ret" to a sane pair of
      	values.
      	(c_parser_unary_expression): Likewise when handling addresses of
      	labels.
      	(c_parser_postfix_expression): Likewise for statement expressions,
      	for __FUNCTION__, __PRETTY_FUNCTION_ and __func__ keywords, for
      	__builtin_va_arg, and for __builtin_offset_of.
      	(c_parser_postfix_expression_after_paren_type): Initialize expr's
      	src_range using the range of the braced initializer.
      	(c_parser_transaction_expression): Set src_range for "ret" to a
      	sane pair of values.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-expressions-1.c (vector): New
      	macro.
      	(test_braced_init): New function.
      	(test_statement_expression): New function.
      	(test_address_of_label): New function.
      	(test_transaction_expressions): New function.
      	(test_keywords): New function.
      	(test_builtin_va_arg): New function.
      	(test_builtin_offsetof): New function.
      	* lib/multiline.exp (_build_multiline_regex): Escape braces.
      
      From-SVN: r230497
      David Malcolm committed
    • PR libstdc++/66059 optimise _Build_index_tuple · 5f0b7c95
      	PR libstdc++/66059
      	* include/std/utility (_Build_index_tuple): Optimise.
      
      From-SVN: r230496
      Jonathan Wakely committed
    • primary.c (gfc_match_structure_constructor): Fix whitespace. · 49032565
      2015-11-17  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	* primary.c (gfc_match_structure_constructor): Fix whitespace.
      
      From-SVN: r230495
      Steven G. Kargl committed
    • Simplify rs6000_builtin_vectorized_function · 6632fdeb
      After the previous patches it's no longer necessary for
      TARGET_BUILTIN_VECTORIZED_FUNCTION to return functions that
      map to the vector optab of the original operation.  We'll use
      a vector form of the internal function instead.
      
      Tested on powerpc64-linux-gnu.
      
      gcc/
      	* config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
      	entries that map directly to optabs.
      
      From-SVN: r230494
      Richard Sandiford committed
    • Simplify ix86_builtin_vectorized_function · 98937c68
      After the previous patches it's no longer necessary for
      TARGET_BUILTIN_VECTORIZED_FUNCTION to return functions that
      map to the vector optab of the original operation.  We'll use
      a vector form of the internal function instead.
      
      Tested on x86_64-linux-gnu.
      
      gcc/
      	* config/i386/i386.c (ix86_builtin_vectorized_function): Remove
      	entries that map directly to optabs.
      
      From-SVN: r230493
      Richard Sandiford committed
    • Vectorize internal functions · 70439f0d
      This patch tries to vectorize built-in and internal functions as
      internal functions first, falling back on the current built-in
      target hooks otherwise.
      
      This means that we'll automatically pick up vector versions of optabs
      without the target having to implement any special hooks.  E.g. we'll
      use V4SF sqrt if the target defines a "sqrtv4sf2" optab.  As well as
      being simpler, it means that the target-independent code has more
      idea what the vectorized function does.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnu and
      powerpc64-linux-gnu.
      
      gcc/
      	* internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
      	* internal-fn.c (direct_internal_fn_array): Update accordingly.
      	* tree-vectorizer.h (vectorizable_function): Delete.
      	* tree-vect-stmts.c: Include internal-fn.h.
      	(vectorizable_internal_function): New function.
      	(vectorizable_function): Inline into...
      	(vectorizable_call): ...here.  Explicitly reject calls that read
      	from or write to memory.  Try using an internal function before
      	falling back on the old vectorizable_function behavior.
      
      From-SVN: r230492
      Richard Sandiford committed
    • Make builtin_vectorized_function take a combined_fn · 10766209
      This patch replaces the fndecl argument to builtin_vectorized_function
      with a combined_fn and gets the vectoriser to call it for internal
      functions too.  The patch also moves vectorisation of machine-specific
      built-ins to a new hook, builtin_md_vectorized_function.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnu and
      powerpc64-linux-gnu.
      
      gcc/
      	* target.def (builtin_vectorized_function): Take a combined_fn (in
      	the form of an unsigned int) rather than a function decl.
      	(builtin_md_vectorized_function): New.
      	* targhooks.h (default_builtin_vectorized_function): Replace the
      	fndecl argument with an unsigned int.
      	(default_builtin_md_vectorized_function): Declare.
      	* targhooks.c (default_builtin_vectorized_function): Replace the
      	fndecl argument with an unsigned int.
      	(default_builtin_md_vectorized_function): New function.
      	* doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
      	New hook.
      	* doc/tm.texi: Regenerate.
      	* tree-vect-stmts.c (vectorizable_function): Update call to
      	builtin_vectorized_function, also passing internal functions.
      	Call builtin_md_vectorized_function for target-specific builtins.
      	* config/aarch64/aarch64-protos.h
      	(aarch64_builtin_vectorized_function): Replace fndecl argument
      	with an unsigned int.
      	* config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
      	(aarch64_builtin_vectorized_function): Update after above changes.
      	Use CASE_CFN_*.
      	* config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
      	fndecl argument with an unsigned int.
      	* config/arm/arm-builtins.c: Include case-cfn-macros.h
      	(arm_builtin_vectorized_function): Update after above changes.
      	Use CASE_CFN_*.
      	* config/i386/i386.c: Include case-cfn-macros.h
      	(ix86_veclib_handler): Take a combined_fn rather than a
      	built_in_function.
      	(ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
      	mathfn_built_in rather than calling builtin_decl_implicit directly.
      	(ix86_builtin_vectorized_function) Update after above changes.
      	Use CASE_CFN_*.
      	* config/rs6000/rs6000.c: Include case-cfn-macros.h
      	(rs6000_builtin_vectorized_libmass): Replace fndecl argument
      	with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
      	than calling builtin_decl_implicit directly.
      	(rs6000_builtin_vectorized_function): Update after above changes.
      	Use CASE_CFN_*.  Move BUILT_IN_MD to...
      	(rs6000_builtin_md_vectorized_function): ...this new function.
      	(TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
      
      From-SVN: r230491
      Richard Sandiford committed
    • Use IFN_SQRT in tree-vect-patterns.c · b4e5bc47
      In practice all targets that can vectorise sqrt define the appropriate
      sqrt<mode>2 optab.  The only case where this isn't immediately obvious
      is the libmass support in rs6000.c, but Mike Meissner said that it shouldn't
      be exercised for sqrt.
      
      This patch therefore uses the internal function interface instead of
      going via the target hook.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu, arm-linux-gnueabi and
      powerpc64-linux-gnu.
      
      gcc/
      	* tree-vect-patterns.c: Include internal-fn.h.
      	(vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
      
      From-SVN: r230490
      Richard Sandiford committed
    • Remove dead macros · 03dc244a
      Nothing uses these macros and removing them makes it more likely
      that future code will use CASE_CFN_* instead.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
      	(BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
      
      From-SVN: r230489
      Richard Sandiford committed