Skip to content
  1. Jun 16, 2009
  2. Jun 15, 2009
  3. Jun 14, 2009
    • Douglas Gregor's avatar
      Update LLVM. · 33834516
      Douglas Gregor authored
      Implement support for C++ Substitution Failure Is Not An Error
      (SFINAE), which says that errors that occur during template argument
      deduction do *not* produce diagnostics and do not necessarily make a
      program ill-formed. Instead, template argument deduction silently
      fails. This is currently implemented for template argument deduction
      during matching of class template partial specializations, although
      the mechanism will also apply to template argument deduction for
      function templates. The scheme is simple:
      
        - If we are in a template argument deduction context, any diagnostic
          that is considered a SFINAE error (or warning) will be
          suppressed. The error will be propagated up the call stack via the
          normal means.
        - By default, all warnings and errors are SFINAE errors. Add the
          NoSFINAE class to a diagnostic in the .td file to make it a hard
          error (e.g., for access-control violations).
      
      Note that, to make this fully work, every place in Sema that emits an
      error *and then immediately recovers* will need to check
      Sema::isSFINAEContext() to determine whether it must immediately
      return an error rather than recovering.
      
      llvm-svn: 73332
      33834516
    • Chris Lattner's avatar
      Sink the BuiltinInfo object from ASTContext into the · 15ba9498
      Chris Lattner authored
      preprocessor and initialize it early in clang-cc.  This
      ensures that __has_builtin works in all modes, not just
      when ASTContext is around.
      
      llvm-svn: 73319
      15ba9498
    • Chris Lattner's avatar
      move the various builtins stuff from libast to libbasic. This · 5abdec79
      Chris Lattner authored
      fixes a layering violation in lib/Basic/Targets.cpp.
      
      llvm-svn: 73318
      5abdec79
  4. Jun 09, 2009
  5. Jun 08, 2009
  6. Jun 07, 2009
  7. Jun 05, 2009
  8. Jun 03, 2009
  9. Jun 02, 2009
  10. May 29, 2009
  11. May 22, 2009
  12. May 18, 2009
  13. May 17, 2009
  14. May 08, 2009
  15. May 06, 2009
    • Daniel Dunbar's avatar
      Handle -march for the LLVM recognized cpu names. · f9d90275
      Daniel Dunbar authored
       - x86 target feature handling should not be feature complete, even if
         the code quality is lacking.
      
      llvm-svn: 71123
      f9d90275
    • Daniel Dunbar's avatar
      More x86 target feature support. · bb36aed0
      Daniel Dunbar authored
       - Apologies for the extremely gross code duplication, I want to get
         this working and then decide how to get this information out of the
         back end.
      
       - This replaces -m[no-]sse4[12] by -m[no-]sse4, it appears gcc
         doesn't distinguish them?
      
       - -msse, etc. now properly disable/enable related features.
      
       - Don't always define __SSE3__...
      
       - The main missing functionality bit here is that we don't initialize
         the features based on the CPU for all -march options.
      
      llvm-svn: 71117
      bb36aed0
    • Daniel Dunbar's avatar
      Tweak x86 -mcpu defaults. · e5ae096b
      Daniel Dunbar authored
       - Default to yonah on Darwin (to get SSE3).
      
       - Default to Pentium4 (32-bit) and x86-64 (64-bit) on
         non-Darwin. Welcome to the 21st century.
      
      llvm-svn: 71069
      e5ae096b
    • Chris Lattner's avatar
      Fix rdar://6860124 - invalid input constraint 'J' in asm · dbcc5ca5
      Chris Lattner authored
      This recognizes all the target-independent constant constraints
      that have target-specific meanings.
      
      llvm-svn: 71064
      dbcc5ca5
    • Daniel Dunbar's avatar
      Improve handling of (X86) target features. · 4dbaaa6f
      Daniel Dunbar authored
       - This is a WIP...
      
       - This adds -march= handling to the driver, and fixes the defaulting
         of -mcpu on Darwin (which was using the wrong test).
      
      Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
       -target-feature [+-]name
      
      In clang-cc, communicate with the (clang) target to discover the legal
      features of a target, and the features which are enabled based on
      -mcpu. This is currently hardcoded just enough to not be a feature
      regression, we need to get this information from the backend's
      TableGen information somehow.
      
      This is used to construct the full list of features which are being
      used, which is in turn used to initialize the predefines.
      
      llvm-svn: 71061
      4dbaaa6f
  16. May 03, 2009
  17. May 02, 2009
  18. Apr 28, 2009
    • Eli Friedman's avatar
      Simplify the scheme used for keywords, and change the classification · 2b680b43
      Eli Friedman authored
      scheme to be more useful.
      
      The new scheme introduces a set of categories that should be more 
      readable, and also reflects what we want to consider as an extension 
      more accurately.  Specifically, it makes the "what is a keyword" 
      determination accurately reflect whether the keyword is a GNU or 
      Microsoft extension.
      
      I also introduced separate flags for keyword aliases; this is useful 
      because the classification of the aliases is mostly unrelated to the 
      classification of the original keyword.
      
      This patch treats anything that's in the implementation 
      namespace (prefixed with "__", or "_X" where "X" is any upper-case 
      letter) as a keyword without marking it as an extension.  This is 
      consistent with the standards in that an implementation is allowed to define 
      arbitrary extensions in the implementation namespace without violating 
      the standard. This gets rid of all the nasty "extension used" warnings 
      for stuff like __attribute__ in -pedantic mode.  We still warn for 
      extensions outside of the the implementation namespace, like typeof.
      If someone wants to implement -Wextensions or something like that, we 
      could add additional information to the keyword table.
      
      This also removes processing for the unused "Boolean" language option; 
      such an extension isn't supported on any other C implementation, so I 
      don't see any point to adding it.
      
      The changes to test/CodeGen/inline.c are required because previously, we 
      weren't actually disabling the "inline" keyword in -std=c89 mode.
      
      I'll remove Boolean and NoExtensions from LangOptions in a follow-up 
      commit.
      
      llvm-svn: 70281
      2b680b43
  19. Apr 27, 2009
    • Douglas Gregor's avatar
      Be more careful in our teardown of the PCHReader after deciding to · 0bc12935
      Douglas Gregor authored
      ignore a PCH file.
      
      llvm-svn: 70251
      0bc12935
    • Douglas Gregor's avatar
      Implement caching of stat() calls for precompiled headers, which is · c5046832
      Douglas Gregor authored
      essentially the same thing we do with pretokenized headers. stat()
      caching improves performance of the Cocoa-prefixed "Hello, World" by
      45%.
      
      llvm-svn: 70223
      c5046832
    • Douglas Gregor's avatar
      Load most of the source manager's information lazily from the PCH · 258ae54a
      Douglas Gregor authored
      file. In particular, only eagerly load source location entries for
      files and for the predefines buffer. Other buffers and
      macro-instantiation source location entries are loaded lazily.
      
      With the Cocoa-prefixed "Hello, World", we only load 815/26555 source
      location entities. This halves the amount of user time we spend in
      this "Hello, World" program with -fsyntax-only (down to .007s).
      
      This optimization is part 1 of 2 for the source manager. This
      eliminates most of the user time in loading a PCH file. We still spend
      too much time initialize File structures (especially in the calls to
      stat), so we need to either make the loading of source location
      entries for files lazy or import the stat cache from the PTH
      implementation.
      
      llvm-svn: 70196
      258ae54a
    • Douglas Gregor's avatar
      Some fixes for PCH (de-)serialization of Objective-C AST nodes: · 70091b8f
      Douglas Gregor authored
        - Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr
        - Implement PCH support for ImplicitParamDecl
        - Fix the handling of the body of an ObjCMethodDecl
        - Several cast -> cast_or_null fixes
        - Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL
        selectors.
        - Make Selector::getAsString() work with NULL selectors.
        - Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt
        in the PCH reader and writer; these were never getting called.
      
      At this point, all of the pch-test tests pass for C and Objective-C.
      
      llvm-svn: 70163
      70091b8f
  20. Apr 26, 2009
  21. Apr 23, 2009
Loading