Dep.setLatency(0);
++NumFused;
- DEBUG(dbgs() << "Macro fuse ";
- Preds ? BSU->print(dbgs(), DAG) : ASU->print(dbgs(), DAG);
- dbgs() << " - ";
- Preds ? ASU->print(dbgs(), DAG) : BSU->print(dbgs(), DAG);
- dbgs() << '\n');
+ DEBUG({ SUnit *LSU = Preds ? BSU : ASU;
+ SUnit *RSU = Preds ? ASU : BSU;
+ const MachineInstr *LMI = Preds ? BMI : AMI;
+ const MachineInstr *RMI = Preds ? AMI : BMI;
+
+ dbgs() << DAG->MF.getName() << "(): Macro fuse ";
+ LSU->print(dbgs(), DAG);
+ dbgs() << " - ";
+ RSU->print(dbgs(), DAG);
+ dbgs() << " / " <<
+ TII->getName(LMI->getOpcode()) << " - " <<
+ TII->getName(RMI->getOpcode()) << '\n';
+ });
return true;
}
void X86MacroFusion::apply(ScheduleDAGInstrs *DAGInstrs) {
ScheduleDAGMI *DAG = static_cast<ScheduleDAGMI*>(DAGInstrs);
+ const TargetInstrInfo &TII = *DAG->TII;
const X86Subtarget &ST = DAG->MF.getSubtarget<X86Subtarget>();
// For now, assume targets can only fuse with the branch.
SuccDep.setLatency(0);
++NumFused;
- DEBUG(dbgs() << "Macro fuse ";
+ DEBUG(dbgs() << DAG->MF.getName() << "(): Macro fuse ";
SU.print(dbgs(), DAG);
- dbgs() << " - ExitSU" << '\n');
+ dbgs() << " - ExitSU" << " / " <<
+ TII.getName(Pred.getOpcode()) << " - " <<
+ TII.getName(Branch->getOpcode()) << '\n';
+);
break;
}