1. 17 May, 2019 1 commit
    • trans.c (check_inlining_for_nested_subprog): Quote reserved names. · a9c697b8
      gcc/ada/ChangeLog:
      
              * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
              reserved names.
      
      gcc/brig/ChangeLog:
      
              * brigfrontend/brig-control-handler.cc
              (brig_directive_control_handler::operator): Remove trailing newline
              from a diagnostic.
              * brigfrontend/brig-module-handler.cc
              (brig_directive_module_handler::operator): Remove a duplicated space
              from a diagnostic.
      
      gcc/c/ChangeLog:
      
              * c-decl.c (start_decl): Quote keywords, operators, and
              types in diagnostics.
              (finish_decl): Same.
              * c-parser.c (c_parser_asm_statement): Same.
              (c_parser_conditional_expression): Same.
              (c_parser_transaction_cancel): Same.
              * c-typeck.c (c_common_type): Same.
              (build_conditional_expr): Same.
              (digest_init): Same.
              (process_init_element): Same.
              (build_binary_op): Same.
      
      gcc/c-family/ChangeLog:
      
              * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
              keywords, operators, and types in diagnostics.
              (handle_scalar_storage_order_attribute): Same.
              (handle_mode_attribute): Same.
              (handle_visibility_attribute): Same.
              (handle_assume_aligned_attribute): Same.
              (handle_no_split_stack_attribute): Same.
              * c-common.c (shorten_compare): Same.
              (c_common_truthvalue_conversion): Same.
              (cb_get_source_date_epoch): Same.
              * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
              in diagnostics.
              (interpret_float): Same.
              * c-omp.c (c_finish_omp_for): Same.
              * c-opts.c (c_common_post_options): Same.
              * c-pch.c (c_common_pch_pragma): Same.
              * c-pragma.c (pop_alignment): Same.
              (handle_pragma_pack): Same.
              (apply_pragma_weak): Same.
              (handle_pragma_weak): Same.
              (handle_pragma_scalar_storage_order): Same.
              (handle_pragma_redefine_extname): Same.
              (add_to_renaming_pragma_list): Same.
              (maybe_apply_renaming_pragma): Same.
              (push_visibility): Same.
              (handle_pragma_visibility): Same.
              (handle_pragma_optimize): Same.
              (handle_pragma_message): Same.
              * c-warn.c (warn_for_omitted_condop): Same.
              (lvalue_error): Same.
      
      gcc/cp/ChangeLog:
      
              * call.c (print_z_candidate): Wrap diagnostic text in a gettext
              macro.  Adjust.
              (print_z_candidates): Same.
              (build_conditional_expr_1): Quote keywords, operators, and types
              in diagnostics.
              (build_op_delete_call): Same.
              (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
              macro.
              (convert_like_real): Same.
              (convert_arg_to_ellipsis): Quote keywords, operators, and types
              in diagnostics.
              (build_over_call): Same.
              (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
              macro.
              * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
              (cxx_eval_constant_expression): Quote keywords, operators, and types
              in diagnostics.
              (potential_constant_expression_1): Same.
              * cp-gimplify.c (cp_genericize_r): Same.
              * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
              in diagnostics.
              (type_promotes_to): Same.
              * decl.c (check_previous_goto_1): Same.
              (check_goto): Same.
              (start_decl): Same.
              (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
              (grok_op_properties): Quote keywords, operators, and types
              in diagnostics.
              * decl2.c (grokfield): Same.
              (coerce_delete_type): Same.
              * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
              * friend.c (do_friend): Quote C++ tokens.
              * init.c (build_new_1): Quote keywords, operators, and types
              in diagnostics.
              (build_vec_delete_1): Same.
              (build_delete): Same.
              * lex.c (parse_strconst_pragma): Same.
              (handle_pragma_implementation): Same.
              (unqualified_fn_lookup_error): Same.
              * mangle.c (write_type): Same.
              * method.c (defaulted_late_check): Avoid two consecutive punctuators.
              * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
              (pop_everything): Same.
              * parser.c (cp_lexer_start_debugging): Quote a macro name.
              in a diagnostic
              (cp_lexer_stop_debugging): Same.
              (cp_parser_userdef_numeric_literal): Quote a C++ header name
              in a diagnostic.
              (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
              and types in diagnostics.
              (cp_parser_question_colon_clause): Same.
              (cp_parser_asm_definition): Same.
              (cp_parser_init_declarator): Same.
              (cp_parser_template_declaration_after_parameters): Avoid capitalizing
              a sentence in a diagnostic.
              (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
              in diagnostics.
              (cp_parser_transaction): Same.
              * pt.c (maybe_process_partial_specialization): Replace second call
              to permerror with inform for consistency with other uses.
              (expand_integer_pack): Quote keywords, operators, and types
              in diagnostics.
              * rtti.c (get_typeid): Quote keywords, operators, and types
              in diagnostics.
              (build_dynamic_cast_1): Same.
              * semantics.c (finish_asm_stmt): Same.
              (finish_label_decl): Same.
              (finish_bases): Same.
              (finish_offsetof): Same.
              (cp_check_omp_declare_reduction): Same.
              (finish_decltype_type): Same.
              * tree.c (handle_init_priority_attribute): Same.  Add detail
              to diagnostics.
              (maybe_warn_zero_as_null_pointer_constant): Same.
              * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
              in diagnostics.
              (cp_build_unary_op): Same.
              (check_for_casting_away_constness): Same.
              (build_static_cast): Same.
              (build_const_cast_1): Same.
              (maybe_warn_about_returning_address_of_local): Same.
              (check_return_expr): Same.
              * typeck2.c (abstract_virtuals_error_sfinae): Same.
              (digest_init_r): Replace a tab with spaces in a diagnostic.
              (build_functional_cast): Quote keywords, operators, and types
              in diagnostics.
      
      gcc/d/ChangeLog:
      
              * d-builtins.cc (d_init_builtins): Quote keywords, operators,
              and types in diagnostics.
              * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
              * d-convert.cc (convert_expr): Same.
              * d-frontend.cc (getTypeInfoType): Quote an option name in
              a diagnostic.
              * d-lang.cc (d_handle_option): Same.
              (d_parse_file): Same.
              * decl.cc: Remove a trailing period from a diagnostic.
              * expr.cc: Use a directive for an apostrophe.
              * toir.cc: Quote keywords, operators, and types in diagnostics.
              * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
      
      gcc/fortran/ChangeLog:
      
      	* gfortranspec.c (append_arg): Spell out the word "argument."
      
      gcc/ChangeLog:
      
              * config/i386/i386-expand.c (get_element_number): Quote keywords
              and other internal names in diagnostics.  Adjust other diagnostic
              formatting issues noted by -Wformat-diag.
              * config/i386/i386-features.c
              (ix86_mangle_function_version_assembler_name): Same.
              * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
              * config/i386/i386.c (ix86_function_type_abi): Same.
              (ix86_function_ms_hook_prologue): Same.
              (classify_argument): Same.
              (ix86_expand_prologue): Same.
              (ix86_md_asm_adjust): Same.
              (ix86_memmodel_check): Same.
      
      gcc/ChangeLog:
      
              * builtins.c (expand_builtin_atomic_always_lock_free): Quote
              identifiers, keywords, operators, and types in diagnostics.  Correct
              quoting, spelling, and sentence capitalization issues.
              (expand_builtin_atomic_is_lock_free): Same.
              (fold_builtin_next_arg): Same.
              * cfgexpand.c (expand_one_var): Same.
              (tree_conflicts_with_clobbers_p): Same.
              (expand_asm_stmt): Same.
              (verify_loop_structure): Same.
              * cgraphunit.c (process_function_and_variable_attributes): Same.
              * collect-utils.c (collect_execute): Same.
              * collect2.c (maybe_run_lto_and_relink): Same.
              (is_lto_object_file): Same.
              (scan_prog_file): Same.
              * convert.c (convert_to_real_1): Same.
              * dwarf2out.c (dwarf2out_begin_prologue): Same.
              * except.c (verify_eh_tree): Same.
              * gcc.c (execute): Same.
              (eval_spec_function): Same.
              (run_attempt): Same.
              (driver::set_up_specs): Same.
              (compare_debug_auxbase_opt_spec_function): Same.
              * gcov-tool.c (unlink_gcda_file): Same.
              (do_merge): Same.
              (do_rewrite): Same.
              * gcse.c (gcse_or_cprop_is_too_expensive): Same.
              * gimplify.c (gimplify_asm_expr): Same.
              (gimplify_adjust_omp_clauses): Same.
              * hsa-gen.c (gen_hsa_addr_insns): Same.
              (gen_hsa_insns_for_load): Same.
              (gen_hsa_cmp_insn_from_gimple): Same.
              (gen_hsa_insns_for_operation_assignment): Same.
              (gen_get_level): Same.
              (gen_hsa_alloca): Same.
              (omp_simple_builtin::generate): Same.
              (gen_hsa_atomic_for_builtin): Same.
              (gen_hsa_insns_for_call): Same.
              * input.c (dump_location_info): Same.
              * ipa-devirt.c (compare_virtual_tables): Same.
              * ira.c (ira_setup_eliminable_regset): Same.
              * lra-assigns.c (lra_assign): Same.
              * lra-constraints.c (lra_constraints): Same.
              * lto-streamer-in.c (lto_input_mode_table): Same.
              * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
              (merge_and_complain): Same.
              (compile_offload_image): Same.
              (compile_images_for_offload_targets): Same.
              (debug_objcopy): Same.
              (run_gcc): Same.
              (main): Same.
              * opts.c (print_specific_help): Same.
              (parse_no_sanitize_attribute): Same.
              (print_help): Same.
              (handle_param): Same.
              * plugin.c (add_new_plugin): Same.
              (parse_plugin_arg_opt): Same.
              (try_init_one_plugin): Same.
              * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
              operators, and types in diagnostics.  Correct quoting and spelling
              issues.
              * read-rtl-function.c (parse_edge_flag_token): Same.
              (function_reader::parse_enum_value): Same.
              * reg-stack.c (check_asm_stack_operands): Same.
              * regcprop.c (validate_value_data): Same.
              * sched-rgn.c (make_pass_sched_fusion): Same.
              * stmt.c (check_unique_operand_names): Same.
              * targhooks.c (default_target_option_pragma_parse): Same.
              * tlink.c (recompile_files): Same.
              * toplev.c (process_options): Same.
              (do_compile): Same.
              * trans-mem.c (diagnose_tm_1): Same.
              (ipa_tm_scan_irr_block): Same.
              (ipa_tm_diagnose_transaction): Same.
              * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
              format a tree code name in a diagnostic.
              (verify_types_in_gimple_min_lval): Same.
              (verify_types_in_gimple_reference): Same.
              (verify_gimple_call): Same.
              (verify_gimple_assign_unary): Same.
              (verify_gimple_assign_binary): Same.
              (verify_gimple_assign_ternary): Same.
              (verify_gimple_assign_single): Same.
              (verify_gimple_switch): Same.
              (verify_gimple_label): Same.
              (verify_gimple_phi): Same.
              (verify_gimple_in_seq): Same.
              (verify_eh_throw_stmt_node): Same.
              (collect_subblocks): Same.
              (gimple_verify_flow_info): Same.
              (do_warn_unused_result): Same.
              * tree-inline.c (expand_call_inline): Same.
              * tree-into-ssa.c (update_ssa): Same.
              * tree.c (tree_int_cst_elt_check_failed): Same.
              (tree_vec_elt_check_failed): Same.
              (omp_clause_operand_check_failed): Same.
              (verify_type_variant): Same.
              (verify_type): Same.
              * value-prof.c (verify_histograms): Same.
              * varasm.c (assemble_start_function): Same.
      
      gcc/lto/ChangeLog:
      
              * lto-dump.c (lto_main): Same.
              * lto.c (stream_out): Same.
      
      gcc/objc/ChangeLog:
      
              * objc-act.c (objc_begin_catch_clause): Quote keywords and options
              in diagnostics.
              (objc_build_throw_stmt): Same.
              (objc_finish_message_expr): Same.
              (get_super_receiver): Same.
              * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
              out "less than" in English./
              * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
              out "greater" in English.
      
      gcc/testsuite/ChangeLog:
      
              * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics.
              * c-c++-common/Wvarargs-2.c: Same.
              * c-c++-common/Wvarargs.c: Same.
              * c-c++-common/pr51768.c: Same.
              * c-c++-common/tm/inline-asm.c: Same.
              * c-c++-common/tm/safe-1.c: Same.
              * g++.dg/asm-qual-1.C: Same.
              * g++.dg/asm-qual-3.C: Same.
              * g++.dg/conversion/dynamic1.C: Same.
              * g++.dg/cpp0x/constexpr-89599.C: Same.
              * g++.dg/cpp0x/constexpr-cast.C: Same.
              * g++.dg/cpp0x/constexpr-shift1.C: Same.
              * g++.dg/cpp0x/lambda/lambda-conv11.C: Same.
              * g++.dg/cpp0x/nullptr04.C: Same.
              * g++.dg/cpp0x/static_assert12.C: Same.
              * g++.dg/cpp0x/static_assert8.C: Same.
              * g++.dg/cpp1y/lambda-conv1.C: Same.
              * g++.dg/cpp1y/pr79393-3.C: Same.
              * g++.dg/cpp1y/static_assert1.C: Same.
              * g++.dg/cpp1z/constexpr-if4.C: Same.
              * g++.dg/cpp1z/constexpr-if5.C: Same.
              * g++.dg/cpp1z/constexpr-if9.C: Same.
              * g++.dg/eh/goto2.C: Same.
              * g++.dg/eh/goto3.C: Same.
              * g++.dg/expr/static_cast8.C: Same.
              * g++.dg/ext/flexary5.C: Same.
              * g++.dg/ext/utf-array-short-wchar.C: Same.
              * g++.dg/ext/utf-array.C: Same.
              * g++.dg/ext/utf8-2.C: Same.
              * g++.dg/gomp/loop-4.C: Same.
              * g++.dg/gomp/macro-4.C: Same.
              * g++.dg/gomp/udr-1.C: Same.
              * g++.dg/init/initializer-string-too-long.C: Same.
              * g++.dg/other/offsetof9.C: Same.
              * g++.dg/ubsan/pr63956.C: Same.
              * g++.dg/warn/Wbool-operation-1.C: Same.
              * g++.dg/warn/Wtype-limits-Wextra.C: Same.
              * g++.dg/warn/Wtype-limits.C: Same.
              * g++.dg/wrappers/pr88680.C: Same.
              * g++.old-deja/g++.mike/eh55.C: Same.
              * gcc.dg/Wsign-compare-1.c: Same.
              * gcc.dg/Wtype-limits-Wextra.c: Same.
              * gcc.dg/Wtype-limits.c: Same.
              * gcc.dg/Wunknownprag.c: Same.
              * gcc.dg/Wunsuffixed-float-constants-1.c: Same.
              * gcc.dg/asm-6.c: Same.
              * gcc.dg/asm-qual-1.c: Same.
              * gcc.dg/cast-1.c: Same.
              * gcc.dg/cast-2.c: Same.
              * gcc.dg/cast-3.c: Same.
              * gcc.dg/cpp/source_date_epoch-2.c: Same.
              * gcc.dg/debug/pr85252.c: Same.
              * gcc.dg/dfp/cast-bad.c: Same.
              * gcc.dg/format/gcc_diag-1.c: Same.
              * gcc.dg/format/gcc_diag-11.c: Same.New test.
              * gcc.dg/gcc_diag-11.c: Same.New test.
              * gcc.dg/gnu-cond-expr-2.c: Same.
              * gcc.dg/gnu-cond-expr-3.c: Same.
              * gcc.dg/gomp/macro-4.c: Same.
              * gcc.dg/init-bad-1.c: Same.
              * gcc.dg/init-bad-2.c: Same.
              * gcc.dg/init-bad-3.c: Same.
              * gcc.dg/pr27528.c: Same.
              * gcc.dg/pr48552-1.c: Same.
              * gcc.dg/pr48552-2.c: Same.
              * gcc.dg/pr59846.c: Same.
              * gcc.dg/pr61096-1.c: Same.
              * gcc.dg/pr8788-1.c: Same.
              * gcc.dg/pr90082.c: Same.
              * gcc.dg/simd-2.c: Same.
              * gcc.dg/spellcheck-params-2.c: Same.
              * gcc.dg/spellcheck-params.c: Same.
              * gcc.dg/strlenopt-49.c: Same.
              * gcc.dg/tm/pr52141.c: Same.
              * gcc.dg/torture/pr51106-1.c: Same.
              * gcc.dg/torture/pr51106-2.c: Same.
              * gcc.dg/utf-array-short-wchar.c: Same.
              * gcc.dg/utf-array.c: Same.
              * gcc.dg/utf8-2.c: Same.
              * gcc.dg/warn-sprintf-no-nul.c: Same.
              * gcc.target/i386/asm-flag-0.c: Same.
              * gcc.target/i386/inline_error.c: Same.
              * gcc.target/i386/pr30848.c: Same.
              * gcc.target/i386/pr39082-1.c: Same.
              * gcc.target/i386/pr39678.c: Same.
              * gcc.target/i386/pr57756.c: Same.
              * gcc.target/i386/pr68843-1.c: Same.
              * gcc.target/i386/pr79804.c: Same.
              * gcc.target/i386/pr82673.c: Same.
              * obj-c++.dg/class-protocol-1.mm: Same.
              * obj-c++.dg/exceptions-3.mm: Same.
              * obj-c++.dg/exceptions-4.mm: Same.
              * obj-c++.dg/exceptions-5.mm: Same.
              * obj-c++.dg/exceptions-6.mm: Same.
              * obj-c++.dg/method-12.mm: Same.
              * obj-c++.dg/method-13.mm: Same.
              * obj-c++.dg/method-6.mm: Same.
              * obj-c++.dg/method-7.mm: Same.
              * obj-c++.dg/method-9.mm: Same.
              * obj-c++.dg/method-lookup-1.mm: Same.
              * obj-c++.dg/proto-lossage-4.mm: Same.
              * obj-c++.dg/protocol-qualifier-2.mm: Same.
              * objc.dg/call-super-2.m: Same.
              * objc.dg/class-protocol-1.m: Same.
              * objc.dg/desig-init-1.m: Same.
              * objc.dg/exceptions-3.m: Same.
              * objc.dg/exceptions-4.m: Same.
              * objc.dg/exceptions-5.m: Same.
              * objc.dg/exceptions-6.m: Same.
              * objc.dg/method-19.m: Same.
              * objc.dg/method-2.m: Same.
              * objc.dg/method-5.m: Same.
              * objc.dg/method-6.m: Same.
              * objc.dg/method-7.m: Same.
              * objc.dg/method-lookup-1.m: Same.
              * objc.dg/proto-hier-1.m: Same.
              * objc.dg/proto-lossage-4.m: Same.
      
      From-SVN: r271338
      Martin Sebor committed
  2. 01 Jan, 2019 1 commit
  3. 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
  4. 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
  5. 04 May, 2018 5 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] 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
  6. 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
  7. 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
  8. 17 Nov, 2017 1 commit
  9. 16 Nov, 2017 1 commit
    • [BRIGFE] Reduce the number of type conversions due to · dc03239c
      the untyped HSAIL regs.
      
      Instead of always representing the HSAIL's untyped registers as
      unsigned int, the gccbrig now pre-analyzes the BRIG code and
      builds the register variables as a type used the most when storing
      or reading data to/from each register. This reduces the total
      conversions which cannot be always optimized away.
      
      From-SVN: r254837
      Henry Linjamäki committed
  10. 09 Oct, 2017 1 commit
  11. 03 Oct, 2017 1 commit
  12. 29 Sep, 2017 1 commit
  13. 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
  14. 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
  15. 04 Aug, 2017 1 commit
  16. 04 Jul, 2017 1 commit
  17. 18 May, 2017 1 commit
  18. 13 May, 2017 1 commit
  19. 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
  20. 01 Feb, 2017 1 commit
  21. 30 Jan, 2017 1 commit
  22. 26 Jan, 2017 1 commit
    • update-copyright.py: Add libhsail-rt to self.default_dirs and call self.add_dir on it. · 68edb9ba
      contrib/
      	* update-copyright.py: Add libhsail-rt to self.default_dirs
      	and call self.add_dir on it.  Add Intel Corporation to external
      	authors.
      gcc/
      	* brig-builtins.def: Update copyright years.
      	* config/arm/arm_acle_builtins.def: Update copyright years.
      gcc/brig/
      	Update copyright years.
      gcc/testsuite/
      	* brig.dg/dg.exp: Update copyright years.
      	* lib/brig-dg.exp: Update copyright years.
      	* lib/brig.exp: Update copyright years.
      libhsail-rt/
      	Update copyright years.
      libstdc++-v3/
      	* libsupc++/eh_atomics.h: Update copyright years.
      	* testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
      
      From-SVN: r244919
      Jakub Jelinek committed
  23. 24 Jan, 2017 1 commit
    • Brig front-end · 5fd1486c
      2017-01-24  Pekka Jääskeläinen <pekka@parmance.com>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	* Makefile.def (target_modules): Added libhsail-rt.
      	(languages): Added language brig.
      	* Makefile.in: Regenerated.
      	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Added
      	tgarget-libhsail-rt.  Make brig unsupported on untested architectures.
      	* configure: Regenerated.
      
      gcc/
      	* brig-builtins.def: New file.
      	* builtins.def (DEF_HSAIL_BUILTIN): New macro.
      	(DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
      	(DEF_HSAIL_SAT_BUILTIN): Likewise.
      	(DEF_HSAIL_INTR_BUILTIN): Likewise.
      	(DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
      	* builtin-types.def (BT_INT8): New.
      	(BT_INT16): Likewise.
      	(BT_UINT8): Likewise.
      	(BT_UINT16): Likewise.
      	(BT_FN_ULONG): Likewise.
      	(BT_FN_UINT_INT): Likewise.
      	(BT_FN_UINT_ULONG): Likewise.
      	(BT_FN_UINT_LONG): Likewise.
      	(BT_FN_UINT_PTR): Likewise.
      	(BT_FN_ULONG_PTR): Likewise.
      	(BT_FN_INT8_FLOAT): Likewise.
      	(BT_FN_INT16_FLOAT): Likewise.
      	(BT_FN_UINT32_FLOAT): Likewise.
      	(BT_FN_UINT16_FLOAT): Likewise.
      	(BT_FN_UINT8_FLOAT): Likewise.
      	(BT_FN_UINT64_FLOAT): Likewise.
      	(BT_FN_UINT16_UINT32): Likewise.
      	(BT_FN_UINT32_UINT16): Likewise.
      	(BT_FN_UINT16_UINT16_UINT16): Likewise.
      	(BT_FN_INT_PTR_INT): Likewise.
      	(BT_FN_UINT_PTR_UINT): Likewise.
      	(BT_FN_LONG_PTR_LONG): Likewise.
      	(BT_FN_ULONG_PTR_ULONG): Likewise.
      	(BT_FN_VOID_UINT64_UINT64): Likewise.
      	(BT_FN_UINT8_UINT8_UINT8): Likewise.
      	(BT_FN_INT8_INT8_INT8): Likewise.
      	(BT_FN_INT16_INT16_INT16): Likewise.
      	(BT_FN_INT_INT_INT): Likewise.
      	(BT_FN_UINT_FLOAT_UINT): Likewise.
      	(BT_FN_FLOAT_UINT_UINT): Likewise.
      	(BT_FN_ULONG_UINT_UINT): Likewise.
      	(BT_FN_ULONG_UINT_PTR): Likewise.
      	(BT_FN_ULONG_ULONG_ULONG): Likewise.
      	(BT_FN_UINT_UINT_UINT): Likewise.
      	(BT_FN_VOID_UINT_PTR): Likewise.
      	(BT_FN_UINT_UINT_PTR: Likewise.
      	(BT_FN_UINT32_UINT64_PTR): Likewise.
      	(BT_FN_INT_INT_UINT_UINT): Likewise.
      	(BT_FN_UINT_UINT_UINT_UINT): Likewise.
      	(BT_FN_UINT_UINT_UINT_PTR): Likewise.
      	(BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
      	(BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
      	(BT_FN_LONG_LONG_UINT_UINT): Likewise.
      	(BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
      	(BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
      	(BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
      	(BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
      	(BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
      	(BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
      	* doc/frontends.texi: List BRIG FE.
      	* doc/install.texi (Testing): Add BRIG tesring requirements.
      	* doc/invoke.texi (Overall Options): Mention BRIG.
      	* doc/standards.texi (Standards): Doucment BRIG HSA version.
      
      gcc/brig/
      
      	* Make-lang.in: New file.
      	* brig-builtins.h: Likewise.
      	* brig-c.h: Likewise.
      	* brig-lang.c: Likewise.
      	* brigspec.c: Likewise.
      	* config-lang.in: Likewise.
      	* lang-specs.h: Likewise.
      	* lang.opt: Likewise.
      	* brigfrontend/brig-arg-block-handler.cc: Likewise.
      	* brigfrontend/brig-atomic-inst-handler.cc: Likewise.
      	* brigfrontend/brig-basic-inst-handler.cc: Likewise.
      	* brigfrontend/brig-branch-inst-handler.cc: Likewise.
      	* brigfrontend/brig-cmp-inst-handler.cc: Likewise.
      	* brigfrontend/brig-code-entry-handler.cc: Likewise.
      	* brigfrontend/brig-code-entry-handler.h: Likewise.
      	* brigfrontend/brig-comment-handler.cc: Likewise.
      	* brigfrontend/brig-control-handler.cc: Likewise.
      	* brigfrontend/brig-copy-move-inst-handler.cc: Likewise.
      	* brigfrontend/brig-cvt-inst-handler.cc: Likewise.
      	* brigfrontend/brig-fbarrier-handler.cc: Likewise.
      	* brigfrontend/brig-function-handler.cc: Likewise.
      	* brigfrontend/brig-function.cc: Likewise.
      	* brigfrontend/brig-function.h: Likewise.
      	* brigfrontend/brig-inst-mod-handler.cc: Likewise.
      	* brigfrontend/brig-label-handler.cc: Likewise.
      	* brigfrontend/brig-lane-inst-handler.cc: Likewise.
      	* brigfrontend/brig-machine.c: Likewise.
      	* brigfrontend/brig-machine.h: Likewise.
      	* brigfrontend/brig-mem-inst-handler.cc: Likewise.
      	* brigfrontend/brig-module-handler.cc: Likewise.
      	* brigfrontend/brig-queue-inst-handler.cc: Likewise.
      	* brigfrontend/brig-seg-inst-handler.cc: Likewise.
      	* brigfrontend/brig-signal-inst-handler.cc: Likewise.
      	* brigfrontend/brig-to-generic.cc: Likewise.
      	* brigfrontend/brig-to-generic.h: Likewise.
      	* brigfrontend/brig-util.cc: Likewise.
      	* brigfrontend/brig-util.h: Likewise.
      	* brigfrontend/brig-variable-handler.cc: Likewise.
      	* brigfrontend/phsa.h: Likewise.
      
      
      gcc/testsuite/
      
      	* lib/brig-dg.exp: New file.
      	* lib/brig.exp: Likewise.
      	* brig.dg/README: Likewise.
      	* brig.dg/dg.exp: Likewise.
      	* brig.dg/test/gimple/alloca.hsail: Likewise.
      	* brig.dg/test/gimple/atomics.hsail: Likewise.
      	* brig.dg/test/gimple/branches.hsail: Likewise.
      	* brig.dg/test/gimple/fbarrier.hsail: Likewise.
      	* brig.dg/test/gimple/function_calls.hsail: Likewise.
      	* brig.dg/test/gimple/kernarg.hsail: Likewise.
      	* brig.dg/test/gimple/mem.hsail: Likewise.
      	* brig.dg/test/gimple/mulhi.hsail: Likewise.
      	* brig.dg/test/gimple/packed.hsail: Likewise.
      	* brig.dg/test/gimple/smoke_test.hsail: Likewise.
      	* brig.dg/test/gimple/variables.hsail: Likewise.
      	* brig.dg/test/gimple/vector.hsail: Likewise.
      
      include/
      
      	* hsa.h: Moved here from libgomp/plugin/hsa.h.
      
      libgomp/
      
      	* plugin/hsa.h: Moved to top level include.
      	* plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.
      
      libhsail-rt/
      
      	* Makefile.am: New file.
      	* target-config.h.in: Likewise.
      	* configure.ac: Likewise.
      	* configure: Likewise.
      	* config.h.in: Likewise.
      	* aclocal.m4: Likewise.
      	* README: Likewise.
      	* Makefile.in: Likewise.
      	* include/internal/fibers.h: Likewise.
      	* include/internal/phsa-queue-interface.h: Likewise.
      	* include/internal/phsa-rt.h: Likewise.
      	* include/internal/workitems.h: Likewise.
      	* rt/arithmetic.c: Likewise.
      	* rt/atomics.c: Likewise.
      	* rt/bitstring.c: Likewise.
      	* rt/fbarrier.c: Likewise.
      	* rt/fibers.c: Likewise.
      	* rt/fp16.c: Likewise.
      	* rt/misc.c: Likewise.
      	* rt/multimedia.c: Likewise.
      	* rt/queue.c: Likewise.
      	* rt/sat_arithmetic.c: Likewise.
      	* rt/segment.c: Likewise.
      	* rt/workitems.c: Likewise.
      
      
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r244867
      Pekka Jääskeläinen committed