Lines Matching refs:InstInfo
1108 CodeGenInstruction &InstInfo = CDP.getTargetInfo().getInstruction(Operator);
1111 unsigned NumDefsToAdd = InstInfo.Operands.NumDefs ? 1 : 0;
1114 if (InstInfo.HasOneImplicitDefWithKnownVT(CDP.getTargetInfo()) !=MVT::Other)
1603 CodeGenInstruction &InstInfo =
1611 unsigned NumResultsToAdd = InstInfo.Operands.NumDefs ? 1 : 0;
1617 if (!InstInfo.ImplicitDefs.empty()) {
1623 InstInfo.HasOneImplicitDefWithKnownVT(CDP.getTargetInfo());
2502 static bool InferFromPattern(CodeGenInstruction &InstInfo,
2507 // Remember where InstInfo got its flags.
2508 if (InstInfo.hasUndefFlags())
2509 InstInfo.InferredFrom = PatDef;
2512 if (InstInfo.hasSideEffects != PatInfo.hasSideEffects &&
2513 !InstInfo.hasSideEffects_Unset) {
2517 if (!InstInfo.hasSideEffects) {
2520 Twine(InstInfo.hasSideEffects));
2524 if (InstInfo.mayStore != PatInfo.mayStore && !InstInfo.mayStore_Unset) {
2527 Twine(InstInfo.mayStore));
2530 if (InstInfo.mayLoad != PatInfo.mayLoad && !InstInfo.mayLoad_Unset) {
2533 if (!InstInfo.mayLoad) {
2536 Twine(InstInfo.mayLoad));
2541 InstInfo.hasSideEffects |= PatInfo.hasSideEffects;
2542 InstInfo.mayStore |= PatInfo.mayStore;
2543 InstInfo.mayLoad |= PatInfo.mayLoad;
2546 InstInfo.isBitcast |= PatInfo.isBitcast;
2620 CodeGenInstruction &InstInfo = Target.getInstruction(Instrs[i]);
2622 if (InstInfo.Operands.size() != 0) {
2623 if (InstInfo.Operands.NumDefs == 0) {
2625 for (unsigned j = 0, e = InstInfo.Operands.size(); j < e; ++j)
2626 Operands.push_back(InstInfo.Operands[j].Rec);
2629 Results.push_back(InstInfo.Operands[0].Rec);
2632 for (unsigned j = 1, e = InstInfo.Operands.size(); j < e; ++j)
2633 Operands.push_back(InstInfo.Operands[j].Rec);
2904 CodeGenInstruction &InstInfo =
2909 if (InstInfo.neverHasSideEffects) {
2910 assert(!InstInfo.hasSideEffects);
2911 InstInfo.hasSideEffects_Unset = false;
2915 const TreePattern *Pattern = getInstruction(InstInfo.TheDef).getPattern();
2917 if (InstInfo.hasUndefFlags())
2918 Revisit.push_back(&InstInfo);
2923 Errors += InferFromPattern(InstInfo, PatInfo, InstInfo.TheDef);
2939 CodeGenInstruction &InstInfo = Target.getInstruction(PatInstrs.front());
2942 if (InstInfo.InferredFrom)
2947 Errors += InferFromPattern(InstInfo, PatInfo, PTM.getSrcRecord());
2956 CodeGenInstruction &InstInfo = *Revisit[i];
2957 if (InstInfo.InferredFrom)
2961 if (InstInfo.hasSideEffects_Unset)
2962 InstInfo.hasSideEffects = true;
2969 CodeGenInstruction &InstInfo = *Revisit[i];
2970 if (InstInfo.InferredFrom)
2972 if (InstInfo.hasSideEffects_Unset)
2973 PrintError(InstInfo.TheDef->getLoc(),
2975 if (InstInfo.mayStore_Unset)
2976 PrintError(InstInfo.TheDef->getLoc(),
2978 if (InstInfo.mayLoad_Unset)
2979 PrintError(InstInfo.TheDef->getLoc(),
3000 const CodeGenInstruction &InstInfo = Target.getInstruction(Instrs[i]);
3001 NumSideEffects += InstInfo.hasSideEffects;
3002 NumStores += InstInfo.mayStore;
3003 NumLoads += InstInfo.mayLoad;
3040 const CodeGenInstruction &InstInfo = Target.getInstruction(Instrs[i]);
3041 if (InstInfo.InferredFrom &&
3042 InstInfo.InferredFrom != InstInfo.TheDef &&
3043 InstInfo.InferredFrom != PTM.getSrcRecord())
3044 PrintError(InstInfo.InferredFrom->getLoc(), "inferred from patttern");