Skip to content
Snippets Groups Projects
  • Douglas Gregor's avatar
    6a5a23f8
    Implement serialization and lazy deserialization of the preprocessing · 6a5a23f8
    Douglas Gregor authored
    record (which includes all macro instantiations and definitions). As
    with all lay deserialization, this introduces a new external source
    (here, an external preprocessing record source) that loads all of the
    preprocessed entities prior to iterating over the entities.
    
    The preprocessing record is an optional part of the precompiled header
    that is disabled by default (enabled with
    -detailed-preprocessing-record). When the preprocessor given to the
    PCH writer has a preprocessing record, that record is written into the
    PCH file. When the PCH reader is given a PCH file that contains a
    preprocessing record, it will be lazily loaded (which, effectively,
    implicitly adds -detailed-preprocessing-record). This is the first
    case where we have sections of the precompiled header that are
    added/removed based on a compilation flag, which is
    unfortunate. However, this data consumes ~550k in the PCH file for
    Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering
    this detailed preprocessing information, so it's too expensive to turn
    on by default. In the future, we should investigate a better encoding
    of this information.
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99002 91177308-0d34-0410-b5e6-96231b3b80d8
    6a5a23f8
    History
    Implement serialization and lazy deserialization of the preprocessing
    Douglas Gregor authored
    record (which includes all macro instantiations and definitions). As
    with all lay deserialization, this introduces a new external source
    (here, an external preprocessing record source) that loads all of the
    preprocessed entities prior to iterating over the entities.
    
    The preprocessing record is an optional part of the precompiled header
    that is disabled by default (enabled with
    -detailed-preprocessing-record). When the preprocessor given to the
    PCH writer has a preprocessing record, that record is written into the
    PCH file. When the PCH reader is given a PCH file that contains a
    preprocessing record, it will be lazily loaded (which, effectively,
    implicitly adds -detailed-preprocessing-record). This is the first
    case where we have sections of the precompiled header that are
    added/removed based on a compilation flag, which is
    unfortunate. However, this data consumes ~550k in the PCH file for
    Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering
    this detailed preprocessing information, so it's too expensive to turn
    on by default. In the future, we should investigate a better encoding
    of this information.
    
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99002 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.