From: Justin Bogner Date: Sun, 21 Jun 2015 20:32:36 +0000 (+0000) Subject: Revert "ASTReader: Copy input file offset data to avoid unaligned accesses" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=058686443928499184fcf1e7263e3d953cc834c3;p=clang Revert "ASTReader: Copy input file offset data to avoid unaligned accesses" We can do this better by changing the type to unaligned_uint64_t and paying the cost on use instead of up front. This reverts r240228 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240246 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Serialization/Module.h b/include/clang/Serialization/Module.h index 48715e3015..5571d91a54 100644 --- a/include/clang/Serialization/Module.h +++ b/include/clang/Serialization/Module.h @@ -206,7 +206,7 @@ public: llvm::BitstreamCursor InputFilesCursor; /// \brief Offsets for all of the input file entries in the AST file. - std::vector InputFileOffsets; + const uint64_t *InputFileOffsets; /// \brief The input files that have been loaded from this AST file. std::vector InputFilesLoaded; diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index af6f92a511..d75b5eb73d 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -2304,21 +2304,13 @@ ASTReader::ReadControlBlock(ModuleFile &F, return Result; break; - case INPUT_FILE_OFFSETS: { + case INPUT_FILE_OFFSETS: NumInputs = Record[0]; NumUserInputs = Record[1]; - F.InputFileOffsets.clear(); - F.InputFileOffsets.reserve(NumInputs); - using namespace llvm::support; - const char *Buf = Blob.data(); - for (unsigned int I = 0; I < NumInputs; ++I) - F.InputFileOffsets.push_back( - endian::readNext(Buf)); - + F.InputFileOffsets = (const uint64_t *)Blob.data(); F.InputFilesLoaded.resize(NumInputs); break; } - } } }