Skip to content
  1. Feb 12, 2009
    • Fariborz Jahanian's avatar
      Make nonfragile-abi the default for darwin's 64bit · 13de253b
      Fariborz Jahanian authored
      abi for objective-c programs.
      
      llvm-svn: 64386
      13de253b
    • Steve Naroff's avatar
      Several cleanups: · b7605153
      Steve Naroff authored
      - rename isObjCIdType/isObjCClassType -> isObjCIdStructType/isObjCClassStructType. The previous name didn't do what you would expect.
      - add back isObjCIdType/isObjCClassType to do what you would expect. Not currently used, however many of the isObjCIdStructType/isObjCClassStructType clients could be converted over time.
      - move static Sema function areComparableObjCInterfaces to ASTContext (renamed to areComparableObjCPointerTypes, since it now operates on pointer types).
      
      llvm-svn: 64385
      b7605153
    • Daniel Dunbar's avatar
      Support __attribute__(section(<name>)) · 648bf783
      Daniel Dunbar authored
      llvm-svn: 64380
      648bf783
    • Steve Naroff's avatar
      Turn warning into error. Minor incompatibility with GCC (for scalar types, GCC... · 0fa412cc
      Steve Naroff authored
      Turn warning into error. Minor incompatibility with GCC (for scalar types, GCC only produces a warning).
      
      llvm-svn: 64375
      0fa412cc
    • Daniel Dunbar's avatar
      Fix va_arg bug noticed by Eli, __builtin_va_arg is not an l-value · 6d0402d4
      Daniel Dunbar authored
      designating an object.
      
      llvm-svn: 64371
      6d0402d4
    • Daniel Dunbar's avatar
      x86_64: Initial varargs support. · 753cc07d
      Daniel Dunbar authored
       - Doesn't yet handle case where values are passed in mixed (general
         purpose & floating point) registers; otherwise largely
         functional. Code still needs some cleaning.
      
      Fixes:
      MultiSource/Applications/lua/lua
      MultiSource/Applications/siod/siod
      MultiSource/Applications/sqlite3/sqlite3
      SingleSource/Regression/C/PR640
      SingleSource/UnitTests/2003-07-09-SignedArgs
      SingleSource/UnitTests/2007-03-02-VaCopy
      
      gcc compat test suite results (Darwin x86-32 & -64):
      --
      # of expected passes		1262
      # of unexpected failures	56
      # of unresolved testcases	34
      # of unsupported tests		2
      
      Compare to: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20090209/012050.html
      
      llvm-svn: 64370
      753cc07d
    • Ted Kremenek's avatar
      Re-enable PTH stat caching. All tests pass now. · b4c85cca
      Ted Kremenek authored
      llvm-svn: 64356
      b4c85cca
    • Ted Kremenek's avatar
      Fix bad reading of bytes in ReadUnalignedLE64() (copy-paste error). · c6a2a372
      Ted Kremenek authored
      llvm-svn: 64355
      c6a2a372
    • Ted Kremenek's avatar
    • Ted Kremenek's avatar
      PTH: Cache stat information for files in the PTH file. Hook up FileManager · a5c2c27e
      Ted Kremenek authored
       to use this stat information in the PTH file using a 'StatSysCallCache' object.
      
      Performance impact (Cocoa.h, PTH):
      - number of stat calls reduces from 1230 to 425
      - fsyntax-only: time improves by 4.2% 
      
      We can reduce the number of stat calls to almost zero by caching negative stat
      calls and directory stat calls in the PTH file as well.
      
      llvm-svn: 64353
      a5c2c27e
    • Ted Kremenek's avatar
      FileManager: · 5d7e2e17
      Ted Kremenek authored
      - set the 'StatSysCallCache' object using a setter method instead of
        FileManager's constructor. This allows the cache to be installed after the
        FileManager object is created.
      - Add 'file mode' to FileEntry (useful for stat caching)
      
      llvm-svn: 64351
      5d7e2e17
    • Chris Lattner's avatar
      search and replaceo? · 882018b8
      Chris Lattner authored
      llvm-svn: 64348
      882018b8
    • Anders Carlsson's avatar
      Add support for generating block call expressions. · 2437cbfa
      Anders Carlsson authored
      llvm-svn: 64346
      2437cbfa
    • Ted Kremenek's avatar
      Add lightweight shim "clang::StatSysCallCache" that caches 'stat' system calls · c8b740ea
      Ted Kremenek authored
      for use by FileManager. FileManager now takes a StatSysCallCache* in its
      constructor (which defaults to NULL). This will be used for evaluating whether
      or not caching 'stat' system calls in PTH is a performance win. This shim adds
      no observable performance impact in the case where the 'StatSysCallCache*' is
      null.
      
      llvm-svn: 64345
      c8b740ea
    • Douglas Gregor's avatar
      Expand the definition of a complex promotion to include complex -> · 6752502b
      Douglas Gregor authored
      complex conversions where the conversion between the real types is an
      integral promotion. This is how G++ handles complex promotions for its
      complex integer extension.
      
      llvm-svn: 64344
      6752502b
    • Douglas Gregor's avatar
      Introduce _Complex conversions into the function overloading · 78ca74d8
      Douglas Gregor authored
      system. Since C99 doesn't have overloading and C++ doesn't have
      _Complex, there is no specification for    this. Here's what I think
      makes sense.
      
      Complex conversions come in several flavors:
      
        - Complex promotions:  a complex -> complex   conversion where the
          underlying real-type conversion is a floating-point promotion. GCC
          seems to call this a promotion, EDG does something else. This is
          given "promotion" rank for determining the best viable function.
        - Complex conversions: a complex -> complex conversion that is
          not a complex promotion. This is given "conversion" rank for
          determining the best viable   function.
        - Complex-real conversions: a real -> complex or complex -> real
          conversion. This is given "conversion" rank for determining the
          best viable function.
      
      These rules are the same for C99 (when using the "overloadable"
      attribute) and C++. However, there is one difference in the handling
      of floating-point promotions: in C99, float -> long double and double
      -> long double are considered promotions (so we give them "promotion" 
      rank), while C++ considers these conversions ("conversion" rank).
      
      llvm-svn: 64343
      78ca74d8
    • Fariborz Jahanian's avatar
      Last @encode'ing fix for objc2's nonfragile abi. · 77b6b5d6
      Fariborz Jahanian authored
      All relevant dejagnu enocding tests pass in this mode.
      
      llvm-svn: 64341
      77b6b5d6
    • Ted Kremenek's avatar
      4c1d41f2
    • Mike Stump's avatar
      Fix comment. · c89c8e32
      Mike Stump authored
      llvm-svn: 64337
      c89c8e32
    • Douglas Gregor's avatar
      Initial implementation of function overloading in C. · 4e5cbdcb
      Douglas Gregor authored
      This commit adds a new attribute, "overloadable", that enables C++
      function overloading in C. The attribute can only be added to function
      declarations, e.g.,
      
        int *f(int) __attribute__((overloadable));
      
      If the "overloadable" attribute exists on a function with a given
      name, *all* functions with that name (and in that scope) must have the
      "overloadable" attribute. Sets of overloaded functions with the
      "overloadable" attribute then follow the normal C++ rules for
      overloaded functions, e.g., overloads must have different
      parameter-type-lists from each other.
      
      When calling an overloaded function in C, we follow the same
      overloading rules as C++, with three extensions to the set of standard
      conversions:
      
        - A value of a given struct or union type T can be converted to the
          type T. This is just the identity conversion. (In C++, this would
          go through a copy constructor).
        - A value of pointer type T* can be converted to a value of type U*
          if T and U are compatible types. This conversion has Conversion
          rank (it's considered a pointer conversion in C).
        - A value of type T can be converted to a value of type U if T and U
          are compatible (and are not both pointer types). This conversion
          has Conversion rank (it's considered to be a new kind of
          conversion unique to C, a "compatible" conversion).
      
      Known defects (and, therefore, next steps):
        1) The standard-conversion handling does not understand conversions
        involving _Complex or vector extensions, so it is likely to get
        these wrong. We need to add these conversions.
        2) All overloadable functions with the same name will have the same
        linkage name, which means we'll get a collision in the linker (if
        not sooner). We'll need to mangle the names of these functions.
      
      llvm-svn: 64336
      4e5cbdcb
  2. Feb 11, 2009
Loading