1. 17 Nov, 2015 28 commits
    • Use combined_fn in tree-vrp.c · 9c0a9e12
      Another patch to extend uses of built_in_function to combined_fn, this time
      in tree-vrp.c.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* tree-vrp.c: Include case-cfn-macros.h.
      	(extract_range_basic): Switch on combined_fn rather than handling
      	built-in functions and internal functions separately.
      
      From-SVN: r230479
      Richard Sandiford committed
    • Make more use of combined_fn · 1d9da71f
      This patch generalises fold-const.[hc] routines to use combined_fn
      instead of built_in_function.  It also updates gimple-ssa-backprop,c
      since the update is simple and it avoids churn on the call to
      negate_mathfn_p.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* fold-const.h (negate_mathfn_p): Take a combined_fn rather
      	than a built_in_function.
      	(tree_call_nonnegative_warnv_p): Take a combined_fn rather than
      	a function decl.
      	(integer_valued_real_call_p): Likewise.
      	* fold-const.c: Include case-cfn-macros.h
      	(negate_mathfn_p): Take a combined_fn rather than a built_in_function.
      	(negate_expr_p): Update accordingly.
      	(tree_call_nonnegative_warnv_p): Take a combined_fn rather than
      	a function decl.
      	(integer_valued_real_call_p): Likewise.
      	(tree_invalid_nonnegative_warnv_p): Update accordingly.
      	(integer_valued_real_p): Likewise.
      	* gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
      	to tree_call_nonnegative_warnv_p.
      	(gimple_call_integer_valued_real_p): Likewise
      	integer_valued_real_call_p.
      	* gimple-ssa-backprop.c: Include case-cfn-macros.h.
      	(backprop::process_builtin_call_use): Extend to combined_fn.
      	(strip_sign_op_1): Likewise.
      	(backprop::process_use): Don't check for built-in calls here.
      	(backprop::execute): Likewise.
      	(backprop::optimize_builtin_call): Update call to negate_mathfn_p.
      
      From-SVN: r230478
      Richard Sandiford committed
    • Extend fold_const_call to combined_fn · d7ebef06
      This patch extends fold_const_call so that it can handle internal
      as well as built-in functions.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* fold-const-call.h (fold_const_call): Replace built_in_function
      	arguments with combined_fn arguments.
      	* fold-const-call.c: Include case-cfn-macros.h.
      	(fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
      	(fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
      	(fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
      	built_in_function arguments with combined_fn arguments.
      	* builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
      	(fold_builtin_3): Update calls to fold_const_call.
      
      From-SVN: r230477
      Richard Sandiford committed
    • Add gencfn-macros.c · 6bac43d7
      This patch automatically generates case macros such as:
      
              CASE_CFN_SQRT
      
      for each {F,,L} floating-point built-in function and each {,L,LL,IMAX}
      integer built-in function.  The macros match the same built-in
      functions as CASE_FLT_FN and CASE_INT_FN but in addition include
      the associated internal function, if any.
      
      The idea is to make sure that users of combined_fn don't need to know
      which built-in functions have internal-function equivalents.  If we add
      a new function to internal-fn.def, all combined_fn users should pick it
      up automatically.
      
      The generator wants to use "hash_set <nofree_string_hash>",
      so the patch follows hash_map in using the types given by the
      traits as the key.  This is a no-op for current users of hash_set.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* Makefile.in (HASH_TABLE_H): Add GGC_H.
      	(MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
      	(s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
      	(build/gencfn-macros$(build_exeext): New rules.
      	(genprogerr): Add cfn-macros.
      	* hash-set.h (hash_set): Use the traits value_type as the key.
      	* gencfn-macros.c: New file.
      
      From-SVN: r230476
      Richard Sandiford committed
    • Add internal bitcount functions · 4959a752
      This patch adds internal function equivalents of all the INT_FN functions.
      Unlike the math functions, these functions never set errno and the internal
      functions should be exactly equivalent to the built-in ones.  The reason
      for defining the internal functions is so that we can extend the
      functionality to other modes, in particular vector modes.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
      	(CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
      	* builtins.c (associated_internal_fn): Handle them.
      
      From-SVN: r230475
      Richard Sandiford committed
    • Add internal math functions · 686ee971
      This patch adds internal functions for simple FLT_FN built-in functions,
      in cases where an associated optab already exists.  Unlike some of the
      built-in functions, these internal functions never set errno.
      
      LDEXP is an odd-one out in that its second operand is an integer.
      All the others operate on uniform types.
      
      The patch also adds a function to query the internal function associated
      with a built-in function (if any), and another to test whether a given
      gcall could be replaced by a call to an internal function on the current
      target (as long as the caller deals with errno appropriately).
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* builtins.h (associated_internal_fn): Declare.
      	(replacement_internal_fn): Likewise.
      	* builtins.c: Include internal-fn.h
      	(associated_internal_fn, replacement_internal_fn): New functions.
      	* internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
      	(ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
      	(LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
      	(RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
      	(LDEXP): New functions.
      	* internal-fn.c: Include recog.h.
      	(unary_direct, binary_direct): New macros.
      	(expand_direct_optab_fn): New function.
      	(expand_unary_optab_fn): New macro.
      	(expand_binary_optab_fn): Likewise.
      	(direct_unary_optab_supported_p): Likewise.
      	(direct_binary_optab_supported_p): Likewise.
      
      From-SVN: r230474
      Richard Sandiford committed
    • Add basic support for direct_optab internal functions · ab23f5d9
      This patch adds a concept of internal functions that map directly to an
      optab (here called "direct internal functions").  The function can only
      be used if the associated optab can be used.
      
      We currently have four functions like that:
      
      - LOAD_LANES
      - STORE_LANES
      - MASK_LOAD
      - MASK_STORE
      
      so the patch converts them to the new infrastructure.  These four
      all need different types of optabs, but future patches will add
      regular unary and binary ones.
      
      In general we need one or two modes to decide whether an optab is
      supported, depending on whether it's a convert_optab or not.
      This in turn means that we need up to two types to decide whether
      an internal function is supported.  The patch records which types
      are needed for each internal function, using -1 if the return type
      should be used and N>=0 if the type of argument N should be used.
      
      (LOAD_LANES and STORE_LANES are unusual in that both optab modes
      come from the same array type.)
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* coretypes.h (tree_pair): New type.
      	* internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
      	for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
      	* internal-fn.h (direct_internal_fn_info): New structure.
      	(direct_internal_fn_array): Declare.
      	(direct_internal_fn_p, direct_internal_fn): New functions.
      	(direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
      	* internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
      	(mask_store_direct, store_lanes_direct): New macros.
      	(direct_internal_fn_array) New array.
      	(get_multi_vector_move): Return the optab handler without asserting
      	that it is available.
      	(expand_LOAD_LANES): Rename to...
      	(expand_load_lanes_optab_fn): ...this and add an optab argument.
      	(expand_STORE_LANES): Rename to...
      	(expand_store_lanes_optab_fn): ...this and add an optab argument.
      	(expand_MASK_LOAD): Rename to...
      	(expand_mask_load_optab_fn): ...this and add an optab argument.
      	(expand_MASK_STORE): Rename to...
      	(expand_mask_store_optab_fn): ...this and add an optab argument.
      	(direct_internal_fn_types, direct_optab_supported_p)
      	(multi_vector_optab_supported_p, direct_internal_fn_supported_p)
      	(direct_internal_fn_supported_p): New functions.
      	(direct_mask_load_optab_supported_p): New macro.
      	(direct_load_lanes_optab_supported_p): Likewise.
      	(direct_mask_store_optab_supported_p): Likewise.
      	(direct_store_lanes_optab_supported_p): Likewise.
      
      From-SVN: r230473
      Richard Sandiford committed
    • Add a combined_fn enum · 00175cb2
      I'm working on a patch series that needs to be able to treat built-in
      functions and internal functions in a similar way.  This patch adds a
      new enum, combined_fn, that combines the two together.  It also adds
      utility functions for seeing which combined_fn (if any) is called by
      a given CALL_EXPR or gcall.
      
      Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
      
      gcc/
      	* tree-core.h (internal_fn): Move immediately after the definition
      	of built_in_function.
      	(combined_fn): New enum.
      	* tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
      	(internal_fn_p, as_internal_fn): New functions.
      	(get_call_combined_fn, combined_fn_name): Declare.
      	* tree.c (get_call_combined_fn): New function.
      	(combined_fn_name): Likewise.
      	* gimple.h (gimple_call_combined_fn): Declare.
      	* gimple.c (gimple_call_combined_fn): New function.
      
      From-SVN: r230472
      Richard Sandiford committed
    • re PR bootstrap/68346 (Bootstrap failure on i686-linux) · 3e44547c
      	PR bootstrap/68346
      
      	* c-common.c (warn_tautological_cmp): Fold before checking for
      	constants.
      
      From-SVN: r230471
      Jason Merrill committed
    • re PR bootstrap/68361 (Bootstrap failure with --enable-checking=release) · 3212c3c8
      	PR bootstrap/68361
      
      	* cvt.c (cp_convert_and_check): Use warning_sentinel to suppress
      	-Wparentheses.
      
      From-SVN: r230470
      Jason Merrill committed
    • Fix PR number in ChangeLog · 7098adab
      From-SVN: r230469
      Sandra Loosemore committed
    • PR c++/68308 - [6 Regression] ICE: tree check: expected integer_cst, · f091ee19
      have var_decl in decompose, at tree.h:5105
      
      gcc/
          * cp/init.c (build_new_1): Check for expression constness
          the right way.
      
      testsuite/
          * g++.dg/init/new46.C: New test.
      
      From-SVN: r230468
      Martin Sebor committed
    • re PR other/56036 (Wrong indentation in multiple -O options explaination) · 54e484eb
      2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR target/56036
      	* doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
      	option list.
      	(x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
      	discussion of the Microsoft structure layout details here from
      	its former home in extend.texi.
      	* doc/extend.texi (x86 Variable Attributes): Replace detailed
      	discussion with pointer to its new location.  Add cross-reference
      	to corresponding type attributes.
      	(x86 Type Attributes): Add cross-references to command-line options
      	and variable attributes.
      
      From-SVN: r230467
      Sandra Loosemore committed
    • priority_queue.c: New file. · 3d7bfee0
      	libgomp/
      	* config/nvptx/priority_queue.c: New file.
      
      From-SVN: r230466
      Cesar Philippidis committed
    • re PR fortran/65751 (Bogus &L in error message) · 83be3fe5
      2015-11-17  Dominique d'Humieres <dominiq@lps.ens.fr>
      
      	PR fortran/65751
      	* expr.c (gfc_check_pointer_assign): Fix error message.
      
      	* gfortran.dg/unlimited_polymorphic_2.f03: Update test.
      
      From-SVN: r230465
      Dominique d'Humieres committed
    • re PR middle-end/68134 (float64x1_t comparison ICE on aarch64-none-elf) · df94599f
      gcc/
      
      	PR middle-end/68134
      	* targhooks.c (default_get_mask_mode): Filter out
      	scalar modes returned by mode_for_vector.
      
      gcc/testsuite/
      
      	PR middle-end/68134
      	* gcc.dg/pr68134.c: New test.
      
      From-SVN: r230463
      Ilya Enkovich committed
    • [ARM] PR 68143 Properly update memory offsets when expanding setmem · f17b0ebc
      	PR target/68143
      	* config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
      	offset from dstbase and use it appropriately in
      	adjust_automodify_address.
      	(arm_block_set_aligned_vect): Likewise.
      
      	* gcc.c-torture/execute/pr68143_1.c: New test.
      
      From-SVN: r230462
      Kyrylo Tkachov committed
    • * ChangeLog: Add missing entry. · 8502951b
      From-SVN: r230460
      Uros Bizjak committed
    • t-visium (MULTILIB_OPTIONS): Add muser-mode. · 3edac97c
      	* config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
      	(MULTILIB_DIRNAMES): Adjust accordingly.
      
      From-SVN: r230459
      Eric Botcazou committed
    • [Patch AArch64] Add support for Cortex-A35 · 1c72a3ca
      gcc/
      
      	* config/aarch64/aarch64-cores.def (cortex-a35): New.
      	* config/aarch64/aarch64.c (cortexa35_tunings): New.
      	* config/aarch64/aarch64-tune.md: Regenerate.
      	* doc/invoke.texi (-mcpu): Add Cortex-A35
      
      From-SVN: r230458
      James Greenhalgh committed
    • Fix commit date · 69767645
      From-SVN: r230457
      Eric Botcazou committed
    • re PR target/68263 (Vector "*mov<mode>_internal" fails to handle misaligned load/store from reload) · 0076c82f
      	PR target/68263
      	* config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
      	to 32 for IAMCU.
      	* config/i386/sse.md (*mov<mode>_internal): Always enable
      	AVX and SSE unaligned moves for IAMCU.
      
      From-SVN: r230456
      Uros Bizjak committed
    • pr68264.c: Use dg-add-options ieee. · b6eab819
      	* gcc.dg/torture/pr68264.c: Use dg-add-options ieee.
      
      From-SVN: r230455
      Uros Bizjak committed
    • Relax trap assumptions in tree if convert. · f939586a
      2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
      
      	* tree-if-conv.c: Include varasm.h
      	(ref_DR_map): Define.
      	(baseref_DR_map): Like wise
      	(struct ifc_dr): Add new tree predicate field.
      	(hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
      	(memrefs_read_or_written_unconditionally): Remove.
      	(write_memrefs_written_at_least_once): Remove.
      	(ifcvt_memrefs_wont_trap): Use hash maps to query
      	unconditional read/written information.
      	(if_convertible_loop_p_1):  Initialize hash maps and predicates
      	before hashing data references and delete hashmaps at the end.
      
      2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
      
      	* gcc.dg/tree-ssa/ifc-8.c: New test.
      
      From-SVN: r230454
      Venkataramanan Kumar committed
    • constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold to fold… · b925d25d
      constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold to fold arguments to __builtin_constant_p.
      
      	* constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold
      	to fold arguments to __builtin_constant_p.
      
      From-SVN: r230453
      Jason Merrill committed
    • re PR other/56036 (Wrong indentation in multiple -O options explaination) · 10db83d8
      2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
      
      	PR 56036
      	* doc/invoke.texi (Optimize Options): Move @end table to the right
      	place.
      
      From-SVN: r230452
      Thomas Preud'homme committed
    • re PR other/65129 (gcc manual index entry of __builtin_assume_aligned) · 7145c4b7
      2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR 65129
      	* doc/extend.texi (__builtin_assume_aligned): Fix formatting of
      	return value.
      
      From-SVN: r230451
      Sandra Loosemore committed
    • Daily bump. · ba2ece71
      From-SVN: r230448
      GCC Administrator committed
  2. 16 Nov, 2015 12 commits