- Apr 10, 2010
-
-
John McCall authored
serve as a source of source locations for the can't-yet-mangle diagnostic. llvm-svn: 100924
-
Gabor Greif authored
llvm-svn: 100919
-
Gabor Greif authored
llvm-svn: 100918
-
John McCall authored
llvm-svn: 100909
-
John McCall authored
mangling an unknown expression kind. Also conveniently tells the user what kind of expression they should add to the mangler! llvm-svn: 100907
-
- Apr 09, 2010
-
-
John McCall authored
just integer-literal expressions with special case implementations in the AST. Fixes rdar://problem/7825453. llvm-svn: 100905
-
- Apr 08, 2010
-
-
Anders Carlsson authored
llvm-svn: 100778
-
Anders Carlsson authored
llvm-svn: 100776
-
Douglas Gregor authored
llvm-svn: 100775
-
Douglas Gregor authored
__cxxabiv1::__fundamental_type_info in every translation unit. Previously, we would perform name lookup for __cxxabiv1::__fundamental_type_info at the end of IRGen for a each translation unit, to determine whether it was present. If so, we we produce type information for all of the fundamental types. However, this name lookup causes PCH deserialization of a significant part of the translation unit, which has a woeful impact on performance. With this change, we now look at each record type after we've generated its vtable to see if it is __cxxabiv1::__fundamental_type_info. If so, we generate type info for all of the fundamental types. This works because __cxxabiv1::__fundamental_type_info should always have a key function (typically the virtual destructor), that will be defined once in the support library. The fundamental type information will end up there. Fixes <rdar://problem/7840011>. llvm-svn: 100772
-
Daniel Dunbar authored
IRgen: Move the bit-field access type into CGBitFieldInfo, and change bit-field LValues to just store the base address of object containing the bit-field. llvm-svn: 100745
-
- Apr 07, 2010
-
-
John McCall authored
to the intrinsic, even when math-errno is off. Fixes rdar://problem/7828230 by falling back on the library function. llvm-svn: 100613
-
Chris Lattner authored
have the code generate slap a srcloc metadata on inline asm nodes. This allows us to diagnose invalid inline asms with such nice diagnostics as: <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ asm.c:2:12: note: generated from here __asm__ ("abc incl %0" : "+r" (X)); ^ 2 diagnostics generated. llvm-svn: 100608
-
- Apr 06, 2010
-
-
Chris Lattner authored
llvm-svn: 100534
-
Daniel Dunbar authored
llvm-svn: 100513
-
Daniel Dunbar authored
llvm-svn: 100512
-
Daniel Dunbar authored
llvm-svn: 100511
-
- Apr 05, 2010
-
-
Daniel Dunbar authored
- Unfortunately, this requires some horrible code in CGObjCMac which always allocats a CGBitFieldInfo because we don't currently build a proper layout for Objective-C classes. It needs to be cleaned up, but I don't want the bit-field cleanups to be blocked on that. llvm-svn: 100474
-
Devang Patel authored
llvm-svn: 100462
-
Daniel Dunbar authored
llvm-svn: 100433
-
Daniel Dunbar authored
llvm-svn: 100432
-
- Apr 04, 2010
-
-
Mon P Wang authored
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. llvm-svn: 100305
-
- Apr 03, 2010
-
-
Rafael Espindola authored
Don't produce a vtable for a class if we have an explicit template instantiation declaration and no key function. We will produce the vtable at the explicit template instantiation. Fixes PR6748 llvm-svn: 100266
-
Daniel Dunbar authored
llvm-svn: 100237
-
- Apr 02, 2010
-
-
Daniel Dunbar authored
IRgen/Obj-C: Eliminate FindIvarInterface, now that ivar's are in the right DeclContexts (-2 FIXMEs). We still have an annoying linear scan + hidden dependency on how Obj-C layout is done. - This is also an algorithmic improvement in IRgen for Obj-C, although it probably doesn't matter in practice. llvm-svn: 100228
-
Chris Lattner authored
llvm-svn: 100219
-
Mon P Wang authored
llvm-svn: 100200
-
Douglas Gregor authored
poor (and wrong) approximation of the actual rules governing when to build a copy and when it can be elided. The correct implementation is actually simpler than the approximation. When we only enumerate constructors as part of initialization (e.g., for direct initialization or when we're copying from a class type or one of its derived classes), we don't create a copy. When we enumerate all conversion functions, we do create a copy. Before, we created some extra copies and missed some others. The new test copy-initialization.cpp shows a case where we missed creating a (required, non-elidable) copy as part of a user-defined conversion, which resulted in a miscompile. This commit also fixes PR6757, where the missing copy made us reject well-formed code in the ternary operator. This commit also cleans up our handling of copy elision in the case where we create an extra copy of a temporary object, which became necessary now that we produce the right copies. The code that seeks to find the temporary object being copied has moved into Expr::getTemporaryObject(); it used to have two different not-quite-the-same implementations, one in Sema and one in CodeGen. Note that we still do not attempt to perform the named return value optimization, so we miss copy elisions for return values and throw expressions. llvm-svn: 100196
-
Mon P Wang authored
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. llvm-svn: 100193
-
Daniel Dunbar authored
CG/NeXT: Assert some invariants on an ivar's containing decl context that I am about to refactor based on, following some testing. llvm-svn: 100188
-
- Apr 01, 2010
-
-
Chris Lattner authored
llvm-svn: 100093
-
- Mar 31, 2010
-
-
Douglas Gregor authored
this was parsed as a typename-specifier, elaborated-type-specifier (including the kind), or just a dependent qualified type name. llvm-svn: 100039
-
Douglas Gregor authored
refactoring work in this area. llvm-svn: 100019
-
Benjamin Kramer authored
llvm-svn: 100007
-
Chris Lattner authored
addition to the inherent win, this eliminates the pointless cost of going through the name -> mdkind stringmap that we were paying. llvm-svn: 99983
-
Daniel Dunbar authored
IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures. - I did a cursory check that this was perf neutral, FWIW. llvm-svn: 99978
-
Daniel Dunbar authored
CGRecordLayoutBuilder: Switch unions to use same mechanism for tracking field and bit-field info as structs. - Anders, please check. llvm-svn: 99977
-
Douglas Gregor authored
the existing (and already well-tested) linkage computation for types, with minor tweaks for dynamic classes and (pointers to) incomplete types. Fixes PR6597. llvm-svn: 99968
-
Daniel Dunbar authored
llvm-svn: 99967
-
John McCall authored
null checks, and make sure we elide null checks when accessing base class members. llvm-svn: 99963
-