Skip to content
  1. Jan 25, 2008
  2. Dec 29, 2007
  3. Dec 19, 2007
  4. Dec 18, 2007
  5. Dec 13, 2007
  6. Dec 10, 2007
  7. Dec 05, 2007
  8. Dec 04, 2007
  9. Nov 10, 2007
  10. Oct 31, 2007
  11. Oct 30, 2007
  12. Oct 16, 2007
  13. Oct 11, 2007
  14. Sep 12, 2007
  15. Sep 03, 2007
  16. Aug 30, 2007
  17. Aug 02, 2007
    • Chris Lattner's avatar
      Fix a bug in my previous commit · 6a340b43
      Chris Lattner authored
      llvm-svn: 40719
      6a340b43
    • Chris Lattner's avatar
      Increase the macro id cache to look up several recent entries, not just the last one. · 04e3d20a
      Chris Lattner authored
      This is important in insane cases like the one dannyb sent me recently:
      
      #define F0(a) void a(){}
      #define F1(a) F0(a##0) F0(a##1) F0(a##2) F0(a##3) F0(a##4) F0(a##5) F0(a##6) F0(a##7)
      #define F2(a) F1(a##0) F1(a##1) F1(a##2) F1(a##3) F1(a##4) F1(a##5) F1(a##6) F1(a##7)
      #define F3(a) F2(a##0) F2(a##1) F2(a##2) F2(a##3) F2(a##4) F2(a##5) F2(a##6) F2(a##7)
      #define F4(a) F3(a##0) F3(a##1) F3(a##2) F3(a##3) F3(a##4) F3(a##5) F3(a##6) F3(a##7)
      #define F5(a) F4(a##0) F4(a##1) F4(a##2) F4(a##3) F4(a##4) F4(a##5) F4(a##6) F4(a##7)
      #define F6(a) F5(a##0) F5(a##1) F5(a##2) F5(a##3) F5(a##4) F5(a##5) F5(a##6) F5(a##7)
      F6(f)
      
      cpp is great.  :)
      
      llvm-svn: 40715
      04e3d20a
  18. Jul 24, 2007
  19. Jul 21, 2007
  20. Jul 20, 2007
    • Chris Lattner's avatar
      remove some old cruft · e60b21c0
      Chris Lattner authored
      llvm-svn: 40111
      e60b21c0
    • Chris Lattner's avatar
      improve comments, implement a trivial single-entry cache in · ca8ebc09
      Chris Lattner authored
      SourceManager::getInstantiationLoc.  With this change, every token
      expanded from a macro doesn't get its own MacroID.  :)
      
      This reduces # macro IDs in carbon.h from 16805 to 9197
      
      llvm-svn: 40108
      ca8ebc09
    • Chris Lattner's avatar
      Reimplement SourceLocation. Instead of having a · dc5c055f
      Chris Lattner authored
      fileid/offset pair, it now contains a bit discriminating between
      mapped locations and file locations.  This separates the tables for
      macros and files in SourceManager, and allows better separation of
      concepts in the rest of the compiler.  This allows us to have *many*
      macro instantiations before running out of 'addressing space'.
      
      This is also more efficient, because testing whether something is a
      macro expansion is now a bit test instead of a table lookup (which
      also used to require having a srcmgr around, now it doesn't).
      
      This is fully functional, but there are several refinements and
      optimizations left.
      
      llvm-svn: 40103
      dc5c055f
  21. Jul 16, 2007
    • Chris Lattner's avatar
      Make octal constant lexing use AdvanceToTokenCharacter to give more · bb1b44f0
      Chris Lattner authored
      accurate diagnostics.  For test/Lexer/comments.c we now emit:
      
      int x = 000000080;  /* expected-error {{invalid digit}} */
                     ^
      constants.c:7:4: error: invalid digit '8' in octal constant
      00080;             /* expected-error {{invalid digit}} */
         ^
      
      
      The last line is due to an escaped newline.  The full line looks like:
      
      int y = 0000\
      00080;             /* expected-error {{invalid digit}} */
      
      
      Previously, we emitted:
      constants.c:4:9: error: invalid digit '8' in octal constant
      int x = 000000080;  /* expected-error {{invalid digit}} */
              ^
      constants.c:6:9: error: invalid digit '8' in octal constant
      int y = 0000\
              ^
      
      which isn't too bad, but the new way is better for the user,
      regardless of whether there is an escaped newline or not.
      
      All the other lexer-related diagnostics should switch over 
      to using AdvanceToTokenCharacter where appropriate.  Help
      wanted :).
      
      This implements test/Lexer/constants.c.
      
      llvm-svn: 39906
      bb1b44f0
  22. Jul 15, 2007
  23. Jul 12, 2007
  24. Jun 16, 2007
    • Chris Lattner's avatar
      Finally bite the bullet and make the major change: split the clang namespace · 23b7eb67
      Chris Lattner authored
      out of the llvm namespace.  This makes the clang namespace be a sibling of
      llvm instead of being a child.
      
      The good thing about this is that it makes many things unambiguous.  The
      bad things is that many things in the llvm namespace (notably data structures
      like smallvector) now require an llvm:: qualifier.  IMO, libsystem and libsupport
      should be split out of llvm into their own namespace in the future, which will fix
      this issue.
      
      llvm-svn: 39659
      23b7eb67
  25. May 07, 2007
  26. Apr 29, 2007
  27. Oct 22, 2006
  28. Jul 20, 2006
  29. Jul 16, 2006
Loading