- 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
-
Bob Wilson authored
llvm-svn: 99949
-
Daniel Dunbar authored
llvm-svn: 99946
-
Daniel Dunbar authored
llvm-svn: 99945
-
Daniel Dunbar authored
llvm-svn: 99944
-
Rafael Espindola authored
Fixes PR3782. llvm-svn: 99940
-
- Mar 30, 2010
-
-
Mon P Wang authored
llvm-svn: 99930
-
Rafael Espindola authored
This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. llvm-svn: 99920
-
Rafael Espindola authored
class has no key function. Fix PR6738. llvm-svn: 99900
-
Benjamin Kramer authored
llvm-svn: 99884
-
Anders Carlsson authored
llvm-svn: 99869
-
Anders Carlsson authored
llvm-svn: 99868
-
Anders Carlsson authored
Use the new function in EmitClassAggrMemberwiseCopy, fixing the same assert as seen in PR6628 but for arrays this time. llvm-svn: 99867
-
Anders Carlsson authored
llvm-svn: 99866
-
Anders Carlsson authored
llvm-svn: 99865
-
Anders Carlsson authored
Handle default arguments when calling copy constructors for bases or members when synthesizing a copy constructor. Fixes PR6628. llvm-svn: 99864
-
Anders Carlsson authored
Flip the switch and use the new vtable layout code for everything. I've verified that this passes a self-host but I'll let the bots self host as well before removing the now dead code. llvm-svn: 99861
-
Ted Kremenek authored
This reduces '-c -g' time on one file in 403.gcc by 12%. llvm-svn: 99857
-
- Mar 29, 2010
-
-
Ted Kremenek authored
llvm-svn: 99828
-
Ted Kremenek authored
on one .i file from 403.gcc by 0.5%. llvm-svn: 99823
-
Chris Lattner authored
Anton Yartsev! llvm-svn: 99817
-
Anders Carlsson authored
llvm-svn: 99812
-
Anders Carlsson authored
llvm-svn: 99807
-