OSDN Git Service

android: [openmp] add support for tablegen generated sources
authorMauro Rossi <issor.oruam@gmail.com>
Fri, 24 Jul 2020 19:37:07 +0000 (21:37 +0200)
committerMauro Rossi <issor.oruam@gmail.com>
Thu, 15 Apr 2021 11:05:12 +0000 (13:05 +0200)
Porting to Android.bp of the following commits:

d90443b1d93 "[openmp] Base of tablegen generated OpenMP common declaration"
1a70077b5a6 "[openmp] Move Directive and Clause helper function to tablegen"
943660fd15f "[openmp] Remove OMPConstants.cpp and replace it by OMP.cpp generated by tablegen"

Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
llvm/Android.bp
llvm/lib/Frontend/OpenMP/Android.bp [new file with mode: 0644]
llvm/soong/tblgen.go

index 3223834..75526ce 100644 (file)
@@ -127,12 +127,17 @@ cc_library_headers {
         "llvm-gen-intrinsics",
         "llvm-gen-revision",
         "llvm-gen-extension",
+        "llvm-gen-omp_gen",
     ],
     export_generated_headers: [
         "llvm-gen-attributes",
         "llvm-gen-intrinsics",
         "llvm-gen-revision",
         "llvm-gen-extension",
+        "llvm-gen-omp_gen",
+    ],
+    generated_sources: [
+        "llvm-gen-omp_cpp",
     ],
     target: {
         windows: {
@@ -170,6 +175,21 @@ llvm_tblgen {
     ],
 }
 
+llvm_tblgen {
+    name: "llvm-gen-omp_gen",
+    in: "include/llvm/Frontend/OpenMP/OMP.td",
+    outs: [
+        "llvm/Frontend/OpenMP/OMP.h.inc",
+        "llvm/Frontend/OpenMP/OMP.cpp.inc",
+    ],
+}
+
+llvm_tblgen {
+    name: "llvm-gen-omp_cpp",
+    in: "include/llvm/Frontend/OpenMP/OMP.td",
+    outs: ["lib/Frontend/OpenMP/OMP.cpp"],
+}
+
 genrule {
     name: "llvm-gen-revision",
     out: ["llvm/Support/VCSRevision.h"],
diff --git a/llvm/lib/Frontend/OpenMP/Android.bp b/llvm/lib/Frontend/OpenMP/Android.bp
new file mode 100644 (file)
index 0000000..bd50af3
--- /dev/null
@@ -0,0 +1,13 @@
+cc_library_static {
+    name: "libLLVMFrontendOpenMP",
+    defaults: [
+        "llvm-lib-defaults",
+    ],
+    srcs: ["*.cpp"],
+}
+
+cc_defaults {
+    name: "llvm-omp-defaults",
+    generated_headers: ["llvm-gen-omp_gen"],
+    generated_sources: ["llvm-gen-omp_cpp"],
+}
index 6c5e10d..d8f74e3 100644 (file)
@@ -179,6 +179,12 @@ func outToGenerator(ctx android.ModuleContext, out string) string {
                return "-gen-intrinsic-enums -intrinsic-prefix=x86"
        case out == "IntrinsicsXCore.h":
                return "-gen-intrinsic-enums -intrinsic-prefix=xcore"
+       case out == "OMP.h.inc":
+               return "--gen-directive-decl"
+       case out == "OMP.cpp.inc":
+               return "--gen-directive-gen"
+       case out == "OMP.cpp":
+               return "--gen-directive-impl"
        }
 
        ctx.ModuleErrorf("couldn't map output file %q to a generator", out)