Add separate statistics for Data and Inst fragments emitted during relaxation.
authorEli Bendersky <eliben@google.com>
Fri, 7 Dec 2012 17:59:21 +0000 (17:59 +0000)
committerEli Bendersky <eliben@google.com>
Fri, 7 Dec 2012 17:59:21 +0000 (17:59 +0000)
Also fixes a test that was overly-sensitive to the exact order of statistics
emitted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169619 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCAssembler.cpp
test/MC/ELF/no-fixup.s

index 457abd2a0aaa47aa991848ae442e5c84647fd7c0..5032e6fff6999dd70f5af653ebda1573d34c3bd8 100644 (file)
@@ -33,7 +33,9 @@ using namespace llvm;
 
 namespace {
 namespace stats {
-STATISTIC(EmittedFragments, "Number of emitted assembler fragments");
+STATISTIC(EmittedFragments, "Number of emitted assembler fragments - total");
+STATISTIC(EmittedInstFragments, "Number of emitted assembler fragments - instruction");
+STATISTIC(EmittedDataFragments, "Number of emitted assembler fragments - data");
 STATISTIC(evaluateFixup, "Number of evaluated fixups");
 STATISTIC(FragmentLayouts, "Number of fragment layouts");
 STATISTIC(ObjectBytes, "Number of emitted object file bytes");
@@ -432,6 +434,7 @@ static void WriteFragmentData(const MCAssembler &Asm, const MCAsmLayout &Layout,
   }
 
   case MCFragment::FT_Data: {
+    ++stats::EmittedDataFragments;
     MCDataFragment &DF = cast<MCDataFragment>(F);
     assert(FragmentSize == DF.getContents().size() && "Invalid size!");
     OW->WriteBytes(DF.getContents().str());
@@ -456,6 +459,7 @@ static void WriteFragmentData(const MCAssembler &Asm, const MCAsmLayout &Layout,
   }
 
   case MCFragment::FT_Inst: {
+    ++stats::EmittedInstFragments;
     MCInstFragment &IF = cast<MCInstFragment>(F);
     OW->WriteBytes(StringRef(IF.getCode().begin(), IF.getCode().size()));
     break;
index 6e719bcc8c110a139f3ea841ed347e1ad1588df1..8cc299fb24b325383c9045e54f865777cf4d68ad 100644 (file)
@@ -4,11 +4,8 @@
 // Test that we create no fixups for this file since "a" and "b" are in the
 // same fragment.
 
-// CHECK:      assembler - Number of assembler layout and relaxation steps
-// CHECK-NEXT: assembler - Number of emitted assembler fragments
-// CHECK-NEXT: assembler - Number of emitted object file bytes
+// CHECK:      assembler - Number of emitted object file bytes
 // CHECK-NEXT: assembler - Number of fragment layouts
-// CHECK-NEXT: mcexpr    - Number of MCExpr evaluations
 
 a:
   nop