Lines Matching refs:OS
96 void printManglingSuffix(raw_ostream &OS, ImmPredicateSet &ImmPredicates, in printManglingSuffix() argument
99 OS << 'r'; in printManglingSuffix()
101 OS << 'f'; in printManglingSuffix()
103 OS << 'i'; in printManglingSuffix()
106 OS << "_" << ImmPredicates.getPredicate(Code-1).getFnName(); in printManglingSuffix()
142 void emitImmediatePredicate(raw_ostream &OS, ImmPredicateSet &ImmPredicates) { in emitImmediatePredicate()
151 OS << " &&\n "; in emitImmediatePredicate()
156 OS << "VT == " in emitImmediatePredicate()
161 OS << PredFn.getFnName() << "(imm" << i <<')'; in emitImmediatePredicate()
276 void PrintParameters(raw_ostream &OS) const { in PrintParameters()
279 OS << "unsigned Op" << i << ", bool Op" << i << "IsKill"; in PrintParameters()
281 OS << "uint64_t imm" << i; in PrintParameters()
283 OS << "ConstantFP *f" << i; in PrintParameters()
288 OS << ", "; in PrintParameters()
292 void PrintArguments(raw_ostream &OS, in PrintArguments()
302 OS << ", "; in PrintArguments()
304 OS << "Op" << i << ", Op" << i << "IsKill"; in PrintArguments()
307 OS << "imm" << i; in PrintArguments()
310 OS << "f" << i; in PrintArguments()
318 void PrintArguments(raw_ostream &OS) const { in PrintArguments()
321 OS << "Op" << i << ", Op" << i << "IsKill"; in PrintArguments()
323 OS << "imm" << i; in PrintArguments()
325 OS << "f" << i; in PrintArguments()
330 OS << ", "; in PrintArguments()
335 void PrintManglingSuffix(raw_ostream &OS, const std::vector<std::string> &PR, in PrintManglingSuffix()
346 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes); in PrintManglingSuffix()
350 void PrintManglingSuffix(raw_ostream &OS, ImmPredicateSet &ImmPredicates, in PrintManglingSuffix()
353 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes); in PrintManglingSuffix()
376 void printImmediatePredicates(raw_ostream &OS);
377 void printFunctionDefinitions(raw_ostream &OS);
563 void FastISelMap::printImmediatePredicates(raw_ostream &OS) { in printImmediatePredicates() argument
567 OS << "\n// FastEmit Immediate Predicate functions.\n"; in printImmediatePredicates()
570 OS << "static bool " << I->getFnName() << "(int64_t Imm) {\n"; in printImmediatePredicates()
571 OS << I->getImmediatePredicateCode() << "\n}\n"; in printImmediatePredicates()
574 OS << "\n\n"; in printImmediatePredicates()
578 void FastISelMap::printFunctionDefinitions(raw_ostream &OS) { in printFunctionDefinitions() argument
590 OS << "// FastEmit functions for " << Opcode << ".\n"; in printFunctionDefinitions()
591 OS << "\n"; in printFunctionDefinitions()
605 OS << "unsigned FastEmit_" in printFunctionDefinitions()
609 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
610 OS << "("; in printFunctionDefinitions()
611 Operands.PrintParameters(OS); in printFunctionDefinitions()
612 OS << ") {\n"; in printFunctionDefinitions()
626 OS << " if (" + PredicateCheck + ") {\n"; in printFunctionDefinitions()
627 OS << " "; in printFunctionDefinitions()
633 OS << " BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, " in printFunctionDefinitions()
638 OS << " return FastEmitInst_"; in printFunctionDefinitions()
640 Operands.PrintManglingSuffix(OS, *Memo.PhysRegs, in printFunctionDefinitions()
642 OS << "(" << InstNS << Memo.Name << ", "; in printFunctionDefinitions()
643 OS << InstNS << Memo.RC->getName() << "RegisterClass"; in printFunctionDefinitions()
645 OS << ", "; in printFunctionDefinitions()
646 Operands.PrintArguments(OS, *Memo.PhysRegs); in printFunctionDefinitions()
647 OS << ");\n"; in printFunctionDefinitions()
649 OS << "extractsubreg(" << getName(RetVT); in printFunctionDefinitions()
650 OS << ", Op0, Op0IsKill, " << Memo.SubRegNo << ");\n"; in printFunctionDefinitions()
654 OS << " }\n"; in printFunctionDefinitions()
659 OS << " return 0;\n"; in printFunctionDefinitions()
660 OS << "}\n"; in printFunctionDefinitions()
661 OS << "\n"; in printFunctionDefinitions()
665 OS << "unsigned FastEmit_" in printFunctionDefinitions()
668 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
669 OS << "(MVT RetVT"; in printFunctionDefinitions()
671 OS << ", "; in printFunctionDefinitions()
672 Operands.PrintParameters(OS); in printFunctionDefinitions()
673 OS << ") {\nswitch (RetVT.SimpleTy) {\n"; in printFunctionDefinitions()
677 OS << " case " << getName(RetVT) << ": return FastEmit_" in printFunctionDefinitions()
680 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
681 OS << "("; in printFunctionDefinitions()
682 Operands.PrintArguments(OS); in printFunctionDefinitions()
683 OS << ");\n"; in printFunctionDefinitions()
685 OS << " default: return 0;\n}\n}\n\n"; in printFunctionDefinitions()
689 OS << "unsigned FastEmit_" in printFunctionDefinitions()
692 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
693 OS << "(MVT RetVT"; in printFunctionDefinitions()
695 OS << ", "; in printFunctionDefinitions()
696 Operands.PrintParameters(OS); in printFunctionDefinitions()
697 OS << ") {\n"; in printFunctionDefinitions()
699 OS << " if (RetVT.SimpleTy != " << getName(RM.begin()->first) in printFunctionDefinitions()
717 OS << " if (" + PredicateCheck + ") {\n"; in printFunctionDefinitions()
718 OS << " "; in printFunctionDefinitions()
724 OS << " BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, " in printFunctionDefinitions()
729 OS << " return FastEmitInst_"; in printFunctionDefinitions()
732 Operands.PrintManglingSuffix(OS, *Memo.PhysRegs, in printFunctionDefinitions()
734 OS << "(" << InstNS << Memo.Name << ", "; in printFunctionDefinitions()
735 OS << InstNS << Memo.RC->getName() << "RegisterClass"; in printFunctionDefinitions()
737 OS << ", "; in printFunctionDefinitions()
738 Operands.PrintArguments(OS, *Memo.PhysRegs); in printFunctionDefinitions()
739 OS << ");\n"; in printFunctionDefinitions()
741 OS << "extractsubreg(RetVT, Op0, Op0IsKill, "; in printFunctionDefinitions()
742 OS << Memo.SubRegNo; in printFunctionDefinitions()
743 OS << ");\n"; in printFunctionDefinitions()
747 OS << " }\n"; in printFunctionDefinitions()
752 OS << " return 0;\n"; in printFunctionDefinitions()
753 OS << "}\n"; in printFunctionDefinitions()
754 OS << "\n"; in printFunctionDefinitions()
759 OS << "unsigned FastEmit_" in printFunctionDefinitions()
761 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
762 OS << "(MVT VT, MVT RetVT"; in printFunctionDefinitions()
764 OS << ", "; in printFunctionDefinitions()
765 Operands.PrintParameters(OS); in printFunctionDefinitions()
766 OS << ") {\n"; in printFunctionDefinitions()
767 OS << " switch (VT.SimpleTy) {\n"; in printFunctionDefinitions()
772 OS << " case " << TypeName << ": return FastEmit_" in printFunctionDefinitions()
774 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
775 OS << "(RetVT"; in printFunctionDefinitions()
777 OS << ", "; in printFunctionDefinitions()
778 Operands.PrintArguments(OS); in printFunctionDefinitions()
779 OS << ");\n"; in printFunctionDefinitions()
781 OS << " default: return 0;\n"; in printFunctionDefinitions()
782 OS << " }\n"; in printFunctionDefinitions()
783 OS << "}\n"; in printFunctionDefinitions()
784 OS << "\n"; in printFunctionDefinitions()
787 OS << "// Top-level FastEmit function.\n"; in printFunctionDefinitions()
788 OS << "\n"; in printFunctionDefinitions()
792 OS << "unsigned FastEmit_"; in printFunctionDefinitions()
793 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
794 OS << "(MVT VT, MVT RetVT, unsigned Opcode"; in printFunctionDefinitions()
796 OS << ", "; in printFunctionDefinitions()
797 Operands.PrintParameters(OS); in printFunctionDefinitions()
798 OS << ") {\n"; in printFunctionDefinitions()
816 OS << " if ("; in printFunctionDefinitions()
817 MI->second[i].emitImmediatePredicate(OS, ImmediatePredicates); in printFunctionDefinitions()
818 OS << ")\n if (unsigned Reg = FastEmit_"; in printFunctionDefinitions()
819 MI->second[i].PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
820 OS << "(VT, RetVT, Opcode"; in printFunctionDefinitions()
822 OS << ", "; in printFunctionDefinitions()
823 MI->second[i].PrintArguments(OS); in printFunctionDefinitions()
824 OS << "))\n return Reg;\n\n"; in printFunctionDefinitions()
831 OS << " switch (Opcode) {\n"; in printFunctionDefinitions()
836 OS << " case " << Opcode << ": return FastEmit_" in printFunctionDefinitions()
838 Operands.PrintManglingSuffix(OS, ImmediatePredicates); in printFunctionDefinitions()
839 OS << "(VT, RetVT"; in printFunctionDefinitions()
841 OS << ", "; in printFunctionDefinitions()
842 Operands.PrintArguments(OS); in printFunctionDefinitions()
843 OS << ");\n"; in printFunctionDefinitions()
845 OS << " default: return 0;\n"; in printFunctionDefinitions()
846 OS << " }\n"; in printFunctionDefinitions()
847 OS << "}\n"; in printFunctionDefinitions()
848 OS << "\n"; in printFunctionDefinitions()
854 void FastISelEmitter::run(raw_ostream &OS) { in run() argument
862 Target.getName() + " target", OS); in run()
866 F.printImmediatePredicates(OS); in run()
867 F.printFunctionDefinitions(OS); in run()