1. 08 Jun, 2018 1 commit
    • Rename get methods in symbol-summary.h to get_create. · 99353fcf
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.c (ix86_can_inline_p): Use get_create instead
      	of get.
      	* hsa-common.c (hsa_summary_t::link_functions): Likewise.
      	(hsa_register_kernel): Likewise.
      	* hsa-common.h (hsa_gpu_implementation_p): Likewise.
      	* hsa-gen.c (hsa_get_host_function): Likewise.
      	(get_brig_function_name): Likewise.
      	(generate_hsa): Likewise.
      	(pass_gen_hsail::execute): Likewise.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
      	(edge_set_predicate): Likewise.
      	(evaluate_conditions_for_known_args): Likewise.
      	(evaluate_properties_for_edge): Likewise.
      	(ipa_fn_summary::reset): Likewise.
      	(ipa_fn_summary_t::duplicate): Likewise.
      	(dump_ipa_call_summary): Likewise.
      	(ipa_dump_fn_summary): Likewise.
      	(analyze_function_body): Likewise.
      	(compute_fn_summary): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_edge_size_and_time): Likewise.
      	(estimate_calls_size_and_time): Likewise.
      	(estimate_node_size_and_time): Likewise.
      	(inline_update_callee_summaries): Likewise.
      	(remap_edge_change_prob): Likewise.
      	(remap_edge_summaries): Likewise.
      	(ipa_merge_fn_summary_after_inlining): Likewise.
      	(ipa_update_overall_fn_summary): Likewise.
      	(read_ipa_call_summary): Likewise.
      	(inline_read_section): Likewise.
      	(write_ipa_call_summary): Likewise.
      	(ipa_fn_summary_write): Likewise.
      	(ipa_free_fn_summary): Likewise.
      	* ipa-hsa.c (process_hsa_functions): Likewise.
      	(ipa_hsa_write_summary): Likewise.
      	(ipa_hsa_read_section): Likewise.
      	* ipa-icf.c (sem_function::merge): Likewise.
      	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
      	(do_estimate_edge_time): Likewise.
      	(estimate_size_after_inlining): Likewise.
      	(estimate_growth): Likewise.
      	(growth_likely_positive): Likewise.
      	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
      	(inline_call): Likewise.
      	* ipa-inline.c (caller_growth_limits): Likewise.
      	(can_inline_edge_p): Likewise.
      	(can_inline_edge_by_limits_p): Likewise.
      	(compute_uninlined_call_time): Likewise.
      	(compute_inlined_call_time): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(edge_badness): Likewise.
      	(update_caller_keys): Likewise.
      	(update_callee_keys): Likewise.
      	(recursive_inlining): Likewise.
      	(inline_small_functions): Likewise.
      	(inline_to_all_callers_1): Likewise.
      	(dump_overall_stats): Likewise.
      	(early_inline_small_functions): Likewise.
      	(early_inliner): Likewise.
      	* ipa-inline.h (estimate_edge_growth): Likewise.
      	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
      	* ipa-prop.h (IPA_NODE_REF): Likewise.
      	(IPA_EDGE_REF): Likewise.
      	* ipa-pure-const.c (malloc_candidate_p): Likewise.
      	(propagate_malloc): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	* symbol-summary.h: Rename get to get_create.
      	(get): Likewise.
      	(get_create): Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (add_symbol_to_partition_1): Use get_create instead
      	of get.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      
      From-SVN: r261309
      Martin Liska committed
  2. 03 Jan, 2018 1 commit
  3. 08 Aug, 2017 1 commit
    • trans.c: Include header files. · 314e6352
      .
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* gcc-interface/trans.c: Include header files.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* objc-gnu-runtime-abi-01.c: Include header files.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* asan.c: Include header files.
      	* attribs.c (build_decl_attribute_variant): New function moved
      	from tree.[ch].
      	(build_type_attribute_qual_variant): Likewise.
      	(cmp_attrib_identifiers): Likewise.
      	(simple_cst_list_equal): Likewise.
      	(omp_declare_simd_clauses_equal): Likewise.
      	(attribute_value_equal): Likewise.
      	(comp_type_attributes): Likewise.
      	(build_type_attribute_variant): Likewise.
      	(lookup_ident_attribute): Likewise.
      	(remove_attribute): Likewise.
      	(merge_attributes): Likewise.
      	(merge_type_attributes): Likewise.
      	(merge_decl_attributes): Likewise.
      	(merge_dllimport_decl_attributes): Likewise.
      	(handle_dll_attribute): Likewise.
      	(attribute_list_equal): Likewise.
      	(attribute_list_contained): Likewise.
      	* attribs.h (lookup_attribute): New function moved from tree.[ch].
      	(lookup_attribute_by_prefix): Likewise.
      	* bb-reorder.c: Include header files.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* convert.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify.c: Likewise.
      	* hsa-common.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* omp-expand.c: Likewise.
      	* omp-general.c: Likewise.
      	* omp-low.c: Likewise.
      	* omp-offload.c: Likewise.
      	* omp-simd-clone.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* sancov.c: Likewise.
      	* sanopt.c: Likewise.
      	* symtab.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* tree.c: Remove functions moved to attribs.[ch].
      	* tree.h: Likewise.
      	* config/aarch64/aarch64.c: Add attrs.h header file.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cr16/cr16.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/ft32/ft32.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/msp430/msp430.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/nvptx/nvptx.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/powerpcspe/powerpcspe.c: Likewise.
      	* config/riscv/riscv.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* call.c: Include header files.
      	* cp-gimplify.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* init.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-lang.c: Include header files.
      	* lto-symtab.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-convert.c: Include header files.
      	* c-typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-ada-spec.c: Include header files.
      	* c-ubsan.c: Likewise.
      	* c-warn.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* trans-types.c: Include header files.
      
      From-SVN: r250946
      Martin Liska committed
  4. 20 Jan, 2017 1 commit
    • [hsa] Rename hsa.[ch] to hsa-common.[ch] · 13293add
      2017-01-20  Martin Jambor  <mjambor@suse.cz>
              
              * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
              * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
              gt-hsa-common.h.
              * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
              (GTFILES): Rename hsa.c to hsa-common.c.
              * hsa-brig.c: Change include of hsa.h to hsa-common.h.
              * hsa-dump.c: Likewise.
              * hsa-gen.c: Likewise.
              * hsa-regalloc.c: Likewise.
              * ipa-hsa.c: Likewise.
              * omp-expand.c: Likewise.
              * omp-low.c: Likewise.
              * toplev.c: Likewise.
      
      From-SVN: r244711
      Martin Jambor committed
  5. 11 Jan, 2017 1 commit
  6. 01 Jan, 2017 1 commit
  7. 02 Dec, 2016 1 commit
  8. 23 Nov, 2016 1 commit
    • backport: hsa-builtins.def: New file. · 56b1c60e
      Merge from HSA branch to trunk
      
      2016-11-23  Martin Jambor  <mjambor@suse.cz>
      	    Martin Liska  <mliska@suse.cz>
      
      gcc/
      	* hsa-builtins.def: New file.
      	* Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
      	* builtins.def: Include hsa-builtins.def.
      	(DEF_HSA_BUILTIN): New macro.
      	* dumpfile.h (OPTGROUP_OPENMP): Define.
      	* dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
      	* gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
      	GF_OMP_FOR_GRID_GROUP_ITER.
      	(gimple_omp_for_grid_phony): Added checking assert.
      	(gimple_omp_for_set_grid_phony): Likewise.
      	(gimple_omp_for_grid_intra_group): New function.
      	(gimple_omp_for_set_grid_intra_group): Likewise.
      	(gimple_omp_for_grid_group_iter): Likewise.
      	(gimple_omp_for_set_grid_group_iter): Likewise.
      	* omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
      	previosuly only distribute loop was permitted.
      	(lower_lastprivate_clauses): Allow non tcc_comparison predicates.
      	(grid_get_kernel_launch_attributes): Support multiple HSA grid
      	dimensions.
      	(grid_expand_omp_for_loop): Likewise and also support standalone
      	distribute constructs.  New parameter INTRA_GROUP, updated both users.
      	(grid_expand_target_grid_body): Support standalone distribute
      	constructs.
      	(pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
      	(pass_data_expand_omp_ssa): Likewise.
      	(pass_data_omp_device_lower): Likewsie.
      	(pass_data_lower_omp): Likewise.
      	(pass_data_diagnose_omp_blocks): Likewise.
      	(pass_data_oacc_device_lower): Likewise.
      	(pass_data_omp_target_link): Likewise.
      	(grid_lastprivate_predicate): New function.
      	(lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
      	gridified loops.
      	(lower_omp_for): Support standalone distribute constructs.
      	(grid_prop): New type.
      	(grid_safe_assignment_p): Check for assignments to group_sizes, new
      	parameter GRID.
      	(grid_seq_only_contains_local_assignments): New parameter GRID, pass
      	it to callee.
      	(grid_find_single_omp_among_assignments_1): Likewise, improve missed
      	optimization info messages.
      	(grid_find_single_omp_among_assignments): Likewise.
      	(grid_find_ungridifiable_statement): Do not bail out for SIMDs.
      	(grid_parallel_clauses_gridifiable): New function.
      	(grid_inner_loop_gridifiable_p): Likewise.
      	(grid_dist_follows_simple_pattern): Likewise.
      	(grid_gfor_follows_tiling_pattern): Likewise.
      	(grid_call_permissible_in_distribute_p): Likewise.
      	(grid_handle_call_in_distribute): Likewise.
      	(grid_dist_follows_tiling_pattern): Likewise.
      	(grid_target_follows_gridifiable_pattern): Support standalone distribute
      	constructs.
      	(grid_var_segment): New enum.
      	(grid_mark_variable_segment): New function.
      	(grid_copy_leading_local_assignments): Call grid_mark_variable_segment
      	if a new argument says so.
      	(grid_process_grid_body): New function.
      	(grid_eliminate_combined_simd_part): Likewise.
      	(grid_mark_tiling_loops): Likewise.
      	(grid_mark_tiling_parallels_and_loops): Likewise.
      	(grid_process_kernel_body_copy): Support standalone distribute
      	constructs.
      	(grid_attempt_target_gridification): New grid variable holding overall
      	gridification state.  Support standalone distribute constructs and
      	collapse clauses.
      	* doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
      	* hsa.h (hsa_bb): Add method method append_phi.
      	(hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
      	occurences in all files too.
      	(hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
      	(is_a_helper <hsa_insn_br *>::test): New function.
      	(is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
      	branch instructions.
      	(hsa_insn_signal): Make a direct descendant of
      	hsa_insn_basic.  Add memorder constructor parameter and
      	m_memory_order and m_signalop member variables.
      	(hsa_insn_queue): Changed constructor parameters to common form.
      	Added m_segment and m_memory_order member variables.
      	(hsa_summary_t): Add private member function
      	process_gpu_implementation_attributes.
      	(hsa_function_summary): Rename m_binded_function to
      	m_bound_function.
      	(hsa_insn_basic_p): Remove typedef.
      	(hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
      	(hsa_op_reg_p): Remove typedef.
      	(hsa_function_representation): Change hsa_op_reg_p into plain
      	pointers.
      	(hsa_insn_phi): Removed new and delete operators.
      	(hsa_insn_br): Likewise.
      	(hsa_insn_cbr): Likewise.
      	(hsa_insn_sbr): Likewise.
      	(hsa_insn_cmp): Likewise.
      	(hsa_insn_mem): Likewise.
      	(hsa_insn_atomic): Likewise.
      	(hsa_insn_signal): Likewise.
      	(hsa_insn_seg): Likewise.
      	(hsa_insn_call): Likewise.
      	(hsa_insn_arg_block): Likewise.
      	(hsa_insn_comment): Likewise.
      	(hsa_insn_srctype): Likewise.
      	(hsa_insn_packed): Likewise.
      	(hsa_insn_cvt): Likewise.
      	(hsa_insn_alloca): Likewise.
      	* hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
      	(process_gpu_implementation_attributes): New function.
      	(link_functions): Move some functionality into it.  Adjust after
      	renaming m_binded_functions to m_bound_functions.
      	(hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
      	to the list of instructions with no output registers.
      	(get_in_type): Return this if it is a register of
      	matching size.
      	(hsa_get_declaration_name): Moved to...
              * hsa-gen.c (hsa_get_declaration_name): ...here.  Allocate
      	temporary string on an obstack instead from ggc.
      	(query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
      	down to two overloads.
      	(hsa_allocp_operand_address): Removed.
      	(hsa_allocp_operand_immed): Likewise.
      	(hsa_allocp_operand_reg): Likewise.
      	(hsa_allocp_operand_code_list): Likewise.
      	(hsa_allocp_operand_operand_list): Likewise.
      	(hsa_allocp_inst_basic): Likewise.
      	(hsa_allocp_inst_phi): Likewise.
      	(hsa_allocp_inst_mem): Likewise.
      	(hsa_allocp_inst_atomic): Likewise.
      	(hsa_allocp_inst_signal): Likewise.
      	(hsa_allocp_inst_seg): Likewise.
      	(hsa_allocp_inst_cmp): Likewise.
      	(hsa_allocp_inst_br): Likewise.
      	(hsa_allocp_inst_sbr): Likewise.
      	(hsa_allocp_inst_call): Likewise.
      	(hsa_allocp_inst_arg_block): Likewise.
      	(hsa_allocp_inst_comment): Likewise.
      	(hsa_allocp_inst_queue): Likewise.
      	(hsa_allocp_inst_srctype): Likewise.
      	(hsa_allocp_inst_packed): Likewise.
      	(hsa_allocp_inst_cvt): Likewise.
      	(hsa_allocp_inst_alloca): Likewise.
      	(hsa_allocp_bb): Likewise.
      	(hsa_obstack): New.
      	(hsa_init_data_for_cfun): Initialize obstack.
      	(hsa_deinit_data_for_cfun): Release memory of the obstack.
      	(hsa_op_immed::operator new): Use obstack instead of object_allocator.
      	(hsa_op_reg::operator new): Likewise.
      	(hsa_op_address::operator new): Likewise.
      	(hsa_op_code_list::operator new): Likewise.
      	(hsa_op_operand_list::operator new): Likewise.
      	(hsa_insn_basic::operator new): Likewise.
      	(hsa_insn_phi::operator new): Likewise.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_sbr::operator new): Likewise.
      	(hsa_insn_cmp::operator new): Likewise.
      	(hsa_insn_mem::operator new): Likewise.
      	(hsa_insn_atomic::operator new): Likewise.
      	(hsa_insn_signal::operator new): Likewise.
      	(hsa_insn_seg::operator new): Likewise.
      	(hsa_insn_call::operator new): Likewise.
      	(hsa_insn_arg_block::operator new): Likewise.
      	(hsa_insn_comment::operator new): Likewise.
      	(hsa_insn_srctype::operator new): Likewise.
      	(hsa_insn_packed::operator new): Likewise.
      	(hsa_insn_cvt::operator new): Likewise.
      	(hsa_insn_alloca::operator new): Likewise.
      	(hsa_init_new_bb): Likewise.
      	(hsa_bb::append_phi): New function.
      	(gen_hsa_phi_from_gimple_phi): Use it.
      	(get_symbol_for_decl): Fix dinstinguishing between
      	global and local functions.  Put local variables into a segment
      	according to their attribute or static flag, if there is one.
      	(hsa_insn_br::hsa_insn_br): New.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
      	(query_hsa_grid_nodim): New function.
      	(multiply_grid_dim_characteristics): Likewise.
      	(gen_get_num_threads): Likewise.
      	(gen_get_num_teams): Reimplemented.
      	(gen_get_team_num): Likewise.
      	(gen_hsa_insns_for_known_library_call): Updated calls to the above
      	helper functions.
      	(get_memory_order_name): Removed.
      	(get_memory_order): Likewise.
      	(hsa_memorder_from_tree): New function.
      	(gen_hsa_ternary_atomic_for_builtin): Renamed to
      	gen_hsa_atomic_for_builtin, can also create signals.
      	(gen_hsa_insns_for_call): Handle many new builtins.  Adjust to use
      	hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
      	(hsa_insn_atomic): Fix function comment.
      	(hsa_insn_signal::hsa_insn_signal): Fix comment.  Update call to
      	ancestor constructor and initialization of new member variables.
      	(hsa_insn_queue::hsa_insn_queue): Added initialization of new
      	member variables.
      	(hsa_get_host_function): Handle functions with no bound CPU
      	implementation.  Fix binded to bound.
      	(get_brig_function_name): Likewise.
      	(HSA_SORRY_ATV): Remove semicolon after macro.
      	(HSA_SORRY_AT): Likewise.
      	(omp_simple_builtin::generate): Add missing semicolons.
      	(hsa_insn_phi::operator new): Removed.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_cbr::operator new): Likewise.
      	(hsa_insn_sbr::operator new): Likewise.
      	(hsa_insn_cmp::operator new): Likewise.
      	(hsa_insn_mem::operator new): Likewise.
      	(hsa_insn_atomic::operator new): Likewise.
      	(hsa_insn_signal::operator new): Likewise.
      	(hsa_insn_seg::operator new): Likewise.
      	(hsa_insn_call::operator new): Likewise.
      	(hsa_insn_arg_block::operator new): Likewise.
      	(hsa_insn_comment::operator new): Likewise.
      	(hsa_insn_srctype::operator new): Likewise.
      	(hsa_insn_packed::operator new): Likewise.
      	(hsa_insn_cvt::operator new): Likewise.
      	(hsa_insn_alloca::operator new): Likewise.
      	(get_symbol_for_decl): Accept CONST_DECLs, put them to
      	readonly segment.
      	(gen_hsa_addr): Also process CONST_DECLs.
      	(gen_hsa_addr_insns): Process CONST_DECLs by creating private
      	copies.
      	(gen_hsa_unary_operation): Make sure the function does
      	not use bittype source type for firstbit and lastbit operations.
      	(gen_hsa_popcount_to_dest): Make sure the function uses a bittype
      	source type.
      	* hsa-brig.c (emit_insn_operands): Cope with zero operands in an
      	instruction.
      	(emit_branch_insn): Renamed to emit_cond_branch_insn.
      	Emit the width stored in the class.
      	(emit_generic_branch_insn): New function.
      	(emit_insn): Call emit_generic_branch_insn.
      	(emit_signal_insn): Remove obsolete comment.  Update
      	member variable name, pick a type according to profile.
      	(emit_alloca_insn): Remove obsolete comment.
      	(emit_atomic_insn): Likewise.
      	(emit_queue_insn): Get segment and memory order from the IR object.
      	(hsa_brig_section): Make allocate_new_chunk, chunks
      	and cur_chunk provate, add a default NULL parameter to add method.
      	(hsa_brig_section::add): Added a new parameter, store pointer to
      	output data there if it is non-NULL.
      	(emit_function_directives): Use this new parameter instead of
      	calculating the pointer itself, fix function comment.
      	(hsa_brig_emit_function): Add forgotten endian conversion.
      	(hsa_output_kernels): Remove unnecessary building of
      	kernel_dependencies_vector_type.
      	(emit_immediate_operand): Declare.
      	(emit_directive_variable): Also emit initializers of CONST_DECLs.
      	(gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
      	(verify_function_arguments): Properly detect variadic
      	arguments.
      	* hsa-dump.c (hsa_width_specifier_name): New function.
      	(dump_hsa_insn_1): Dump generic branch instructions, update signal
      	member variable name.  Special dumping for queue objects.
      	* ipa-hsa.c (process_hsa_functions): Adjust after renaming
      	m_binded_functions to m_bound_functions.  Copy externally visible flag
      	to the node.
      	(ipa_hsa_write_summary): Likewise.
      	(ipa_hsa_read_section): Likewise.
      
      
      	gcc/fortran/
              * f95-lang.c (DEF_HSA_BUILTIN): New macro.
      
      gcc/testsuite/
      	* c-c++-common/gomp/gridify-1.c: Update scan string.
      	* gfortran.dg/gomp/gridify-1.f90: Likewise.
      	* c-c++-common/gomp/gridify-2.c: New test.
      	* c-c++-common/gomp/gridify-3.c: Likewise.
      
      libgomp/
      	* testsuite/libgomp.hsa.c/bits-insns.c: New test.
      	* testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
      	* testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
      
      
      Co-Authored-By: Martin Liska <mliska@suse.cz>
      
      From-SVN: r242761
      Martin Jambor committed
  9. 09 Oct, 2016 1 commit
    • tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. · 8813a647
      	* tree-ssa.c (target_for_debug_bind, verify_phi_args,
      	ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
      	VAR_OR_FUNCTION_DECL_P macros.
      	* tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
      	chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
      	chkp_find_bounds_1): Likewise.
      	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
      	* hsa-gen.c (get_symbol_for_decl): Likewise.
      	* cgraphunit.c (check_global_declaration, analyze_functions,
      	handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
      	Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p,
      	canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
      	Likewise.
      	* tree.c (set_decl_section_name, copy_node_stat,
      	need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
      	merge_dllimport_decl_attributes, handle_dll_attribute,
      	decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
      	verify_type): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
      	find_explicit_erroneous_behavior): Likewise.
      	* sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
      	* ipa.c (process_references): Likewise.
      	* tree-chkp-opt.c (chkp_get_check_result): Likewise.
      	* varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
      	notice_global_symbol, assemble_variable, mark_decl_referenced,
      	build_constant_desc, output_constant_def_contents, do_assemble_alias,
      	make_decl_one_only, default_section_type_flags,
      	categorize_decl_for_section, default_encode_section_info): Likewise.
      	* trans-mem.c (requires_barrier): Likewise.
      	* gimple-expr.c (mark_addressable): Likewise.
      	* cfgexpand.c (add_scope_conflicts_1, expand_one_var,
      	expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
      	expand_debug_expr): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* ubsan.c (instrument_bool_enum_load): Likewise.
      	* tree-pretty-print.c (print_declaration): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
      	* asan.c (asan_protect_global, instrument_derefs): Likewise.
      	* tree-into-ssa.c (rewrite_stmt, maybe_register_def,
      	pass_build_ssa::execute): Likewise.
      	* var-tracking.c (var_debug_decl, track_expr_p): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
      	Likewise.
      	* ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
      	Likewise.
      	* tree-inline.c (insert_debug_decl_map, remap_ssa_name,
      	can_be_nonlocal, remap_decls, copy_debug_stmt,
      	initialize_inlined_parameters, add_local_variables,
      	reset_debug_binding, replace_locals_op): Likewise.
      	* dse.c (can_escape): Likewise.
      	* ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
      	Likewise.
      	* tree-diagnostic.c (default_tree_printer): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
      	unpack_ts_decl_with_vis_value_fields,
      	lto_input_ts_decl_common_tree_pointers): Likewise.
      	* builtins.c (builtin_save_expr, fold_builtin_expect,
      	readonly_data_expr): Likewise.
      	* tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
      	create_variable_info_for, set_uids_in_ptset, visit_loadstore):
      	Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimplify.c (force_constant_size, gimplify_bind_expr,
      	gimplify_decl_expr, gimplify_var_or_parm_decl,
      	gimplify_compound_lval, gimplify_init_constructor,
      	gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
      	gimplify_type_sizes): Likewise.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
      	* tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
      	remove_unused_locals): Likewise.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
      	ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
      	* function.c (instantiate_expr, instantiate_decls_1,
      	setjmp_vars_warning, add_local_decl): Likewise.
      	* alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
      	Likewise.
      	* tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
      	va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
      	optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-nrv.c (pass_nrv::execute): Likewise.
      	* tsan.c (instrument_expr): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* vtable-verify.c (verify_bb_vtables): Likewise.
      	* tree-dfa.c (ssa_default_def, set_ssa_default_def,
      	get_ref_base_and_extent): Likewise.
      	* toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
      	Likewise.
      	* tree-sra.c (static bool constant_decl_p, find_var_candidates,
      	analyze_all_variable_accesses): Likewise.
      	* tree-nested.c (get_nonlocal_debug_decl,
      	convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
      	note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
      	get_local_debug_decl, convert_local_omp_clauses,
      	convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
      	Likewise.
      	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
      	* dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
      	dbxout_symbol, dbxout_common_check): Likewise.
      	* expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
      	string_constant): Likewise.
      	* hsa.c (hsa_get_declaration_name): Likewise.
      	* passes.c (rest_of_decl_compilation): Likewise.
      	* tree-ssanames.c (make_ssa_name_fn): Likewise.
      	* tree-streamer-out.c (pack_ts_decl_common_value_fields,
      	pack_ts_decl_with_vis_value_fields,
      	write_ts_decl_common_tree_pointers): Likewise.
      	* stor-layout.c (place_field): Likewise.
      	* symtab.c (symtab_node::maybe_create_reference,
      	symtab_node::verify_base, symtab_node::make_decl_local,
      	symtab_node::copy_visibility_from,
      	symtab_node::can_increase_alignment_p): Likewise.
      	* dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
      	decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
      	fortran_common, add_location_or_const_value_attribute,
      	add_scalar_info, add_linkage_name, set_block_abstract_flags,
      	local_function_static, gen_variable_die, dwarf2out_late_global_decl,
      	optimize_one_addr_into_implicit_ptr,
      	optimize_location_into_implicit_ptr): Likewise.
      	* gimple-low.c (record_vars_into): Likewise.
      	* ipa-visibility.c (update_vtable_references): Likewise.
      	* tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
      	Likewise.
      	* lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
      	DFS::DFS_write_tree_body, write_symbol): Likewise.
      	* langhooks.c (lhd_warn_unused_global_decl,
      	lhd_set_decl_assembler_name): Likewise.
      	* attribs.c (decl_attributes): Likewise.
      	* except.c (output_ttype): Likewise.
      	* varpool.c (varpool_node::get_create, ctor_for_folding,
      	varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
      	* fold-const.c (fold_unary_loc): Likewise.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge,
      	ipa_find_agg_cst_from_init): Likewise.
      	* omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
      	expand_omp_target, lower_omp_regimplify_p,
      	grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
      	find_link_var_op): Likewise.
      	* tree-chrec.c (chrec_contains_symbols): Likewise.
      	* tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
      	gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
      	execute_fixup_cfg): Likewise.
      
      From-SVN: r240900
      Jakub Jelinek committed
  10. 27 Sep, 2016 1 commit
    • auto-inc-dec.c (try_merge): Remove break after return. · bbfac6da
      	* auto-inc-dec.c (try_merge): Remove break after return.
      	* cselib.c (autoinc_split): Likewise.
      	* explow.c (promote_mode): Likewise.
      	* fixed-value.c (fixed_arithmetic): Likewise.
      	* hsa.c (hsa_internal_fn::get_arity): Likewise.
      	* rtlanal.c (modified_between_p, modified_in_p): Likewise.
      	* trans-mem.c (get_attrs_for): Likewise.
      	* tree-if-conv.c (if_convertible_stmt_p): Likewise.
      	* tree-vrp.c (simplify_stmt_using_ranges): Likewise.
      	* config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
      	* config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
      	* config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
      	* config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
      	* config/cris/cris.c (cris_op_str): Likewise.
      	* config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
      	* config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
      c-family/
      	* c-ada-spec.c (print_ada_declaration): Remove break after return.
      objc/
      	* objc-act.c (continue_class): Remove break after return.
      	(objc_maybe_printable_name): Likewise.
      fortran/
      	* dependency.c (gfc_dep_compare_expr): Remove break after return.
      	* frontend-passes.c (optimize_op): Likewise.
      	* interface.c (gfc_current_interface_head): Likewise.
      	* symbol.c (check_conflict): Likewise.
      	* trans-intrinsic.c (build_fix_expr): Likewise.
      ada/
      	* terminals.c (is_gui_app): Remove break after return.
      
      From-SVN: r240554
      Jakub Jelinek committed
  11. 31 Mar, 2016 1 commit
    • HSA: support alignment for hsa_symbols (PR hsa/70391) · 320c1a36
      	PR hsa/70391
      	* hsa-brig.c (emit_directive_variable): Emit alignment
      	according to hsa_symbol::m_align.
      	* hsa-dump.c (hsa_byte_alignment): Move the function to
      	another file.
      	(dump_hsa_symbol): Dump alignment of HSA symbols.
      	* hsa-gen.c (get_symbol_for_decl): Set-up alignment
      	of a symbol.
      	(gen_hsa_addr_with_align): New function.
      	(hsa_bitmemref_alignment): Use newly added function.
      	(gen_hsa_insns_for_load): Likewise.
      	(gen_hsa_insns_for_store): Likewise.
      	(gen_hsa_memory_copy): New argument added.
      	(gen_hsa_insns_for_single_assignment): Respect
      	alignment for assignments processed via
      	gen_hsa_memory_copy.
      	(gen_hsa_insns_for_direct_call): Likewise.
      	(gen_hsa_insns_for_return): Likewise.
      	(gen_function_def_parameters): Set default
      	alignment.
      	* hsa.c (hsa_object_alignment): New function.
      	(hsa_byte_alignment): Pasted function.
      	* hsa.h (hsa_symbol::m_align): New field.
      
      From-SVN: r234643
      Martin Liska committed
  12. 07 Mar, 2016 1 commit
    • [hsa] Consodlidate GTY roots for trees used during expansion to HSA · 4bf1cec7
      2016-03-07  Martin Jambor  <mjambor@suse.cz>
      
      	* hsa.h (hsa_get_ctor_statements): Declare.
      	(hsa_get_dtor_statements): Likewise.
      	(hsa_get_kernel_dispatch_type): Likewise.
      	* hsa.c (hsa_get_ctor_statements): New function.
      	(hsa_get_dtor_statements): Likewise.
      	(hsa_get_kernel_dispatch_type): Likewise.
      	* hsa-brig.c (hsa_cdtor_statements): Removed.
      	(hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
      	hsa_get_dtor_statements.
      	* hsa-gen.c (hsa_kernel_dispatch_type): Removed.
      	(get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
      
      From-SVN: r234042
      Martin Jambor committed
  13. 26 Feb, 2016 2 commits
    • [hsa/69568] Fix ld instruction type for packed data · 27d39ae1
      2016-02-26  Martin Jambor  <mjambor@suse.cz>
      
      	PR hsa/69568
      	* hsa.h (hsa_type_packed_p): Declare.
      	* hsa.c (hsa_type_packed_p): New function.
      	* hsa-gen.c (mem_type_for_type): Use unsigned type for packed
      	loads.
      	(gen_hsa_insns_for_store): Use hsa_type_packed_p.
      	* hsa-brig.c (emit_basic_insn): Likewise.
      
      From-SVN: r233751
      Martin Jambor committed
    • [hsa] Satisfy conditional move operand type constrains · b15e4689
      2016-02-26  Martin Jambor  <mjambor@suse.cz>
      
      	* hsa.h (is_a_helper): New overload for hsa_op_immed for
      	hsa_op_with_type operands.
      	(hsa_unsigned_type_for_type): Declare.
      	* hsa.c (hsa_unsigned_type_for_type): New function.
      	* hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
      	(gen_hsa_insns_for_operation_assignment): Satisfy constrains of
      	the finalizer.  Do not emit extra move.
      
      From-SVN: r233749
      Martin Jambor committed
  14. 27 Jan, 2016 1 commit
  15. 19 Jan, 2016 1 commit
    • Merge of HSA · b2b40051
      2016-01-19  Martin Jambor  <mjambor@suse.cz>
      	    Martin Liska  <mliska@suse.cz>
      	    Michael Matz <matz@suse.de>
      
      libgomp/
      	* plugin/Makefrag.am: Add HSA plugin requirements.
      	* plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
      	(HSA_RUNTIME_LIB): Likewise.
      	(HSA_RUNTIME_CPPFLAGS): Likewise.
      	(HSA_RUNTIME_INCLUDE): New substitution.
      	(HSA_RUNTIME_LIB): Likewise.
      	(HSA_RUNTIME_LDFLAGS): Likewise.
      	(hsa-runtime): New configure option.
      	(hsa-runtime-include): Likewise.
      	(hsa-runtime-lib): Likewise.
      	(PLUGIN_HSA): New substitution variable.
      	Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
      	configure options.
      	(PLUGIN_HSA_CPPFLAGS): Likewise.
      	(PLUGIN_HSA_LDFLAGS): Likewise.
      	(PLUGIN_HSA_LIBS): Likewise.
      	Check that we have access to HSA run-time.
      	* libgomp-plugin.h (offload_target_type): New element
      	OFFLOAD_TARGET_TYPE_HSA.
      	* libgomp.h (gomp_target_task): New fields firstprivate_copies and
      	args.
      	(bool gomp_create_target_task): Updated.
      	(gomp_device_descr): Extra parameter of run_func and async_run_func,
      	new field can_run_func.
      	* libgomp_g.h (GOMP_target_ext): Update prototype.
      	* oacc-host.c (host_run): Added a new parameter args.
      	* target.c (calculate_firstprivate_requirements): New function.
      	(copy_firstprivate_data): Likewise.
      	(gomp_target_fallback_firstprivate): Use them.
      	(gomp_target_unshare_firstprivate): New function.
      	(gomp_get_target_fn_addr): Allow returning NULL for shared memory
      	devices.
      	(GOMP_target): Do host fallback for all shared memory devices.  Do not
      	pass any args to plugins.
      	(GOMP_target_ext): Introduce device-specific argument parameter args.
      	Allow host fallback if device shares memory.  Do not remap data if
      	device has shared memory.
      	(gomp_target_task_fn): Likewise.  Also treat shared memory devices
      	like host fallback for mappings.
      	(GOMP_target_data): Treat shared memory devices like host fallback.
      	(GOMP_target_data_ext): Likewise.
      	(GOMP_target_update): Likewise.
      	(GOMP_target_update_ext): Likewise.  Also pass NULL as args to
      	gomp_create_target_task.
      	(GOMP_target_enter_exit_data): Likewise.
      	(omp_target_alloc): Treat shared memory devices like host fallback.
      	(omp_target_free): Likewise.
      	(omp_target_is_present): Likewise.
      	(omp_target_memcpy): Likewise.
      	(omp_target_memcpy_rect): Likewise.
      	(omp_target_associate_ptr): Likewise.
      	(gomp_load_plugin_for_device): Also load can_run.
      	* task.c (GOMP_PLUGIN_target_task_completion): Free
      	firstprivate_copies.
      	(gomp_create_target_task): Accept new argument args and store it to
      	ttask.
      	* plugin/plugin-hsa.c: New file.
      
      gcc/
      	* Makefile.in (OBJS): Add new source files.
      	(GTFILES): Add hsa.c.
      	* common.opt (disable_hsa): New variable.
      	(-Whsa): New warning.
      	* config.in (ENABLE_HSA): New.
      	* configure.ac: Treat hsa differently from other accelerators.
      	(OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
      	$enable_offloading.
      	(ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
      	* doc/install.texi (Configuration): Document --with-hsa-runtime,
      	--with-hsa-runtime-include, --with-hsa-runtime-lib and
      	--with-hsa-kmt-lib.
      	* doc/invoke.texi (-Whsa): Document.
      	(hsa-gen-debug-stores): Likewise.
      	* lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
      	to invoke offload compiler for hsa acclerator.
      	* opts.c (common_handle_option): Determine whether HSA offloading
      	should be performed.
      	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
      	* builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
      	* gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Also handle
      	GF_OMP_FOR_KIND_GRID_LOOP.
      	(dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
      	(pp_gimple_stmt_1): Likewise.
      	* gimple-walk.c (walk_gimple_stmt): Likewise.
      	* gimple.c (gimple_build_omp_grid_body): New function.
      	(gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
      	* gimple.def (GIMPLE_OMP_GRID_BODY): New.
      	* gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
      	GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
      	GF_OMP_TEAMS_GRID_PHONY.
      	(gimple_statement_omp_single_layout): Updated comments.
      	(gimple_build_omp_grid_body): New function.
      	(gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
      	(gimple_omp_for_grid_phony): New function.
      	(gimple_omp_for_set_grid_phony): Likewise.
      	(gimple_omp_parallel_grid_phony): Likewise.
      	(gimple_omp_parallel_set_grid_phony): Likewise.
      	(gimple_omp_teams_grid_phony): Likewise.
      	(gimple_omp_teams_set_grid_phony): Likewise.
      	(gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
      	* omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
      	(BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
      	(BUILT_IN_GOMP_TARGET): Updated type.
      	* omp-low.c: Include symbol-summary.h, hsa.h and params.h.
      	(adjust_for_condition): New function.
      	(get_omp_for_step_from_incr): Likewise.
      	(extract_omp_for_data): Moved parts to adjust_for_condition and
      	get_omp_for_step_from_incr.
      	(build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
      	(fixup_child_record_type): Bail out if receiver_decl is NULL.
      	(scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
      	(scan_omp_parallel): Do not create child functions for phony
      	constructs.
      	(check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
      	(scan_omp_1_op): Checking assert we are not remapping to
      	ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
      	(parallel_needs_hsa_kernel_p): New function.
      	(expand_parallel_call): Register apprpriate parallel child
      	functions as HSA kernels.
      	(grid_launch_attributes_trees): New type.
      	(grid_attr_trees): New variable.
      	(grid_create_kernel_launch_attr_types): New function.
      	(grid_insert_store_range_dim): Likewise.
      	(grid_get_kernel_launch_attributes): Likewise.
      	(get_target_argument_identifier_1): Likewise.
      	(get_target_argument_identifier): Likewise.
      	(get_target_argument_value): Likewise.
      	(push_target_argument_according_to_value): Likewise.
      	(get_target_arguments): Likewise.
      	(expand_omp_target): Call get_target_arguments instead of looking
      	up for teams and thread limit.
      	(grid_expand_omp_for_loop): New function.
      	(grid_arg_decl_map): New type.
      	(grid_remap_kernel_arg_accesses): New function.
      	(grid_expand_target_kernel_body): New function.
      	(expand_omp): Call it.
      	(lower_omp_for): Do not emit phony constructs.
      	(lower_omp_taskreg): Do not emit phony constructs but create for them
      	a temporary variable receiver_decl.
      	(lower_omp_taskreg): Do not emit phony constructs.
      	(lower_omp_teams): Likewise.
      	(lower_omp_grid_body): New function.
      	(lower_omp_1): Call it.
      	(grid_reg_assignment_to_local_var_p): New function.
      	(grid_seq_only_contains_local_assignments): Likewise.
      	(grid_find_single_omp_among_assignments_1): Likewise.
      	(grid_find_single_omp_among_assignments): Likewise.
      	(grid_find_ungridifiable_statement): Likewise.
      	(grid_target_follows_gridifiable_pattern): Likewise.
      	(grid_remap_prebody_decls): Likewise.
      	(grid_copy_leading_local_assignments): Likewise.
      	(grid_process_kernel_body_copy): Likewise.
      	(grid_attempt_target_gridification): Likewise.
      	(grid_gridify_all_targets_stmt): Likewise.
      	(grid_gridify_all_targets): Likewise.
      	(execute_lower_omp): Call grid_gridify_all_targets.
      	(make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
      	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
      	(tree_omp_clause): Added union field dimension.
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
      	* tree.c (omp_clause_num_ops): Added number of arguments of
      	OMP_CLAUSE__GRIDDIM_.
      	(omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
      	(walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
      	* tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
      	(OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
      	(OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
      	(OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
      	* passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
      	* tree-pass.h (make_pass_gen_hsail): Declare.
      	(make_pass_ipa_hsa): Likewise.
      	* ipa-hsa.c: New file.
      	* lto-section-in.c (lto_section_name): Add hsa section name.
      	* lto-streamer.h (lto_section_type): Add hsa section.
      	* timevar.def (TV_IPA_HSA): New.
              * hsa-brig-format.h: New file.
      	* hsa-brig.c: New file.
      	* hsa-dump.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* hsa.c: Likewise.
      	* hsa.h: Likewise.
      	* toplev.c (compile_file): Call hsa_output_brig.
      	* hsa-regalloc.c: New file.
      
      gcc/fortran/
      	* types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
      	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
      
      gcc/lto/
      	* lto-partition.c: Include "hsa.h"
      	(add_symbol_to_partition_1): Put hsa implementations into the
      	same partition as host implementations.
      
      liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_async_run): New
      	unused parameter.
      	(GOMP_OFFLOAD_run): Likewise.
      
      include/
      	* gomp-constants.h (GOMP_DEVICE_HSA): New macro.
      	(GOMP_VERSION_HSA): Likewise.
      	(GOMP_TARGET_ARG_DEVICE_MASK): Likewise.
      	(GOMP_TARGET_ARG_DEVICE_ALL): Likewise.
      	(GOMP_TARGET_ARG_SUBSEQUENT_PARAM): Likewise.
      	(GOMP_TARGET_ARG_ID_MASK): Likewise.
      	(GOMP_TARGET_ARG_NUM_TEAMS): Likewise.
      	(GOMP_TARGET_ARG_THREAD_LIMIT): Likewise.
      	(GOMP_TARGET_ARG_VALUE_SHIFT): Likewise.
      	(GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES): Likewise.
      
      From-SVN: r232549
      Martin Jambor committed