- Feb 01, 2011
-
-
Ken Dyck authored
llvm-svn: 124646
-
Rafael Espindola authored
* llvm-link would complains about mismatched visibility * If we produce a relocation with an available_externally, it is good to know that it is hidden. llvm-svn: 124633
-
- Jan 31, 2011
-
-
Argyrios Kyrtzidis authored
Allow taking the address of such a field for a pointer-to-member constant. Fixes rdar://8818236. llvm-svn: 124575
-
- Jan 30, 2011
-
-
Anders Carlsson authored
current translation unit as available_externally. This helps devirtualize the second example in PR3100, comment 18: struct S { S() {}; virtual void xyzzy(); }; inline void foo(S *s) { s->xyzzy(); } void bar() { S s; foo(&s); } This involved four major changes: 1. In DefineUsedVTables, always mark virtual member functions as referenced for non-template classes and class template specializations. 2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are enabled, even if the key function is not implemented in this translation unit. We don't ever do this for code compiled with -fapple-kext, because we don't ever want to devirtualize virtual member function calls in that case. 3. Give the correct linkage for vtables where the key function is not defined. 4. Update the linkage for RTTI structures when necessary. llvm-svn: 124565
-
- Jan 29, 2011
-
-
Anders Carlsson authored
llvm-svn: 124554
-
Anders Carlsson authored
When emitting RTTI for a non-class type, compute the visibility of the RTTI data based on the explicit visibility of the type. llvm-svn: 124553
-
Anders Carlsson authored
llvm-svn: 124550
-
Anders Carlsson authored
Set the visibility for typeinfo names. llvm-svn: 124548
-
Anders Carlsson authored
Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead of an "IsForRTTI" flag. llvm-svn: 124546
-
Anders Carlsson authored
llvm-svn: 124542
-
Anders Carlsson authored
llvm-svn: 124541
-
Anders Carlsson authored
llvm-svn: 124540
-
Anders Carlsson authored
Make emitting a VTT a two-step process, much like emitting a VTable. You first get the address of the VTT, and then pass it to EmitVTTDefinition. llvm-svn: 124539
-
Anders Carlsson authored
llvm-svn: 124538
-
Anders Carlsson authored
Add a new function, to be used by CGRTTI, CGVTables and CGVTT (which each has their own copy of this code). llvm-svn: 124537
-
Ken Dyck authored
llvm-svn: 124536
-
Anders Carlsson authored
llvm-svn: 124529
-
Anders Carlsson authored
When trying to get the most derived class, don't assume that we can ignore all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost. llvm-svn: 124528
-
Anders Carlsson authored
When calling a virtual member function on a base class and the most derived class is marked 'final', we can devirtualize the call. llvm-svn: 124524
-
Anders Carlsson authored
When doing a derived-to-base class through a virtual class, we don't have to get the vbase offset from the vtable if the derived class is marked final. llvm-svn: 124523
-
Fariborz Jahanian authored
indirect vf calls and addition of extra entry at bottom of vtbls. llvm-svn: 124507
-
- Jan 28, 2011
-
-
John McCall authored
llvm-svn: 124503
-
John McCall authored
Pure motion. llvm-svn: 124484
-
John McCall authored
for CodeGen's RValue type. llvm-svn: 124483
-
John McCall authored
fixing a crash which probably nobody was ever going to see. In doing so, fix a horrendous number of problems with the conditional-cleanups code. Also, make conditional cleanups re-use the cleanup's activation variable, which avoids some unfortunate repetitiveness. llvm-svn: 124481
-
Douglas Gregor authored
non-class prvalues actually require the realization of a temporary. For everything else, we already have an lvalue (or class prvalue) in the subexpression. Note: we're missing some move elision in this case. I'll tackle that next. llvm-svn: 124453
-
- Jan 27, 2011
-
-
John McCall authored
deallocation function has a two-argument form. Store the result of this check in new[] and delete[] nodes. Fixes rdar://problem/8913519 llvm-svn: 124373
-
John McCall authored
My thanks to chapuni for his help in investigating this. llvm-svn: 124351
-
Fariborz Jahanian authored
referenced in the block-literal initializer of that variable. // rdar://8893785 llvm-svn: 124332
-
- Jan 26, 2011
-
-
John McCall authored
llvm-svn: 124310
-
John McCall authored
dtor cleanup use it. llvm-svn: 124309
-
John McCall authored
I'm separately committing this because it incidentally changes some block orderings and minor IR issues, like using a phi instead of an unnecessary alloca. llvm-svn: 124277
-
- Jan 25, 2011
-
-
Nico Weber authored
llvm-svn: 124227
-
Eric Christopher authored
llvm-svn: 124153
-
- Jan 24, 2011
-
-
Anton Yartsev authored
llvm-svn: 124146
-
Anders Carlsson authored
llvm-svn: 124122
-
Anders Carlsson authored
llvm-svn: 124096
-
Anders Carlsson authored
llvm-svn: 124095
-
Anders Carlsson authored
llvm-svn: 124094
-
Anders Carlsson authored
Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. llvm-svn: 124089
-