summaryrefslogtreecommitdiffstats
path: root/openmp/offload/src/liboffload_error_codes.h
diff options
context:
space:
mode:
authorJim Cownie <james.h.cownie@intel.com>2014-04-09 15:40:23 +0000
committerJim Cownie <james.h.cownie@intel.com>2014-04-09 15:40:23 +0000
commit33f7b24d9f704afd80f768cf91f777a65f8f0718 (patch)
tree9e13f5de0d009a3469dd6a980bb60a6cb7fdc571 /openmp/offload/src/liboffload_error_codes.h
parent30d56a7b860b9eed3447ae3d96cacd600b58856f (diff)
downloadbcm5719-llvm-33f7b24d9f704afd80f768cf91f777a65f8f0718.tar.gz
bcm5719-llvm-33f7b24d9f704afd80f768cf91f777a65f8f0718.zip
Add the offload directory which contains the code needed to support
OpenMP 4.0 "target" directives. This will need more work for generality, but we want to get it out and visible to the community. llvm-svn: 205909
Diffstat (limited to 'openmp/offload/src/liboffload_error_codes.h')
-rw-r--r--openmp/offload/src/liboffload_error_codes.h276
1 files changed, 276 insertions, 0 deletions
diff --git a/openmp/offload/src/liboffload_error_codes.h b/openmp/offload/src/liboffload_error_codes.h
new file mode 100644
index 00000000000..982167b11f6
--- /dev/null
+++ b/openmp/offload/src/liboffload_error_codes.h
@@ -0,0 +1,276 @@
+//===----------------------------------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.txt for details.
+//
+//===----------------------------------------------------------------------===//
+
+
+#if !defined(LIBOFFLOAD_ERROR_CODES_H)
+#define LIBOFFLOAD_ERROR_CODES_H
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+typedef enum
+{
+ c_device_is_not_available = 0,
+ c_invalid_device_number,
+ c_offload1,
+ c_unknown_var_type,
+ c_send_func_ptr,
+ c_receive_func_ptr,
+ c_offload_malloc,
+ c_invalid_env_var_value,
+ c_invalid_env_var_int_value,
+ c_invalid_env_report_value,
+ c_offload_signaled1,
+ c_offload_signaled2,
+ c_myotarget_checkresult,
+ c_myowrapper_checkresult,
+ c_offload_descriptor_offload,
+ c_merge_var_descs1,
+ c_merge_var_descs2,
+ c_mic_parse_env_var_list1,
+ c_mic_parse_env_var_list2,
+ c_mic_process_exit_ret,
+ c_mic_process_exit_sig,
+ c_mic_process_exit,
+ c_mic_init3,
+ c_mic_init4,
+ c_mic_init5,
+ c_mic_init6,
+ c_no_static_var_data,
+ c_no_ptr_data,
+ c_get_engine_handle,
+ c_get_engine_index,
+ c_process_create,
+ c_process_get_func_handles,
+ c_process_wait_shutdown,
+ c_process_proxy_flush,
+ c_load_library,
+ c_pipeline_create,
+ c_pipeline_run_func,
+ c_pipeline_start_run_funcs,
+ c_buf_create,
+ c_buf_create_out_of_mem,
+ c_buf_create_from_mem,
+ c_buf_destroy,
+ c_buf_map,
+ c_buf_unmap,
+ c_buf_read,
+ c_buf_write,
+ c_buf_copy,
+ c_buf_get_address,
+ c_buf_add_ref,
+ c_buf_release_ref,
+ c_buf_set_state,
+ c_event_wait,
+ c_zero_or_neg_ptr_len,
+ c_zero_or_neg_transfer_size,
+ c_bad_ptr_mem_range,
+ c_different_src_and_dstn_sizes,
+ c_ranges_dont_match,
+ c_destination_is_over,
+ c_slice_of_noncont_array,
+ c_non_contiguous_dope_vector,
+ c_pointer_array_mismatch,
+ c_omp_invalid_device_num_env,
+ c_omp_invalid_device_num,
+ c_unknown_binary_type,
+ c_multiple_target_exes,
+ c_no_target_exe,
+ c_report_host,
+ c_report_target,
+ c_report_title,
+ c_report_from_file,
+ c_report_file,
+ c_report_line,
+ c_report_tag,
+ c_report_seconds,
+ c_report_bytes,
+ c_report_mic,
+ c_report_cpu_time,
+ c_report_cpu_to_mic_data,
+ c_report_mic_time,
+ c_report_mic_to_cpu_data,
+ c_report_unknown_timer_node,
+ c_report_unknown_trace_node,
+ c_report_offload,
+ c_report_w_tag,
+ c_report_state,
+ c_report_start,
+ c_report_init,
+ c_report_logical_card,
+ c_report_physical_card,
+ c_report_register,
+ c_report_init_func,
+ c_report_create_buf_host,
+ c_report_create_buf_mic,
+ c_report_send_pointer_data,
+ c_report_sent_pointer_data,
+ c_report_gather_copyin_data,
+ c_report_copyin_data,
+ c_report_state_signal,
+ c_report_signal,
+ c_report_wait,
+ c_report_compute,
+ c_report_receive_pointer_data,
+ c_report_received_pointer_data,
+ c_report_start_target_func,
+ c_report_var,
+ c_report_scatter_copyin_data,
+ c_report_gather_copyout_data,
+ c_report_scatter_copyout_data,
+ c_report_copyout_data,
+ c_report_unregister,
+ c_report_destroy,
+ c_report_myoinit,
+ c_report_myoregister,
+ c_report_myofini,
+ c_report_mic_myo_shared,
+ c_report_mic_myo_fptr,
+ c_report_myosharedmalloc,
+ c_report_myosharedfree,
+ c_report_myosharedalignedmalloc,
+ c_report_myosharedalignedfree,
+ c_report_myoacquire,
+ c_report_myorelease,
+ c_coipipe_max_number
+} error_types;
+
+enum OffloadHostPhase {
+ // Total time on host for entire offload
+ c_offload_host_total_offload = 0,
+
+ // Time to load target binary
+ c_offload_host_initialize,
+
+ // Time to acquire lrb availability dynamically
+ c_offload_host_target_acquire,
+
+ // Time to wait for dependencies
+ c_offload_host_wait_deps,
+
+ // Time to allocate pointer buffers, initiate writes for pointers
+ // and calculate size of copyin/copyout buffer
+ c_offload_host_setup_buffers,
+
+ // Time to allocate pointer buffers
+ c_offload_host_alloc_buffers,
+
+ // Time to initialize misc data
+ c_offload_host_setup_misc_data,
+
+ // Time to allocate copyin/copyout buffer
+ c_offload_host_alloc_data_buffer,
+
+ // Time to initiate writes from host pointers to buffers
+ c_offload_host_send_pointers,
+
+ // Time to Gather IN data of offload into buffer
+ c_offload_host_gather_inputs,
+
+ // Time to map buffer
+ c_offload_host_map_in_data_buffer,
+
+ // Time to unmap buffer
+ c_offload_host_unmap_in_data_buffer,
+
+ // Time to start remote function call that does computation on lrb
+ c_offload_host_start_compute,
+
+ // Time to wait for compute to finish
+ c_offload_host_wait_compute,
+
+ // Time to initiate reads from pointer buffers
+ c_offload_host_start_buffers_reads,
+
+ // Time to update host variabels with OUT data from buffer
+ c_offload_host_scatter_outputs,
+
+ // Time to map buffer
+ c_offload_host_map_out_data_buffer,
+
+ // Time to unmap buffer
+ c_offload_host_unmap_out_data_buffer,
+
+ // Time to wait reads from buffers to finish
+ c_offload_host_wait_buffers_reads,
+
+ // Time to destroy buffers that are no longer needed
+ c_offload_host_destroy_buffers,
+
+ // LAST TIME MONITOR
+ c_offload_host_max_phase
+};
+
+enum OffloadTargetPhase {
+ // Total time spent on the target
+ c_offload_target_total_time = 0,
+
+ // Time to initialize offload descriptor
+ c_offload_target_descriptor_setup,
+
+ // Time to find target entry point in lookup table
+ c_offload_target_func_lookup,
+
+ // Total time spend executing offload entry
+ c_offload_target_func_time,
+
+ // Time to initialize target variables with IN values from buffer
+ c_offload_target_scatter_inputs,
+
+ // Time to add buffer reference for pointer buffers
+ c_offload_target_add_buffer_refs,
+
+ // Total time on lrb for computation
+ c_offload_target_compute,
+
+ // On lrb, time to copy OUT into buffer
+ c_offload_target_gather_outputs,
+
+ // Time to release buffer references
+ c_offload_target_release_buffer_refs,
+
+ // LAST TIME MONITOR
+ c_offload_target_max_phase
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+void __liboffload_error_support(error_types input_tag, ...);
+void __liboffload_report_support(error_types input_tag, ...);
+char const *offload_get_message_str(int msgCode);
+char const * report_get_message_str(error_types input_tag);
+char const * report_get_host_stage_str(int i);
+char const * report_get_target_stage_str(int i);
+#ifdef __cplusplus
+}
+#endif
+
+#define test_msg_cat(nm, msg) \
+ fprintf(stderr, "\t TEST for %s \n \t", nm); \
+ __liboffload_error_support(msg);
+
+#define test_msg_cat1(nm, msg, ...) \
+ fprintf(stderr, "\t TEST for %s \n \t", nm); \
+ __liboffload_error_support(msg, __VA_ARGS__);
+
+void write_message(FILE * file, int msgCode, va_list args_p);
+
+#define LIBOFFLOAD_ERROR __liboffload_error_support
+
+#ifdef TARGET_WINNT
+#define LIBOFFLOAD_ABORT \
+ _set_abort_behavior(0, _WRITE_ABORT_MSG); \
+ abort()
+#else
+#define LIBOFFLOAD_ABORT \
+ abort()
+#endif
+
+#endif // !defined(LIBOFFLOAD_ERROR_CODES_H)
OpenPOWER on IntegriCloud