Lines Matching refs:OpInfo
2854 AsmOperandInfo &OpInfo = ConstraintOperands.back(); in ParseConstraints() local
2857 if (OpInfo.multipleAlternatives.size() > maCount) in ParseConstraints()
2858 maCount = OpInfo.multipleAlternatives.size(); in ParseConstraints()
2860 OpInfo.ConstraintVT = MVT::Other; in ParseConstraints()
2863 switch (OpInfo.Type) { in ParseConstraints()
2866 if (OpInfo.isIndirect) { in ParseConstraints()
2867 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++)); in ParseConstraints()
2876 OpInfo.ConstraintVT = getValueType(STy->getElementType(ResNo)); in ParseConstraints()
2879 OpInfo.ConstraintVT = getValueType(CS.getType()); in ParseConstraints()
2884 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++)); in ParseConstraints()
2891 if (OpInfo.CallOperandVal) { in ParseConstraints()
2892 llvm::Type *OpTy = OpInfo.CallOperandVal->getType(); in ParseConstraints()
2893 if (OpInfo.isIndirect) { in ParseConstraints()
2917 OpInfo.ConstraintVT = in ParseConstraints()
2922 OpInfo.ConstraintVT = MVT::getIntegerVT(8*TD->getPointerSize()); in ParseConstraints()
2924 OpInfo.ConstraintVT = EVT::getEVT(OpTy, true); in ParseConstraints()
2943 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex]; in ParseConstraints() local
2944 if (OpInfo.Type == InlineAsm::isClobber) in ParseConstraints()
2951 if (OpInfo.hasMatchingInput()) { in ParseConstraints()
2952 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput]; in ParseConstraints()
2953 if (OpInfo.ConstraintVT != Input.ConstraintVT) { in ParseConstraints()
2954 if ((OpInfo.ConstraintVT.isInteger() != in ParseConstraints()
2956 (OpInfo.ConstraintVT.getSizeInBits() != in ParseConstraints()
2963 weight = getMultipleConstraintMatchWeight(OpInfo, maIndex); in ParseConstraints()
2991 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex]; in ParseConstraints() local
2997 if (OpInfo.hasMatchingInput()) { in ParseConstraints()
2998 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput]; in ParseConstraints()
3000 if (OpInfo.ConstraintVT != Input.ConstraintVT) { in ParseConstraints()
3002 getRegForInlineAsmConstraint(OpInfo.ConstraintCode, OpInfo.ConstraintVT); in ParseConstraints()
3005 if ((OpInfo.ConstraintVT.isInteger() != in ParseConstraints()
3131 static void ChooseConstraint(TargetLowering::AsmOperandInfo &OpInfo, in ChooseConstraint() argument
3134 assert(OpInfo.Codes.size() > 1 && "Doesn't have multiple constraint options"); in ChooseConstraint()
3140 for (unsigned i = 0, e = OpInfo.Codes.size(); i != e; ++i) { in ChooseConstraint()
3142 TLI.getConstraintType(OpInfo.Codes[i]); in ChooseConstraint()
3149 assert(OpInfo.Codes[i].size() == 1 && in ChooseConstraint()
3152 TLI.LowerAsmOperandForConstraint(Op, OpInfo.Codes[i], in ChooseConstraint()
3163 if (CType == TargetLowering::C_Memory && OpInfo.hasMatchingInput()) in ChooseConstraint()
3175 OpInfo.ConstraintCode = OpInfo.Codes[BestIdx]; in ChooseConstraint()
3176 OpInfo.ConstraintType = BestType; in ChooseConstraint()
3182 void TargetLowering::ComputeConstraintToUse(AsmOperandInfo &OpInfo, in ComputeConstraintToUse() argument
3185 assert(!OpInfo.Codes.empty() && "Must have at least one constraint"); in ComputeConstraintToUse()
3188 if (OpInfo.Codes.size() == 1) { in ComputeConstraintToUse()
3189 OpInfo.ConstraintCode = OpInfo.Codes[0]; in ComputeConstraintToUse()
3190 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode); in ComputeConstraintToUse()
3192 ChooseConstraint(OpInfo, *this, Op, DAG); in ComputeConstraintToUse()
3196 if (OpInfo.ConstraintCode == "X" && OpInfo.CallOperandVal) { in ComputeConstraintToUse()
3200 Value *v = OpInfo.CallOperandVal; in ComputeConstraintToUse()
3202 OpInfo.CallOperandVal = v; in ComputeConstraintToUse()
3208 if (const char *Repl = LowerXConstraint(OpInfo.ConstraintVT)) { in ComputeConstraintToUse()
3209 OpInfo.ConstraintCode = Repl; in ComputeConstraintToUse()
3210 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode); in ComputeConstraintToUse()