[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