Skip to content

Commit 0312af6

Browse files
authored
Merge pull request #1 from grypp/release_70
Flang extensions
2 parents 366ce74 + 816b1f1 commit 0312af6

File tree

3 files changed

+101
-0
lines changed

3 files changed

+101
-0
lines changed

Diff for: libomptarget/CMakeLists.txt

+7
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ if(LIBOMPTARGET_CMAKE_BUILD_TYPE MATCHES debug)
5353
add_definitions(-O0)
5454
endif()
5555

56+
set(LIBOMPTARGET_FLANG_API FALSE CACHE BOOL
57+
"Build API for Flang.")
58+
if(${LIBOMPTARGET_FLANG_API})
59+
add_definitions(-DFLANG_API)
60+
libomptarget_say("Building OpenMP API for FLANG.")
61+
endif()
62+
5663
include_directories(include)
5764

5865
# Build target agnostic offloading library.

Diff for: libomptarget/deviceRTLs/nvptx/src/interface.h

+30
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,36 @@ EXTERN int omp_is_initial_device(void);
8888
EXTERN int omp_get_initial_device(void);
8989
EXTERN int omp_get_max_task_priority(void);
9090

91+
92+
#ifdef FLANG_API
93+
EXTERN double omp_get_wtick_(void);
94+
EXTERN double omp_get_wtime_(void);
95+
EXTERN int omp_get_num_threads_(void);
96+
EXTERN int omp_get_max_threads_(void);
97+
EXTERN int omp_get_thread_limit_(void);
98+
EXTERN int omp_get_thread_num_(void);
99+
EXTERN int omp_get_num_procs_(void);
100+
EXTERN int omp_in_parallel_(void);
101+
EXTERN int omp_in_final_(void);
102+
EXTERN int omp_get_nested_(void);
103+
EXTERN int omp_get_max_active_levels_(void);
104+
EXTERN int omp_get_level_(void);
105+
EXTERN int omp_get_active_level_(void);
106+
EXTERN int omp_get_ancestor_thread_num_(int level);
107+
EXTERN int omp_get_team_size_(int level);
108+
EXTERN int omp_get_default_device_(void);
109+
EXTERN int omp_get_num_devices_(void);
110+
EXTERN int omp_get_num_teams_(void);
111+
EXTERN int omp_get_team_num_(void);
112+
EXTERN void omp_get_schedule_(omp_sched_t *kind, int *modifier);
113+
EXTERN int omp_get_initial_device_(void);
114+
EXTERN int omp_get_max_task_priority_(void);
115+
EXTERN int omp_get_cancellation_(void);
116+
EXTERN int omp_get_dynamic_(void);
117+
EXTERN void omp_lib_osnt4_(int num);
118+
EXTERN void omp_lib_osmal4_(int level);
119+
#endif
120+
91121
////////////////////////////////////////////////////////////////////////////////
92122
// OMPTARGET_NVPTX private (debug / temportary?) interface
93123
////////////////////////////////////////////////////////////////////////////////

Diff for: libomptarget/deviceRTLs/nvptx/src/libcall.cu

+64
Original file line numberDiff line numberDiff line change
@@ -460,3 +460,67 @@ EXTERN void xlf_debug_print_double(double *p) {
460460
EXTERN void xlf_debug_print_addr(void *p) {
461461
printf("xlf DEBUG %d): %p \n", omp_get_team_num(), p);
462462
}
463+
464+
465+
#ifdef FLANG_API
466+
EXTERN double omp_get_wtick_(void) { return omp_get_wtick(); }
467+
468+
EXTERN double omp_get_wtime_(void) { return omp_get_wtime(); }
469+
470+
EXTERN int omp_get_num_threads_(void) { return omp_get_num_threads(); }
471+
472+
EXTERN int omp_get_max_threads_(void) { return omp_get_max_threads(); }
473+
474+
EXTERN int omp_get_thread_limit_(void) { return omp_get_thread_limit(); }
475+
476+
EXTERN int omp_get_thread_num_(void) { return omp_get_thread_num(); }
477+
478+
EXTERN int omp_get_num_procs_(void) { return omp_get_num_procs(); }
479+
480+
EXTERN int omp_in_parallel_(void) { return omp_in_parallel(); }
481+
482+
EXTERN int omp_in_final_(void) { return omp_in_final(); }
483+
484+
EXTERN int omp_get_nested_(void) { return omp_get_nested(); }
485+
486+
EXTERN int omp_get_max_active_levels_(void) {
487+
return omp_get_max_active_levels();
488+
}
489+
490+
EXTERN int omp_get_level_(void) { return omp_get_level(); }
491+
492+
EXTERN int omp_get_active_level_(void) { return omp_get_active_level(); }
493+
494+
EXTERN int omp_get_ancestor_thread_num_(int* level) {
495+
return omp_get_ancestor_thread_num(*level);
496+
}
497+
498+
EXTERN int omp_get_team_size_(int* level) { return omp_get_team_size(*level); }
499+
500+
EXTERN int omp_get_default_device_(void) { return omp_get_default_device(); }
501+
502+
EXTERN int omp_get_num_devices_(void) { return omp_get_num_devices(); }
503+
504+
EXTERN int omp_get_num_teams_(void) { return omp_get_num_teams(); }
505+
506+
EXTERN int omp_get_team_num_(void) { return omp_get_team_num(); }
507+
508+
EXTERN void omp_get_schedule_(omp_sched_t *kind, int *modifier) {
509+
return omp_get_schedule(kind, modifier);
510+
}
511+
512+
EXTERN int omp_get_initial_device_(void) { return omp_get_initial_device(); }
513+
514+
EXTERN int omp_get_max_task_priority_(void) {
515+
return omp_get_max_task_priority();
516+
}
517+
518+
EXTERN int omp_get_cancellation_(void) { return omp_get_cancellation(); }
519+
520+
EXTERN int omp_get_dynamic_(void) { return omp_get_dynamic(); }
521+
522+
EXTERN void omp_lib_osnt4_(int* num) { omp_set_num_threads(*num); }
523+
524+
EXTERN void omp_lib_osmal4_(int* level) { omp_set_max_active_levels(*level); }
525+
#endif
526+

0 commit comments

Comments
 (0)