Changeset View
Changeset View
Standalone View
Standalone View
test/OpenMP/cancellation_point_codegen.cpp
Show First 20 Lines • Show All 72 Lines • ▼ Show 20 Lines | |||||
// CHECK: call void @__kmpc_barrier(%ident_t* | // CHECK: call void @__kmpc_barrier(%ident_t* | ||||
#pragma omp task | #pragma omp task | ||||
{ | { | ||||
#pragma omp cancellation point taskgroup | #pragma omp cancellation point taskgroup | ||||
#pragma omp cancel taskgroup | #pragma omp cancel taskgroup | ||||
} | } | ||||
// CHECK: call i8* @__kmpc_omp_task_alloc( | // CHECK: call i8* @__kmpc_omp_task_alloc( | ||||
// CHECK: call i32 @__kmpc_omp_task( | // CHECK: call i32 @__kmpc_omp_task( | ||||
#pragma omp task | |||||
{ | |||||
#pragma omp cancellation point taskgroup | |||||
} | |||||
// CHECK: call i8* @__kmpc_omp_task_alloc( | |||||
// CHECK: call i32 @__kmpc_omp_task( | |||||
#pragma omp parallel sections | #pragma omp parallel sections | ||||
{ | { | ||||
{ | { | ||||
#pragma omp cancellation point sections | #pragma omp cancellation point sections | ||||
#pragma omp cancel sections | #pragma omp cancel sections | ||||
} | } | ||||
} | } | ||||
// CHECK: call void (%ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | // CHECK: call void (%ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call( | ||||
Show All 31 Lines | |||||
// CHECK: [[RES:%.+]] = call i32 @__kmpc_cancellationpoint(%ident_t* {{[^,]+}}, i32 {{[^,]+}}, i32 4) | // CHECK: [[RES:%.+]] = call i32 @__kmpc_cancellationpoint(%ident_t* {{[^,]+}}, i32 {{[^,]+}}, i32 4) | ||||
// CHECK: [[CMP:%.+]] = icmp ne i32 [[RES]], 0 | // CHECK: [[CMP:%.+]] = icmp ne i32 [[RES]], 0 | ||||
// CHECK: br i1 [[CMP]], label %[[EXIT:[^,]+]], | // CHECK: br i1 [[CMP]], label %[[EXIT:[^,]+]], | ||||
// CHECK: [[EXIT]] | // CHECK: [[EXIT]] | ||||
// CHECK: br label %[[RETURN:.+]] | // CHECK: br label %[[RETURN:.+]] | ||||
// CHECK: [[RETURN]] | // CHECK: [[RETURN]] | ||||
// CHECK: ret i32 0 | // CHECK: ret i32 0 | ||||
// CHECK: define internal i32 @{{[^(]+}}(i32 | |||||
// CHECK: [[RES:%.+]] = call i32 @__kmpc_cancellationpoint(%ident_t* {{[^,]+}}, i32 {{[^,]+}}, i32 4) | |||||
// CHECK: [[CMP:%.+]] = icmp ne i32 [[RES]], 0 | |||||
// CHECK: br i1 [[CMP]], label %[[EXIT:[^,]+]], | |||||
// CHECK: [[EXIT]] | |||||
// CHECK: br label %[[RETURN:.+]] | |||||
// CHECK: [[RETURN]] | |||||
// CHECK: ret i32 0 | |||||
// CHECK: define internal void @{{[^(]+}}(i32* {{[^,]+}}, i32* {{[^,]+}}) | // CHECK: define internal void @{{[^(]+}}(i32* {{[^,]+}}, i32* {{[^,]+}}) | ||||
// CHECK: call void @__kmpc_for_static_init_4( | // CHECK: call void @__kmpc_for_static_init_4( | ||||
// CHECK: [[RES:%.+]] = call i32 @__kmpc_cancellationpoint(%ident_t* {{[^,]+}}, i32 [[GTID:%.+]], i32 3) | // CHECK: [[RES:%.+]] = call i32 @__kmpc_cancellationpoint(%ident_t* {{[^,]+}}, i32 [[GTID:%.+]], i32 3) | ||||
// CHECK: [[CMP:%.+]] = icmp ne i32 [[RES]], 0 | // CHECK: [[CMP:%.+]] = icmp ne i32 [[RES]], 0 | ||||
// CHECK: br i1 [[CMP]], label %[[EXIT:[^,].+]], label %[[CONTINUE:.+]] | // CHECK: br i1 [[CMP]], label %[[EXIT:[^,].+]], label %[[CONTINUE:.+]] | ||||
// CHECK: [[EXIT]] | // CHECK: [[EXIT]] | ||||
// CHECK: br label | // CHECK: br label | ||||
// CHECK: [[CONTINUE]] | // CHECK: [[CONTINUE]] | ||||
Show All 36 Lines |