- Feb 08, 2011
-
-
John McCall authored
mutable fields and with trivial destructors and copy constructors. llvm-svn: 125073
-
Ken Dyck authored
functionality intended. llvm-svn: 125069
-
- Feb 07, 2011
-
-
John McCall authored
llvm-svn: 125021
-
John McCall authored
- BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. llvm-svn: 125005
-
Anton Yartsev authored
llvm-svn: 125000
-
- Feb 06, 2011
-
-
Anders Carlsson authored
Fix self-host; if a thunk already exists and has available_externally linkage, we should change its linkage instead of asserting. llvm-svn: 124986
-
Anders Carlsson authored
When building with optimizations, emit thunks with available_externally linkage so devirtualized function calls can also be de-thunked. llvm-svn: 124984
-
Anders Carlsson authored
llvm-svn: 124983
-
- Feb 05, 2011
-
-
Anders Carlsson authored
won't assert when building a thunk for an implicit virtual member function that is not marked used. llvm-svn: 124967
-
Anders Carlsson authored
We now emit everything except unused implicit virtual member functions when building the vtable. llvm-svn: 124935
-
- Feb 04, 2011
-
-
Fariborz Jahanian authored
llvm-svn: 124837
-
Fariborz Jahanian authored
llvm-svn: 124835
-
Fariborz Jahanian authored
abi. llvm-svn: 124834
-
- Feb 03, 2011
-
-
Fariborz Jahanian authored
llvm-svn: 124807
-
John McCall authored
right for anonymous struct/union members led to me discovering some seemingly broken code in that area of Sema, which I fixed, partly by changing the representation of member pointer constants so that IndirectFieldDecls aren't expanded. This led to assorted cleanups with member pointers in CodeGen, and while I was doing that I saw some random other things to clean up. llvm-svn: 124785
-
Rafael Espindola authored
This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot. llvm-svn: 124780
-
Anders Carlsson authored
is not defined in the current translation unit. Doing so lead to compile errors such as PR9114. Instead, when CodeGen is building the vtable, don't try to emit a definition for functions that aren't marked used in the current translation unit. Fixes PR9114. llvm-svn: 124768
-
Fariborz Jahanian authored
llvm-svn: 124757
-
- Feb 02, 2011
-
-
Devang Patel authored
llvm-svn: 124756
-
Devang Patel authored
llvm-svn: 124753
-
Benjamin Kramer authored
llvm-svn: 124736
-
Fariborz Jahanian authored
llvm-svn: 124701
-
- Feb 01, 2011
-
-
John McCall authored
bit-pattern. It's not clear that this is actually useful given current language restrictions. llvm-svn: 124685
-
Rafael Espindola authored
llvm-svn: 124651
-
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
-