summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Analysis/NestedMatcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Analysis/NestedMatcher.cpp')
-rw-r--r--mlir/lib/Analysis/NestedMatcher.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/mlir/lib/Analysis/NestedMatcher.cpp b/mlir/lib/Analysis/NestedMatcher.cpp
index 43e3b332a58..46bf5ad0b97 100644
--- a/mlir/lib/Analysis/NestedMatcher.cpp
+++ b/mlir/lib/Analysis/NestedMatcher.cpp
@@ -51,10 +51,12 @@ llvm::BumpPtrAllocator *&NestedPattern::allocator() {
NestedPattern::NestedPattern(Instruction::Kind k,
ArrayRef<NestedPattern> nested,
FilterFunctionType filter)
- : kind(k), nestedPatterns(ArrayRef<NestedPattern>(nested)), filter(filter) {
- auto *newNested = allocator()->Allocate<NestedPattern>(nested.size());
- std::uninitialized_copy(nested.begin(), nested.end(), newNested);
- nestedPatterns = ArrayRef<NestedPattern>(newNested, nested.size());
+ : kind(k), nestedPatterns(), filter(filter), skip(nullptr) {
+ if (!nested.empty()) {
+ auto *newNested = allocator()->Allocate<NestedPattern>(nested.size());
+ std::uninitialized_copy(nested.begin(), nested.end(), newNested);
+ nestedPatterns = ArrayRef<NestedPattern>(newNested, nested.size());
+ }
}
unsigned NestedPattern::getDepth() const {
OpenPOWER on IntegriCloud