1. 01 Jan, 2019 1 commit
  2. 17 Oct, 2018 1 commit
    • Run selftests for C++ as well as C · 033eb567
      gcc/ChangeLog:
      	* Makefile.in (SELFTEST_TARGETS): New.
      	(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
      	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
      	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
      	c/Make-lang.in.
      	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
      	(selftest-c++-gdb, selftest-c++-valgrind): Move to
      	cp/Make-lang.in.
      	* configure: Regenerate.
      	* configure.ac (selftest_languages): New.
      
      gcc/brig/ChangeLog:
      	* Make-lang.in (selftest-brig): New.
      
      gcc/c/ChangeLog:
      	* Make-lang.in (selftest-c): New.
      	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
      	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
      	from gcc/Makefile.in.
      
      gcc/cp/ChangeLog:
      	* Make-lang.in (selftest-c++): New.
      	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
      	(selftest-c++-gdb, selftest-c++-valgrind): Move here from
      	gcc/Makefile.in.
      
      gcc/fortran/ChangeLog:
      	* Make-lang.in (selftest-fortran): New.
      
      gcc/go/ChangeLog:
      	* Make-lang.in (selftest-go): New.
      
      gcc/jit/ChangeLog:
      	* Make-lang.in (selftest-jit): New.
      
      gcc/lto/ChangeLog:
      	* Make-lang.in (selftest-lto): New.
      
      gcc/objc/ChangeLog:
      	* Make-lang.in (selftest-objc): New.
      
      gcc/objcp/ChangeLog:
      	* Make-lang.in (selftest-obj-c++): New.
      
      From-SVN: r265240
      David Malcolm committed
  3. 20 Jul, 2018 1 commit
    • PR middle-end/82063 - issues with arguments enabled by -Wall · 00abf86c
      gcc/ada/ChangeLog:
      
      	PR middle-end/82063
      	* gcc-interface/misc.c (gnat_handle_option): Change function argument
      	to HOST_WIDE_INT.
      
      gcc/brig/ChangeLog:
      
      	PR middle-end/82063
      	* brig/brig-lang.c (brig_langhook_handle_option): Change function
      	argument to HOST_WIDE_INT.
      
      gcc/c-family/ChangeLog:
      
      	PR middle-end/82063
      	* c-common.h (c_common_handle_option): Change function argument
      	to HOST_WIDE_INT.
      	* c-opts.c (c_common_init_options): Same.
      	(c_common_handle_option): Same.  Remove special handling of
      	OPT_Walloca_larger_than_ and OPT_Wvla_larger_than_.
      	* c.opt (-Walloc-size-larger-than, -Walloca-larger-than): Change
      	options to take a HOST_WIDE_INT argument and accept a byte-size
      	suffix.  Initialize.
      	(-Wvla-larger-than): Same.
      	(-Wno-alloc-size-larger-than, -Wno-alloca-larger-than): New.
      	(-Wno-vla-larger-than): Same.
      
      gcc/fortran/ChangeLog:
      
      	PR middle-end/82063
      	* gfortran.h (gfc_handle_option): Change function argument
      	to HOST_WIDE_INT.
      	* options.c (gfc_handle_option): Same.
      
      gcc/go/ChangeLog:
      
      	PR middle-end/82063
      	* go-lang.c (go_langhook_handle_option): Change function argument
      	to HOST_WIDE_INT.
      
      gcc/lto/ChangeLog:
      
      	PR middle-end/82063
      	* lto-lang.c (lto_handle_option): Change function argument
      	to HOST_WIDE_INT.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/82063
      	* gcc/testsuite/c-c++-common/pr68657-1.c: Adjust.
      	* gcc/testsuite/c-c++-common/pr68657-2.c: Same.
      	* gcc/testsuite/c-c++-common/pr68657-3.c: Same.
      	* gcc.dg/Walloc-size-larger-than-16.c: Same.
      	* gcc.dg/Walloca-larger-than.c: New test.
      	* gcc.dg/Walloca-larger-than-2.c: New test.
      	* gcc.dg/Wframe-larger-than-2.c: New test.
      	* gcc.dg/Wlarger-than3.c: New test.
      	* gcc.dg/Wvla-larger-than-3.c: New test.
      	* gcc.dg/pr42611.c: Adjust.
      	* gnat.dg/frame_overflow.adb: Same.
      
      gcc/ChangeLog:
      
      	PR middle-end/82063
      	* builtins.c (expand_builtin_alloca): Adjust.
      	* calls.c (alloc_max_size): Simplify.
      	* cgraphunit.c (cgraph_node::expand): Adjust.
      	* common.opt (larger_than_size, warn_frame_larger_than): Remove
      	variables.
      	(frame_larger_than_size): Same.
      	(-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options
      	to take a HOST_WIDE_INT argument and accept a byte-size suffix.
      	Initialize.
      	* doc/invoke.texi (GCC Command Options): Document option arguments.
      	Explain byte-size arguments and suffixes.
      	(-Wvla-larger-than, -Wno-alloc-size-larger-than): Update.
      	(-Wno-alloca-larger-than, -Wno-vla-larger-than): Same.
      	(-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same.
      	* doc/options.texi (UInteger): Expand.
      	(Host_Wide_Int, ByteSize): Document new properties.
      	* final.c (final_start_function_1): Include sizes in an error message.
      	* function.c (frame_offset_overflow): Same.
      	* gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust.
      	(alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT.
      	Diagnose unbounded alloca calls only for limits of less than
      	PTRDIFF_MAX.
      	(alloca_call_type): Adjust.  Diagnose possibly out-of-bounds alloca
      	calls and VLA size only for limits of less than	PTRDIFF_MAX.  Same
      	for alloca(0).
      	(pass_walloca::execute): Adjust.  Diagnose alloca calls in loops
      	only for limits of less than PTRDIFF_MAX.
      	* langhooks-def.h (lhd_handle_option): Change function argument
      	to HOST_WIDE_INT.
      	* langhooks.c (lhd_handle_option): Same.
      	* langhooks.h (handle_option): Same.
      	* opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and
      	ByteSize flags.
      	(var_type, var_type_struct): Same.
      	(var_set): Handle ByteSize flag.
      	* optc-gen.awk: Add comments to output to ease debugging.  Make
      	use of HOST_WIDE_INT where appropriate.
      	* opts-gen-save.awk:  Use %lx to format unsigned long.
      	* opth-gen.awk: Change function argument to HOST_WIDE_INT.
      	* opts-common.c (integral_argument): Return HOST_WIDE_INT and add
      	arguments.  Parse bytes-size suffixes.
      	(enum_arg_to_value): Change function argument to HOST_WIDE_INT.
      	(enum_value_to_arg): Same.
      	(decode_cmdline_option): Handle cl_host_wide_int.  Adjust.
      	(handle_option): Adjust.
      	(generate_option): Change function argument to HOST_WIDE_INT.
      	(cmdline_handle_error): Adjust.
      	(read_cmdline_option): Change function argument to HOST_WIDE_INT.
      	(set_option): Change function argument to HOST_WIDE_INT.
      	(option_enabled): Handle cl_host_wide_int.
      	(get_option_state): Handle CLVC_SIZE.
      	(control_warning_option): Same.
      	* opts.c (common_handle_option): Change function argument to
      	HOST_WIDE_INT.  Remove handling of OPT_Walloca_larger_than_ and
      	OPT_Wvla_larger_than_.
      	* opts.h (enum cl_var_type): Add an enumerator.
      	* stor-layout.c (layout_decl): Print a more meaningful warning.
      	* toplev.c (output_stack_usage): Adjust.
      
      From-SVN: r262910
      Martin Sebor committed
  4. 04 Jul, 2018 1 commit
  5. 28 Jun, 2018 1 commit
  6. 08 Jun, 2018 1 commit
    • Convert dump and optgroup flags to enums · 4af78ef8
      gcc/brig/ChangeLog:
      	* brigfrontend/brig-to-generic.cc
      	(brig_to_generic::write_globals): Use TDF_NONE rather than 0.
      	(dump_function): Likewise.
      
      gcc/c-family/ChangeLog:
      	* c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
      	rather than 0.
      
      gcc/ChangeLog:
      	* cfg.c (debug): Use TDF_NONE rather than 0.
      	* cfghooks.c (debug): Likewise.
      	* dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP.
      	(struct dump_option_value_info): Convert to...
      	(struct kv_pair): ...this template type.
      	(dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE
      	rather than 0.
      	(optinfo_verbosity_options): Likewise.
      	(optgroup_options): Convert to kv_pair<optgroup_flags_t>; use
      	OPTGROUP_NONE.
      	(gcc::dump_manager::dump_register): Use optgroup_flags_t rather
      	than int for "optgroup_flags" param.
      	(dump_generic_expr_loc): Use dump_flags_t rather than int for
      	"dump_kind" param.
      	(dump_dec): Likewise.
      	(dump_finish): Use TDF_NONE rather than 0.
      	(gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t
      	rather than int for "optgroup_flags" param.  Use TDF_NONE rather
      	than 0.  Update for change to option_ptr.
      	(opt_info_switch_p_1): Convert "optgroup_flags" param from int *
      	to optgroup_flags_t *.  Use TDF_NONE and OPTGROUP_NONE rather than
      	0.  Update for changes to optinfo_verbosity_options and
      	optgroup_options.
      	(opt_info_switch_p): Convert optgroup_flags from int to
      	optgroup_flags_t.
      	(dump_basic_block): Use dump_flags_t rather than int
      	for "dump_kind" param.
      	* dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS,
      	TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID)
      	TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME,
      	TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB,
      	TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS,
      	MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG,
      	TDF_NONE): Convert from macros to...
      	(enum dump_flag): ...this new enum.
      	(dump_flags_t): Update to use enum.
      	(operator|, operator&, operator~, operator|=, operator&=):
      	Implement for dump_flags_t.
      	(OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE,
      	OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL):
      	Convert from macros to...
      	(enum optgroup_flag): ...this new enum.
      	(optgroup_flags_t): New typedef.
      	(operator|, operator|=): Implement for optgroup_flags_t.
      	(struct dump_file_info): Convert field "alt_flags" to
      	dump_flags_t.  Convert field "optgroup_flags" to
      	optgroup_flags_t.
      	(dump_basic_block): Use dump_flags_t rather than int for param.
      	(dump_generic_expr_loc): Likewise.
      	(dump_dec): Likewise.
      	(dump_register): Convert param "optgroup_flags" to
      	optgroup_flags_t.
      	(opt_info_enable_passes): Likewise.
      	* early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather
      	than 0.
      	* gimple-pretty-print.c (debug): Likewise.
      	* gimple-ssa-store-merging.c (bswap_replace): Likewise.
      	(merged_store_group::apply_stores): Likewise.
      	* gimple-ssa-strength-reduction.c (insert_initializers): Likewise.
      	* gimple.c (verify_gimple_pp): Likewise.
      	* graphite-poly.c (print_pbb_body): Likewise.
      	* passes.c (pass_manager::register_one_dump_file): Convert
      	local "optgroup_flags" to optgroup_flags_t.
      	* print-tree.c (print_node): Use TDF_NONE rather than 0.
      	(debug): Likewise.
      	(debug_body): Likewise.
      	* tree-pass.h (struct pass_data): Convert field "optgroup_flags"
      	to optgroup_flags_t.
      	* tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather
      	than 0.
      	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise.
      	(convert_mult_to_fma): Likewise.
      	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
      	* tree-ssa-sccvn.c (vn_eliminate): Likewise.
      	* tree-vect-data-refs.c (dump_lower_bound): Convert param
      	"dump_kind" to dump_flags_t.
      
      From-SVN: r261325
      David Malcolm committed
  7. 18 May, 2018 1 commit
    • Replace FMA_EXPR with one internal fn per optab · c566cc9f
      There are four optabs for various forms of fused multiply-add:
      fma, fms, fnma and fnms.  Of these, only fma had a direct gimple
      representation.  For the other three we relied on special pattern-
      matching during expand, although tree-ssa-math-opts.c did have
      some code to try to second-guess what expand would do.
      
      This patch removes the old FMA_EXPR representation of fma and
      introduces four new internal functions, one for each optab.
      IFN_FMA is tied to BUILT_IN_FMA* while the other three are
      independent directly-mapped internal functions.  It's then
      possible to do the pattern-matching in match.pd and
      tree-ssa-math-opts.c (via folding) can select the exact
      FMA-based operation.
      
      The BRIG & HSA parts are a best guess, but seem relatively simple.
      
      2018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* doc/sourcebuild.texi (scalar_all_fma): Document.
      	* tree.def (FMA_EXPR): Delete.
      	* internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions.
      	* internal-fn.c (ternary_direct): New macro.
      	(expand_ternary_optab_fn): Likewise.
      	(direct_ternary_optab_supported_p): Likewise.
      	* Makefile.in (build/genmatch.o): Depend on case-fn-macros.h.
      	* builtins.c (fold_builtin_fma): Delete.
      	(fold_builtin_3): Don't call it.
      	* cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling.
      	* expr.c (expand_expr_real_2): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	(fold_ternary_loc): Likewise.
      	* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
      	* gimple.c (DEFTREECODE): Likewise.
      	* gimplify.c (gimplify_expr): Likewise.
      	* optabs-tree.c (optab_for_tree_code): Likewise.
      	* tree-cfg.c (verify_gimple_assign_ternary): Likewise.
      	* tree-eh.c (operation_could_trap_p): Likewise.
      	(stmt_could_throw_1_p): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	(op_code_prio): Likewise.
      	* tree-ssa-loop-im.c (stmt_cost): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree.c (commutative_ternary_tree_code, add_expr): Likewise.
      	* fold-const-call.h (fold_fma): Delete.
      	* fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS,
      	CFN_FNMA and CFN_FNMS.
      	(fold_fma): Delete.
      	* genmatch.c (combined_fn): New enum.
      	(commutative_ternary_tree_code): Remove FMA_EXPR handling.
      	(commutative_op): New function.
      	(commutate): Use it.  Handle more than 2 operands.
      	(dt_operand::gen_gimple_expr): Use commutative_op.
      	(parser::parse_expr): Allow :c to be used with non-binary
      	operators if the commutative operand is known.
      	* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle
      	CFN_FMS, CFN_FNMA and CFN_FNMS.
      	(backprop::process_assign_use): Remove FMA_EXPR handling.
      	* hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise.
      	(gen_hsa_fma): New function.
      	(gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS,
      	IFN_FNMA and IFN_FNMS.
      	* match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS.
      	* gimple-fold.h (follow_all_ssa_edges): Declare.
      	* gimple-fold.c (follow_all_ssa_edges): New function.
      	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the
      	gimple_build interface and use follow_all_ssa_edges to fold the result.
      	(convert_mult_to_fma): Use direct_internal_fn_suppoerted_p
      	instead of checking for optabs directly.
      	* config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls
      	rather than FMA_EXPRs.
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a
      	call to IFN_FMA instead of an FMA_EXPR.
      
      gcc/brig/
      	* brigfrontend/brig-function.cc
      	(brig_function::get_builtin_for_hsa_opcode): Use BUILT_IN_FMA
      	for BRIG_OPCODE_FMA.
      	(brig_function::get_tree_code_for_hsa_opcode): Treat BUILT_IN_FMA
      	as a call.
      
      gcc/c/
      	* gimple-parser.c (c_parser_gimple_postfix_expression): Remove
      	__FMA_EXPR handlng.
      
      gcc/cp/
      	* constexpr.c (cxx_eval_constant_expression): Remove FMA_EXPR handling.
      	(potential_constant_expression_1): Likewise.
      
      gcc/testsuite/
      	* lib/target-supports.exp (check_effective_target_scalar_all_fma):
      	New proc.
      	* gcc.dg/fma-1.c: New test.
      	* gcc.dg/fma-2.c: Likewise.
      	* gcc.dg/fma-3.c: Likewise.
      	* gcc.dg/fma-4.c: Likewise.
      	* gcc.dg/fma-5.c: Likewise.
      	* gcc.dg/fma-6.c: Likewise.
      	* gcc.dg/fma-7.c: Likewise.
      	* gcc.dg/gimplefe-26.c: Use .FMA instead of __FMA and require
      	scalar_all_fma.
      	* gfortran.dg/reassoc_7.f: Pass -ffp-contract=off.
      	* gfortran.dg/reassoc_8.f: Likewise.
      	* gfortran.dg/reassoc_9.f: Likewise.
      	* gfortran.dg/reassoc_10.f: Likewise.
      
      From-SVN: r260348
      Richard Sandiford committed
  8. 04 May, 2018 7 commits
    • [BRIGFE] Fix handling of NOPs. · 73def6ea
      From-SVN: r259958
      Pekka Jääskeläinen committed
    • [BRIGFE] phsa-specific optimizations · 080dc243
      Add flag -fassume-phsa that is on by default. If -fno-assume-phsa
      is given, these optimizations are disabled.
      
      With this flag, gccbrig can generate GENERIC that assumes we are
      targeting a phsa-runtime based implementation, which allows us
      to expose the work-item context accesses to retrieve WI IDs etc.
      which helps optimizers.
      
      First optimization that takes advantage of this is to get rid of
      the setworkitemid calls whenever we have non-inlined calls that
      use IDs internally.
      
      Other optimizations added in this commit:
      
      - expand absoluteid to similar level of simplicity as workitemid.
      At the moment absoluteid is the best indexing ID to end up with
      WG vectorization.
      - propagate ID variables closer to their uses. This is mainly
      to avoid known useless casts, which confuse at least scalar
      evolution analysis.
      - use signed long long for storing IDs. Unsigned integers have
      defined wraparound semantics, which confuse at least scalar
      evolution analysis, leading to unvectorizable WI loops.
      - also refactor some BRIG function generation helpers to brig_function.
      - no point in having the wi-loop as a for-loop. It's really
      a do...while and SCEV can analyze it just fine still.
      - add consts to ptrs etc. in BRIG builtin defs.
      Improves optimization opportunities.
      - add qualifiers to generated function parameters.
      Const and restrict on the hidden local/private pointers,
      the arg buffer and the context pointer help some optimizations.
      
      From-SVN: r259957
      Pekka Jääskeläinen committed
    • [BRIGFE] do not allow optimizations based on known C builtins · 60a3d46c
      It can break inputs that have similarly named functions.
      
      From-SVN: r259949
      Pekka Jääskeläinen committed
    • [BRIGFE] The modulo in ID computation should not be needed. · f986735a
      The case where a dim is greater than the grid size doesn't seem
      to be mentioned in the specs nor tested by PRM test suite.
      
      From-SVN: r259944
      Pekka Jääskeläinen committed
    • [BRIGFE] Enable whole program optimizations · 637f3cde
      HSA assumes all program scope HSAIL symbols can be queried from
      the host runtime API, thus cannot be removed by the IPA.
      
      Getting some inlining happening in the finalized binary required:
      * explicitly marking the 'prog' scope functions and the launcher
      function "externally_visible" to avoid the inliner removing it
      * also the host_def ptr is set to externally visible, otherwise
      IPA assumes it's never set
      * adding the 'inline' keyword to functions to enable inlining,
      otherwise GCC defaults to replaceable functions (one can link
      over the previous one) which cannot be inlined
      * replacing all calls to declarations with calls to definitions to
      enable the inliner to find the definition
      * to fix missing hidden argument types in the generated functions.
      These were ignored silently until GCC started to be able to
      inline calls to such functions.
      * do not gimplify before fixing the call targets. Otherwise the
      calls get detached and the definitions are not found. The reason
      why this happens is not clear, but gimplifying only after call
      target decl->def conversion fixes this.
      
      From-SVN: r259943
      Pekka Jääskeläinen committed
  9. 03 Jan, 2018 3 commits
    • poly_int: TYPE_VECTOR_SUBPARTS · 928686b1
      This patch changes TYPE_VECTOR_SUBPARTS to a poly_uint64.  The value is
      encoded in the 10-bit precision field and was previously always stored
      as a simple log2 value.  The challenge was to use this 10 bits to
      encode the number of elements in variable-length vectors, so that
      we didn't need to increase the size of the tree.
      
      In practice the number of vector elements should always have the form
      N + N * X (where X is the runtime value), and as for constant-length
      vectors, N must be a power of 2 (even though X itself might not be).
      The patch therefore uses the low 8 bits to encode log2(N) and bit
      8 to select between constant-length and variable-length vectors.
      Targets without variable-length vectors continue to use the old scheme.
      
      A new valid_vector_subparts_p function tests whether a given number
      of elements can be encoded.  This is false for the vector modes that
      represent an LD3 or ST3 vector triple (which we want to treat as arrays
      of vectors rather than single vectors).
      
      Most of the patch is mechanical; previous patches handled the changes
      that weren't entirely straightforward.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle
      	polynomial numbers of units.
      	(SET_TYPE_VECTOR_SUBPARTS): Likewise.
      	(valid_vector_subparts_p): New function.
      	(build_vector_type): Remove temporary shim and take the number
      	of units as a poly_uint64 rather than an int.
      	(build_opaque_vector_type): Take the number of units as a
      	poly_uint64 rather than an int.
      	* tree.c (build_vector_from_ctor): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(type_hash_canon_hash, type_cache_hasher::equal): Likewise.
      	(uniform_vector_p, vector_type_mode, build_vector): Likewise.
      	(build_vector_from_val): If the number of units is variable,
      	use build_vec_duplicate_cst for constant operands and
      	VEC_DUPLICATE_EXPR otherwise.
      	(make_vector_type): Remove temporary is_constant ().
      	(build_vector_type, build_opaque_vector_type): Take the number of
      	units as a poly_uint64 rather than an int.
      	(check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and
      	VECTOR_CST_NELTS.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* expr.c (count_type_elements, categorize_ctor_elements_1): Likewise.
      	(store_constructor, expand_expr_real_1): Likewise.
      	(const_scalar_mask_from_tree): Likewise.
      	* fold-const-call.c (fold_const_reduction): Likewise.
      	* fold-const.c (const_binop, const_unop, fold_convert_const): Likewise.
      	(operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise.
      	(native_encode_vector, vec_cst_ctor_to_array): Likewise.
      	(fold_relational_const): Likewise.
      	(native_interpret_vector): Likewise.  Change the size from an
      	int to an unsigned int.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(gimple_fold_indirect_ref, gimple_build_vector): Likewise.
      	(gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when
      	duplicating a non-constant operand into a variable-length vector.
      	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial
      	TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS.
      	* ipa-icf.c (sem_variable::equals): Likewise.
      	* match.pd: Likewise.
      	* omp-simd-clone.c (simd_clone_subparts): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* stor-layout.c (layout_type): Likewise.
      	* targhooks.c (default_builtin_vectorization_cost): Likewise.
      	* tree-cfg.c (verify_gimple_comparison): Likewise.
      	(verify_gimple_assign_binary): Likewise.
      	(verify_gimple_assign_ternary): Likewise.
      	(verify_gimple_assign_single): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
      	(simplify_bitfield_ref, is_combined_permutation_identity): Likewise.
      	* tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
      	(vect_grouped_load_supported, vect_permute_load_chain): Likewise.
      	(vect_shift_permute_load_chain): Likewise.
      	* tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise.
      	(expand_vector_condition, optimize_vector_constructor): Likewise.
      	(lower_vec_perm, get_compute_type): Likewise.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
      	(get_initial_defs_for_reduction, vect_transform_loop): Likewise.
      	* tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
      	(vect_recog_mask_conversion_pattern): Likewise.
      	* tree-vect-slp.c (vect_supported_load_permutation_p): Likewise.
      	(vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise.
      	* tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
      	(get_group_load_store_type, vectorizable_mask_load_store): Likewise.
      	(vectorizable_bswap, simd_clone_subparts, vectorizable_assignment)
      	(vectorizable_shift, vectorizable_operation, vectorizable_store)
      	(vectorizable_load, vect_is_simple_cond, vectorizable_comparison)
      	(supportable_widening_operation): Likewise.
      	(supportable_narrowing_operation): Likewise.
      	* tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts):
      	Likewise.
      	* varasm.c (output_constant): Likewise.
      
      gcc/ada/
      	* gcc-interface/utils.c (gnat_types_compatible_p): Handle
      	polynomial TYPE_VECTOR_SUBPARTS.
      
      gcc/brig/
      	* brigfrontend/brig-to-generic.cc (get_unsigned_int_type): Handle
      	polynomial TYPE_VECTOR_SUBPARTS.
      	* brigfrontend/brig-util.h (gccbrig_type_vector_subparts): Likewise.
      
      gcc/c-family/
      	* c-common.c (vector_types_convertible_p, c_build_vec_perm_expr)
      	(convert_vector_to_array_for_subscript): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      	(c_common_type_for_mode): Check valid_vector_subparts_p.
      	* c-pretty-print.c (pp_c_initializer_list): Handle polynomial
      	VECTOR_CST_NELTS.
      
      gcc/c/
      	* c-typeck.c (comptypes_internal, build_binary_op): Handle polynomial
      	TYPE_VECTOR_SUBPARTS.
      
      gcc/cp/
      	* constexpr.c (cxx_eval_array_reference): Handle polynomial
      	VECTOR_CST_NELTS.
      	(cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS.
      	* call.c (build_conditional_expr_1): Likewise.
      	* decl.c (cp_finish_decomp): Likewise.
      	* mangle.c (write_type): Likewise.
      	* typeck.c (structural_comptypes): Likewise.
      	(cp_build_binary_op): Likewise.
      	* typeck2.c (process_init_constructor_array): Likewise.
      
      gcc/fortran/
      	* trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
      
      gcc/lto/
      	* lto-lang.c (lto_type_for_mode): Check valid_vector_subparts_p.
      	* lto.c (hash_canonical_type): Handle polynomial TYPE_VECTOR_SUBPARTS.
      
      gcc/go/
      	* go-lang.c (go_langhook_type_for_mode): Check valid_vector_subparts_p.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256197
      Richard Sandiford committed
    • Update copyright years. · 85ec4feb
      From-SVN: r256169
      Jakub Jelinek committed
    • poly_int: brig vector elements · e112bba2
      This patch adds a brig-specific wrapper around TYPE_VECTOR_SUBPARTS,
      since presumably it will never need to support variable vector lengths.
      
      2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/brig/
      	* brigfrontend/brig-util.h (gccbrig_type_vector_subparts): New
      	function.
      	* brigfrontend/brig-basic-inst-handler.cc
      	(brig_basic_inst_handler::build_shuffle): Use it instead of
      	TYPE_VECTOR_SUBPARTS.
      	(brig_basic_inst_handler::build_unpack): Likewise.
      	(brig_basic_inst_handler::build_pack): Likewise.
      	(brig_basic_inst_handler::build_unpack_lo_or_hi): Likewise.
      	(brig_basic_inst_handler::operator ()): Likewise.
      	(brig_basic_inst_handler::build_lower_element_broadcast): Likewise.
      	* brigfrontend/brig-code-entry-handler.cc
      	(brig_code_entry_handler::get_tree_cst_for_hsa_operand): Likewise.
      	(brig_code_entry_handler::get_comparison_result_type): Likewise.
      	(brig_code_entry_handler::expand_or_call_builtin): Likewise.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r256144
      Richard Sandiford committed
  10. 15 Dec, 2017 1 commit
    • tree-core.h (struct attribute_spec): Swap affects_type_identity and handler fields. · 4849deb1
      	* tree-core.h (struct attribute_spec): Swap affects_type_identity and
      	handler fields.
      	* config/alpha/alpha.c (vms_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      	* config/mips/mips.c (mips_attribute_table): Likewise.
      	* config/visium/visium.c (visium_attribute_table): Likewise.
      	* config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
      	* config/microblaze/microblaze.c (microblaze_attribute_table):
      	Likewise.
      	* config/spu/spu.c (spu_attribute_table): Likewise.
      	* config/mcore/mcore.c (mcore_attribute_table): Likewise.
      	* config/arc/arc.c (arc_attribute_table): Likewise.
      	* config/m68k/m68k.c (m68k_attribute_table): Likewise.
      	* config/v850/v850.c (v850_handle_interrupt_attribute,
      	v850_handle_data_area_attribute): Formatting fixes.
      	(v850_attribute_table): Swap affects_type_identity and handler
      	fields, adjust comments.
      	* config/m32r/m32r.c (m32r_attribute_table): Likewise.
      	* config/arm/arm.c (arm_attribute_table): Likewise.
      	* config/avr/avr.c (avr_attribute_table): Likewise.
      	* config/s390/s390.c (s390_attribute_table): Likewise.
      	* config/sh/sh.c (sh_attribute_table): Likewise.
      	* config/i386/i386.c (ix86_handle_cconv_attribute,
      	ix86_handle_callee_pop_aggregate_return): Formatting fixes.
      	(ix86_attribute_table): Swap affects_type_identity and handler
      	fields, adjust comments.
      	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      	* config/sparc/sparc.c (sparc_attribute_table): Likewise.
      	* config/m32c/m32c.c (m32c_attribute_table): Likewise.
      	* config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
      	* config/ia64/ia64.c (ia64_attribute_table): Likewise.
      	* config/msp430/msp430.c (msp430_attribute_table): Likewise.
      	* config/rx/rx.c (rx_attribute_table): Likewise.
      	* config/cr16/cr16.c (cr16_attribute_table): Likewise.
      	* config/h8300/h8300.c (h8300_attribute_table): Likewise.
      	* config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
      	* config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
      	* config/bfin/bfin.c (bfin_attribute_table): Likewise.
      	* config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
      	* config/rl78/rl78.c (rl78_attribute_table): Likewise.
      	* config/nds32/nds32.c (nds32_attribute_table): Likewise.
      	* doc/plugins.texi (user_attr): Likewise.  Add NULL for
      	exclude.
      	* attribs.c (empty_attribute_table): Swap affects_type_identity and
      	handler fields.
      	(register_scoped_attributes, decl_attributes): Formatting fixes.
      ada/
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      brig/
      	* brig-lang.c (brig_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      c-family/
      	* c-attribs.c (c_common_attribute_table,
      	c_common_format_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      cp/
      	* tree.c (cxx_attribute_table, std_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      fortran/
      	* f95-lang.c (gfc_attribute_table): Swap affects_type_identity
      	and handler fields, adjust comments.
      lto/
      	* lto-lang.c (lto_attribute_table, lto_format_attribute_table): Swap
      	affects_type_identity and handler fields, adjust comments.
      testsuite/
      	* g++.dg/plugin/attribute_plugin.c (user_attr): Swap
      	affects_type_identity and handler fields, add NULL for exclude.
      
      From-SVN: r255699
      Jakub Jelinek committed
  11. 08 Dec, 2017 1 commit
    • arc.c (arc_attribute_table): Add exclusions to the comment. · 0123db8e
      	* config/arc/arc.c (arc_attribute_table): Add exclusions to
      	the comment.
      	* config/avr/avr.c (avr_attribute_table): Likewise.
      	* config/msp430/msp430.c (msp430_attribute_table): Likewise.
      	* config/rl78/rl78.c (rl78_attribute_table): Likewise.
      	* config/nds32/nds32.c (nds32_attribute_table): Likewise.
      	* config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
      	of struct attribute_spec.
      	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      ada/
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Add
      	exclusions to the comment.
      brig/
      	* brig-lang.c (brig_attribute_table): Fix up comment.
      
      From-SVN: r255509
      Jakub Jelinek committed
  12. 07 Dec, 2017 1 commit
    • PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted · 5d9ae53d
      PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted
      PR c/81566 - invalid attribute aligned accepted on functions
      
      gcc/ada/ChangeLog:
      
      	PR c/81544
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Initialize
      	new member of struct attribute_spec.
      
      gcc/c/ChangeLog:
      
      	PR c/81544
      	* c-decl.c (c_decl_attributes): Look up existing declaration and
      	pass it to decl_attributes.
      
      gcc/c-family/ChangeLog:
      
      	PR c/81544
      	PR c/81566
      	* c-attribs.c (attr_aligned_exclusions): New array.
      	(attr_alloc_exclusions, attr_cold_hot_exclusions): Same.
      	(attr_common_exclusions, attr_const_pure_exclusions): Same.
      	(attr_gnu_inline_exclusions, attr_inline_exclusions): Same.
      	(attr_noreturn_exclusions, attr_returns_twice_exclusions): Same.
      	(attr_warn_unused_result_exclusions): Same.
      	(handle_hot_attribute, handle_cold_attribute): Simplify.
      	(handle_const_attribute): Warn on function returning void.
      	(handle_pure_attribute): Same.
      	(handle_aligned_attribute): Diagnose conflicting attribute
      	specifications.
      	* c-warn.c (diagnose_mismatched_attributes): Simplify.
      
      gcc/cp/ChangeLog:
      
      	PR c/81544
      	* cp-tree.h (decls_match): Add default argument.
      	* decl.c (decls_match): Avoid calling into the target back end
      	and triggering an error.
      	* decl2.c (cplus_decl_attributes): Look up existing declaration and
      	pass it to decl_attributes.
      	* tree.c (cxx_attribute_table): Initialize new member of struct
      	attribute_spec.
      
      gcc/fortran/ChangeLog:
      
      	PR c/81544
      	* f95-lang.c (gfc_attribute_table): Initialize new member of struct
      	attribute_spec.
      
      gcc/lto/ChangeLog:
      
      	PR c/81544
      	* lto-lang.c (lto_attribute_table): Initialize new member of struct
      	attribute_spec.
      
      gcc/ChangeLog:
      
      	PR c/81544
      	* attribs.c (empty_attribute_table): Initialize new member of
      	struct attribute_spec.
      	(decl_attributes): Add argument.  Handle mutually exclusive
      	combinations of attributes.
      	(selftests::test_attribute_exclusions): New function.
      	(selftests::attribute_c_tests): Ditto.
      	* attribs.h (decl_attributes): Add default argument.
      	* selftest.h (attribute_c_tests): Declare.
      	* selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
      	* tree-core.h (attribute_spec::exclusions, exclude): New type and
      	member.
      	* doc/extend.texi (Common Function Attributes): Update const and pure.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/81544
      	* c-c++-common/Wattributes-2.c: New test.
      	* c-c++-common/Wattributes.c: New test.
      	* c-c++-common/attributes-3.c: Adjust.
      	* gcc.dg/Wattributes-6.c: New test.
      	* gcc.dg/Wattributes-7.c: New test.
      	* gcc.dg/attr-noinline.c
      	* gcc.dg/pr44964.c: Same.
      	* gcc.dg/torture/pr42363.c: Same.
      	* gcc.dg/tree-ssa/ssa-ccp-2.c: Same.
      
      From-SVN: r255469
      Martin Sebor committed
  13. 28 Nov, 2017 1 commit
    • tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. · 9e851845
      	* tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
      	Adjust comment.
      	* tree.h (SWITCH_LABELS): Remove.
      	* gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
      	assert SWITCH_BODY is non-NULL.
      	* tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
      	handling.
      	* tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
      c/
      	* c-typeck.c (c_start_case): Build SWITCH_EXPR using build2 instead
      	of build3.
      cp/
      	* cp-gimplify.c (genericize_switch_stmt): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      ada/
      	* gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
      	using build2 instead of build3.
      jit/
      	* jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
      	of build3.  Formatting fixes.  Adjust funciton comment.
      fortran/
      	* trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
      	using fold_build2_loc instead of fold_build3_loc.
      	* trans-io.c (io_result): Likewise.
      	* trans-stmt.c (gfc_trans_integer_select, gfc_trans_character_select):
      	Likewise.
      go/
      	* go-gcc.cc (Gcc_backend::switch_statement): Build SWITCH_EXPR using
      	build2_loc instead of build3_loc.
      brig/
      	* brigfrontend/brig-branch-inst-handler.cc
      	(brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2
      	instead of build3.
      
      From-SVN: r255192
      Jakub Jelinek committed
  14. 17 Nov, 2017 1 commit
  15. 16 Nov, 2017 2 commits
  16. 31 Oct, 2017 1 commit
  17. 23 Oct, 2017 1 commit
  18. 09 Oct, 2017 1 commit
  19. 03 Oct, 2017 1 commit
  20. 29 Sep, 2017 1 commit
  21. 28 Sep, 2017 1 commit
  22. 27 Sep, 2017 1 commit
    • [BRIGFE] Improved support for function and module scope group · d4b7f2ee
      segment variables.
          
      PRM specs defines function and module scope group segment variables
      as an experimental feature. However, PRM test suite uses and
      hcc relies on them. In addition, hcc assumes certain group variable
      layout in its dynamic group segment allocation code.
          
      We cannot have global group memory offsets if we want to
      both have kernel-specific group segment size and multiple kernels
      calling the same functions that use function scope group memory
      variables.
          
      Now group segment is handled by separate book keeping of module
      scope and function (kernel) offsets. Each function has a "frame"
      in the group segment offset to which is given as an argument.
      
      From-SVN: r253233
      Pekka Jääskeläinen committed
  23. 25 Sep, 2017 1 commit
    • BRIGFE fixes: · c02bffe3
      * brig-builtins.def: Treat HSAIL barrier builtins as
        setjmp/longjump style functions.
      
      * brigfrontend/brig-to-generic.cc: Ensure per WI copies of
        private variables are aligned too.
      
      * rt/workitems.c: Assume the host runtime allocates the work group
        memory.
      
      From-SVN: r253160
      Pekka Jääskeläinen committed
  24. 17 Sep, 2017 1 commit
    • Fix gccbrig documentation build · 7ac3ed13
      	gcc/brig/
      	* Make-lang.in (GO_TEXI_FILES): Rename to...
      	(BRIG_TEXI_FILES): ... this.
      	(doc/gccbrig.info, doc/gccbrig.dvi, doc/gccbrig.pdf, brig.info)
      	(brig.srcinfo, brig.man, brig.srcman, brig.install-man)
      	($(DESTDIR)$(man1dir)/$(GCCBRIG_INSTALL_NAME)$(man1ext)):
      	Uncomment/enable targets.
      	(gccbrig.pod): New target.
      	* gccbrig.texi: New file.
      
      From-SVN: r252893
      Thomas Schwinge committed
  25. 04 Aug, 2017 1 commit
  26. 05 Jul, 2017 1 commit
    • Remove enum before machine_mode · b8506a8a
      r216834 did a mass removal of "enum" before "machine_mode".  This patch
      removes some new uses that have been added since then.
      
      2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* combine.c (simplify_if_then_else): Remove "enum" before
      	"machine_mode".
      	* compare-elim.c (can_eliminate_compare): Likewise.
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
      	Likewise.
      	(aarch64_lookup_simd_builtin_type): Likewise.
      	(aarch64_simd_builtin_type): Likewise.
      	(aarch64_init_simd_builtin_types): Likewise.
      	(aarch64_simd_expand_args): Likewise.
      	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
      	Likewise.
      	(aarch64_reverse_mask): Likewise.
      	(aarch64_simd_emit_reg_reg_move): Likewise.
      	(aarch64_gen_adjusted_ldpstp): Likewise.
      	(aarch64_ccmp_mode_to_code): Likewise.
      	(aarch64_operands_ok_for_ldpstp): Likewise.
      	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.
      	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
      	Likewise.
      	(aarch64_min_divisions_for_recip_mul): Likewise.
      	(aarch64_reassociation_width): Likewise.
      	(aarch64_get_condition_code_1): Likewise.
      	(aarch64_simd_emit_reg_reg_move): Likewise.
      	(aarch64_simd_attr_length_rglist): Likewise.
      	(aarch64_reverse_mask): Likewise.
      	(aarch64_operands_ok_for_ldpstp): Likewise.
      	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.
      	(aarch64_gen_adjusted_ldpstp): Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
      	Likewise.
      	* config/arc/arc.c (legitimate_offset_address_p): Likewise.
      	* config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
      	(arm_lookup_simd_builtin_type): Likewise.
      	(arm_simd_builtin_type): Likewise.
      	(arm_init_simd_builtin_types): Likewise.
      	(arm_expand_builtin_args): Likewise.
      	* config/arm/arm-protos.h (arm_expand_builtin): Likewise.
      	* config/ft32/ft32.c (ft32_libcall_value): Likewise.
      	(ft32_setup_incoming_varargs): Likewise.
      	(ft32_function_arg): Likewise.
      	(ft32_function_arg_advance): Likewise.
      	(ft32_pass_by_reference): Likewise.
      	(ft32_arg_partial_bytes): Likewise.
      	(ft32_valid_pointer_mode): Likewise.
      	(ft32_addr_space_pointer_mode): Likewise.
      	(ft32_addr_space_legitimate_address_p): Likewise.
      	* config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
      	Likewise.
      	* config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
      	(ix86_emit_outlined_ms2sysv_restore): Likewise.
      	(iamcu_alignment): Likewise.
      	(canonicalize_vector_int_perm): Likewise.
      	(ix86_noce_conversion_profitable_p): Likewise.
      	(ix86_mpx_bound_mode): Likewise.
      	(ix86_operands_ok_for_move_multiple): Likewise.
      	* config/microblaze/microblaze-protos.h
      	(microblaze_expand_conditional_branch_reg): Likewise.
      	* config/microblaze/microblaze.c
      	(microblaze_expand_conditional_branch_reg): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
      	Likewise.
      	(rs6000_reassociation_width): Likewise.
      	(rs6000_invalid_binary_op): Likewise.
      	(fusion_p9_p): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
      	Likewise.
      	(riscv_hard_regno_mode_ok_p): Likewise.
      	(riscv_address_insns): Likewise.
      	(riscv_split_symbol): Likewise.
      	(riscv_legitimize_move): Likewise.
      	(riscv_function_value): Likewise.
      	(riscv_hard_regno_nregs): Likewise.
      	(riscv_expand_builtin): Likewise.
      	* config/riscv/riscv.c (riscv_build_integer_1): Likewise.
      	(riscv_build_integer): Likewise.
      	(riscv_split_integer): Likewise.
      	(riscv_legitimate_constant_p): Likewise.
      	(riscv_cannot_force_const_mem): Likewise.
      	(riscv_regno_mode_ok_for_base_p): Likewise.
      	(riscv_valid_base_register_p): Likewise.
      	(riscv_valid_offset_p): Likewise.
      	(riscv_valid_lo_sum_p): Likewise.
      	(riscv_classify_address): Likewise.
      	(riscv_legitimate_address_p): Likewise.
      	(riscv_address_insns): Likewise.
      	(riscv_load_store_insns): Likewise.
      	(riscv_force_binary): Likewise.
      	(riscv_split_symbol): Likewise.
      	(riscv_force_address): Likewise.
      	(riscv_legitimize_address): Likewise.
      	(riscv_move_integer): Likewise.
      	(riscv_legitimize_const_move): Likewise.
      	(riscv_legitimize_move): Likewise.
      	(riscv_address_cost): Likewise.
      	(riscv_subword): Likewise.
      	(riscv_output_move): Likewise.
      	(riscv_canonicalize_int_order_test): Likewise.
      	(riscv_emit_int_order_test): Likewise.
      	(riscv_function_arg_boundary): Likewise.
      	(riscv_pass_mode_in_fpr_p): Likewise.
      	(riscv_pass_fpr_single): Likewise.
      	(riscv_pass_fpr_pair): Likewise.
      	(riscv_get_arg_info): Likewise.
      	(riscv_function_arg): Likewise.
      	(riscv_function_arg_advance): Likewise.
      	(riscv_arg_partial_bytes): Likewise.
      	(riscv_function_value): Likewise.
      	(riscv_pass_by_reference): Likewise.
      	(riscv_setup_incoming_varargs): Likewise.
      	(riscv_print_operand): Likewise.
      	(riscv_elf_select_rtx_section): Likewise.
      	(riscv_save_restore_reg): Likewise.
      	(riscv_for_each_saved_reg): Likewise.
      	(riscv_register_move_cost): Likewise.
      	(riscv_hard_regno_mode_ok_p): Likewise.
      	(riscv_hard_regno_nregs): Likewise.
      	(riscv_class_max_nregs): Likewise.
      	(riscv_memory_move_cost): Likewise.
      	* config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
      	* config/rl78/rl78.c (rl78_split_movsi): Likewise.
      	(rl78_addr_space_address_mode): Likewise.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Likewise.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
      	(rs6000_reassociation_width): Likewise.
      	(rs6000_invalid_binary_op): Likewise.
      	(fusion_p9_p): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/visium/visium-protos.h (prepare_move_operands): Likewise.
      	(ok_for_simple_move_operands): Likewise.
      	(ok_for_simple_move_strict_operands): Likewise.
      	(ok_for_simple_arith_logic_operands): Likewise.
      	(visium_legitimize_reload_address): Likewise.
      	(visium_select_cc_mode): Likewise.
      	(output_cbranch): Likewise.
      	(visium_split_double_move): Likewise.
      	(visium_expand_copysign): Likewise.
      	(visium_expand_int_cstore): Likewise.
      	(visium_expand_fp_cstore): Likewise.
      	* config/visium/visium.c (visium_pass_by_reference): Likewise.
      	(visium_function_arg): Likewise.
      	(visium_function_arg_advance): Likewise.
      	(visium_libcall_value): Likewise.
      	(visium_setup_incoming_varargs): Likewise.
      	(visium_legitimate_constant_p): Likewise.
      	(visium_legitimate_address_p): Likewise.
      	(visium_legitimize_address): Likewise.
      	(visium_secondary_reload): Likewise.
      	(visium_register_move_cost): Likewise.
      	(visium_memory_move_cost): Likewise.
      	(prepare_move_operands): Likewise.
      	(ok_for_simple_move_operands): Likewise.
      	(ok_for_simple_move_strict_operands): Likewise.
      	(ok_for_simple_arith_logic_operands): Likewise.
      	(visium_function_value_1): Likewise.
      	(rtx_ok_for_offset_p): Likewise.
      	(visium_legitimize_reload_address): Likewise.
      	(visium_split_double_move): Likewise.
      	(visium_expand_copysign): Likewise.
      	(visium_expand_int_cstore): Likewise.
      	(visium_expand_fp_cstore): Likewise.
      	(visium_split_cstore): Likewise.
      	(visium_select_cc_mode): Likewise.
      	(visium_split_cbranch): Likewise.
      	(output_cbranch): Likewise.
      	(visium_print_operand_address): Likewise.
      	* expmed.c (flip_storage_order): Likewise.
      	* expmed.h (emit_cstore): Likewise.
      	(flip_storage_order): Likewise.
      	* genrecog.c (validate_pattern): Likewise.
      	* hsa-gen.c (gen_hsa_addr): Likewise.
      	* internal-fn.c (expand_arith_overflow): Likewise.
      	* ira-color.c (allocno_copy_cost_saving): Likewise.
      	* lra-assigns.c (find_hard_regno_for_1): Likewise.
      	* lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
      	(process_invariant_for_inheritance): Likewise.
      	* lra-eliminations.c (move_plus_up): Likewise.
      	* omp-low.c (lower_oacc_reductions): Likewise.
      	* simplify-rtx.c (simplify_subreg): Likewise.
      	* target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
      	(TARGET_CHKP_BOUND_MODE): Likewise..
      	* targhooks.c (default_chkp_bound_mode): Likewise.
      	(default_setup_incoming_vararg_bounds): Likewise.
      	* targhooks.h (default_chkp_bound_mode): Likewise.
      	(default_setup_incoming_vararg_bounds): Likewise.
      	* tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
      	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
      	(have_whole_vector_shift): Likewise.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* doc/tm.texi: Regenerate.
      
      gcc/brig/
      	* brig-c.h (brig_type_for_mode): Remove "enum" before "machine_mode".
      	* brig-lang.c (brig_langhook_type_for_mode): Likewise.
      
      gcc/jit/
      	* dummy-frontend.c (jit_langhook_type_for_mode): Remove "enum" before
      	"machine_mode".
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r250003
      Richard Sandiford committed
  27. 04 Jul, 2017 1 commit
  28. 18 May, 2017 1 commit
  29. 13 May, 2017 1 commit
  30. 04 May, 2017 1 commit
    • Minor BRIG/HSAIL frontend updates and bug fixes: · c6e334cd
      * brig-builtins.def: Added a builtin for class_f64.
      * builtin-types.def: Added a builtin type needed by class_f64.
      * brigfrontend/brig-code-entry-handler.cc
       (brig_code_entry_handler::build_address_operand): Fix a bug
       with reg+offset addressing on 32b segments. In large mode,
       the offset is treated as 32bits unless it's global, readonly or
       kernarg address space.
      * rt/workitems.c: Removed a leftover comment.
      * rt/arithmetic.c (__hsail_class_f32, __hsail_class_f64): Fix the
       check for signaling/non-signalling NaN. Add class_f64 default
       implementation.
      
      From-SVN: r247576
      Pekka Jääskeläinen committed
  31. 01 Feb, 2017 1 commit