[llvm] r297504 - [AArch64, X86] Additional debug information for MacroFusion

Evandro Menezes via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 10 13:36:08 PST 2017


Hi, Eric.

I was just about to commit a patch fixing this issue, but I'm glad that 
you beat me to it and provided a fixed sooner.

Thank you,

-- 
Evandro Menezes

On 03/10/2017 03:32 PM, Eric Christopher wrote:
> Hi Evandro,
>
> You broke the Werror build (TII was unused except in debug builds), 
> I've gone ahead and fixed it in r297507.
>
> -eric
>
> On Fri, Mar 10, 2017 at 12:32 PM Evandro Menezes via llvm-commits 
> <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>
>     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;
>        }
>
>
>     _______________________________________________
>     llvm-commits mailing list
>     llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>



More information about the llvm-commits mailing list