summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2023-03-18 05:04:22 +0900
committerNAKAMURA Takumi <geek4civic@gmail.com>2023-05-02 11:32:22 +0900
commit243e8f8d23ac71717115c73725658dac071ac4c2 (patch)
tree86e000b6ff81db4890a97be219d5fe12fa22b5a8 /utils
parent4071dbb6b9ce00998357e1eee7ab2413d103ebc2 (diff)
downloadllvm-243e8f8d23ac71717115c73725658dac071ac4c2.tar.gz
Introduce `llvm-min-tblgen` to build public header files
`llvm-min-tblgen` is capable of building `llvm/include/llvm`; - `-gen-attrs` - `-gen-directive-*` - `-gen-intrinsics-*` - `-gen-riscv-target-def` `llvm-min-tblgen` is built and used only when `llvm-tblgen` is built in-tree. This is not installed. `llvm-tblgen` is built with complete set and may be installed. `check-llvm` uses not `llvm-min-tblgen` but `llvm-tblgen`. `LLVM_TABLEGEN_PROJECT` overrides the definition of `tablegen(project)`. `LLVM_HEADERS` is used as the overridden prefix for LLVM header generators. If `EXPORT` is not specified in `add_tablegen`, its tablegen is treated as internal. Let `llvm-tblgen` depend on `intrinsics_gen` Depends on D149072 Differential Revision: https://reviews.llvm.org/D146352
Diffstat (limited to 'utils')
-rw-r--r--utils/bazel/llvm-project-overlay/llvm/BUILD.bazel44
-rw-r--r--utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel2
2 files changed, 36 insertions, 10 deletions
diff --git a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
index 3ebc98e7fcfd..38b9f4028eba 100644
--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
@@ -572,6 +572,31 @@ cc_library(
],
)
+cc_binary(
+ name = "llvm-min-tblgen",
+ srcs = [
+ "utils/TableGen/Attributes.cpp",
+ "utils/TableGen/CodeGenIntrinsics.cpp",
+ "utils/TableGen/DirectiveEmitter.cpp",
+ "utils/TableGen/IntrinsicEmitter.cpp",
+ "utils/TableGen/RISCVTargetDefEmitter.cpp",
+ "utils/TableGen/SDNodeProperties.cpp",
+ "utils/TableGen/TableGen.cpp",
+ "utils/TableGen/VTEmitter.cpp",
+
+ "utils/TableGen/CodeGenIntrinsics.h",
+ "utils/TableGen/SDNodeProperties.h",
+ "utils/TableGen/SequenceToOffsetTable.h",
+ ],
+ copts = llvm_copts,
+ stamp = 0,
+ deps = [
+ ":Support",
+ ":TableGen",
+ ":config",
+ ],
+)
+
cc_library(
name = "TableGenGlobalISel",
srcs = glob([
@@ -621,6 +646,7 @@ cc_binary(
":TableGen",
":TableGenGlobalISel",
":config",
+ ":intrinsic_enums_gen",
":llvm-tblgen-headers",
],
)
@@ -628,7 +654,7 @@ cc_binary(
gentbl(
name = "intrinsic_enums_gen",
tbl_outs = [("-gen-intrinsic-enums", "include/llvm/IR/IntrinsicEnums.inc")],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/IR/Intrinsics.td",
td_srcs = glob([
"include/llvm/CodeGen/*.td",
@@ -639,7 +665,7 @@ gentbl(
gentbl(
name = "intrinsics_impl_gen",
tbl_outs = [("-gen-intrinsic-impl", "include/llvm/IR/IntrinsicImpl.inc")],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/IR/Intrinsics.td",
td_srcs = glob([
"include/llvm/CodeGen/*.td",
@@ -727,7 +753,7 @@ llvm_target_intrinsics_list = [
"-gen-intrinsic-enums -intrinsic-prefix=" + target["intrinsic_prefix"],
"include/llvm/IR/Intrinsics" + target["name"] + ".h",
)],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/IR/Intrinsics.td",
td_srcs = glob([
"include/llvm/CodeGen/*.td",
@@ -739,7 +765,7 @@ llvm_target_intrinsics_list = [
gentbl(
name = "attributes_gen",
tbl_outs = [("-gen-attrs", "include/llvm/IR/Attributes.inc")],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/IR/Attributes.td",
td_srcs = ["include/llvm/IR/Attributes.td"],
)
@@ -1108,7 +1134,7 @@ cc_library(
gentbl(
name = "RISCVTargetParserDefGen",
tbl_outs = [("-gen-riscv-target-def", "include/llvm/TargetParser/RISCVTargetParserDef.inc")],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "lib/Target/RISCV/RISCV.td",
td_srcs = [
":common_target_td_sources",
@@ -1375,7 +1401,7 @@ gentbl(
tbl_outs = [
("--gen-directive-decl", "include/llvm/Frontend/OpenMP/OMP.h.inc"),
],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/Frontend/OpenMP/OMP.td",
td_srcs = [":omp_td_files"],
)
@@ -1386,7 +1412,7 @@ gentbl(
tbl_outs = [
("--gen-directive-impl", "include/llvm/Frontend/OpenMP/OMP.inc"),
],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/Frontend/OpenMP/OMP.td",
td_srcs = [":omp_td_files"],
)
@@ -1434,7 +1460,7 @@ gentbl(
tbl_outs = [
("--gen-directive-decl", "include/llvm/Frontend/OpenACC/ACC.h.inc"),
],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/Frontend/OpenACC/ACC.td",
td_srcs = [":acc_td_files"],
)
@@ -1445,7 +1471,7 @@ gentbl(
tbl_outs = [
("--gen-directive-impl", "include/llvm/Frontend/OpenACC/ACC.inc"),
],
- tblgen = ":llvm-tblgen",
+ tblgen = ":llvm-min-tblgen",
td_file = "include/llvm/Frontend/OpenACC/ACC.td",
td_srcs = [":acc_td_files"],
)
diff --git a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
index cfe9a18f4a03..d7937f8d1212 100644
--- a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
@@ -558,7 +558,7 @@ gentbl(
name = "vt_gen",
strip_include_prefix = "Support",
tbl_outs = [("-gen-vt", "Support/GenVT.inc")],
- tblgen = "//llvm:llvm-tblgen",
+ tblgen = "//llvm:llvm-min-tblgen",
td_file = "//llvm:include/llvm/CodeGen/ValueTypes.td",
td_srcs = [
"//llvm:include/llvm/CodeGen/ValueTypes.td",