Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:OpInfo

2077     AsmOperandInfo &OpInfo = ConstraintOperands.back();
2080 if (OpInfo.multipleAlternatives.size() > maCount)
2081 maCount = OpInfo.multipleAlternatives.size();
2083 OpInfo.ConstraintVT = MVT::Other;
2086 switch (OpInfo.Type) {
2089 if (OpInfo.isIndirect) {
2090 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2099 OpInfo.ConstraintVT = getSimpleValueType(STy->getElementType(ResNo));
2102 OpInfo.ConstraintVT = getSimpleValueType(CS.getType());
2107 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2114 if (OpInfo.CallOperandVal) {
2115 llvm::Type *OpTy = OpInfo.CallOperandVal->getType();
2116 if (OpInfo.isIndirect) {
2140 OpInfo.ConstraintVT =
2145 OpInfo.ConstraintVT = MVT::getIntegerVT(
2148 OpInfo.ConstraintVT = MVT::getVT(OpTy, true);
2167 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2168 if (OpInfo.Type == InlineAsm::isClobber)
2175 if (OpInfo.hasMatchingInput()) {
2176 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2177 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2178 if ((OpInfo.ConstraintVT.isInteger() !=
2180 (OpInfo.ConstraintVT.getSizeInBits() !=
2187 weight = getMultipleConstraintMatchWeight(OpInfo, maIndex);
2215 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2221 if (OpInfo.hasMatchingInput()) {
2222 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2224 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2226 getRegForInlineAsmConstraint(OpInfo.ConstraintCode,
2227 OpInfo.ConstraintVT);
2231 if ((OpInfo.ConstraintVT.isInteger() !=
2357 static void ChooseConstraint(TargetLowering::AsmOperandInfo &OpInfo,
2360 assert(OpInfo.Codes.size() > 1 && "Doesn't have multiple constraint options");
2366 for (unsigned i = 0, e = OpInfo.Codes.size(); i != e; ++i) {
2368 TLI.getConstraintType(OpInfo.Codes[i]);
2375 assert(OpInfo.Codes[i].size() == 1 &&
2378 TLI.LowerAsmOperandForConstraint(Op, OpInfo.Codes[i],
2389 if (CType == TargetLowering::C_Memory && OpInfo.hasMatchingInput())
2401 OpInfo.ConstraintCode = OpInfo.Codes[BestIdx];
2402 OpInfo.ConstraintType = BestType;
2407 /// OpInfo.ConstraintCode and OpInfo.ConstraintType.
2408 void TargetLowering::ComputeConstraintToUse(AsmOperandInfo &OpInfo,
2411 assert(!OpInfo.Codes.empty() && "Must have at least one constraint");
2414 if (OpInfo.Codes.size() == 1) {
2415 OpInfo.ConstraintCode = OpInfo.Codes[0];
2416 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);
2418 ChooseConstraint(OpInfo, *this, Op, DAG);
2422 if (OpInfo.ConstraintCode == "X" && OpInfo.CallOperandVal) {
2426 Value *v = OpInfo.CallOperandVal;
2428 OpInfo.CallOperandVal = v;
2434 if (const char *Repl = LowerXConstraint(OpInfo.ConstraintVT)) {
2435 OpInfo.ConstraintCode = Repl;
2436 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);