[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-09-17 Thread Chi Chun Chen via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2908fc0d3f16: [OpenMP] Use irbuilder as default for masked 
and master construct (authored by cchen).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

Files:
  clang/lib/CodeGen/CGStmtOpenMP.cpp
  clang/test/OpenMP/masked_codegen.cpp
  clang/test/OpenMP/master_codegen.cpp

Index: clang/test/OpenMP/master_codegen.cpp
===
--- clang/test/OpenMP/master_codegen.cpp
+++ clang/test/OpenMP/master_codegen.cpp
@@ -1,10 +1,7 @@
-// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s
 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
 // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -debug-info-kind=line-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
 
 // RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck --check-prefix SIMD-ONLY0 %s
 // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
@@ -15,53 +12,52 @@
 #ifndef HEADER
 #define HEADER
 
-// ALL:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
+// CHECK:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
 
-// ALL:   define {{.*}}void [[FOO:@.+]]()
+// CHECK:   define {{.*}}void [[FOO:@.+]]()
 
 void foo() { extern void mayThrow(); mayThrow(); }
 
-// ALL-LABEL: @main
+// CHECK-LABEL: @main
 // TERM_DEBUG-LABEL: @main
 int main() {
-  // ALL:  			[[A_ADDR:%.+]] = alloca i8
+  // CHECK:  			[[A_ADDR:%.+]] = alloca i8
   char a;
 
-// ALL:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// ALL-NEXT:  			store i8 2, i8* [[A_ADDR]]
-// ALL-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
+// CHECK:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
+// CHECK-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
+// CHECK:   			[[THEN]]
+// CHECK-NEXT:  			store i8 2, i8* [[A_ADDR]]
+// CHECK-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			br label {{%?}}[[EXIT]]
+// CHECK:   			[[EXIT]]
 #pragma omp master
   a = 2;
-// IRBUILDER: 			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// IRBUILDER-NEXT:  call {{.*}}void [[FOO]]()
-// NORMAL-NEXT:  		invoke {{.*}}void [[FOO]]()
-// ALL:   			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK: 			[[GTID:%.+]] = call {{.*}}i32 

[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-26 Thread Chi Chun Chen via Phabricator via cfe-commits
cchen updated this revision to Diff 340641.
cchen added a comment.
This revision is now accepted and ready to land.

Rebase


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

Files:
  clang/lib/CodeGen/CGStmtOpenMP.cpp
  clang/test/OpenMP/masked_codegen.cpp
  clang/test/OpenMP/master_codegen.cpp

Index: clang/test/OpenMP/master_codegen.cpp
===
--- clang/test/OpenMP/master_codegen.cpp
+++ clang/test/OpenMP/master_codegen.cpp
@@ -1,10 +1,7 @@
-// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s
 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
 // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -debug-info-kind=line-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
 
 // RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck --check-prefix SIMD-ONLY0 %s
 // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
@@ -15,53 +12,52 @@
 #ifndef HEADER
 #define HEADER
 
-// ALL:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
+// CHECK:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
 
-// ALL:   define {{.*}}void [[FOO:@.+]]()
+// CHECK:   define {{.*}}void [[FOO:@.+]]()
 
 void foo() { extern void mayThrow(); mayThrow(); }
 
-// ALL-LABEL: @main
+// CHECK-LABEL: @main
 // TERM_DEBUG-LABEL: @main
 int main() {
-  // ALL:  			[[A_ADDR:%.+]] = alloca i8
+  // CHECK:  			[[A_ADDR:%.+]] = alloca i8
   char a;
 
-// ALL:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// ALL-NEXT:  			store i8 2, i8* [[A_ADDR]]
-// ALL-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
+// CHECK:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
+// CHECK-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
+// CHECK:   			[[THEN]]
+// CHECK-NEXT:  			store i8 2, i8* [[A_ADDR]]
+// CHECK-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			br label {{%?}}[[EXIT]]
+// CHECK:   			[[EXIT]]
 #pragma omp master
   a = 2;
-// IRBUILDER: 			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// IRBUILDER-NEXT:  call {{.*}}void [[FOO]]()
-// NORMAL-NEXT:  		invoke {{.*}}void [[FOO]]()
-// ALL:   			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK: 			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
+// CHECK:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* 

[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-21 Thread Chi Chun Chen via Phabricator via cfe-commits
cchen added a comment.

> what assertion?



  $ ":" "RUN: at line 1"
  $ "/mnt/disks/ssd0/agent/llvm-project/build/./bin/clang" "-fopenmp" 
"-pthread" "-fno-experimental-isel" "-I" 
"/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test" "-I" 
"/mnt/disks/ssd0/agent/llvm-project/build/projects/openmp/runtime/src" "-L" 
"/mnt/disks/ssd0/agent/llvm-project/build/lib" "-I" 
"/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/ompt" 
"/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/tasking/kmp_detach_tasks_t1.c"
 "-o" 
"/mnt/disks/ssd0/agent/llvm-project/build/projects/openmp/runtime/test/tasking/Output/kmp_detach_tasks_t1.c.tmp"
 "-lm" "-latomic"
  # command stderr:
  clang-13: 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:135:
 llvm::Function 
*llvm::OpenMPIRBuilder::getOrCreateRuntimeFunctionPtr(llvm::omp::RuntimeFunction):
 Assertion `Fn && "Failed to create OpenMP runtime function pointer"' failed.
  PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash 
backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.Program arguments: 
/mnt/disks/ssd0/agent/llvm-project/build/bin/clang-13 -cc1 -triple 
x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations 
-disable-free -main-file-name kmp_detach_tasks_t1.c -mrelocation-model static 
-mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases 
-munwind-tables -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb 
-fcoverage-compilation-dir=/mnt/disks/ssd0/agent/llvm-project/build/projects/openmp/runtime/test/tasking
 -resource-dir /mnt/disks/ssd0/agent/llvm-project/build/lib/clang/13.0.0 -I 
/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test -I 
/mnt/disks/ssd0/agent/llvm-project/build/projects/openmp/runtime/src -I 
/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/ompt -internal-isystem 
/mnt/disks/ssd0/agent/llvm-project/build/lib/clang/13.0.0/include 
-internal-isystem /usr/local/include -internal-isystem 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include 
-internal-externc-isystem /usr/include/x86_64-linux-gnu 
-internal-externc-isystem /include -internal-externc-isystem /usr/include 
-fdebug-compilation-dir=/mnt/disks/ssd0/agent/llvm-project/build/projects/openmp/runtime/test/tasking
 -ferror-limit 19 -fopenmp -fopenmp-cuda-parallel-target-regions -pthread 
-fgnuc-version=4.2.1 -mllvm -global-isel=0 -faddrsig 
-D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/kmp_detach_tasks_t1-bbb4b6.o -x c 
/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/tasking/kmp_detach_tasks_t1.c
  1. parser at end of file
  2.Per-file LLVM IR generation
  3.
/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/tasking/kmp_detach_tasks_t1.c:76:5:
 Generating code for declaration 'main'
  4.
/mnt/disks/ssd0/agent/llvm-project/openmp/runtime/test/tasking/kmp_detach_tasks_t1.c:84:3:
 LLVM IR generation of compound statement ('{}')
   #0 0x05899d83 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:13
   #1 0x05897ace llvm::sys::RunSignalHandlers() 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Support/Signals.cpp:77:18
   #2 0x0589a24f SignalHandler(int) 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
   #3 0x7fe786916140 __restore_rt 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
   #4 0x7fe7863eedb1 raise (/lib/x86_64-linux-gnu/libc.so.6+0x3bdb1)
   #5 0x7fe7863d8537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x25537)
   #6 0x7fe7863d840f (/lib/x86_64-linux-gnu/libc.so.6+0x2540f)
   #7 0x7fe7863e75b2 (/lib/x86_64-linux-gnu/libc.so.6+0x345b2)
   #8 0x080dcc3e doit 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/Support/Casting.h:104:5
   #9 0x080dcc3e doit 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/Support/Casting.h:131:12
  #10 0x080dcc3e doit 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/Support/Casting.h:121:12
  #11 0x080dcc3e isa 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/Support/Casting.h:142:10
  #12 0x080dcc3e cast 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/Support/Casting.h:269:3
  #13 0x080dcc3e getFunctionType 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/IR/Function.h:166:12
  #14 0x080dcc3e FunctionCallee 
/mnt/disks/ssd0/agent/llvm-project/llvm/include/llvm/IR/DerivedTypes.h:170:23
  #15 0x080dcc3e 
llvm::OpenMPIRBuilder::getOrCreateThreadID(llvm::Value*) 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:330:7
  #16 0x080e0002 
llvm::OpenMPIRBuilder::createMaster(llvm::OpenMPIRBuilder::LocationDescription 
const&, llvm::function_ref, std::function) 
/mnt/disks/ssd0/agent/llvm-project/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:892:19
  #17 0x05d64ab8 isSet 

[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Johannes Doerfert via Phabricator via cfe-commits
jdoerfert added a comment.

In D100874#2702897 , @cchen wrote:

> I mark this patch as "plan changed" since the assert message indicates that 
> something wrong in IRBuilder or Codegen, however, main branch also have the 
> same issue so I think this patch does not trigger the issue.

what assertion?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Chi Chun Chen via Phabricator via cfe-commits
cchen added a comment.

I mark this patch as "plan changed" since the assert message indicates that 
something wrong in IRBuilder or Codegen, however, main branch also have the 
same issue so I think this patch does not trigger the issue.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Chi Chun Chen via Phabricator via cfe-commits
cchen planned changes to this revision.
cchen added a comment.

This change seems to expose bugs in IRBuilder.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added a comment.

Patch description is empty.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Johannes Doerfert via Phabricator via cfe-commits
jdoerfert accepted this revision.
jdoerfert added a comment.
This revision is now accepted and ready to land.

LGTM, thanks


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100874/new/

https://reviews.llvm.org/D100874

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100874: [OpenMP] Use irbuilder as default for masked and master construct

2021-04-20 Thread Chi Chun Chen via Phabricator via cfe-commits
cchen created this revision.
cchen added a reviewer: jdoerfert.
Herald added subscribers: guansong, yaxunl.
cchen requested review of this revision.
Herald added subscribers: cfe-commits, sstefan1.
Herald added a project: clang.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D100874

Files:
  clang/lib/CodeGen/CGStmtOpenMP.cpp
  clang/test/OpenMP/masked_codegen.cpp
  clang/test/OpenMP/master_codegen.cpp

Index: clang/test/OpenMP/master_codegen.cpp
===
--- clang/test/OpenMP/master_codegen.cpp
+++ clang/test/OpenMP/master_codegen.cpp
@@ -1,10 +1,7 @@
-// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s
 // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,NORMAL
+// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s
 // RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 -fopenmp -fexceptions -fcxx-exceptions -debug-info-kind=line-tables-only -x c++ -emit-llvm %s -o - | FileCheck %s --check-prefix=TERM_DEBUG
-// RUN: %clang_cc1 -verify -fopenmp -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
-// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefixes=ALL,IRBUILDER
 
 // RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck --check-prefix SIMD-ONLY0 %s
 // RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s
@@ -15,53 +12,52 @@
 #ifndef HEADER
 #define HEADER
 
-// ALL:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
+// CHECK:   [[IDENT_T_TY:%.+]] = type { i32, i32, i32, i32, i8* }
 
-// ALL:   define {{.*}}void [[FOO:@.+]]()
+// CHECK:   define {{.*}}void [[FOO:@.+]]()
 
 void foo() { extern void mayThrow(); mayThrow(); }
 
-// ALL-LABEL: @main
+// CHECK-LABEL: @main
 // TERM_DEBUG-LABEL: @main
 int main() {
-  // ALL:  			[[A_ADDR:%.+]] = alloca i8
+  // CHECK:  			[[A_ADDR:%.+]] = alloca i8
   char a;
 
-// ALL:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// ALL-NEXT:  			store i8 2, i8* [[A_ADDR]]
-// ALL-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK:   			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
+// CHECK:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
+// CHECK-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
+// CHECK:   			[[THEN]]
+// CHECK-NEXT:  			store i8 2, i8* [[A_ADDR]]
+// CHECK-NEXT:  			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
+// CHECK-NEXT:  			br label {{%?}}[[EXIT]]
+// CHECK:   			[[EXIT]]
 #pragma omp master
   a = 2;
-// IRBUILDER: 			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
-// ALL:   			[[RES:%.+]] = call {{.*}}i32 @__kmpc_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			[[IS_MASTER:%.+]] = icmp ne i32 [[RES]], 0
-// ALL-NEXT:  			br i1 [[IS_MASTER]], label {{%?}}[[THEN:.+]], label {{%?}}[[EXIT:.+]]
-// ALL:   			[[THEN]]
-// IRBUILDER-NEXT:  call {{.*}}void [[FOO]]()
-// NORMAL-NEXT:  		invoke {{.*}}void [[FOO]]()
-// ALL:   			call {{.*}}void @__kmpc_end_master([[IDENT_T_TY]]* [[DEFAULT_LOC]], i32 [[GTID]])
-// ALL-NEXT:  			br label {{%?}}[[EXIT]]
-// ALL:   			[[EXIT]]
+// CHECK: 			[[GTID:%.+]] = call {{.*}}i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:@.+]])
+// CHECK:   			[[RES:%.+]] = call