Skip to content

Commit d709dcc

Browse files
committed
[openacc][openmp] Reduce number of generated file and prefer inclusion of .inc
Follow up from D92955 and D83636. This patch makes the base cpp files OMP.cpp and ACC.cpp normal files and they now include the XXX.inc file generated by tablegen. This reduces the number of file generated by the DirectiveEmitter backend and makes it closer to the proposal in D83636. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D93560
1 parent b24436a commit d709dcc

File tree

17 files changed

+337
-310
lines changed

17 files changed

+337
-310
lines changed

llvm/include/llvm/Frontend/OpenACC/ACC.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def OpenACC : DirectiveLanguage {
2323
let clausePrefix = "ACCC_";
2424
let makeEnumAvailableInNamespace = true;
2525
let enableBitmaskEnumInNamespace = true;
26-
let includeHeader = "llvm/Frontend/OpenACC/ACC.h.inc";
2726
let clauseEnumSetClass = "AccClauseSet";
2827
let flangClauseBaseClass = "AccClause";
2928
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
set(LLVM_TARGET_DEFINITIONS ACC.td)
22
tablegen(LLVM ACC.h.inc --gen-directive-decl)
3-
tablegen(LLVM ACC.inc --gen-directive-gen)
3+
tablegen(LLVM ACC.inc --gen-directive-impl)
44
add_public_tablegen_target(acc_gen)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
set(LLVM_TARGET_DEFINITIONS OMP.td)
22
tablegen(LLVM OMP.h.inc --gen-directive-decl)
3-
tablegen(LLVM OMP.inc --gen-directive-gen)
3+
tablegen(LLVM OMP.inc --gen-directive-impl)
44
add_public_tablegen_target(omp_gen)

llvm/include/llvm/Frontend/OpenMP/OMP.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def OpenMP : DirectiveLanguage {
2323
let clausePrefix = "OMPC_";
2424
let makeEnumAvailableInNamespace = true;
2525
let enableBitmaskEnumInNamespace = true;
26-
let includeHeader = "llvm/Frontend/OpenMP/OMP.h.inc";
2726
let clauseEnumSetClass = "OmpClauseSet";
2827
let flangClauseBaseClass = "OmpClause";
2928
}

llvm/include/llvm/TableGen/DirectiveEmitter.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ class DirectiveLanguage {
3030
return Def->getValueAsString("clausePrefix");
3131
}
3232

33-
StringRef getIncludeHeader() const {
34-
return Def->getValueAsString("includeHeader");
35-
}
36-
3733
StringRef getClauseEnumSetClass() const {
3834
return Def->getValueAsString("clauseEnumSetClass");
3935
}

llvm/lib/Frontend/OpenACC/ACC.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//===- ACC.cpp ------ Collection of helpers for OpenACC -------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#include "llvm/Frontend/OpenACC/ACC.h.inc"
10+
11+
#include "llvm/ADT/StringRef.h"
12+
#include "llvm/ADT/StringSwitch.h"
13+
#include "llvm/Support/ErrorHandling.h"
14+
15+
using namespace llvm;
16+
using namespace acc;
17+
18+
#define GEN_DIRECTIVES_IMPL
19+
#include "llvm/Frontend/OpenACC/ACC.inc"

llvm/lib/Frontend/OpenACC/CMakeLists.txt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
set(LLVM_TARGET_DEFINITIONS ${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend/OpenACC/ACC.td)
2-
tablegen(LLVM ACC.cpp --gen-directive-impl)
3-
add_public_tablegen_target(acc_cpp)
4-
51
add_llvm_component_library(LLVMFrontendOpenACC
6-
ACC.cpp # Generated by tablegen above
2+
ACC.cpp
73

84
ADDITIONAL_HEADER_DIRS
95
${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend
106
${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend/OpenACC
117

128
DEPENDS
139
acc_gen
14-
acc_cpp
1510
)
1611

1712
target_link_libraries(LLVMFrontendOpenACC LLVMSupport)

llvm/lib/Frontend/OpenMP/CMakeLists.txt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
set(LLVM_TARGET_DEFINITIONS ${LLVM_MAIN_INCLUDE_DIR}/llvm/Frontend/OpenMP/OMP.td)
2-
tablegen(LLVM OMP.cpp --gen-directive-impl)
3-
add_public_tablegen_target(omp_cpp)
4-
51
add_llvm_component_library(LLVMFrontendOpenMP
6-
OMP.cpp # Generated by tablegen above
2+
OMP.cpp
73
OMPContext.cpp
84
OMPIRBuilder.cpp
95

@@ -14,7 +10,6 @@ add_llvm_component_library(LLVMFrontendOpenMP
1410
DEPENDS
1511
intrinsics_gen
1612
omp_gen
17-
omp_cpp
1813

1914
LINK_COMPONENTS
2015
Core

llvm/lib/Frontend/OpenMP/OMP.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//===- OMP.cpp ------ Collection of helpers for OpenMP --------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#include "llvm/Frontend/OpenMP/OMP.h.inc"
10+
11+
#include "llvm/ADT/StringRef.h"
12+
#include "llvm/ADT/StringSwitch.h"
13+
#include "llvm/Support/ErrorHandling.h"
14+
15+
using namespace llvm;
16+
using namespace omp;
17+
18+
#define GEN_DIRECTIVES_IMPL
19+
#include "llvm/Frontend/OpenMP/OMP.inc"

llvm/test/TableGen/directive1.td

Lines changed: 137 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// RUN: llvm-tblgen -gen-directive-decl -I %p/../../include %s | FileCheck -match-full-lines %s
22
// RUN: llvm-tblgen -gen-directive-impl -I %p/../../include %s | FileCheck -match-full-lines %s -check-prefix=IMPL
3-
// RUN: llvm-tblgen -gen-directive-gen -I %p/../../include %s | FileCheck -match-full-lines %s -check-prefix=GEN
43

54
include "llvm/Frontend/Directive/DirectiveBase.td"
65

@@ -101,12 +100,143 @@ def TDL_DirA : Directive<"dira"> {
101100
// CHECK-NEXT: #endif // LLVM_Tdl_INC
102101

103102

104-
// IMPL: #include "llvm/ADT/StringRef.h"
105-
// IMPL-NEXT: #include "llvm/ADT/StringSwitch.h"
106-
// IMPL-NEXT: #include "llvm/Support/ErrorHandling.h"
103+
// IMPL: #ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
104+
// IMPL-NEXT: #undef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
107105
// IMPL-EMPTY:
108-
// IMPL-NEXT: using namespace llvm;
109-
// IMPL-NEXT: using namespace tdl;
106+
// IMPL-NEXT: namespace llvm {
107+
// IMPL-NEXT: namespace tdl {
108+
// IMPL-EMPTY:
109+
// IMPL-NEXT: // Sets for dira
110+
// IMPL-EMPTY:
111+
// IMPL-NEXT: static allowedClauses_TDLD_dira {
112+
// IMPL-NEXT: llvm::tdl::Clause::TDLC_clausea,
113+
// IMPL-NEXT: llvm::tdl::Clause::TDLC_clauseb,
114+
// IMPL-NEXT: };
115+
// IMPL-EMPTY:
116+
// IMPL-NEXT: static allowedOnceClauses_TDLD_dira {
117+
// IMPL-NEXT: };
118+
// IMPL-EMPTY:
119+
// IMPL-NEXT: static allowedExclusiveClauses_TDLD_dira {
120+
// IMPL-NEXT: };
121+
// IMPL-EMPTY:
122+
// IMPL-NEXT: static requiredClauses_TDLD_dira {
123+
// IMPL-NEXT: };
124+
// IMPL-NEXT: } // namespace tdl
125+
// IMPL-NEXT: } // namespace llvm
126+
// IMPL-EMPTY:
127+
// IMPL-NEXT: #endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS
128+
// IMPL-EMPTY:
129+
// IMPL-NEXT: #ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
130+
// IMPL-NEXT: #undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
131+
// IMPL-EMPTY:
132+
// IMPL-NEXT: {
133+
// IMPL-NEXT: {llvm::tdl::Directive::TDLD_dira,
134+
// IMPL-NEXT: {
135+
// IMPL-NEXT: llvm::tdl::allowedClauses_TDLD_dira,
136+
// IMPL-NEXT: llvm::tdl::allowedOnceClauses_TDLD_dira,
137+
// IMPL-NEXT: llvm::tdl::allowedExclusiveClauses_TDLD_dira,
138+
// IMPL-NEXT: llvm::tdl::requiredClauses_TDLD_dira,
139+
// IMPL-NEXT: }
140+
// IMPL-NEXT: },
141+
// IMPL-NEXT: }
142+
// IMPL-EMPTY:
143+
// IMPL-NEXT: #endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP
144+
// IMPL-EMPTY:
145+
// IMPL-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES
146+
// IMPL-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_CLASSES
147+
// IMPL-EMPTY:
148+
// IMPL-NEXT: EMPTY_CLASS(Clausea);
149+
// IMPL-NEXT: WRAPPER_CLASS(Clauseb, std::optional<IntExpr>);
150+
// IMPL-EMPTY:
151+
// IMPL-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_CLASSES
152+
// IMPL-EMPTY:
153+
// IMPL-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
154+
// IMPL-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
155+
// IMPL-EMPTY:
156+
// IMPL-NEXT: Clausea
157+
// IMPL-NEXT: , Clauseb
158+
// IMPL-EMPTY:
159+
// IMPL-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
160+
// IMPL-EMPTY:
161+
// IMPL-NEXT: #ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
162+
// IMPL-NEXT: #undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
163+
// IMPL-EMPTY:
164+
// IMPL-NEXT: NODE(TdlClause, Clausea)
165+
// IMPL-NEXT: NODE(TdlClause, Clauseb)
166+
// IMPL-EMPTY:
167+
// IMPL-NEXT: #endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
168+
// IMPL-EMPTY:
169+
// IMPL-NEXT: #ifdef GEN_FLANG_CLAUSE_UNPARSE
170+
// IMPL-NEXT: #undef GEN_FLANG_CLAUSE_UNPARSE
171+
// IMPL-EMPTY:
172+
// IMPL-NEXT: void Before(const TdlClause::Clausea &) { Word("CLAUSEA"); }
173+
// IMPL-NEXT: void Unparse(const TdlClause::Clauseb &x) {
174+
// IMPL-NEXT: Word("CLAUSEB");
175+
// IMPL-NEXT: Walk("(", x.v, ")");
176+
// IMPL-NEXT: }
177+
// IMPL-EMPTY:
178+
// IMPL-NEXT: #endif // GEN_FLANG_CLAUSE_UNPARSE
179+
// IMPL-EMPTY:
180+
// IMPL-NEXT: #ifdef GEN_FLANG_CLAUSE_CHECK_ENTER
181+
// IMPL-NEXT: #undef GEN_FLANG_CLAUSE_CHECK_ENTER
182+
// IMPL-EMPTY:
183+
// IMPL-NEXT: void Enter(const parser::TdlClause::Clausea &);
184+
// IMPL-NEXT: void Enter(const parser::TdlClause::Clauseb &);
185+
// IMPL-EMPTY:
186+
// IMPL-NEXT: #endif // GEN_FLANG_CLAUSE_CHECK_ENTER
187+
// IMPL-EMPTY:
188+
// IMPL-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
189+
// IMPL-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
190+
// IMPL-EMPTY:
191+
// IMPL-NEXT: if constexpr (std::is_same_v<A, parser::TdlClause::Clausea>)
192+
// IMPL-NEXT: return llvm::tdl::Clause::TDLC_clausea;
193+
// IMPL-NEXT: if constexpr (std::is_same_v<A, parser::TdlClause::Clauseb>)
194+
// IMPL-NEXT: return llvm::tdl::Clause::TDLC_clauseb;
195+
// IMPL-NEXT: llvm_unreachable("Invalid Tdl Parser clause");
196+
// IMPL-EMPTY:
197+
// IMPL-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_KIND_MAP
198+
// IMPL-EMPTY:
199+
// IMPL-NEXT: #ifdef GEN_CLANG_CLAUSE_CLASS
200+
// IMPL-NEXT: #undef GEN_CLANG_CLAUSE_CLASS
201+
// IMPL-EMPTY:
202+
// IMPL-NEXT: #ifndef CLAUSE
203+
// IMPL-NEXT: #define CLAUSE(Enum, Str, Implicit)
204+
// IMPL-NEXT: #endif
205+
// IMPL-NEXT: #ifndef CLAUSE_CLASS
206+
// IMPL-NEXT: #define CLAUSE_CLASS(Enum, Str, Class)
207+
// IMPL-NEXT: #endif
208+
// IMPL-NEXT: #ifndef CLAUSE_NO_CLASS
209+
// IMPL-NEXT: #define CLAUSE_NO_CLASS(Enum, Str)
210+
// IMPL-NEXT: #endif
211+
// IMPL-EMPTY:
212+
// IMPL-NEXT: #define __CLAUSE(Name, Class) \
213+
// IMPL-NEXT: CLAUSE(TDLC_##Name, #Name, /* Implicit */ false) \
214+
// IMPL-NEXT: CLAUSE_CLASS(TDLC_##Name, #Name, Class)
215+
// IMPL-NEXT: #define __CLAUSE_NO_CLASS(Name) \
216+
// IMPL-NEXT: CLAUSE(TDLC_##Name, #Name, /* Implicit */ false) \
217+
// IMPL-NEXT: CLAUSE_NO_CLASS(TDLC_##Name, #Name)
218+
// IMPL-NEXT: #define __IMPLICIT_CLAUSE_CLASS(Name, Str, Class) \
219+
// IMPL-NEXT: CLAUSE(TDLC_##Name, Str, /* Implicit */ true) \
220+
// IMPL-NEXT: CLAUSE_CLASS(TDLC_##Name, Str, Class)
221+
// IMPL-NEXT: #define __IMPLICIT_CLAUSE_NO_CLASS(Name, Str) \
222+
// IMPL-NEXT: CLAUSE(TDLC_##Name, Str, /* Implicit */ true) \
223+
// IMPL-NEXT: CLAUSE_NO_CLASS(TDLC_##Name, Str)
224+
// IMPL-EMPTY:
225+
// IMPL-NEXT: __CLAUSE_NO_CLASS(clausea)
226+
// IMPL-NEXT: __CLAUSE_NO_CLASS(clauseb)
227+
// IMPL-EMPTY:
228+
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_NO_CLASS
229+
// IMPL-NEXT: #undef __IMPLICIT_CLAUSE_CLASS
230+
// IMPL-NEXT: #undef __CLAUSE
231+
// IMPL-NEXT: #undef CLAUSE_NO_CLASS
232+
// IMPL-NEXT: #undef CLAUSE_CLASS
233+
// IMPL-NEXT: #undef CLAUSE
234+
// IMPL-EMPTY:
235+
// IMPL-NEXT: #endif // GEN_CLANG_CLAUSE_CLASS
236+
// IMPL-EMPTY:
237+
238+
// IMPL: #ifdef GEN_DIRECTIVES_IMPL
239+
// IMPL-NEXT: #undef GEN_DIRECTIVES_IMPL
110240
// IMPL-EMPTY:
111241
// IMPL-NEXT: Directive llvm::tdl::getTdlDirectiveKind(llvm::StringRef Str) {
112242
// IMPL-NEXT: return llvm::StringSwitch<Directive>(Str)
@@ -177,102 +307,4 @@ def TDL_DirA : Directive<"dira"> {
177307
// IMPL-NEXT: llvm_unreachable("Invalid Tdl Directive kind");
178308
// IMPL-NEXT: }
179309
// IMPL-EMPTY:
180-
181-
182-
183-
// GEN: #ifdef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
184-
// GEN-NEXT: #undef GEN_FLANG_DIRECTIVE_CLAUSE_SETS
185-
// GEN-EMPTY:
186-
// GEN-NEXT: namespace llvm {
187-
// GEN-NEXT: namespace tdl {
188-
// GEN-EMPTY:
189-
// GEN-NEXT: // Sets for dira
190-
// GEN-EMPTY:
191-
// GEN-NEXT: static allowedClauses_TDLD_dira {
192-
// GEN-NEXT: llvm::tdl::Clause::TDLC_clausea,
193-
// GEN-NEXT: llvm::tdl::Clause::TDLC_clauseb,
194-
// GEN-NEXT: };
195-
// GEN-EMPTY:
196-
// GEN-NEXT: static allowedOnceClauses_TDLD_dira {
197-
// GEN-NEXT: };
198-
// GEN-EMPTY:
199-
// GEN-NEXT: static allowedExclusiveClauses_TDLD_dira {
200-
// GEN-NEXT: };
201-
// GEN-EMPTY:
202-
// GEN-NEXT: static requiredClauses_TDLD_dira {
203-
// GEN-NEXT: };
204-
// GEN-NEXT: } // namespace tdl
205-
// GEN-NEXT: } // namespace llvm
206-
// GEN-EMPTY:
207-
// GEN-NEXT: #endif // GEN_FLANG_DIRECTIVE_CLAUSE_SETS
208-
// GEN-EMPTY:
209-
// GEN-NEXT: #ifdef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
210-
// GEN-NEXT: #undef GEN_FLANG_DIRECTIVE_CLAUSE_MAP
211-
// GEN-EMPTY:
212-
// GEN-NEXT: {
213-
// GEN-NEXT: {llvm::tdl::Directive::TDLD_dira,
214-
// GEN-NEXT: {
215-
// GEN-NEXT: llvm::tdl::allowedClauses_TDLD_dira,
216-
// GEN-NEXT: llvm::tdl::allowedOnceClauses_TDLD_dira,
217-
// GEN-NEXT: llvm::tdl::allowedExclusiveClauses_TDLD_dira,
218-
// GEN-NEXT: llvm::tdl::requiredClauses_TDLD_dira,
219-
// GEN-NEXT: }
220-
// GEN-NEXT: },
221-
// GEN-NEXT: }
222-
// GEN-EMPTY:
223-
// GEN-NEXT: #endif // GEN_FLANG_DIRECTIVE_CLAUSE_MAP
224-
// GEN-EMPTY:
225-
// GEN-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES
226-
// GEN-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_CLASSES
227-
// GEN-EMPTY:
228-
// GEN-NEXT: EMPTY_CLASS(Clausea);
229-
// GEN-NEXT: WRAPPER_CLASS(Clauseb, std::optional<IntExpr>);
230-
// GEN-EMPTY:
231-
// GEN-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_CLASSES
232-
// GEN-EMPTY:
233-
// GEN-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
234-
// GEN-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
235-
// GEN-EMPTY:
236-
// GEN-NEXT: Clausea
237-
// GEN-NEXT: , Clauseb
238-
// GEN-EMPTY:
239-
// GEN-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_CLASSES_LIST
240-
// GEN-EMPTY:
241-
// GEN-NEXT: #ifdef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
242-
// GEN-NEXT: #undef GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
243-
// GEN-EMPTY:
244-
// GEN-NEXT: NODE(TdlClause, Clausea)
245-
// GEN-NEXT: NODE(TdlClause, Clauseb)
246-
// GEN-EMPTY:
247-
// GEN-NEXT: #endif // GEN_FLANG_DUMP_PARSE_TREE_CLAUSES
248-
// GEN-EMPTY:
249-
// GEN-NEXT: #ifdef GEN_FLANG_CLAUSE_UNPARSE
250-
// GEN-NEXT: #undef GEN_FLANG_CLAUSE_UNPARSE
251-
// GEN-EMPTY:
252-
// GEN-NEXT: void Before(const TdlClause::Clausea &) { Word("CLAUSEA"); }
253-
// GEN-NEXT: void Unparse(const TdlClause::Clauseb &x) {
254-
// GEN-NEXT: Word("CLAUSEB");
255-
// GEN-NEXT: Walk("(", x.v, ")");
256-
// GEN-NEXT: }
257-
// GEN-EMPTY:
258-
// GEN-NEXT: #endif // GEN_FLANG_CLAUSE_UNPARSE
259-
// GEN-EMPTY:
260-
// GEN-NEXT: #ifdef GEN_FLANG_CLAUSE_CHECK_ENTER
261-
// GEN-NEXT: #undef GEN_FLANG_CLAUSE_CHECK_ENTER
262-
// GEN-EMPTY:
263-
// GEN-NEXT: void Enter(const parser::TdlClause::Clausea &);
264-
// GEN-NEXT: void Enter(const parser::TdlClause::Clauseb &);
265-
// GEN-EMPTY:
266-
// GEN-NEXT: #endif // GEN_FLANG_CLAUSE_CHECK_ENTER
267-
// GEN-EMPTY:
268-
// GEN-NEXT: #ifdef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
269-
// GEN-NEXT: #undef GEN_FLANG_CLAUSE_PARSER_KIND_MAP
270-
// GEN-EMPTY:
271-
// GEN-NEXT: if constexpr (std::is_same_v<A, parser::TdlClause::Clausea>)
272-
// GEN-NEXT: return llvm::tdl::Clause::TDLC_clausea;
273-
// GEN-NEXT: if constexpr (std::is_same_v<A, parser::TdlClause::Clauseb>)
274-
// GEN-NEXT: return llvm::tdl::Clause::TDLC_clauseb;
275-
// GEN-NEXT: llvm_unreachable("Invalid Tdl Parser clause");
276-
// GEN-EMPTY:
277-
// GEN-NEXT: #endif // GEN_FLANG_CLAUSE_PARSER_KIND_MAP
278-
// GEN-EMPTY:
310+
// IMPL-NEXT: #endif // GEN_DIRECTIVES_IMPL

0 commit comments

Comments
 (0)