Skip to content

Commit d73ca63

Browse files
SC llvm teamSC llvm team
SC llvm team
authored and
SC llvm team
committed
Merged main:02d27eac0f3f into amd-gfx:4e43160dfb0f
Local branch amd-gfx 4e43160 Merged main:d61ba038a9d4 into amd-gfx:41e3ec0eb900 Remote branch main 02d27ea [mlir][Linalg] NFC - Simplify transform script
2 parents 4e43160 + 02d27ea commit d73ca63

File tree

39 files changed

+1175
-604
lines changed

39 files changed

+1175
-604
lines changed

.github/new-prs-labeler.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,11 @@ debuginfo:
362362
github:workflow:
363363
- .github/workflows/**
364364

365+
cmake:
366+
- cmake/**
367+
- llvm/cmake/**
368+
- runtimes/**
369+
365370
flang:driver:
366371
- flang/tools/flang-driver/**
367372
- flang/unittests/Frontend/**
@@ -381,15 +386,12 @@ backend:m68k:
381386

382387
libc++:
383388
- libcxx/**
384-
- runtimes/**
385389

386390
libc++abi:
387391
- libcxxabi/**
388-
- runtimes/**
389392

390393
libunwind:
391394
- libunwind/**
392-
- runtimes/**
393395

394396
objectyaml:
395397
- llvm/include/llvm/ObjectYAML/**

clang/lib/Format/ContinuationIndenter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,8 +2242,10 @@ ContinuationIndenter::createBreakableToken(const FormatToken &Current,
22422242
return nullptr;
22432243

22442244
// Strings in TypeScript types and dictionary keys can not be broken.
2245-
if (Style.isJavaScript() && (Current.is(TT_SelectorName) ||
2246-
State.Line->startsWith(Keywords.kw_type))) {
2245+
if (Style.isJavaScript() &&
2246+
(Current.is(TT_SelectorName) ||
2247+
State.Line->startsWith(Keywords.kw_type) ||
2248+
State.Line->startsWith(tok::kw_export, Keywords.kw_type))) {
22472249
return nullptr;
22482250
}
22492251

clang/unittests/Format/FormatTestJS.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,6 +1604,9 @@ TEST_F(FormatTestJS, StringLiteralConcatenation) {
16041604
verifyFormat("/* type */ type x =\n"
16051605
" 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';",
16061606
getGoogleJSStyleWithColumns(20));
1607+
verifyFormat("export type x =\n"
1608+
" 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';",
1609+
getGoogleJSStyleWithColumns(20));
16071610
// Dictionary keys can't be broken. Values can be broken.
16081611
verifyFormat("var w = {\n"
16091612
" 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx':\n"

libc/config/linux/app.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ struct TLSImage {
4242
// ABI specifies it as an 8 byte value. Likewise, in the ARM64 ABI, arguments
4343
// are usually passed in registers. x0 is a doubleword register, so this is
4444
// 64 bit for aarch64 as well.
45-
typedef uint64_t ArgcType;
45+
typedef uintptr_t ArgcType;
4646

4747
// At the language level, argv is a char** value. However, we use uint64_t as
4848
// ABIs specify the argv vector be an |argc| long array of 8-byte values.
49-
typedef uint64_t ArgVEntryType;
49+
typedef uintptr_t ArgVEntryType;
50+
51+
typedef uintptr_t EnvironType;
52+
typedef uintptr_t AuxEntryType;
5053
#else
5154
#error "argc and argv types are not defined for the target platform."
5255
#endif
@@ -74,7 +77,7 @@ struct AppProperties {
7477
TLSImage tls;
7578

7679
// Environment data.
77-
uint64_t *envPtr;
80+
EnvironType *envPtr;
7881
};
7982

8083
extern AppProperties app;

libc/src/__support/CPP/limits.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ namespace cpp {
1717
// Some older gcc distributions don't define these for 32 bit targets.
1818
#ifndef LLONG_MAX
1919
constexpr size_t LLONG_BIT_WIDTH = sizeof(long long) * 8;
20-
constexpr long long LLONG_MAX = ~0LL ^ (1LL << LLONG_BIT_WIDTH - 1);
21-
constexpr long long LLONG_MIN = 1LL << LLONG_BIT_WIDTH - 1;
20+
constexpr long long LLONG_MAX = ~0LL ^ (1LL << (LLONG_BIT_WIDTH - 1));
21+
constexpr long long LLONG_MIN = 1LL << (LLONG_BIT_WIDTH - 1);
2222
constexpr unsigned long long ULLONG_MAX = ~0ULL;
2323
#endif
2424

libc/startup/linux/riscv64/start.cpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,20 @@ using __llvm_libc::app;
118118

119119
// TODO: Would be nice to use the aux entry structure from elf.h when available.
120120
struct AuxEntry {
121-
uint64_t type;
122-
uint64_t value;
121+
__llvm_libc::AuxEntryType type;
122+
__llvm_libc::AuxEntryType value;
123123
};
124124

125+
#if defined(LIBC_TARGET_ARCH_IS_X86_64) || \
126+
defined(LIBC_TARGET_ARCH_IS_AARCH64) || \
127+
defined(LIBC_TARGET_ARCH_IS_RISCV64)
128+
typedef Elf64_Phdr PgrHdrTableType;
129+
#elif defined(LIBC_TARGET_ARCH_IS_RISCV32)
130+
typedef Elf32_Phdr PgrHdrTableType;
131+
#else
132+
#error "Program header table type is not defined for the target platform."
133+
#endif
134+
125135
__attribute__((noinline)) static void do_start() {
126136
LIBC_INLINE_ASM(".option push\n\t"
127137
".option norelax\n\t"
@@ -135,8 +145,8 @@ __attribute__((noinline)) static void do_start() {
135145
// After the argv array, is a 8-byte long NULL value before the array of env
136146
// values. The end of the env values is marked by another 8-byte long NULL
137147
// value. We step over it (the "+ 1" below) to get to the env values.
138-
uint64_t *env_ptr = app.args->argv + app.args->argc + 1;
139-
uint64_t *env_end_marker = env_ptr;
148+
__llvm_libc::ArgVEntryType *env_ptr = app.args->argv + app.args->argc + 1;
149+
__llvm_libc::ArgVEntryType *env_end_marker = env_ptr;
140150
app.envPtr = env_ptr;
141151
while (*env_end_marker)
142152
++env_end_marker;
@@ -146,13 +156,13 @@ __attribute__((noinline)) static void do_start() {
146156

147157
// After the env array, is the aux-vector. The end of the aux-vector is
148158
// denoted by an AT_NULL entry.
149-
Elf64_Phdr *programHdrTable = nullptr;
159+
PgrHdrTableType *programHdrTable = nullptr;
150160
uintptr_t programHdrCount;
151161
for (AuxEntry *aux_entry = reinterpret_cast<AuxEntry *>(env_end_marker + 1);
152162
aux_entry->type != AT_NULL; ++aux_entry) {
153163
switch (aux_entry->type) {
154164
case AT_PHDR:
155-
programHdrTable = reinterpret_cast<Elf64_Phdr *>(aux_entry->value);
165+
programHdrTable = reinterpret_cast<PgrHdrTableType *>(aux_entry->value);
156166
break;
157167
case AT_PHNUM:
158168
programHdrCount = aux_entry->value;
@@ -167,7 +177,7 @@ __attribute__((noinline)) static void do_start() {
167177

168178
app.tls.size = 0;
169179
for (uintptr_t i = 0; i < programHdrCount; ++i) {
170-
Elf64_Phdr *phdr = programHdrTable + i;
180+
PgrHdrTableType *phdr = programHdrTable + i;
171181
if (phdr->p_type != PT_TLS)
172182
continue;
173183
// TODO: p_vaddr value has to be adjusted for static-pie executables.

libc/test/src/ctype/isprint_test.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@
1111

1212
TEST(LlvmLibcIsPrint, DefaultLocale) {
1313
for (int ch = -255; ch < 255; ++ch) {
14-
if (' ' <= ch && ch <= '~') // A-Z, a-z, 0-9, punctuation, space.
14+
if (' ' <= ch && ch <= '~') { // A-Z, a-z, 0-9, punctuation, space.
1515
EXPECT_NE(__llvm_libc::isprint(ch), 0);
16-
else
16+
} else {
1717
EXPECT_EQ(__llvm_libc::isprint(ch), 0);
18+
}
1819
}
1920
}

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
/* Indicate that this is LLVM compiled from the amd-gfx branch. */
1818
#define LLVM_HAVE_BRANCH_AMD_GFX
19-
#define LLVM_MAIN_REVISION 474705
19+
#define LLVM_MAIN_REVISION 474717
2020

2121
/* Define if LLVM_ENABLE_DUMP is enabled */
2222
#cmakedefine LLVM_ENABLE_DUMP

llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7510,7 +7510,9 @@ AArch64TargetLowering::LowerCall(CallLoweringInfo &CLI,
75107510
// Ensure we generate all stores for each tuple part, whilst updating the
75117511
// pointer after each store correctly using vscale.
75127512
while (NumParts) {
7513-
Chain = DAG.getStore(Chain, DL, OutVals[i], Ptr, MPI);
7513+
SDValue Store = DAG.getStore(Chain, DL, OutVals[i], Ptr, MPI);
7514+
MemOpChains.push_back(Store);
7515+
75147516
NumParts--;
75157517
if (NumParts > 0) {
75167518
SDValue BytesIncrement;

llvm/lib/Transforms/Utils/SimplifyCFG.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6077,8 +6077,9 @@ SwitchLookupTable::SwitchLookupTable(
60776077
bool LinearMappingPossible = true;
60786078
APInt PrevVal;
60796079
APInt DistToPrev;
6080-
// When linear map is monotonic, we can attach nsw.
6081-
bool Wrapped = false;
6080+
// When linear map is monotonic and signed overflow doesn't happen on
6081+
// maximum index, we can attach nsw on Add and Mul.
6082+
bool NonMonotonic = false;
60826083
assert(TableSize >= 2 && "Should be a SingleValue table.");
60836084
// Check if there is the same distance between two consecutive values.
60846085
for (uint64_t I = 0; I < TableSize; ++I) {
@@ -6098,15 +6099,18 @@ SwitchLookupTable::SwitchLookupTable(
60986099
LinearMappingPossible = false;
60996100
break;
61006101
}
6101-
Wrapped |=
6102+
NonMonotonic |=
61026103
Dist.isStrictlyPositive() ? Val.sle(PrevVal) : Val.sgt(PrevVal);
61036104
}
61046105
PrevVal = Val;
61056106
}
61066107
if (LinearMappingPossible) {
61076108
LinearOffset = cast<ConstantInt>(TableContents[0]);
61086109
LinearMultiplier = ConstantInt::get(M.getContext(), DistToPrev);
6109-
LinearMapValWrapped = Wrapped;
6110+
bool MayWrap = false;
6111+
APInt M = LinearMultiplier->getValue();
6112+
(void)M.smul_ov(APInt(M.getBitWidth(), TableSize - 1), MayWrap);
6113+
LinearMapValWrapped = NonMonotonic || MayWrap;
61106114
Kind = LinearMapKind;
61116115
++NumLinearMaps;
61126116
return;

llvm/test/CodeGen/AArch64/arm64ec-varargs.ll

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ define void @varargs_caller() nounwind {
3535
; CHECK-NEXT: sub sp, sp, #48
3636
; CHECK-NEXT: mov x4, sp
3737
; CHECK-NEXT: add x8, sp, #16
38-
; CHECK-NEXT: mov x9, #4617315517961601024
39-
; CHECK-NEXT: mov x0, #4607182418800017408
40-
; CHECK-NEXT: mov w1, #2
41-
; CHECK-NEXT: mov x2, #4613937818241073152
42-
; CHECK-NEXT: mov w3, #4
43-
; CHECK-NEXT: mov w5, #16
38+
; CHECK-NEXT: mov x9, #4617315517961601024 // =0x4014000000000000
39+
; CHECK-NEXT: mov x0, #4607182418800017408 // =0x3ff0000000000000
40+
; CHECK-NEXT: mov w1, #2 // =0x2
41+
; CHECK-NEXT: mov x2, #4613937818241073152 // =0x4008000000000000
42+
; CHECK-NEXT: mov w3, #4 // =0x4
43+
; CHECK-NEXT: mov w5, #16 // =0x10
4444
; CHECK-NEXT: stp xzr, x30, [sp, #24] // 8-byte Folded Spill
45-
; CHECK-NEXT: stp x8, xzr, [sp, #8]
46-
; CHECK-NEXT: str x9, [sp]
45+
; CHECK-NEXT: stp x9, x8, [sp]
46+
; CHECK-NEXT: str xzr, [sp, #16]
4747
; CHECK-NEXT: bl varargs_callee
4848
; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload
4949
; CHECK-NEXT: add sp, sp, #48
@@ -70,17 +70,17 @@ define void @varargs_many_argscalleer() nounwind {
7070
; CHECK: // %bb.0:
7171
; CHECK-NEXT: sub sp, sp, #64
7272
; CHECK-NEXT: movi v0.2d, #0000000000000000
73-
; CHECK-NEXT: mov x4, sp
74-
; CHECK-NEXT: mov x8, #4618441417868443648
73+
; CHECK-NEXT: mov x8, #4618441417868443648 // =0x4018000000000000
7574
; CHECK-NEXT: add x9, sp, #16
7675
; CHECK-NEXT: add x3, sp, #32
77-
; CHECK-NEXT: mov x0, #4607182418800017408
78-
; CHECK-NEXT: mov x1, #4611686018427387904
79-
; CHECK-NEXT: mov x2, #4613937818241073152
80-
; CHECK-NEXT: mov w5, #16
76+
; CHECK-NEXT: mov x0, #4607182418800017408 // =0x3ff0000000000000
77+
; CHECK-NEXT: mov x1, #4611686018427387904 // =0x4000000000000000
78+
; CHECK-NEXT: mov x2, #4613937818241073152 // =0x4008000000000000
79+
; CHECK-NEXT: mov x4, sp
80+
; CHECK-NEXT: mov w5, #16 // =0x10
8181
; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill
82-
; CHECK-NEXT: stp q0, q0, [sp, #16]
8382
; CHECK-NEXT: stp x9, x8, [sp]
83+
; CHECK-NEXT: stp q0, q0, [sp, #16]
8484
; CHECK-NEXT: bl varargs_many_argscallee
8585
; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload
8686
; CHECK-NEXT: add sp, sp, #64

llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ define float @foo1(ptr %x0, ptr %x1, ptr %x2) nounwind {
1818
; CHECK-NEXT: ld4d { z16.d - z19.d }, p0/z, [x1]
1919
; CHECK-NEXT: ld1d { z5.d }, p0/z, [x2]
2020
; CHECK-NEXT: ptrue p0.d
21-
; CHECK-NEXT: st1d { z16.d }, p0, [sp]
22-
; CHECK-NEXT: st1d { z17.d }, p0, [sp, #1, mul vl]
23-
; CHECK-NEXT: st1d { z18.d }, p0, [sp, #2, mul vl]
2421
; CHECK-NEXT: st1d { z19.d }, p0, [sp, #3, mul vl]
22+
; CHECK-NEXT: st1d { z18.d }, p0, [sp, #2, mul vl]
23+
; CHECK-NEXT: st1d { z17.d }, p0, [sp, #1, mul vl]
24+
; CHECK-NEXT: st1d { z16.d }, p0, [sp]
2525
; CHECK-NEXT: bl callee1
2626
; CHECK-NEXT: addvl sp, sp, #4
2727
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
@@ -73,10 +73,10 @@ define float @foo2(ptr %x0, ptr %x1) nounwind {
7373
; CHECK-NEXT: ld4d { z16.d - z19.d }, p0/z, [x1]
7474
; CHECK-NEXT: ptrue p0.d
7575
; CHECK-NEXT: mov w1, #1 // =0x1
76-
; CHECK-NEXT: st1d { z16.d }, p0, [x8]
77-
; CHECK-NEXT: st1d { z17.d }, p0, [x8, #1, mul vl]
76+
; CHECK-NEXT: st1d { z19.d }, p0, [x8, #3, mul vl]
7877
; CHECK-NEXT: st1d { z18.d }, p0, [x8, #2, mul vl]
79-
; CHECK-NEXT: st1d { z19.d }, p0, [x9, #3, mul vl]
78+
; CHECK-NEXT: st1d { z17.d }, p0, [x8, #1, mul vl]
79+
; CHECK-NEXT: st1d { z16.d }, p0, [x9]
8080
; CHECK-NEXT: str x8, [sp]
8181
; CHECK-NEXT: bl callee2
8282
; CHECK-NEXT: addvl sp, sp, #4
@@ -121,9 +121,9 @@ define float @foo3(ptr %x0, ptr %x1, ptr %x2) nounwind {
121121
; CHECK-NEXT: ld3d { z16.d - z18.d }, p0/z, [x1]
122122
; CHECK-NEXT: ld1d { z6.d }, p0/z, [x2]
123123
; CHECK-NEXT: ptrue p0.d
124-
; CHECK-NEXT: st1d { z16.d }, p0, [sp]
125-
; CHECK-NEXT: st1d { z17.d }, p0, [sp, #1, mul vl]
126124
; CHECK-NEXT: st1d { z18.d }, p0, [sp, #2, mul vl]
125+
; CHECK-NEXT: st1d { z17.d }, p0, [sp, #1, mul vl]
126+
; CHECK-NEXT: st1d { z16.d }, p0, [sp]
127127
; CHECK-NEXT: bl callee3
128128
; CHECK-NEXT: addvl sp, sp, #3
129129
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
@@ -704,17 +704,21 @@ define void @verify_all_operands_are_initialised() {
704704
; CHECK-NEXT: .cfi_escape 0x0f, 0x0c, 0x8f, 0x00, 0x11, 0x20, 0x22, 0x11, 0x08, 0x92, 0x2e, 0x00, 0x1e, 0x22 // sp + 32 + 8 * VG
705705
; CHECK-NEXT: .cfi_offset w30, -8
706706
; CHECK-NEXT: .cfi_offset w29, -16
707+
; CHECK-NEXT: ptrue p0.s
707708
; CHECK-NEXT: movi d0, #0000000000000000
708709
; CHECK-NEXT: fmov s1, #1.00000000
710+
; CHECK-NEXT: fmov z16.s, #9.00000000
709711
; CHECK-NEXT: mov w8, #1090519040 // =0x41000000
712+
; CHECK-NEXT: add x0, sp, #16
710713
; CHECK-NEXT: fmov s2, #2.00000000
711714
; CHECK-NEXT: fmov s3, #3.00000000
712-
; CHECK-NEXT: add x0, sp, #16
715+
; CHECK-NEXT: add x9, sp, #16
713716
; CHECK-NEXT: fmov s4, #4.00000000
714717
; CHECK-NEXT: fmov s5, #5.00000000
715-
; CHECK-NEXT: str w8, [sp]
716718
; CHECK-NEXT: fmov s6, #6.00000000
717719
; CHECK-NEXT: fmov s7, #7.00000000
720+
; CHECK-NEXT: st1w { z16.s }, p0, [x9]
721+
; CHECK-NEXT: str w8, [sp]
718722
; CHECK-NEXT: bl func_f8_and_v0_passed_via_memory
719723
; CHECK-NEXT: addvl sp, sp, #1
720724
; CHECK-NEXT: add sp, sp, #16

llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2039,3 +2039,32 @@ return:
20392039
%x = phi i8 [ 3, %sw.default ], [ 124, %sw.bb3 ], [ -99, %sw.bb2 ], [ -66, %sw.bb1 ], [ -33, %entry ]
20402040
ret i8 %x
20412041
}
2042+
2043+
define i8 @linearmap_dec_wrapped_mon(i3 %0) {
2044+
; CHECK-LABEL: @linearmap_dec_wrapped_mon(
2045+
; CHECK-NEXT: entry:
2046+
; CHECK-NEXT: [[SWITCH_TABLEIDX:%.*]] = sub i3 [[TMP0:%.*]], -2
2047+
; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i3 [[SWITCH_TABLEIDX]], -4
2048+
; CHECK-NEXT: [[SWITCH_IDX_MULT:%.*]] = mul i3 [[SWITCH_TABLEIDX]], 2
2049+
; CHECK-NEXT: [[SWITCH_OFFSET:%.*]] = add i3 [[SWITCH_IDX_MULT]], -4
2050+
; CHECK-NEXT: [[COND:%.*]] = select i1 [[TMP1]], i3 [[SWITCH_OFFSET]], i3 2
2051+
; CHECK-NEXT: [[CONV:%.*]] = sext i3 [[COND]] to i8
2052+
; CHECK-NEXT: ret i8 [[CONV]]
2053+
;
2054+
entry:
2055+
switch i3 %0, label %cond.end [
2056+
i3 -1, label %cond.false
2057+
i3 -2, label %cond.false
2058+
i3 1, label %cond.false
2059+
i3 0, label %cond.false
2060+
]
2061+
2062+
cond.false: ; preds = %entry, %entry, %entry, %entry
2063+
%mul = shl nsw i3 %0, 1
2064+
br label %cond.end
2065+
2066+
cond.end: ; preds = %entry, %cond.false
2067+
%cond = phi i3 [ %mul, %cond.false ], [ 2, %entry ]
2068+
%conv = sext i3 %cond to i8
2069+
ret i8 %conv
2070+
}

llvm/utils/lit/lit/TestingConfig.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44

55
class TestingConfig(object):
6-
""" "
6+
"""
77
TestingConfig - Information on the tests inside a suite.
88
"""
99

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//===- BufferDeallocationOpInterfaceImpl.h ----------------------*- C++ -*-===//
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+
#ifndef MLIR_DIALECT_ARITH_TRANSFORMS_BUFFERDEALLOCATIONOPINTERFACEIMPL_H
10+
#define MLIR_DIALECT_ARITH_TRANSFORMS_BUFFERDEALLOCATIONOPINTERFACEIMPL_H
11+
12+
namespace mlir {
13+
14+
class DialectRegistry;
15+
16+
namespace arith {
17+
void registerBufferDeallocationOpInterfaceExternalModels(
18+
DialectRegistry &registry);
19+
} // namespace arith
20+
} // namespace mlir
21+
22+
#endif // MLIR_DIALECT_ARITH_TRANSFORMS_BUFFERDEALLOCATIONOPINTERFACEIMPL_H

0 commit comments

Comments
 (0)