Lines Matching defs:OS

59                            PredicateExpander &PE, raw_ostream &OS);
61 PredicateExpander &PE, raw_ostream &OS);
64 raw_ostream &OS);
66 PredicateExpander &PE, raw_ostream &OS);
68 PredicateExpander &PE, raw_ostream &OS);
70 PredicateExpander &PE, raw_ostream &OS);
75 void run(raw_ostream &OS);
80 ArrayRef<const Record *> Fusions, PredicateExpander &PE, raw_ostream &OS) {
81 OS << "#ifdef GET_" << Target.getName() << "_MACRO_FUSION_PRED_DECL\n";
82 OS << "#undef GET_" << Target.getName() << "_MACRO_FUSION_PRED_DECL\n\n";
83 OS << "namespace llvm {\n";
86 OS << "bool is" << Fusion->getName() << "(const TargetInstrInfo &, "
92 OS << "} // end namespace llvm\n";
93 OS << "\n#endif\n";
97 ArrayRef<const Record *> Fusions, PredicateExpander &PE, raw_ostream &OS) {
98 OS << "#ifdef GET_" << Target.getName() << "_MACRO_FUSION_PRED_IMPL\n";
99 OS << "#undef GET_" << Target.getName() << "_MACRO_FUSION_PRED_IMPL\n\n";
100 OS << "namespace llvm {\n";
107 OS << "bool is" << Fusion->getName() << "(\n";
108 OS.indent(4) << "const TargetInstrInfo &TII,\n";
109 OS.indent(4) << "const TargetSubtargetInfo &STI,\n";
110 OS.indent(4) << "const MachineInstr *FirstMI,\n";
111 OS.indent(4) << "const MachineInstr &SecondMI) {\n";
112 OS.indent(2)
115 emitPredicates(Predicates, IsCommutable, PE, OS);
117 OS.indent(2) << "return true;\n";
118 OS << "}\n";
121 OS << "} // end namespace llvm\n";
122 OS << "\n#endif\n";
127 PredicateExpander &PE, raw_ostream &OS) {
131 emitFirstPredicate(Predicate, IsCommutable, PE, OS);
133 emitSecondPredicate(Predicate, IsCommutable, PE, OS);
135 emitBothPredicate(Predicate, IsCommutable, PE, OS);
145 raw_ostream &OS) {
147 OS.indent(2) << "if (!FirstMI)\n";
148 OS.indent(2) << " return "
152 OS.indent(2) << "{\n";
153 OS.indent(4) << "Register FirstDest = FirstMI->getOperand(0).getReg();\n";
154 OS.indent(4)
156 OS.indent(4) << " return false;\n";
157 OS.indent(2) << "}\n";
159 OS.indent(2) << "{\n";
160 OS.indent(4) << "const MachineInstr *MI = FirstMI;\n";
161 OS.indent(4) << "if (";
164 PE.expandPredicate(OS, Predicate->getValueAsDef("Predicate"));
165 OS << ")\n";
166 OS.indent(4) << " return false;\n";
167 OS.indent(2) << "}\n";
178 raw_ostream &OS) {
180 OS.indent(2) << "{\n";
181 OS.indent(4) << "const MachineInstr *MI = &SecondMI;\n";
182 OS.indent(4) << "if (";
185 PE.expandPredicate(OS, Predicate->getValueAsDef("Predicate"));
186 OS << ")\n";
187 OS.indent(4) << " return false;\n";
188 OS.indent(2) << "}\n";
193 OS.indent(2) << "if (!SecondMI.getOperand(" << FirstOpIdx
195 OS.indent(4) << "if (SecondMI.getOperand(" << FirstOpIdx
200 OS << " {\n";
201 OS.indent(6) << "if (!SecondMI.getDesc().isCommutable())\n";
202 OS.indent(6) << " return false;\n";
204 OS.indent(6)
207 OS.indent(6)
209 OS.indent(6)
212 OS.indent(6) << " return false;\n";
213 OS.indent(4) << "}\n";
215 OS << "\n";
216 OS.indent(4) << " return false;\n";
218 OS.indent(2) << "}\n";
229 raw_ostream &OS) {
231 OS << Predicate->getValueAsString("Predicate");
233 emitFirstPredicate(Predicate, IsCommutable, PE, OS);
234 emitSecondPredicate(Predicate, IsCommutable, PE, OS);
238 OS.indent(2) << "if (!(FirstMI->getOperand(" << FirstOpIdx
240 OS.indent(2) << " SecondMI.getOperand(" << SecondOpIdx
242 OS.indent(2) << " FirstMI->getOperand(" << FirstOpIdx
247 OS << " {\n";
248 OS.indent(4) << "if (!SecondMI.getDesc().isCommutable())\n";
249 OS.indent(4) << " return false;\n";
251 OS.indent(4)
254 OS.indent(4)
256 OS.indent(4)
259 OS.indent(4) << " return false;\n";
260 OS.indent(2) << "}";
262 OS << "\n";
263 OS.indent(2) << " return false;";
265 OS << "\n";
272 void MacroFusionPredicatorEmitter::run(raw_ostream &OS) {
274 emitSourceFileHeader("Macro Fusion Predicators", OS);
281 emitMacroFusionDecl(Fusions, PE, OS);
282 OS << "\n";
283 emitMacroFusionImpl(Fusions, PE, OS);