aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CacheTokens.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2014-03-28 20:03:54 +0000
committerJustin Bogner <mail@justinbogner.com>2014-03-28 20:03:54 +0000
commita06321efdd716c0043abea8e1b0cdd80891a75bd (patch)
tree2c45bce35869d92832b6be658429a23d65fbacb8 /clang/lib/Frontend/CacheTokens.cpp
parent6c8824d216c808f211be8ef4014ee0d750cfe795 (diff)
downloadllvm-a06321efdd716c0043abea8e1b0cdd80891a75bd.zip
llvm-a06321efdd716c0043abea8e1b0cdd80891a75bd.tar.gz
llvm-a06321efdd716c0043abea8e1b0cdd80891a75bd.tar.bz2
OnDiskHashTable: Use EndianStream.h to write little endian ostreams
Rather than rolling our own functions to write little endian data to an ostream, we can use the support in llvm's EndianStream.h. No functional change. llvm-svn: 205044
Diffstat (limited to 'clang/lib/Frontend/CacheTokens.cpp')
-rw-r--r--clang/lib/Frontend/CacheTokens.cpp59
1 files changed, 39 insertions, 20 deletions
diff --git a/clang/lib/Frontend/CacheTokens.cpp b/clang/lib/Frontend/CacheTokens.cpp
index 0fca513..2cb6582 100644
--- a/clang/lib/Frontend/CacheTokens.cpp
+++ b/clang/lib/Frontend/CacheTokens.cpp
@@ -23,6 +23,7 @@
#include "clang/Lex/Preprocessor.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
+#include "llvm/Support/EndianStream.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
@@ -78,21 +79,23 @@ public:
unsigned getKind() const { return (unsigned) Kind; }
void EmitData(raw_ostream& Out) {
+ using namespace llvm::support;
+ endian::Writer<little> LE(Out);
switch (Kind) {
case IsFE: {
// Emit stat information.
llvm::sys::fs::UniqueID UID = FE->getUniqueID();
- ::Emit64(Out, UID.getFile());
- ::Emit64(Out, UID.getDevice());
- ::Emit64(Out, FE->getModificationTime());
- ::Emit64(Out, FE->getSize());
+ LE.write<uint64_t>(UID.getFile());
+ LE.write<uint64_t>(UID.getDevice());
+ LE.write<uint64_t>(FE->getModificationTime());
+ LE.write<uint64_t>(FE->getSize());
} break;
case IsDE:
// Emit stat information.
- ::Emit64(Out, Data->UniqueID.getFile());
- ::Emit64(Out, Data->UniqueID.getDevice());
- ::Emit64(Out, Data->ModTime);
- ::Emit64(Out, Data->Size);
+ LE.write<uint64_t>(Data->UniqueID.getFile());
+ LE.write<uint64_t>(Data->UniqueID.getDevice());
+ LE.write<uint64_t>(Data->ModTime);
+ LE.write<uint64_t>(Data->Size);
delete Data;
break;
default:
@@ -120,32 +123,36 @@ public:
static std::pair<unsigned,unsigned>
EmitKeyDataLength(raw_ostream& Out, PTHEntryKeyVariant V,
const PTHEntry& E) {
+ using namespace llvm::support;
+ endian::Writer<little> LE(Out);
unsigned n = V.getString().size() + 1 + 1;
- ::Emit16(Out, n);
+ LE.write<uint16_t>(n);
unsigned m = V.getRepresentationLength() + (V.isFile() ? 4 + 4 : 0);
- ::Emit8(Out, m);
+ LE.write<uint8_t>(m);
return std::make_pair(n, m);
}
static void EmitKey(raw_ostream& Out, PTHEntryKeyVariant V, unsigned n){
+ using namespace llvm::support;
// Emit the entry kind.
- ::Emit8(Out, (unsigned) V.getKind());
+ endian::Writer<little>(Out).write<uint8_t>((unsigned)V.getKind());
// Emit the string.
Out.write(V.getString().data(), n - 1);
}
static void EmitData(raw_ostream& Out, PTHEntryKeyVariant V,
const PTHEntry& E, unsigned) {
-
+ using namespace llvm::support;
+ endian::Writer<little> LE(Out);
// For file entries emit the offsets into the PTH file for token data
// and the preprocessor blocks table.
if (V.isFile()) {
- ::Emit32(Out, E.getTokenOffset());
- ::Emit32(Out, E.getPPCondTableOffset());
+ LE.write<uint32_t>(E.getTokenOffset());
+ LE.write<uint32_t>(E.getPPCondTableOffset());
}
// Emit any other data associated with the key (i.e., stat information).
@@ -186,18 +193,28 @@ class PTHWriter {
/// Emit a token to the PTH file.
void EmitToken(const Token& T);
- void Emit8(uint32_t V) { ::Emit8(Out, V); }
+ void Emit8(uint32_t V) {
+ using namespace llvm::support;
+ endian::Writer<little>(Out).write<uint8_t>(V);
+ }
- void Emit16(uint32_t V) { ::Emit16(Out, V); }
+ void Emit16(uint32_t V) {
+ using namespace llvm::support;
+ endian::Writer<little>(Out).write<uint16_t>(V);
+ }
- void Emit32(uint32_t V) { ::Emit32(Out, V); }
+ void Emit32(uint32_t V) {
+ using namespace llvm::support;
+ endian::Writer<little>(Out).write<uint32_t>(V);
+ }
void EmitBuf(const char *Ptr, unsigned NumBytes) {
Out.write(Ptr, NumBytes);
}
void EmitString(StringRef V) {
- ::Emit16(Out, V.size());
+ using namespace llvm::support;
+ endian::Writer<little>(Out).write<uint16_t>(V.size());
EmitBuf(V.data(), V.size());
}
@@ -584,8 +601,9 @@ public:
static std::pair<unsigned,unsigned>
EmitKeyDataLength(raw_ostream& Out, const PTHIdKey* key, uint32_t) {
+ using namespace llvm::support;
unsigned n = key->II->getLength() + 1;
- ::Emit16(Out, n);
+ endian::Writer<little>(Out).write<uint16_t>(n);
return std::make_pair(n, sizeof(uint32_t));
}
@@ -598,7 +616,8 @@ public:
static void EmitData(raw_ostream& Out, PTHIdKey*, uint32_t pID,
unsigned) {
- ::Emit32(Out, pID);
+ using namespace llvm::support;
+ endian::Writer<little>(Out).write<uint32_t>(pID);
}
};
} // end anonymous namespace