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

References

lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
  230       assert(!WebAssembly::isArgument(MI.getOpcode()));
  232       if (MI.isDebugInstr() || MI.isLabel())
  232       if (MI.isDebugInstr() || MI.isLabel())
  238       if (WebAssembly::isTee(MI.getOpcode())) {
  239         assert(MFI.isVRegStackified(MI.getOperand(0).getReg()));
  240         assert(!MFI.isVRegStackified(MI.getOperand(1).getReg()));
  241         Register OldReg = MI.getOperand(2).getReg();
  249           BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), NewReg)
  249           BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc), NewReg)
  251           MI.getOperand(2).setReg(NewReg);
  257             getLocalId(Reg2Local, CurLocal, MI.getOperand(1).getReg());
  259         BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc),
  259         BuildMI(MBB, &MI, MI.getDebugLoc(), TII->get(Opc),
  260                 MI.getOperand(0).getReg())
  262             .addReg(MI.getOperand(2).getReg());
  264         MI.eraseFromParent();
  271       assert(MI.getDesc().getNumDefs() <= 1);
  272       if (MI.getDesc().getNumDefs() == 1) {
  273         Register OldReg = MI.getOperand(0).getReg();
  277           auto InsertPt = std::next(MI.getIterator());
  278           if (MI.getOpcode() == WebAssembly::IMPLICIT_DEF) {
  279             MI.eraseFromParent();
  286                 BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc))
  293             BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc))
  297           MI.getOperand(0).setReg(NewReg);
  301           MI.getOperand(0).setIsDead(false);
  308       MachineInstr *InsertPt = &MI;
  309       for (MachineOperand &MO : reverse(MI.explicit_uses())) {
  319           assert(MI.isInlineAsm());
  323           MI.untieRegOperand(MI.getOperandNo(&MO));
  323           MI.untieRegOperand(MI.getOperandNo(&MO));
  337         if (MI.isInlineAsm()) {
  340           MI.untieRegOperand(MI.getOperandNo(&MO));
  340           MI.untieRegOperand(MI.getOperandNo(&MO));
  351             BuildMI(MBB, InsertPt, MI.getDebugLoc(), TII->get(Opc), NewReg)
  359       if (WebAssembly::isCopy(MI.getOpcode())) {
  360         MRI.replaceRegWith(MI.getOperand(1).getReg(),
  361                            MI.getOperand(0).getReg());
  362         MI.eraseFromParent();