[llvm] r297504 - [AArch64, X86] Additional debug information for MacroFusion
Evandro Menezes via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 10 12:20:04 PST 2017
Author: evandro
Date: Fri Mar 10 14:20:04 2017
New Revision: 297504
URL: http://llvm.org/viewvc/llvm-project?rev=297504&view=rev
Log:
[AArch64, X86] Additional debug information for MacroFusion
In order to make it easier to parse information about the performance of
MacroFusion, this patch adds the function and the instruction names to the
debug output of this pass.
Modified:
llvm/trunk/lib/Target/AArch64/AArch64MacroFusion.cpp
llvm/trunk/lib/Target/X86/X86MacroFusion.cpp
Modified: llvm/trunk/lib/Target/AArch64/AArch64MacroFusion.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64MacroFusion.cpp?rev=297504&r1=297503&r2=297504&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AArch64MacroFusion.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AArch64MacroFusion.cpp Fri Mar 10 14:20:04 2017
@@ -209,11 +209,19 @@ static bool scheduleAdjacentImpl(Schedul
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;
}
Modified: llvm/trunk/lib/Target/X86/X86MacroFusion.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86MacroFusion.cpp?rev=297504&r1=297503&r2=297504&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86MacroFusion.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86MacroFusion.cpp Fri Mar 10 14:20:04 2017
@@ -214,6 +214,7 @@ public:
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.
@@ -249,9 +250,12 @@ void X86MacroFusion::apply(ScheduleDAGIn
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;
}
More information about the llvm-commits
mailing list