Lines Matching refs:OpInfo

2319     AsmOperandInfo &OpInfo = ConstraintOperands.back();
2322 if (OpInfo.multipleAlternatives.size() > maCount)
2323 maCount = OpInfo.multipleAlternatives.size();
2325 OpInfo.ConstraintVT = MVT::Other;
2328 switch (OpInfo.Type) {
2331 if (OpInfo.isIndirect) {
2332 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2341 OpInfo.ConstraintVT =
2345 OpInfo.ConstraintVT = getSimpleValueType(DL, CS.getType());
2350 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2357 if (OpInfo.CallOperandVal) {
2358 llvm::Type *OpTy = OpInfo.CallOperandVal->getType();
2359 if (OpInfo.isIndirect) {
2383 OpInfo.ConstraintVT =
2389 OpInfo.ConstraintVT = MVT::getIntegerVT(PtrSize);
2391 OpInfo.ConstraintVT = MVT::getVT(OpTy, true);
2410 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2411 if (OpInfo.Type == InlineAsm::isClobber)
2418 if (OpInfo.hasMatchingInput()) {
2419 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2420 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2421 if ((OpInfo.ConstraintVT.isInteger() !=
2423 (OpInfo.ConstraintVT.getSizeInBits() !=
2430 weight = getMultipleConstraintMatchWeight(OpInfo, maIndex);
2458 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2464 if (OpInfo.hasMatchingInput()) {
2465 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2467 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2469 getRegForInlineAsmConstraint(TRI, OpInfo.ConstraintCode,
2470 OpInfo.ConstraintVT);
2474 if ((OpInfo.ConstraintVT.isInteger() !=
2597 static void ChooseConstraint(TargetLowering::AsmOperandInfo &OpInfo,
2600 assert(OpInfo.Codes.size() > 1 && "Doesn't have multiple constraint options");
2606 for (unsigned i = 0, e = OpInfo.Codes.size(); i != e; ++i) {
2608 TLI.getConstraintType(OpInfo.Codes[i]);
2615 assert(OpInfo.Codes[i].size() == 1 &&
2618 TLI.LowerAsmOperandForConstraint(Op, OpInfo.Codes[i],
2629 if (CType == TargetLowering::C_Memory && OpInfo.hasMatchingInput())
2641 OpInfo.ConstraintCode = OpInfo.Codes[BestIdx];
2642 OpInfo.ConstraintType = BestType;
2646 /// AsmOperandInfo, setting OpInfo.ConstraintCode and OpInfo.ConstraintType.
2647 void TargetLowering::ComputeConstraintToUse(AsmOperandInfo &OpInfo,
2650 assert(!OpInfo.Codes.empty() && "Must have at least one constraint");
2653 if (OpInfo.Codes.size() == 1) {
2654 OpInfo.ConstraintCode = OpInfo.Codes[0];
2655 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);
2657 ChooseConstraint(OpInfo, *this, Op, DAG);
2661 if (OpInfo.ConstraintCode == "X" && OpInfo.CallOperandVal) {
2665 Value *v = OpInfo.CallOperandVal;
2667 OpInfo.CallOperandVal = v;
2673 if (const char *Repl = LowerXConstraint(OpInfo.ConstraintVT)) {
2674 OpInfo.ConstraintCode = Repl;
2675 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);