forked from OSchip/llvm-project
[OMPT] Make sure that OMPT is enabled when accessing internals of the runtime
The three switch fallthrough generate a warning with -Wimplicit-fallthrough. Two are documented as fallthrough, one is not, but I think the intention is to also fallthrough in kmp_tasking.cpp. Not sure whether kmp.h is the best place to define the macro. Reviewers: jlpeyton, AndreyChurbanov, Hahnfeld Reviewed By: jlpeyton Tags: #openmp Differential Revision: https://reviews.llvm.org/D56397 llvm-svn: 353052
This commit is contained in:
parent
6e5350a367
commit
0c599c388d
|
@ -348,6 +348,7 @@ void __kmp_dispatch_init_algorithm(ident_t *loc, int gtid,
|
|||
/* too few iterations: fall-through to kmp_sch_static_balanced */
|
||||
} // if
|
||||
/* FALL-THROUGH to static balanced */
|
||||
KMP_FALLTHROUGH();
|
||||
} // case
|
||||
#endif
|
||||
case kmp_sch_static_balanced: {
|
||||
|
|
|
@ -296,6 +296,20 @@ extern "C" {
|
|||
|
||||
#define KMP_CACHE_PREFETCH(ADDR) /* nothing */
|
||||
|
||||
// Define attribute that indicates that the fall through from the previous
|
||||
// case label is intentional and should not be diagnosed by a compiler
|
||||
// Code from libcxx/include/__config
|
||||
// Use a function like macro to imply that it must be followed by a semicolon
|
||||
#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
|
||||
# define KMP_FALLTHROUGH() [[fallthrough]]
|
||||
#elif __has_cpp_attribute(clang::fallthrough)
|
||||
# define KMP_FALLTHROUGH() [[clang::fallthrough]]
|
||||
#elif __has_attribute(fallthough) || _GNUC_VER >= 700
|
||||
# define KMP_FALLTHROUGH() __attribute__((__fallthrough__))
|
||||
#else
|
||||
# define KMP_FALLTHROUGH() ((void)0)
|
||||
#endif
|
||||
|
||||
// Define attribute that indicates a function does not return
|
||||
#if __cplusplus >= 201103L
|
||||
#define KMP_NORETURN [[noreturn]]
|
||||
|
|
|
@ -6421,6 +6421,7 @@ void __kmp_register_library_startup(void) {
|
|||
// library. Assume the other library is alive.
|
||||
// WARN( ... ); // TODO: Issue a warning.
|
||||
file_name = "unknown library";
|
||||
KMP_FALLTHROUGH();
|
||||
// Attention! Falling to the next case. That's intentional.
|
||||
case 1: { // Neighbor is alive.
|
||||
// Check it is allowed.
|
||||
|
|
|
@ -4205,6 +4205,7 @@ void __kmpc_taskloop(ident_t *loc, int gtid, kmp_task_t *task, int if_val,
|
|||
case 0: // no schedule clause specified, we can choose the default
|
||||
// let's try to schedule (team_size*10) tasks
|
||||
grainsize = thread->th.th_team_nproc * 10;
|
||||
KMP_FALLTHROUGH();
|
||||
case 2: // num_tasks provided
|
||||
if (grainsize > tc) {
|
||||
num_tasks = tc; // too big num_tasks requested, adjust values
|
||||
|
|
Loading…
Reference in New Issue