diff options
author | Chris Lattner <sabre@nondot.org> | 2002-07-26 18:40:14 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-07-26 18:40:14 +0000 |
commit | ce6ef112c4abb1f7fd64738c5760f48cddc9a4a5 (patch) | |
tree | d20df3512eb0212eaff8ebb8b0c077209944b242 /lib/Bytecode | |
parent | 0cbc6c2fd8470c62d824667fc600d80a494d26cd (diff) | |
download | external_llvm-ce6ef112c4abb1f7fd64738c5760f48cddc9a4a5.zip external_llvm-ce6ef112c4abb1f7fd64738c5760f48cddc9a4a5.tar.gz external_llvm-ce6ef112c4abb1f7fd64738c5760f48cddc9a4a5.tar.bz2 |
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3105 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode')
-rw-r--r-- | lib/Bytecode/Writer/InstructionWriter.cpp | 11 | ||||
-rw-r--r-- | lib/Bytecode/Writer/Writer.cpp | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/Bytecode/Writer/InstructionWriter.cpp b/lib/Bytecode/Writer/InstructionWriter.cpp index 36414be..fdc5c5c 100644 --- a/lib/Bytecode/Writer/InstructionWriter.cpp +++ b/lib/Bytecode/Writer/InstructionWriter.cpp @@ -16,8 +16,14 @@ #include "llvm/DerivedTypes.h" #include "llvm/iOther.h" #include "llvm/iTerminators.h" +#include "Support/StatisticReporter.h" #include <algorithm> +static Statistic<> +NumOversized("bytecodewriter\t- Number of oversized instructions"); +static Statistic<> +NumNormal("bytecodewriter\t- Number of normal instructions"); + typedef unsigned char uchar; // outputInstructionFormat0 - Output those wierd instructions that have a large @@ -48,6 +54,7 @@ static void outputInstructionFormat0(const Instruction *I, } align32(Out); // We must maintain correct alignment! + ++NumOversized; } @@ -97,6 +104,7 @@ static void outputInstrVarArgsCall(const Instruction *I, output_vbr((unsigned)Slot, Out); } align32(Out); // We must maintain correct alignment! + ++NumOversized; } @@ -118,6 +126,7 @@ static void outputInstructionFormat1(const Instruction *I, unsigned Bits = 1 | (Opcode << 2) | (Type << 8) | (Slots[0] << 20); // cerr << "1 " << IType << " " << Type << " " << Slots[0] << endl; output(Bits, Out); + ++NumNormal; } @@ -142,6 +151,7 @@ static void outputInstructionFormat2(const Instruction *I, // cerr << "2 " << IType << " " << Type << " " << Slots[0] << " " // << Slots[1] << endl; output(Bits, Out); + ++NumNormal; } @@ -167,6 +177,7 @@ static void outputInstructionFormat3(const Instruction *I, //cerr << "3 " << IType << " " << Type << " " << Slots[0] << " " // << Slots[1] << " " << Slots[2] << endl; output(Bits, Out); + ++NumNormal; } void BytecodeWriter::processInstruction(const Instruction &I) { diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp index f7219ea..4eade88 100644 --- a/lib/Bytecode/Writer/Writer.cpp +++ b/lib/Bytecode/Writer/Writer.cpp @@ -25,11 +25,14 @@ #include "llvm/SymbolTable.h" #include "llvm/DerivedTypes.h" #include "Support/STLExtras.h" +#include "Support/StatisticReporter.h" #include <string.h> #include <algorithm> static RegisterPass<WriteBytecodePass> X("emitbytecode", "Bytecode Writer"); +static Statistic<> +BytesWritten("bytecodewriter\t- Number of bytecode bytes written"); BytecodeWriter::BytecodeWriter(std::deque<unsigned char> &o, const Module *M) @@ -234,6 +237,9 @@ void WriteBytecodeToFile(const Module *C, std::ostream &Out) { // This object populates buffer for us... BytecodeWriter BCW(Buffer, C); + // Keep track of how much we've written... + BytesWritten += Buffer.size(); + // Okay, write the deque out to the ostream now... the deque is not // sequential in memory, however, so write out as much as possible in big // chunks, until we're done. |