reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86InstrInfo.cpp
 4833       (MI.getOpcode() == X86::CALL32r || MI.getOpcode() == X86::CALL64r ||
 4833       (MI.getOpcode() == X86::CALL32r || MI.getOpcode() == X86::CALL64r ||
 4834        MI.getOpcode() == X86::PUSH16r || MI.getOpcode() == X86::PUSH32r ||
 4834        MI.getOpcode() == X86::PUSH16r || MI.getOpcode() == X86::PUSH32r ||
 4835        MI.getOpcode() == X86::PUSH64r))
 4840       (hasPartialRegUpdate(MI.getOpcode(), Subtarget, /*ForLoadFold*/true) ||
 4841        shouldPreventUndefRegUpdateMemFold(MF, MI)))
 4844   unsigned NumOps = MI.getDesc().getNumOperands();
 4846       NumOps > 1 && MI.getDesc().getOperandConstraint(1, MCOI::TIED_TO) != -1;
 4850   if (MI.getOpcode() == X86::ADD32ri &&
 4851       MI.getOperand(2).getTargetFlags() == X86II::MO_GOT_ABSOLUTE_ADDRESS)
 4859       MI.getOpcode() != X86::ADD64rr)
 4866           foldMemoryOperandCustom(MF, MI, OpNum, MOs, InsertPt, Size, Align))
 4874   if (isTwoAddr && NumOps >= 2 && OpNum < 2 && MI.getOperand(0).isReg() &&
 4875       MI.getOperand(1).isReg() &&
 4876       MI.getOperand(0).getReg() == MI.getOperand(1).getReg()) {
 4876       MI.getOperand(0).getReg() == MI.getOperand(1).getReg()) {
 4877     I = lookupTwoAddrFoldTable(MI.getOpcode());
 4881       if (MI.getOpcode() == X86::MOV32r0) {
 4882         NewMI = MakeM0Inst(*this, X86::MOV32mi, MOs, InsertPt, MI);
 4888     I = lookupFoldTable(MI.getOpcode(), OpNum);
 4900       const TargetRegisterClass *RC = getRegClass(MI.getDesc(), OpNum,
 4912         if (MI.getOperand(0).getSubReg() || MI.getOperand(1).getSubReg())
 4912         if (MI.getOperand(0).getSubReg() || MI.getOperand(1).getSubReg())
 4920       NewMI = FuseTwoAddrInst(MF, Opcode, MOs, InsertPt, MI, *this);
 4922       NewMI = FuseInst(MF, Opcode, OpNum, MOs, InsertPt, MI, *this);
 4941     if (findCommutedOpIndices(MI, CommuteOpIdx1, CommuteOpIdx2)) {
 4942       bool HasDef = MI.getDesc().getNumDefs();
 4943       Register Reg0 = HasDef ? MI.getOperand(0).getReg() : Register();
 4944       Register Reg1 = MI.getOperand(CommuteOpIdx1).getReg();
 4945       Register Reg2 = MI.getOperand(CommuteOpIdx2).getReg();
 4947           0 == MI.getDesc().getOperandConstraint(CommuteOpIdx1, MCOI::TIED_TO);
 4949           0 == MI.getDesc().getOperandConstraint(CommuteOpIdx2, MCOI::TIED_TO);
 4958           commuteInstruction(MI, false, CommuteOpIdx1, CommuteOpIdx2);
 4963       if (CommutedMI != &MI) {
 4970       NewMI = foldMemoryOperandImpl(MF, MI, CommuteOpIdx2, MOs, InsertPt,
 4977           commuteInstruction(MI, false, CommuteOpIdx1, CommuteOpIdx2);
 4982       if (UncommutedMI != &MI) {
 4994   if (PrintFailedFusing && !MI.isCopy())
 4995     dbgs() << "We failed to fuse operand " << OpNum << " in " << MI;