[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