Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:OpInfo

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