Skip to content
  1. Feb 20, 2011
  2. Feb 19, 2011
  3. Feb 18, 2011
  4. Feb 17, 2011
  5. Feb 16, 2011
  6. Feb 14, 2011
  7. Feb 12, 2011
  8. Feb 11, 2011
    • Zhanyong Wan's avatar
      Uses llvm::sys::path instead of hand-rolled algorithm in FileManager. · f3c0ff73
      Zhanyong Wan authored
      Reviewed by dgregor.
      
      llvm-svn: 125407
      f3c0ff73
    • Zhanyong Wan's avatar
      Improves Clang's virtual file handling. · e1dd3e2c
      Zhanyong Wan authored
      This patch contains:
      
      - making some of the existing comments more accurate in the presence
      of virtual files/directories.
      
      - renaming some private data members of FileManager to match their roles better.
      
      - creating 'DirectorEntry's for the parent directories of virtual
      files, such that we can tell whether two virtual files are from the
      same directory.  This is useful for injecting virtual files whose
      directories don't exist in the real file system.
      
      - minor clean-ups and adding comments for class
      FileManager::UniqueDirContainer and FileManager::UniqueFileContainer.
      
      - adding statistics on virtual files to FileManager::PrintStats().
      
      - adding unit tests to verify the existing and new behavior of FileManager.
      
      llvm-svn: 125384
      e1dd3e2c
    • Douglas Gregor's avatar
      Don't compare llvm::Optional<> objects directly; compare their · 6a5be93b
      Douglas Gregor authored
      contents when it's safe. I just *love* C++ some days.
      
      llvm-svn: 125378
      6a5be93b
  9. Feb 10, 2011
    • Douglas Gregor's avatar
      Implement two related optimizations that make de-serialization of · 09b6989e
      Douglas Gregor authored
      AST/PCH files more lazy:
        - Don't preload all of the file source-location entries when reading
        the AST file. Instead, load them lazily, when needed.
        - Only look up header-search information (whether a header was already
        #import'd, how many times it's been included, etc.) when it's needed
        by the preprocessor, rather than pre-populating it.
      
      Previously, we would pre-load all of the file source-location entries,
      which also populated the header-search information structure. This was
      a relatively minor performance issue, since we would end up stat()'ing
      all of the headers stored within a AST/PCH file when the AST/PCH file
      was loaded. In the normal PCH use case, the stat()s were cached, so
      the cost--of preloading ~860 source-location entries in the Cocoa.h
      case---was relatively low.
      
      However, the recent optimization that replaced stat+open with
      open+fstat turned this into a major problem, since the preloading of
      source-location entries would now end up opening those files. Worse,
      those files wouldn't be closed until the file manager was destroyed,
      so just opening a Cocoa.h PCH file would hold on to ~860 file
      descriptors, and it was easy to blow through the process's limit on
      the number of open file descriptors.
      
      By eliminating the preloading of these files, we neither open nor stat
      the headers stored in the PCH/AST file until they're actually needed
      for something. Concretely, we went from
      
      *** HeaderSearch Stats:
      835 files tracked.
        364 #import/#pragma once files.
        823 included exactly once.
        6 max times a file is included.
        3 #include/#include_next/#import.
          0 #includes skipped due to the multi-include optimization.
      1 framework lookups.
      0 subframework lookups.
      
      *** Source Manager Stats:
      835 files mapped, 3 mem buffers mapped.
      37460 SLocEntry's allocated, 11215575B of Sloc address space used.
      62 bytes of files mapped, 0 files with line #'s computed.
      
      with a trivial program that uses a chained PCH including a Cocoa PCH
      to
      
      *** HeaderSearch Stats:
      4 files tracked.
        1 #import/#pragma once files.
        3 included exactly once.
        2 max times a file is included.
        3 #include/#include_next/#import.
          0 #includes skipped due to the multi-include optimization.
      1 framework lookups.
      0 subframework lookups.
      
      *** Source Manager Stats:
      3 files mapped, 3 mem buffers mapped.
      37460 SLocEntry's allocated, 11215575B of Sloc address space used.
      62 bytes of files mapped, 0 files with line #'s computed.
      
      for the same program.
      
      llvm-svn: 125286
      09b6989e
    • Roman Divacky's avatar
      Implement mcount profiling, enabled via -pg. · 178e0160
      Roman Divacky authored
      llvm-svn: 125282
      178e0160
    • NAKAMURA Takumi's avatar
      CMake: LLVM_NO_RTTI must be obsolete now! · 98dd73d6
      NAKAMURA Takumi authored
      llvm-svn: 125275
      98dd73d6
  10. Feb 08, 2011
  11. Feb 05, 2011
    • Douglas Gregor's avatar
      Improve our uniquing of file entries when files are re-saved or are · 606c4ac3
      Douglas Gregor authored
      overridden via remapping. Thus, when we create a "virtual" file in the
      file manager, we still stat() the real file that lives behind it so
      that we can provide proper uniquing based on inodes. This helps keep
      the file manager much more consistent.
      
      To take advantage of this when reparsing files in libclang, we disable
      the use of the stat() cache when reparsing or performing code
      completion, since the stat() cache is very likely to be out of date in
      this use case.
      
      llvm-svn: 124971
      606c4ac3
  12. Feb 04, 2011
  13. Feb 03, 2011
  14. Feb 02, 2011
    • Douglas Gregor's avatar
      Canonicalize path names in the file manager before performing a lookup · 3c0d263a
      Douglas Gregor authored
      on that name. Canonicalization eliminates silliness such as "." and
      "foo/.." that breaks the uniquing of files in the presence of virtual
      files or files whose inode numbers have changed during
      parsing/re-parsing. c-index-test isn't able to create this crazy
      situation, so I've resorted to testing outside of the Clang
      tree. Fixes <rdar://problem/8928220>.
      
      Note that this hackery will go away once we have a real virtual file
      system on which we can layer FileManager; the virtual-files hack is
      showing cracks.
      
      llvm-svn: 124754
      3c0d263a
  15. Feb 01, 2011
  16. Jan 31, 2011
  17. Jan 27, 2011
  18. Jan 17, 2011
  19. Jan 14, 2011
  20. Jan 12, 2011
  21. Jan 07, 2011
  22. Jan 06, 2011
    • Bob Wilson's avatar
      Add cortex-m3 CPU to getCPUDefineSuffix mapping. · 44acad8e
      Bob Wilson authored
      Patch by Sylvère Teissier.
      
      llvm-svn: 122965
      44acad8e
    • Roman Divacky's avatar
      PowerPC fixes. · 965b0b72
      Roman Divacky authored
      Fix the width and align of bool type on Darwin to be 32bits
      while keeping it 8 everywhere else.
      
      Change the definition of va_list to default to SV4 ABI one
      and let darwin subtarget override this.
      
      Both changes submitted by Nathan Whitehorn and reviewed
      by Rafael Espindola.
      
      llvm-svn: 122956
      965b0b72
  23. Dec 29, 2010
  24. Dec 26, 2010
  25. Dec 24, 2010
  26. Dec 21, 2010
    • Douglas Gregor's avatar
      In C++, if the user redeclares a builtin function with a type that is · 9246b683
      Douglas Gregor authored
      inconsistent with the type that the builtin *should* have, forget
      about the builtin altogether: we don't want subsequence analyses,
      CodeGen, etc., to think that we have a proper builtin function.
      
      C is protected from errors here because it allows one to use a
      library builtin without having a declaration, and detects inconsistent
      (re-)declarations of builtins during declaration merging. C++ was
      unprotected, and therefore would crash.
      
      Fixes PR8839.
      
      llvm-svn: 122351
      9246b683
Loading