Lines Matching full:patterns

20 /// pays off because MIR patterns can get complicated. Giving useful error
39 #include "Common/GlobalISel/Patterns.h"
189 /// apply patterns.
192 /// CodeGenInstructions to infer types across patterns in a CombineRule. It's
196 /// We only try to infer untyped operands in apply patterns when they're temp
213 /// propagation in the apply patterns only if any types were inferred.
255 /// Calls `getInstEqClasses` on all patterns of the rule to produce the whole
319 /// Look at the apply patterns and find operands that need to be in propagateAndInferTypes()
366 // patterns. Type inference only adds GITypeOf types that point to Matched in propagateAndInferTypes()
368 // patterns as well, otherwise bad things happen. in propagateAndInferTypes()
380 errs() << "Apply patterns for rule " << RuleDef.getName() in propagateAndInferTypes()
523 // Though, those patterns are often used alone so it might not be worth the in getInstEqClasses()
627 /// patterns together and emit RuleMatchers to match them. This may emit more
637 /// patterns, it is known to be valid and it never moves back.
705 /// Checks additional semantics of the Patterns.
786 /// Operand tables to tie match/apply patterns together.
947 // Check there are no wip_match_opcode patterns in the "apply" patterns. in verify()
952 "illegal wip_match_opcode pattern in the 'apply' patterns!"); in verify()
985 "': wip_match_opcode is not supported in apply patterns"); in addApplyPattern()
991 " is not supported in apply patterns"); in addApplyPattern()
1031 // patterns. in addCXXPredicate()
1079 // match patterns. in typecheckPatterns()
1084 " is not supported in 'match' patterns")) { in typecheckPatterns()
1163 "'match' patterns cannot refer to flags from other instructions"); in checkSemantics()
1188 PrintError("'apply' patterns cannot mix C++ code with other types of " in checkSemantics()
1189 "patterns"); in checkSemantics()
1202 "instruction patterns!"); in checkSemantics()
1353 PrintError("Cannot find root '" + RootName + "' in apply patterns!"); in findRoots()
1408 PrintError("Cannot find root '" + RootName + "' in match patterns!"); in findRoots()
1425 "' is defined multiple times in the 'match' patterns"); in buildRuleOperandsTable()
1430 "' is defined multiple times in the 'apply' patterns"); in buildRuleOperandsTable()
1523 // Emit remaining patterns in emitMatchPattern()
1532 PrintError("wip_match_opcode can not be used with instruction patterns!"); in emitMatchPattern()
1581 // Emit remaining patterns. in emitMatchPattern()
1662 // When all patterns have been emitted, find expansions in PatFragCEs named in emitPatFragMatchPattern()
1688 // patterns, we'll want to add it to CE. in emitPatFragMatchPattern()
1826 OS << "// Match Patterns\n"; in emitCXXMatchApply()
1837 OS << "// Apply Patterns\n"; in emitCXXMatchApply()
1969 // Define a new register unique to the apply patterns (AKA a "temp" in emitInstructionApplyPattern()
1982 "' in the apply patterns must have a type"); in emitInstructionApplyPattern()
2200 assert(Ty.isLLT() && "Only LLTs are supported in match patterns!"); in emitCodeGenInstructionMatchPattern()