diff options
Diffstat (limited to 'gcc/ChangeLog.gomp-nvptx')
-rw-r--r-- | gcc/ChangeLog.gomp-nvptx | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/gcc/ChangeLog.gomp-nvptx b/gcc/ChangeLog.gomp-nvptx new file mode 100644 index 00000000000..8b555f25414 --- /dev/null +++ b/gcc/ChangeLog.gomp-nvptx @@ -0,0 +1,269 @@ +2016-11-08 Alexander Monakov <amonakov@ispras.ru> + + * omp-low.c (lower_lastprivate_clauses): Add missing call to + unshare_expr. + +2016-07-08 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_file_end): Do emit element count in + external declaration of __nvptx_stacks. + +2016-06-02 Alexander Monakov <amonakov@ispras.ru> + + * doc/invoke.texi (msoft-stack): Reword, fix errors. + +2016-05-19 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_declare_function_name): Expand comments. + (nvptx_file_end): Do not emit element count in external declaration of + __nvptx_stacks. + +2016-05-19 Alexander Monakov <amonakov@ispras.ru> + + * doc/invoke.texi (msoft-stack): Rewrite. + +2016-05-06 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_encode_section_info): Diagnose explicit + static initialization of variables in .shared memory. + (nvptx_handle_shared_attribute): Reword diagnostic message. + +2016-04-19 Alexander Monakov <amonakov@ispras.ru> + + * doc/extend.texi (Nvidia PTX Variable Attributes): New section. + +2016-04-18 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (write_omp_entry): Adjust. + (nvptx_declare_function_name): Adjust. + +2016-03-15 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.h (STACK_SIZE_MODE): Define. + +2016-03-15 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Emit + 'mul.lo.u32' instead of 'mul.u32' for 32-bit ABI target. + (nvptx_declare_function_name): Ditto. + +2016-03-15 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use + POINTER_SIZE instead of BITS_PER_WORD. + (nvptx_declare_function_name): Ditto. + (nvptx_output_return): Ditto. + (nvptx_file_end): Ditto. + +2016-03-15 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_option_override): Remove custom handling + of debug info options. + +2016-02-15 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (write_omp_entry): Expand entry code to + initialize __nvptx_uni and __nvptx_stacks (based on pointer to storage + allocated by the libgomp plugin). + +2016-01-17 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_encode_section_info): Handle "shared" + attribute. + (nvptx_handle_shared_attribute): New. Use it... + (nvptx_attribute_table): ... here (new entry). + +2016-01-17 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_declare_function_name): Fix warning. + +2016-01-17 Alexander Monakov <amonakov@ispras.ru> + + * internal-fn.c (expand_GOMP_SIMT_LANE): Update. + (expand_GOMP_SIMT_LAST_LANE): New. + (expand_GOMP_SIMT_ORDERED_PRED): New. + (expand_GOMP_SIMT_VOTE_ANY): New. + (expand_GOMP_SIMT_XCHG_BFLY): New. + (expand_GOMP_SIMT_XCHG_IDX): New. + * internal-fn.def (GOMP_SIMT_LAST_LANE): New. + (GOMP_SIMT_ORDERED_PRED): New. + (GOMP_SIMT_VOTE_ANY): New. + (GOMP_SIMT_XCHG_BFLY): New. + (GOMP_SIMT_XCHG_IDX): New. + * omp-low.c (omp_maybe_offloaded_ctx): New, outlined from... + (create_omp_child_function): ...here. Simplify. + (omp_max_simt_vf): New. Use it... + (omp_max_vf): ...here. + (lower_rec_input_clauses): Add reduction lowering for SIMT execution. + (lower_lastprivate_clauses): Likewise, for lastprivate lowering. + (lower_omp_ordered): Likewise, for "ordered" lowering. + (expand_omp_simd): Update SIMT transforms. + (execute_omp_device_lower): Update. Fold SIMD ifns on SIMT targets. + +2016-01-17 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum + declaration from nvptx.c. + (nvptx_gen_shuffle): Declare. + * config/nvptx/nvptx.c (nvptx_shuffle_kind): Moved to nvptx-protos.h. + (nvptx_gen_shuffle): No longer static. + * config/nvptx/nvptx.md (UNSPEC_VOTE_BALLOT): New unspec. + (UNSPEC_LANEID): Ditto. + (UNSPECV_NOUNROLL): Ditto. + (nvptx_vote_ballot): New pattern. + (omp_simt_lane): Ditto. + (nvptx_nounroll): Ditto. + (omp_simt_last_lane): Ditto. + (omp_simt_ordered): Ditto. + (omp_simt_vote_any): Ditto. + (omp_simt_xchg_bfly): Ditto. + (omp_simt_xchg_idx): Ditto. + * target-insns.def (omp_simt_lane): New. + (omp_simt_last_lane): New. + (omp_simt_ordered): New. + (omp_simt_vote_any): New. + (omp_simt_xchg_bfly): New. + (omp_simt_xchg_idx): New. + +2015-12-16 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (write_omp_entry): Work around failure on sm_5x + devices by loading ...$impl function address outside of call sequence. + +2015-12-14 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_declare_function_name): Emit %outargs + using .local %outargs_ar only if not TARGET_SOFT_STACK. Emit %outargs + under TARGET_SOFT_STACK by offsetting from %frame. + (nvptx_get_drap_rtx): Return %argp as the DRAP if needed. + * config/nvptx/nvptx.md (nvptx_register_operand): Allow %outargs under + TARGET_SOFT_STACK. + (nvptx_nonimmediate_operand): Ditto. + (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code. + (allocate_stack_<mode>): Remove unused pattern. + (set_softstack_insn): New pattern. + (restore_stack_block): Handle for TARGET_SOFT_STACK. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_record_offload_symbol): Allow NULL attrs + for OpenMP offloading. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * internal-fn.c (expand_GOMP_SIMT_LANE): New. + (expand_GOMP_SIMT_VF): New. + * internal-fn.def (GOMP_SIMT_LANE): New. + (GOMP_SIMT_VF): New. + * omp-low.c (expand_omp_simd): Do SIMT transforms. + (pass_data_lower_omp): Add PROP_gimple_lomp_dev. + (execute_omp_device_lower): New. + (pass_data_omp_device_lower): New. + (pass_omp_device_lower): New pass. + (make_pass_omp_device_lower): New. + * passes.def (pass_omp_device_lower): Position new pass. + * tree-pass.h (PROP_gimple_lomp_dev): Define. + (make_pass_omp_device_lower): Declare. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP + is selected. Pass -mgomp to offload compiler in OpenMP case. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_simt_vf): New. + (TARGET_SIMT_VF): Define. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: (TARGET_SIMT_VF): New hook. + * target.def: Define it. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_option_override): Handle TARGET_GOMP. + * config/nvptx/nvptx.opt (mgomp): New option. + * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New. + * doc/invoke.texi (mgomp): Document. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_name_replacement): Rewrite. Add + __nvptx_real_malloc -> malloc and __nvptx_real_free -> free + replacements. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (need_unisimt_decl): New variable. Set it... + (nvptx_init_unisimt_predicate): ...here (new function) and use it... + (nvptx_file_end): ...here to emit declaration of __nvptx_uni array. + (nvptx_declare_function_name): Call nvptx_init_unisimt_predicate. + (nvptx_get_unisimt_master): New helper function. + (nvptx_get_unisimt_predicate): Ditto. + (nvptx_call_insn_is_syscall_p): Ditto. + (nvptx_unisimt_handle_set): Ditto. + (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt. + (nvptx_get_axis_predicate): New helper function, factored out from... + (nvptx_single): ...here. + (nvptx_reorg): Call nvptx_reorg_uniform_simt. + * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define + __nvptx_unisimt__ when -muniform-simt option is active. + (struct machine_function): Add unisimt_master, unisimt_predicate + rtx fields. + * config/nvptx/nvptx.md (divergent): New attribute. + (atomic_compare_and_swap<mode>_1): Mark as divergent. + (atomic_exchange<mode>): Ditto. + (atomic_fetch_add<mode>): Ditto. + (atomic_fetch_addsf): Ditto. + (atomic_fetch_<logic><mode>): Ditto. + * config/nvptx/nvptx.opt (muniform-simt): New option. + * doc/invoke.texi (-muniform-simt): Document. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c (nvptx_output_call_insn): Handle COND_EXEC + patterns. Emit instruction predicate. + (nvptx_print_operand): Unbreak handling of instruction predicates. + * config/nvptx/nvptx.md (predicable): New attribute. Generate + predicated forms via define_cond_exec. + (br_true): Mark as not predicable. + (br_false): Ditto. + (br_true_uni): Ditto. + (br_false_uni): Ditto. + (return): Ditto. + (trap_if_true): Ditto. + (trap_if_false): Ditto. + (nvptx_fork): Ditto. + (nvptx_forked): Ditto. + (nvptx_joining): Ditto. + (nvptx_join): Ditto. + (nvptx_barsync): Ditto. + +2015-12-09 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c: (need_softstack_decl): New variable. + (nvptx_declare_function_name): Handle TARGET_SOFT_STACK. + (nvptx_output_return): Emit stack restore if needed. + (nvptx_file_end): Handle need_softstack_decl. + * config/nvptx/nvptx.h: (TARGET_CPU_CPP_BUILTINS): Define + __nvptx_softstack__ when -msoft-stack is active. + (struct machine_function): New bool field using_softstack. + * config/nvptx/nvptx.opt: (msoft-stack): New option. + * doc/invoke.texi (msoft-stack): Document. + +2015-12-08 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/nvptx.c: (write_omp_entry): New. Use it... + (nvptx_declare_function_name): ...here to emit pointers for libgomp. + +2015-12-08 Alexander Monakov <amonakov@ispras.ru> + + * omp-low.c (create_omp_child_function): Set "omp target entrypoint", + "omp acc target entrypoint" or "omp declare target" attribute based on + is_gimple_omp_offloaded and is_gimple_omp_oacc. + * config/nvptx/nvptx.c (write_as_kernel): Test OpenACC-specific + attribute "omp acc target entrypoint". Add a comment about the OpenMP + attribute handling. + +2015-12-08 Alexander Monakov <amonakov@ispras.ru> + + * config/nvptx/mkoffload.c (main): Allow -fopenmp. |