[PATCH] D18213: Add a module Hash in the bitcode and the combined index.
Duncan P. N. Exon Smith via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 29 16:58:48 PDT 2016
> On 2016-Mar-29, at 16:16, Mehdi AMINI <mehdi.amini at apple.com> wrote:
>
> joker.eph updated this revision to Diff 52002.
> joker.eph marked 6 inline comments as done.
> joker.eph added a comment.
>
> Taking comments into account.
>
>
> http://reviews.llvm.org/D18213
>
> Files:
> include/llvm/Bitcode/BitstreamReader.h
> include/llvm/Bitcode/LLVMBitCodes.h
> include/llvm/Bitcode/ReaderWriter.h
> include/llvm/IR/ModuleSummaryIndex.h
> lib/Bitcode/Reader/BitcodeReader.cpp
> lib/Bitcode/Writer/BitcodeWriter.cpp
> lib/IR/ModuleSummaryIndex.cpp
> lib/Transforms/IPO/FunctionImport.cpp
> tools/llvm-as/llvm-as.cpp
> tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
>
> <D18213.52002.patch>
Found a weird spacing issue below (I haven't looked deeply; I figure
Rafael and Teresa are already looking at this one? Happy to look if
need be though.)
> Index: include/llvm/Bitcode/LLVMBitCodes.h
> ===================================================================
> --- include/llvm/Bitcode/LLVMBitCodes.h
> +++ include/llvm/Bitcode/LLVMBitCodes.h
> @@ -71,43 +71,46 @@
> enum { BITCODE_CURRENT_EPOCH = 0 };
>
> /// MODULE blocks have a number of optional fields and subblocks.
> - enum ModuleCodes {
> - MODULE_CODE_VERSION = 1, // VERSION: [version#]
> - MODULE_CODE_TRIPLE = 2, // TRIPLE: [strchr x N]
> - MODULE_CODE_DATALAYOUT = 3, // DATALAYOUT: [strchr x N]
> - MODULE_CODE_ASM = 4, // ASM: [strchr x N]
> - MODULE_CODE_SECTIONNAME = 5, // SECTIONNAME: [strchr x N]
> +enum ModuleCodes {
> + MODULE_CODE_VERSION = 1, // VERSION: [version#]
> + MODULE_CODE_TRIPLE = 2, // TRIPLE: [strchr x N]
> + MODULE_CODE_DATALAYOUT = 3, // DATALAYOUT: [strchr x N]
> + MODULE_CODE_ASM = 4, // ASM: [strchr x N]
> + MODULE_CODE_SECTIONNAME = 5, // SECTIONNAME: [strchr x N]
This spacing change seems unrelated (and inconsistent with the enums
above and below).
>
> - // FIXME: Remove DEPLIB in 4.0.
> - MODULE_CODE_DEPLIB = 6, // DEPLIB: [strchr x N]
> + // FIXME: Remove DEPLIB in 4.0.
> + MODULE_CODE_DEPLIB = 6, // DEPLIB: [strchr x N]
>
> - // GLOBALVAR: [pointer type, isconst, initid,
> - // linkage, alignment, section, visibility, threadlocal]
> - MODULE_CODE_GLOBALVAR = 7,
> + // GLOBALVAR: [pointer type, isconst, initid,
> + // linkage, alignment, section, visibility, threadlocal]
> + MODULE_CODE_GLOBALVAR = 7,
>
> - // FUNCTION: [type, callingconv, isproto, linkage, paramattrs, alignment,
> - // section, visibility, gc, unnamed_addr]
> - MODULE_CODE_FUNCTION = 8,
> + // FUNCTION: [type, callingconv, isproto, linkage, paramattrs, alignment,
> + // section, visibility, gc, unnamed_addr]
> + MODULE_CODE_FUNCTION = 8,
>
> - // ALIAS: [alias type, aliasee val#, linkage, visibility]
> - MODULE_CODE_ALIAS_OLD = 9,
> + // ALIAS: [alias type, aliasee val#, linkage, visibility]
> + MODULE_CODE_ALIAS_OLD = 9,
>
> - // MODULE_CODE_PURGEVALS: [numvals]
> - MODULE_CODE_PURGEVALS = 10,
> + // MODULE_CODE_PURGEVALS: [numvals]
> + MODULE_CODE_PURGEVALS = 10,
>
> - MODULE_CODE_GCNAME = 11, // GCNAME: [strchr x N]
> - MODULE_CODE_COMDAT = 12, // COMDAT: [selection_kind, name]
> + MODULE_CODE_GCNAME = 11, // GCNAME: [strchr x N]
> + MODULE_CODE_COMDAT = 12, // COMDAT: [selection_kind, name]
>
> - MODULE_CODE_VSTOFFSET = 13, // VSTOFFSET: [offset]
> + MODULE_CODE_VSTOFFSET = 13, // VSTOFFSET: [offset]
>
> - // ALIAS: [alias value type, addrspace, aliasee val#, linkage, visibility]
> - MODULE_CODE_ALIAS = 14,
> + // ALIAS: [alias value type, addrspace, aliasee val#, linkage, visibility]
> + MODULE_CODE_ALIAS = 14,
>
> - MODULE_CODE_METADATA_VALUES_UNUSED = 15,
> + MODULE_CODE_METADATA_VALUES_UNUSED = 15,
>
> - // SOURCE_FILENAME: [namechar x N]
> - MODULE_CODE_SOURCE_FILENAME = 16,
> - };
> + // SOURCE_FILENAME: [namechar x N]
> + MODULE_CODE_SOURCE_FILENAME = 16,
> +
> + // HASH: [5*i32]
> + MODULE_CODE_HASH = 17,
> +};
>
> /// PARAMATTR blocks have code for defining a parameter attribute set.
> enum AttributeCodes {
> @@ -182,7 +185,8 @@
>
> // The module path symbol table only has one code (MST_CODE_ENTRY).
> enum ModulePathSymtabCodes {
> - MST_CODE_ENTRY = 1, // MST_ENTRY: [modid, namechar x N]
> + MST_CODE_ENTRY = 1, // MST_ENTRY: [modid, namechar x N]
> + MST_CODE_HASH = 2, // MST_HASH: [5*i32]
> };
>
> // The summary section uses different codes in the per-module
More information about the llvm-commits
mailing list