Skip to content
Snippets Groups Projects
  1. Dec 04, 2012
  2. Nov 13, 2012
  3. Jun 17, 2012
  4. Dec 20, 2011
  5. Aug 22, 2011
    • Argyrios Kyrtzidis's avatar
      Boost the efficiency of SourceManager::getMacroArgExpandedLocation. · d9d2b679
      Argyrios Kyrtzidis authored
      Currently getMacroArgExpandedLocation is very inefficient and for the case
      of a location pointing at the main file it will end up checking almost all of
      the SLocEntries. Make it faster:
      
      -Use a map of macro argument chunks to their expanded source location. The map
       is for a single source file, it's stored in the file's ContentCache and lazily
       computed, like the source lines cache.
      -In SLocEntry's FileInfo add an 'unsigned NumCreatedFIDs' field that keeps track
       of the number of FileIDs (files and macros) that were created during preprocessing
       of that particular file SLocEntry. This is useful when computing the macro argument
       map in skipping included files while scanning for macro arg FileIDs that lexed from
       a specific source file. Due to padding, the new field does not increase the size
       of SLocEntry.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138225 91177308-0d34-0410-b5e6-96231b3b80d8
      d9d2b679
  6. Feb 28, 2011
  7. Sep 09, 2009
  8. Jan 29, 2009
  9. Jan 27, 2009
  10. Jan 17, 2009
    • Chris Lattner's avatar
      this massive patch introduces a simple new abstraction: it makes · 2b2453a7
      Chris Lattner authored
      "FileID" a concept that is now enforced by the compiler's type checker
      instead of yet-another-random-unsigned floating around.
      
      This is an important distinction from the "FileID" currently tracked by
      SourceLocation.  *That* FileID may refer to the start of a file or to a
      chunk within it.  The new FileID *only* refers to the file (and its 
      #include stack and eventually #line data), it cannot refer to a chunk.
      
      FileID is a completely opaque datatype to all clients, only SourceManager
      is allowed to poke and prod it.
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62407 91177308-0d34-0410-b5e6-96231b3b80d8
      2b2453a7
  11. Jan 16, 2009
  12. Nov 22, 2008
  13. Nov 20, 2008
  14. Nov 19, 2008
  15. Nov 18, 2008
  16. Nov 13, 2008
  17. Nov 12, 2008
Loading