Skip to content
  1. Jun 11, 2010
  2. Mar 16, 2010
  3. Feb 27, 2010
  4. Jan 22, 2010
  5. Jan 10, 2010
  6. Sep 09, 2009
  7. Jul 12, 2009
  8. Jul 02, 2009
    • Douglas Gregor's avatar
      Add support for retrieving the Doxygen comment associated with a given · c6d5edd2
      Douglas Gregor authored
      declaration in the AST. 
      
      The new ASTContext::getCommentForDecl function searches for a comment
      that is attached to the given declaration, and returns that comment, 
      which may be composed of several comment blocks.
      
      Comments are always available in an AST. However, to avoid harming
      performance, we don't actually parse the comments. Rather, we keep the
      source ranges of all of the comments within a large, sorted vector,
      then lazily extract comments via a binary search in that vector only
      when needed (which never occurs in a "normal" compile).
      
      Comments are written to a precompiled header/AST file as a blob of
      source ranges. That blob is only lazily loaded when one requests a
      comment for a declaration (this never occurs in a "normal" compile). 
      
      The indexer testbed now supports comment extraction. When the
      -point-at location points to a declaration with a Doxygen-style
      comment, the indexer testbed prints the associated comment
      block(s). See test/Index/comments.c for an example.
      
      Some notes:
        - We don't actually attempt to parse the comment blocks themselves,
        beyond identifying them as Doxygen comment blocks to associate them
        with a declaration.
        - We won't find comment blocks that aren't adjacent to the
        declaration, because we start our search based on the location of
        the declaration.
        - We don't go through the necessary hops to find, for example,
        whether some redeclaration of a declaration has comments when our
        current declaration does not. Similarly, we don't attempt to
        associate a \param Foo marker in a function body comment with the
        parameter named Foo (although that is certainly possible).
        - Verification of my "no performance impact" claims is still "to be
        done".
      
      llvm-svn: 74704
      c6d5edd2
  9. Jun 18, 2009
  10. Jun 15, 2009
  11. May 12, 2009
  12. Apr 20, 2009
  13. Apr 19, 2009
  14. Apr 14, 2009
  15. Mar 17, 2009
  16. Mar 08, 2009
  17. Feb 15, 2009
    • Chris Lattner's avatar
      track "just a little more" location information for macro instantiations. · 9dc9c206
      Chris Lattner authored
      Now instead of just tracking the expansion history, also track the full
      range of the macro that got replaced.  For object-like macros, this doesn't
      change anything.  For _Pragma and function-like macros, this means we track
      the locations of the ')'.
      
      This is required for PR3579 because apparently GCC uses the line of the ')'
      of a function-like macro as the location to expand __LINE__ to.
      
      llvm-svn: 64601
      9dc9c206
  18. Jan 29, 2009
  19. Jan 27, 2009
  20. Jan 26, 2009
    • Chris Lattner's avatar
      This change refactors some of the low-level lexer interfaces a bit. · 5a7971e0
      Chris Lattner authored
      Token now has a class of kinds for "literals", which include 
      numeric constants, strings, etc.  These tokens can optionally have
      a pointer to the start of the token in the lexer buffer.  This 
      makes it faster to get spelling and do other gymnastics, because we
      don't have to go through source locations.
      
      This change is performance neutral, but will make other changes
      more feasible down the road.
      
      llvm-svn: 63028
      5a7971e0
  21. Jan 19, 2009
  22. Jan 17, 2009
    • Chris Lattner's avatar
      Change the Lexer ctor used to lex _Pragma directives into a static factory · 757169b6
      Chris Lattner authored
      method.  This lets us clean up the interface and make it more obvious that
      this method is *really really* _Pragma specific.
      
      Note that _Pragma handling uglifies the Lexer in the critical path.  It would
      be very interesting to consider making _Pragma remapping be a new special
      lexer class of its own.
      
      llvm-svn: 62425
      757169b6
    • Chris Lattner's avatar
      this massive patch introduces a simple new abstraction: it makes · d32480d3
      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.
      
      llvm-svn: 62407
      d32480d3
  23. Jan 16, 2009
  24. Nov 20, 2008
  25. Nov 19, 2008
  26. Nov 18, 2008
  27. Oct 04, 2008
  28. Sep 26, 2008
  29. Aug 11, 2008
    • Daniel Dunbar's avatar
      More #include cleaning · 56fdb6ae
      Daniel Dunbar authored
       - Kill unnecessary #includes in .cpp files. This is an automatic
         sweep so some things removed are actually used, but happen to be
         included by a previous header. I tried to get rid of the obvious
         examples and this was the easiest way to trim the #includes in one
         fell swoop.
       - We now return to regularly scheduled development.
      
      llvm-svn: 54632
      56fdb6ae
Loading