diff --git a/llvm/lib/CodeGen/MachineTraceMetrics.cpp b/llvm/lib/CodeGen/MachineTraceMetrics.cpp
index 557d473..8ae6f37 100644
--- a/llvm/lib/CodeGen/MachineTraceMetrics.cpp
+++ b/llvm/lib/CodeGen/MachineTraceMetrics.cpp
@@ -142,6 +142,7 @@
   // Compute resources from trace above. The top block is simple.
   if (!TBI->Pred) {
     TBI->InstrDepth = 0;
+    TBI->Head = MBB->getNumber();
     return;
   }
 
@@ -151,6 +152,7 @@
   assert(PredTBI->hasValidDepth() && "Trace above has not been computed yet");
   const FixedBlockInfo *PredFBI = CT.getResources(TBI->Pred);
   TBI->InstrDepth = PredTBI->InstrDepth + PredFBI->InstrCount;
+  TBI->Head = PredTBI->Head;
 }
 
 // Update resource-related information in the TraceBlockInfo for MBB.
@@ -163,14 +165,17 @@
   TBI->InstrHeight = CT.getResources(MBB)->InstrCount;
 
   // The trace tail is done.
-  if (!TBI->Succ)
+  if (!TBI->Succ) {
+    TBI->Tail = MBB->getNumber();
     return;
+  }
 
   // Compute from the block below. A post-order traversal ensures the
   // predecessor is always computed first.
   TraceBlockInfo *SuccTBI = &BlockInfo[TBI->Succ->getNumber()];
   assert(SuccTBI->hasValidHeight() && "Trace below has not been computed yet");
   TBI->InstrHeight += SuccTBI->InstrHeight;
+  TBI->Tail = SuccTBI->Tail;
 }
 
 // Check if depth resources for MBB are valid and return the TBI.
@@ -454,12 +459,15 @@
 }
 
 void MachineTraceMetrics::Trace::print(raw_ostream &OS) const {
-  OS << TE.getName() << " trace:";
+  unsigned MBBNum = &TBI - &TE.BlockInfo[0];
+
+  OS << TE.getName() << " trace BB#" << TBI.Head << " --> BB#" << MBBNum
+     << " --> BB#" << TBI.Tail << ':';
   if (TBI.hasValidHeight() && TBI.hasValidDepth())
     OS << ' ' << getInstrCount() << " instrs.";
 
   const MachineTraceMetrics::TraceBlockInfo *Block = &TBI;
-  OS << "\n *";
+  OS << "\nBB#" << MBBNum;
   while (Block->hasValidDepth() && Block->Pred) {
     unsigned Num = Block->Pred->getNumber();
     OS << " <- BB#" << Num;
@@ -467,7 +475,7 @@
   }
 
   Block = &TBI;
-  OS << "\n *";
+  OS << "\n    ";
   while (Block->hasValidHeight() && Block->Succ) {
     unsigned Num = Block->Succ->getNumber();
     OS << " -> BB#" << Num;
