Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:OpInfo

2816     AsmOperandInfo &OpInfo = ConstraintOperands.back();
2819 if (OpInfo.multipleAlternatives.size() > maCount)
2820 maCount = OpInfo.multipleAlternatives.size();
2822 OpInfo.ConstraintVT = MVT::Other;
2825 switch (OpInfo.Type) {
2828 if (OpInfo.isIndirect) {
2829 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2838 OpInfo.ConstraintVT = getValueType(STy->getElementType(ResNo));
2841 OpInfo.ConstraintVT = getValueType(CS.getType());
2846 OpInfo.CallOperandVal = const_cast<Value *>(CS.getArgument(ArgNo++));
2853 if (OpInfo.CallOperandVal) {
2854 llvm::Type *OpTy = OpInfo.CallOperandVal->getType();
2855 if (OpInfo.isIndirect) {
2879 OpInfo.ConstraintVT =
2884 OpInfo.ConstraintVT = MVT::getIntegerVT(8*TD->getPointerSize());
2886 OpInfo.ConstraintVT = EVT::getEVT(OpTy, true);
2905 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2906 if (OpInfo.Type == InlineAsm::isClobber)
2913 if (OpInfo.hasMatchingInput()) {
2914 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2915 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2916 if ((OpInfo.ConstraintVT.isInteger() !=
2918 (OpInfo.ConstraintVT.getSizeInBits() !=
2925 weight = getMultipleConstraintMatchWeight(OpInfo, maIndex);
2953 AsmOperandInfo& OpInfo = ConstraintOperands[cIndex];
2959 if (OpInfo.hasMatchingInput()) {
2960 AsmOperandInfo &Input = ConstraintOperands[OpInfo.MatchingInput];
2962 if (OpInfo.ConstraintVT != Input.ConstraintVT) {
2964 getRegForInlineAsmConstraint(OpInfo.ConstraintCode, OpInfo.ConstraintVT);
2967 if ((OpInfo.ConstraintVT.isInteger() !=
3093 static void ChooseConstraint(TargetLowering::AsmOperandInfo &OpInfo,
3096 assert(OpInfo.Codes.size() > 1 && "Doesn't have multiple constraint options");
3102 for (unsigned i = 0, e = OpInfo.Codes.size(); i != e; ++i) {
3104 TLI.getConstraintType(OpInfo.Codes[i]);
3111 assert(OpInfo.Codes[i].size() == 1 &&
3114 TLI.LowerAsmOperandForConstraint(Op, OpInfo.Codes[i],
3125 if (CType == TargetLowering::C_Memory && OpInfo.hasMatchingInput())
3137 OpInfo.ConstraintCode = OpInfo.Codes[BestIdx];
3138 OpInfo.ConstraintType = BestType;
3143 /// OpInfo.ConstraintCode and OpInfo.ConstraintType.
3144 void TargetLowering::ComputeConstraintToUse(AsmOperandInfo &OpInfo,
3147 assert(!OpInfo.Codes.empty() && "Must have at least one constraint");
3150 if (OpInfo.Codes.size() == 1) {
3151 OpInfo.ConstraintCode = OpInfo.Codes[0];
3152 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);
3154 ChooseConstraint(OpInfo, *this, Op, DAG);
3158 if (OpInfo.ConstraintCode == "X" && OpInfo.CallOperandVal) {
3162 Value *v = OpInfo.CallOperandVal;
3164 OpInfo.CallOperandVal = v;
3170 if (const char *Repl = LowerXConstraint(OpInfo.ConstraintVT)) {
3171 OpInfo.ConstraintCode = Repl;
3172 OpInfo.ConstraintType = getConstraintType(OpInfo.ConstraintCode);