Skip to content
  1. Aug 19, 2010
    • Alexis Hunt's avatar
      Generate Attr subclasses with TableGen. · dcfba7b3
      Alexis Hunt authored
      Now all classes derived from Attr are generated from TableGen.
      Additionally, Attr* is no longer its own linked list; SmallVectors or
      Attr* are used. The accompanying LLVM commit contains the updates to
      TableGen necessary for this.
      
      Some other notes about newly-generated attribute classes:
      
       - The constructor arguments are a SourceLocation and a Context&,
         followed by the attributes arguments in the order that they were
         defined in Attr.td
      
       - Every argument in Attr.td has an appropriate accessor named getFoo,
         and there are sometimes a few extra ones (such as to get the length
         of a variadic argument).
      
      Additionally, specific_attr_iterator has been introduced, which will
      iterate over an AttrVec, but only over attributes of a certain type. It
      can be accessed through either Decl::specific_attr_begin/end or
      the global functions of the same name.
      
      llvm-svn: 111455
      dcfba7b3
  2. Aug 16, 2010
  3. Jun 28, 2010
    • Sebastian Redl's avatar
      Introduce Expr::Classify and Expr::ClassifyModifiable, which determine the... · f9463106
      Sebastian Redl authored
      Introduce Expr::Classify and Expr::ClassifyModifiable, which determine the classification of an expression under the C++0x taxology (value category). Reimplement isLvalue and isModifiableLvalue using these functions. No regressions in the test suite from this, and my rough performance check doesn't show any regressions either.
      
      llvm-svn: 107007
      f9463106
  4. Jun 17, 2010
  5. May 30, 2010
    • Alexis Hunt's avatar
      Convert DeclNodes to use TableGen. · ed05325d
      Alexis Hunt authored
      The macros required for DeclNodes use have changed to match the use of
      StmtNodes. The FooFirst enumerator constants have been named firstFoo
      to match usage elsewhere.
      
      llvm-svn: 105165
      ed05325d
  6. May 05, 2010
  7. Mar 22, 2010
  8. Mar 11, 2010
  9. Mar 08, 2010
  10. Feb 09, 2010
  11. Feb 05, 2010
  12. Jan 10, 2010
  13. Dec 23, 2009
  14. Dec 18, 2009
  15. Dec 16, 2009
  16. Nov 10, 2009
  17. Oct 29, 2009
  18. Oct 06, 2009
  19. Aug 19, 2009
  20. Jul 28, 2009
  21. Jul 19, 2009
  22. Jul 16, 2009
  23. Jul 15, 2009
  24. Jul 06, 2009
  25. Jun 14, 2009
  26. May 30, 2009
  27. May 21, 2009
  28. Apr 22, 2009
  29. Apr 01, 2009
  30. Mar 28, 2009
  31. Mar 19, 2009
    • Douglas Gregor's avatar
      Introduce a representation for types that we referred to via a · 5253768a
      Douglas Gregor authored
      qualified name, e.g., 
      
        foo::x
      
      so that we retain the nested-name-specifier as written in the source
      code and can reproduce that qualified name when printing the types
      back (e.g., in diagnostics). This is PR3493, which won't be complete
      until finished the other tasks mentioned near the end of this commit.
      
      The parser's representation of nested-name-specifiers, CXXScopeSpec,
      is now a bit fatter, because it needs to contain the scopes that
      precede each '::' and keep track of whether the global scoping
      operator '::' was at the beginning. For example, we need to keep track
      of the leading '::', 'foo', and 'bar' in
       
        ::foo::bar::x
      
      The Action's CXXScopeTy * is no longer a DeclContext *. It's now the
      opaque version of the new NestedNameSpecifier, which contains a single
      component of a nested-name-specifier (either a DeclContext * or a Type
      *, bitmangled). 
      
      The new sugar type QualifiedNameType composes a sequence of
      NestedNameSpecifiers with a representation of the type we're actually
      referring to. At present, we only build QualifiedNameType nodes within
      Sema::getTypeName. This will be extended to other type-constructing
      actions (e.g., ActOnClassTemplateId).
      
      Also on the way: QualifiedDeclRefExprs will also store a sequence of
      NestedNameSpecifiers, so that we can print out the property
      nested-name-specifier. I expect to also use this for handling
      dependent names like Fibonacci<I - 1>::value.
      
      llvm-svn: 67265
      5253768a
  32. Mar 17, 2009
    • Douglas Gregor's avatar
      Build system changes to use TableGen to generate the various · 23d75bb3
      Douglas Gregor authored
      diagnostics. This builds on the patch that Sebastian committed and
      then revert. Major differences are:
      
        - We don't remove or use the current ".def" files. Instead, for now,
          we just make sure that we're building the ".inc" files.
        - Fixed CMake makefiles to run TableGen and build the ".inc" files
          when needed. Tested with both the Xcode and Makefile generators
          provided by CMake, so it should be solid.
        - Fixed normal makefiles to handle out-of-source builds that involve
          the ".inc" files.
      
      I'll send a separate patch to the list with Sebastian's changes that
      eliminate the use of the .def files.
      
      llvm-svn: 67058
      23d75bb3
  33. Feb 04, 2009
  34. Nov 19, 2008
  35. Nov 17, 2008
Loading