Skip to content
  1. Oct 29, 2011
  2. Oct 28, 2011
  3. Oct 27, 2011
    • Fariborz Jahanian's avatar
      objc: fix an ir-gen crash caused by recent · cceafc49
      Fariborz Jahanian authored
      property refactoring. // rdar://10327068
      
      llvm-svn: 143139
      cceafc49
    • Douglas Gregor's avatar
      Make the loading of information attached to an IdentifierInfo from an · 935bc7a2
      Douglas Gregor authored
      AST file more lazy, so that we don't eagerly load that information for
      all known identifiers each time a new AST file is loaded. The eager
      reloading made some sense in the context of precompiled headers, since
      very few identifiers were defined before PCH load time. With modules,
      however, a huge amount of code can get parsed before we see an
      @import, so laziness becomes important here.
      
      The approach taken to make this information lazy is fairly simple:
      when we load a new AST file, we mark all of the existing identifiers
      as being out-of-date. Whenever we want to access information that may
      come from an AST (e.g., whether the identifier has a macro definition,
      or what top-level declarations have that name), we check the
      out-of-date bit and, if it's set, ask the AST reader to update the
      IdentifierInfo from the AST files. The update is a merge, and we now
      take care to merge declarations before/after imports with declarations
      from multiple imports.
      
      The results of this optimization are fairly dramatic. On a small
      application that brings in 14 non-trivial modules, this takes modules
      from being > 3x slower than a "perfect" PCH file down to 30% slower
      for a full rebuild. A partial rebuild (where the PCH file or modules
      can be re-used) is down to 7% slower. Making the PCH file just a
      little imperfect (e.g., adding two smallish modules used by a bunch of
      .m files that aren't in the PCH file) tips the scales in favor of the
      modules approach, with 24% faster partial rebuilds.
      
      This is just a first step; the lazy scheme could possibly be improved
      by adding versioning, so we don't search into modules we already
      searched. Moreover, we'll need similar lazy schemes for all of the
      other lookup data structures, such as DeclContexts.
      
      llvm-svn: 143100
      935bc7a2
    • Argyrios Kyrtzidis's avatar
      67f914dc
    • Argyrios Kyrtzidis's avatar
      a9aabf7d
    • Argyrios Kyrtzidis's avatar
    • Fariborz Jahanian's avatar
      Do not warn when weak-import attribute is applied to enum · 3249a1e8
      Fariborz Jahanian authored
      decl. in Darwin due to certain projects requirement. 
      // rdar://10277579
      
      llvm-svn: 143082
      3249a1e8
  4. Oct 26, 2011
  5. Oct 25, 2011
  6. Oct 24, 2011
  7. Oct 23, 2011
  8. Oct 22, 2011
Loading