• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/llvmCore-3425.0.33/utils/TableGen/

Lines Matching defs:OS

100     void printManglingSuffix(raw_ostream &OS, ImmPredicateSet &ImmPredicates,
103 OS << 'r';
105 OS << 'f';
107 OS << 'i';
110 OS << "_" << ImmPredicates.getPredicate(Code-1).getFnName();
146 void emitImmediatePredicate(raw_ostream &OS, ImmPredicateSet &ImmPredicates) {
155 OS << " &&\n ";
160 OS << "VT == "
165 OS << PredFn.getFnName() << "(imm" << i <<')';
280 void PrintParameters(raw_ostream &OS) const {
283 OS << "unsigned Op" << i << ", bool Op" << i << "IsKill";
285 OS << "uint64_t imm" << i;
287 OS << "const ConstantFP *f" << i;
292 OS << ", ";
296 void PrintArguments(raw_ostream &OS,
306 OS << ", ";
308 OS << "Op" << i << ", Op" << i << "IsKill";
311 OS << "imm" << i;
314 OS << "f" << i;
322 void PrintArguments(raw_ostream &OS) const {
325 OS << "Op" << i << ", Op" << i << "IsKill";
327 OS << "imm" << i;
329 OS << "f" << i;
334 OS << ", ";
339 void PrintManglingSuffix(raw_ostream &OS, const std::vector<std::string> &PR,
350 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
354 void PrintManglingSuffix(raw_ostream &OS, ImmPredicateSet &ImmPredicates,
357 Operands[i].printManglingSuffix(OS, ImmPredicates, StripImmCodes);
382 void printImmediatePredicates(raw_ostream &OS);
383 void printFunctionDefinitions(raw_ostream &OS);
568 void FastISelMap::printImmediatePredicates(raw_ostream &OS) {
572 OS << "\n// FastEmit Immediate Predicate functions.\n";
575 OS << "static bool " << I->getFnName() << "(int64_t Imm) {\n";
576 OS << I->getImmediatePredicateCode() << "\n}\n";
579 OS << "\n\n";
583 void FastISelMap::printFunctionDefinitions(raw_ostream &OS) {
595 OS << "// FastEmit functions for " << Opcode << ".\n";
596 OS << "\n";
610 OS << "unsigned FastEmit_"
614 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
615 OS << "(";
616 Operands.PrintParameters(OS);
617 OS << ") {\n";
631 OS << " if (" + PredicateCheck + ") {\n";
632 OS << " ";
638 OS << " BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, "
643 OS << " return FastEmitInst_";
645 Operands.PrintManglingSuffix(OS, *Memo.PhysRegs,
647 OS << "(" << InstNS << Memo.Name << ", ";
648 OS << "&" << InstNS << Memo.RC->getName() << "RegClass";
650 OS << ", ";
651 Operands.PrintArguments(OS, *Memo.PhysRegs);
652 OS << ");\n";
654 OS << "extractsubreg(" << getName(RetVT);
655 OS << ", Op0, Op0IsKill, " << Memo.SubRegNo << ");\n";
659 OS << " }\n";
664 OS << " return 0;\n";
665 OS << "}\n";
666 OS << "\n";
670 OS << "unsigned FastEmit_"
673 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
674 OS << "(MVT RetVT";
676 OS << ", ";
677 Operands.PrintParameters(OS);
678 OS << ") {\nswitch (RetVT.SimpleTy) {\n";
682 OS << " case " << getName(RetVT) << ": return FastEmit_"
685 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
686 OS << "(";
687 Operands.PrintArguments(OS);
688 OS << ");\n";
690 OS << " default: return 0;\n}\n}\n\n";
694 OS << "unsigned FastEmit_"
697 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
698 OS << "(MVT RetVT";
700 OS << ", ";
701 Operands.PrintParameters(OS);
702 OS << ") {\n";
704 OS << " if (RetVT.SimpleTy != " << getName(RM.begin()->first)
722 OS << " if (" + PredicateCheck + ") {\n";
723 OS << " ";
729 OS << " BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, "
734 OS << " return FastEmitInst_";
737 Operands.PrintManglingSuffix(OS, *Memo.PhysRegs,
739 OS << "(" << InstNS << Memo.Name << ", ";
740 OS << "&" << InstNS << Memo.RC->getName() << "RegClass";
742 OS << ", ";
743 Operands.PrintArguments(OS, *Memo.PhysRegs);
744 OS << ");\n";
746 OS << "extractsubreg(RetVT, Op0, Op0IsKill, ";
747 OS << Memo.SubRegNo;
748 OS << ");\n";
752 OS << " }\n";
757 OS << " return 0;\n";
758 OS << "}\n";
759 OS << "\n";
764 OS << "unsigned FastEmit_"
766 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
767 OS << "(MVT VT, MVT RetVT";
769 OS << ", ";
770 Operands.PrintParameters(OS);
771 OS << ") {\n";
772 OS << " switch (VT.SimpleTy) {\n";
777 OS << " case " << TypeName << ": return FastEmit_"
779 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
780 OS << "(RetVT";
782 OS << ", ";
783 Operands.PrintArguments(OS);
784 OS << ");\n";
786 OS << " default: return 0;\n";
787 OS << " }\n";
788 OS << "}\n";
789 OS << "\n";
792 OS << "// Top-level FastEmit function.\n";
793 OS << "\n";
797 OS << "unsigned FastEmit_";
798 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
799 OS << "(MVT VT, MVT RetVT, unsigned Opcode";
801 OS << ", ";
802 Operands.PrintParameters(OS);
803 OS << ") {\n";
821 OS << " if (";
822 MI->second[i].emitImmediatePredicate(OS, ImmediatePredicates);
823 OS << ")\n if (unsigned Reg = FastEmit_";
824 MI->second[i].PrintManglingSuffix(OS, ImmediatePredicates);
825 OS << "(VT, RetVT, Opcode";
827 OS << ", ";
828 MI->second[i].PrintArguments(OS);
829 OS << "))\n return Reg;\n\n";
836 OS << " switch (Opcode) {\n";
841 OS << " case " << Opcode << ": return FastEmit_"
843 Operands.PrintManglingSuffix(OS, ImmediatePredicates);
844 OS << "(VT, RetVT";
846 OS << ", ";
847 Operands.PrintArguments(OS);
848 OS << ");\n";
850 OS << " default: return 0;\n";
851 OS << " }\n";
852 OS << "}\n";
853 OS << "\n";
861 void EmitFastISel(RecordKeeper &RK, raw_ostream &OS) {
865 Target.getName() + " target", OS);
873 F.printImmediatePredicates(OS);
874 F.printFunctionDefinitions(OS);