/llvm-project/llvm/test/Analysis/BasicAA/ |
H A D | libfuncs-darwin.ll | 7 define void @test_memset_pattern4_const_size(ptr noalias %a, ptr noalias %pattern) { 9 ; CHECK: Just Mod: Ptr: i8* %a <-> call void @memset_pattern4(ptr %a, ptr %pattern, i64 17) 10 ; CHECK-NEXT: Just Ref: Ptr: i8* %pattern <-> call void @memset_pattern4(ptr %a, ptr %pattern, i… 11 ; CHECK-NEXT: Just Mod: Ptr: i8* %a.gep.1 <-> call void @memset_pattern4(ptr %a, ptr %pattern, i… 12 ; CHECK-NEXT: NoModRef: Ptr: i8* %a.gep.17 <-> call void @memset_pattern4(ptr %a, ptr %pattern, … 13 ; CHECK-NEXT: Just Ref: Ptr: i8* %pattern.gep.3 <-> call void @memset_pattern4(ptr %a, ptr %patt… 14 ; CHECK-NEXT: NoModRef: Ptr: i8* %pattern.gep.4 <-> call void @memset_pattern4(ptr %a, ptr %patt… 18 load i8, ptr %pattern 19 call void @memset_pattern4(ptr %a, ptr %pattern, i64 17) 25 %pattern.gep.3 = getelementptr i8, ptr %pattern, i32 3 [all …]
|
/llvm-project/clang/test/CodeCompletion/ |
H A D | attr.cpp | 3 // STD: COMPLETION: Pattern : __carries_dependency__ 4 // STD-NOT: COMPLETION: Pattern : __convergent__ 5 // STD: COMPLETION: Pattern : __gnu__::__used__ 6 // STD-NOT: COMPLETION: Pattern : __gnu__::used 7 // STD-NOT: COMPLETION: Pattern : __used__ 8 // STD: COMPLETION: Pattern : _Clang::__convergent__ 9 // STD: COMPLETION: Pattern : carries_dependency 10 // STD-NOT: COMPLETION: Pattern : clang::called_once 11 // STD: COMPLETION: Pattern : clang::convergent 12 // STD-NOT: COMPLETION: Pattern : convergent [all …]
|
H A D | ordinary-name-cxx11.cpp | 14 // CHECK-CC1-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>) 15 // CHECK-CC1: COMPLETION: Pattern : [#void#]delete <#expression#> 16 // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#> 17 // CHECK-CC1-NEXT: COMPLETION: Pattern : do { 21 // CHECK-CC1-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>) 24 // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]false 27 …// CHECK-CC1-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#… 28 // CHECK-CC1: COMPLETION: Pattern : goto <#label#>; 29 // CHECK-CC1-NEXT: COMPLETION: Pattern : if (<#condition#>) { 34 // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>) [all …]
|
H A D | ordinary-name.cpp | 12 // CHECK-CC1-NEXT: COMPLETION: Pattern : const_cast<<#type#>>(<#expression#>) 13 // CHECK-CC1: COMPLETION: Pattern : [#void#]delete <#expression#> 14 // CHECK-CC1-NEXT: COMPLETION: Pattern : [#void#]delete [] <#expression#> 15 // CHECK-CC1-NEXT: COMPLETION: Pattern : do { 19 // CHECK-CC1-NEXT: COMPLETION: Pattern : dynamic_cast<<#type#>>(<#expression#>) 22 // CHECK-CC1-NEXT: COMPLETION: Pattern : [#bool#]false 25 …// CHECK-CC1-NEXT: COMPLETION: Pattern : for (<#init-statement#>; <#condition#>; <#inc-expression#… 28 // CHECK-CC1: COMPLETION: Pattern : goto <#label#>; 29 // CHECK-CC1-NEXT: COMPLETION: Pattern : if (<#condition#>) { 34 // CHECK-CC1-NEXT: COMPLETION: Pattern : new <#type#>(<#expressions#>) [all …]
|
H A D | patterns.cpp | 16 // LOOP: COMPLETION: Pattern : break;{{$}} 17 // LOOP: COMPLETION: Pattern : continue;{{$}} 18 // LOOP: COMPLETION: Pattern : goto <#label#>;{{$}} 19 // LOOP: COMPLETION: Pattern : return;{{$}} 22 // OUTSIDE-LOOP-NOT: COMPLETION: Pattern : break;{{$}} 23 // OUTSIDE-LOOP-NOT: COMPLETION: Pattern : continue;{{$}} 24 // OUTSIDE-LOOP: COMPLETION: Pattern : goto <#label#>;{{$}} 25 // OUTSIDE-LOOP: COMPLETION: Pattern : return;{{$}} 44 // RETURN-VAL-NOT: COMPLETION: Pattern : return; 45 // RETURN-VAL-NOT: COMPLETION: Pattern : return false; [all …]
|
/llvm-project/llvm/lib/Target/MSP430/ |
H A D | MSP430InstrFormats.td | 47 dag outs, dag ins, string asmstr, list<dag> pattern> 49 let Pattern = pattern; 64 dag outs, dag ins, string asmstr, list<dag> pattern> 65 : IForm<opcode, dest, 1, src, size, outs, ins, asmstr, pattern>; 68 dag outs, dag ins, string asmstr, list<dag> pattern> 69 : IForm8<opcode, DstReg, SrcReg, 2, outs, ins, asmstr, pattern> { 74 dag outs, dag ins, string asmstr, list<dag> pattern> 75 : IForm8<opcode, DstReg, SrcImm, 4, outs, ins, asmstr, pattern> { 83 dag outs, dag ins, string asmstr, list<dag> pattern> 86 let Pattern = pattern; [all …]
|
/llvm-project/libcxx/test/std/ranges/range.adaptors/range.lazy.split/ |
H A D | constraints.compile.pass.cpp | 14 // template<input_range V, forward_range Pattern> 15 // requires view<V> && view<Pattern> && 16 // indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && 17 // (forward_range<V> || tiny-range<Pattern>) 32 template <class View, class Pattern> 34 typename std::ranges::lazy_split_view<View, Pattern>; 37 // All constraints satisfied (`View` and `Pattern` are forward views). 41 using Pattern = ForwardView; typedef 43 static_assert( std::ranges::forward_range<Pattern>); 45 static_assert( std::ranges::view<Pattern>); [all …]
|
/llvm-project/mlir/docs/ |
H A D | PatternRewriter.md | 1 # Pattern Rewriting : Generic DAG-to-DAG Rewriting 5 This document details the design and API of the pattern rewriting infrastructure 16 The pattern rewriting framework can largely be decomposed into two parts: 17 Pattern Definition and Pattern Application. 27 This is the expected benefit of applying a given pattern. This benefit is static 28 upon construction of the pattern, but may be computed dynamically at pattern 31 performing pattern fusion and compiling patterns into an efficient state 35 almost all cases: you can simply instantiate the same pattern on [all...] |
/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCInstrFormats.td | 135 InstrItinClass itin, list<dag> pattern> 137 let Pattern = pattern; 230 list<dag> pattern> 234 let Pattern = pattern; 243 InstrItinClass itin, list<dag> pattern> 249 let Pattern = pattern; 257 InstrItinClass itin, list<dag> pattern> [all...] |
/llvm-project/clang/test/CodeGenCXX/ |
H A D | trivial-auto-var-init.cpp | 2 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=pattern %s -emit-llvm -o - | FileCheck %s -check-prefix=PATTERN 6 // PATTERN-NOT: undef 16 // PATTERN-LABEL: test_selfinit( 17 // PATTERN: store i32 -1431655766, ptr %self, align 4, !annotation [[AUTO_INIT:!.+]] 26 // PATTERN-LABEL: test_block( 27 // PATTERN: store i32 -1431655766, ptr %block, align 4, !annotation [[AUTO_INIT:!.+]] 43 // PATTERN-LABEL: test_block_self_init( 44 // PATTERN: %block = alloca <{ ptr, i32, i32, ptr, ptr, ptr }>, align 8 45 // PATTERN [all...] |
/llvm-project/llvm/lib/Target/XCore/ |
H A D | XCoreInstrFormats.td | 12 class InstXCore<int sz, dag outs, dag ins, string asmstr, list<dag> pattern> 20 let Pattern = pattern; 26 class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern> 27 : InstXCore<0, outs, ins, asmstr, pattern> { 35 class _F3R<bits<5> opc, dag outs, dag ins, string asmstr, list<dag> pattern> 36 : InstXCore<2, outs, ins, asmstr, pattern> { 44 class _F3RImm<bits<5> opc, dag outs, dag ins, string asmstr, list<dag> pattern> 45 : _F3R<opc, outs, ins, asmstr, pattern> { 49 class _FL3R<bits<9> opc, dag outs, dag ins, string asmstr, list<dag> pattern> 50 : InstXCore<4, outs, ins, asmstr, pattern> { [all …]
|
/llvm-project/polly/test/ScheduleOptimizer/ |
H A D | pattern-matching-based-opts_4.ll | 1 ; RUN: opt %loadNPMPolly -passes=polly-opt-isl -polly-pattern-matching-based-opts=true \ 3 ; RUN: opt %loadNPMPolly '-passes=polly-opt-isl,print<polly-ast>' -polly-pattern-matching-based-opt… 10 ; RUN: FileCheck %s --check-prefix=PATTERN-MATCHING-OPTS 14 ; Check that the pattern matching optimizations can detect different 18 ; account during the pattern matching optimizations. 24 ; CHECK: The tensor contraction pattern was detected 25 ; CHECK: The matrix multiplication pattern was detected 27 ; PATTERN-MATCHING-OPTS: // 1st level tiling - Tiles 28 ; PATTERN-MATCHING-OPTS-NEXT: for (int c1 = 0; c1 <= 3; c1 += 1) { 29 ; PATTERN-MATCHING-OPTS-NEXT: for (int c3 = 256 * c1; c3 <= 256 * c1 + 255; c3 += 1) [all …]
|
/llvm-project/mlir/test/mlir-pdll/Parser/ |
H A D | pattern-failure.pdll | 3 // CHECK: expected `{` or `=>` to start pattern body 4 Pattern } 10 Pattern Foo { erase root: Op; } 11 Pattern Foo { erase root: Op; } 16 Pattern { 22 // CHECK: expected Pattern body to terminate with an operation rewrite statement 23 Pattern { 29 // CHECK: Pattern body was terminated by an operation rewrite statement, but found trailing stateme… 30 Pattern { 37 // CHECK: expected Pattern lambda body to contain a single operation rewrite statement, such as `er… [all …]
|
H A D | stmt-failure.pdll | 3 // CHECK: expected top-level declaration, such as a `Pattern` 8 Pattern { 19 Pattern { 26 Pattern { 37 Pattern { 44 Pattern { 51 Pattern { 58 Pattern { 65 Pattern { 72 Pattern { [all …]
|
/llvm-project/mlir/include/mlir/Rewrite/ |
H A D | PatternApplicator.h | 9 // This file implements an applicator that applies pattern rewrites based upon a 28 /// This is the type of Action that is dispatched when a pattern is applied. 29 /// It captures the pattern to apply on top of the usual context. 33 ApplyPatternAction(ArrayRef<IRUnit> irUnits, const Pattern &pattern) in ApplyPatternAction() argument 34 : Base(irUnits), pattern(pattern) {} in ApplyPatternAction() 35 static constexpr StringLiteral tag = "apply-pattern"; 40 os << "`" << tag << " pattern: " << pattern.getDebugName(); in print() 44 const Pattern &pattern; 52 /// pattern. Users can query contained patterns and pass analysis results to 55 using CostModel = function_ref<PatternBenefit(const Pattern &)>; [all …]
|
/llvm-project/mlir/lib/Rewrite/ |
H A D | PatternApplicator.cpp | 1 //===- PatternApplicator.cpp - Pattern Application Engine -------*- C++ -*-===// 9 // This file implements an applicator that applies pattern rewrites based upon a 18 #define DEBUG_TYPE "pattern-application" 34 /// Log a message for a pattern that is impossible to match. 35 static void logImpossibleToMatch(const Pattern &pattern) { in logImpossibleToMatch() argument 36 llvm::dbgs() << "Ignoring pattern '" << pattern.getRootKind() in logImpossibleToMatch() 41 /// Log IR after pattern application. 50 llvm::dbgs() << "// *** IR Dump After Pattern Application ***\n"; in logSucessfulPatternApplication() 68 for (const RewritePattern *pattern : it.second) { in applyCostModel() local 69 if (pattern->getBenefit().isImpossibleToMatch()) in applyCostModel() [all …]
|
/llvm-project/clang/lib/Format/ |
H A D | MatchFilePath.cpp | 1 //===--- MatchFilePath.cpp - Match file path with pattern -------*- C++ -*-===// 11 /// a pattern, similar to the POSIX fnmatch() function. 22 // Check whether `FilePath` matches `Pattern` based on POSIX 2.13.1, 2.13.2, and 24 bool matchFilePath(StringRef Pattern, StringRef FilePath) { in matchFilePath() argument 25 assert(!Pattern.empty()); in matchFilePath() 30 // No match if `Pattern` ends with a non-meta character not equal to the last in matchFilePath() 32 if (const auto C = Pattern.back(); !strchr("?*]", C) && C != FilePathBack) in matchFilePath() 36 const auto EOP = Pattern.size(); // End of `Pattern`. in matchFilePath() 38 unsigned I = 0; // Index to `Pattern` in matchFilePath() [all...] |
/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMInstrFormats.td | 477 let Pattern = []; 498 class PseudoInst<dag oops, dag iops, InstrItinClass itin, list<dag> pattern> 503 let Pattern = pattern; 510 list<dag> pattern> 511 : PseudoInst<oops, iops, itin, pattern> { 518 list<dag> pattern> 519 : PseudoInst<oops, iops, itin, pattern> { 526 list<dag> pattern> 527 : PseudoInst<oops, iops, itin, pattern> { [all...] |
/llvm-project/llvm/lib/Target/LoongArch/ |
H A D | LoongArchInstrFormats.td | 20 list<dag> pattern = []> 34 let Pattern = pattern; 46 class Pseudo<dag outs, dag ins, list<dag> pattern = [], string opcstr = "", 48 : LAInst<outs, ins, opcstr, opnstr, pattern> { 60 list<dag> pattern = []> 61 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 73 list<dag> pattern = []> 74 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 88 list<dag> pattern [all...] |
H A D | LoongArchLSXInstrFormats.td | 22 list<dag> pattern = []> 23 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 35 list<dag> pattern = []> 36 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 47 list<dag> pattern = []> 48 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 59 list<dag> pattern = []> 60 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 72 list<dag> pattern = []> 73 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { [all …]
|
H A D | LoongArchLASXInstrFormats.td | 22 list<dag> pattern = []> 23 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 35 list<dag> pattern = []> 36 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 47 list<dag> pattern = []> 48 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 59 list<dag> pattern = []> 60 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { 72 list<dag> pattern = []> 73 : LAInst<outs, ins, deriveInsnMnemonic<NAME>.ret, opnstr, pattern> { [all …]
|
/llvm-project/mlir/test/IR/ |
H A D | test-matchers.mlir | 15 // CHECK: Pattern add(*) matched 3 times 16 // CHECK: Pattern mul(*) matched 4 times 17 // CHECK: Pattern add(add(*), *) matched 0 times 18 // CHECK: Pattern add(*, add(*)) matched 0 times 19 // CHECK: Pattern mul(add(*), *) matched 0 times 20 // CHECK: Pattern mul(*, add(*)) matched 2 times 21 // CHECK: Pattern mul(mul(*), *) matched 3 times 22 // CHECK: Pattern mul(mul(*), mul(*)) matched 2 times 23 // CHECK: Pattern mul(mul(mul(*), mul(*)), mul(mul(*), mul(*))) matched 1 times 24 // CHECK: Pattern mul(mul(mul(mul(*), add(*)), mul(*)), mul(mul(*, add(*)), mul(*, add(*)))… [all …]
|
/llvm-project/llvm/lib/Target/Sparc/ |
H A D | SparcInstrFormats.td | 9 class InstSP<dag outs, dag ins, string asmstr, list<dag> pattern, 23 let Pattern = pattern; 36 class F2<dag outs, dag ins, string asmstr, list<dag> pattern, 38 : InstSP<outs, ins, asmstr, pattern, itin> { 48 class F2_1<bits<3> op2Val, dag outs, dag ins, string asmstr, list<dag> pattern, 50 : F2<outs, ins, asmstr, pattern, itin> { 59 list<dag> pattern, InstrItinClass itin = NoItinerary> 60 : F2<outs, ins, asmstr, pattern, itin> { 69 dag outs, dag ins, string asmstr, list<dag> pattern, 71 : InstSP<outs, ins, asmstr, pattern, itin> { [all …]
|
/llvm-project/mlir/include/mlir/IR/ |
H A D | PatternMatch.h | 27 /// This class represents the benefit of a pattern match in a unitless scheme 29 /// use here is the "number of operations matched" by the pattern. 46 /// If the corresponding pattern can match, return its benefit. If the 47 // corresponding pattern isImpossibleToMatch() then this aborts. 66 // Pattern 69 /// This class contains all of the data related to a pattern, but does not 71 /// used to interface with the metadata of a pattern, such as the benefit or 73 class Pattern { 75 /// that match this pattern. 77 /// The pattern roo 277 std::unique_ptr<T> pattern = create() local 301 initializePattern(T & pattern) initializePattern() argument 816 RewritePatternSet(MLIRContext * context,std::unique_ptr<RewritePattern> pattern) RewritePatternSet() argument 820 RewritePatternSet(PDLPatternModule && pattern) RewritePatternSet() argument 882 add(std::unique_ptr<RewritePattern> pattern) add() argument 889 add(PDLPatternModule && pattern) add() argument 948 insert(std::unique_ptr<RewritePattern> pattern) insert() argument 955 insert(PDLPatternModule && pattern) insert() argument 989 std::unique_ptr<T> pattern = addImpl() local [all...] |
/llvm-project/mlir/test/python/dialects/ |
H A D | pdl_ops.py | 18 # CHECK: pdl.pattern @operations : benefit(1) { 30 pattern = PatternOp(1, "operations") 31 with InsertionPoint(pattern.body): 42 # CHECK: pdl.pattern @rewrite_with_args : benefit(1) { 50 pattern = PatternOp(1, "rewrite_with_args") 51 with InsertionPoint(pattern.body): 58 # CHECK: pdl.pattern @rewrite_multi_root_optimal : benefit(1) { 73 pattern = PatternOp(1, "rewrite_multi_root_optimal") 74 with InsertionPoint(pattern.body): 88 # CHECK: pdl.pattern @rewrite_multi_root_forced : benefit(1) { [all …]
|