| #
f7f04458 |
| 04-Feb-2011 |
Fariborz Jahanian <[email protected]> |
-fapple-kext cannot have 'weak' visibility in this abi.
llvm-svn: 124834
|
| #
af5b92e8 |
| 03-Feb-2011 |
Rafael Espindola <[email protected]> |
Revert 124768. This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot.
llvm-svn: 124780
|
| #
bac84bef |
| 03-Feb-2011 |
Anders Carlsson <[email protected]> |
Don't try to mark virtual members referenced for classes where the key function is not defined in the current translation unit. Doing so lead to compile errors such as PR9114.
Instead, when CodeGen
Don't try to mark virtual members referenced for classes where the key function 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
show more ...
|
| #
88ea6ab4 |
| 01-Feb-2011 |
Rafael Espindola <[email protected]> |
Revert 124633. The linker has been told how to merge available_externally.
llvm-svn: 124651
|
| #
9fa5a67d |
| 01-Feb-2011 |
Rafael Espindola <[email protected]> |
Set visibility for available_externally globals. This is important for two reasons:
* llvm-link would complains about mismatched visibility * If we produce a relocation with an available_externally,
Set visibility for available_externally globals. This is important for two reasons:
* 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
show more ...
|
| #
a03f3a85 |
| 30-Jan-2011 |
Anders Carlsson <[email protected]> |
When building with optimizations, emit vtables where the key is not in the current translation unit as available_externally.
This helps devirtualize the second example in PR3100, comment 18:
stru
When building with optimizations, emit vtables where the key is not in the 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
show more ...
|
| #
537fdced |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Move GetLLVMVisibility to CodeGenModule.
llvm-svn: 124550
|
| #
678632fa |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Add RTTIBuilder::GetAddrOfTypeName which uses the newly added CreateOrReplaceCXXRuntimeVariable.
Set the visibility for typeinfo names.
llvm-svn: 124548
|
| #
265aa7c0 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead of an "IsForRTTI" flag.
llvm-svn: 124546
|
| #
072ef742 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Replace an isa/cast with a dyn_cast.
llvm-svn: 124542
|
| #
c6a47895 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Get rid of an unneeded parameter from setGlobalVisibility.
llvm-svn: 124541
|
| #
93be9a90 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Use CGM.CreateOrReplaceCXXRuntimeVariable in CGVTables.cpp
llvm-svn: 124538
|
| #
da80af36 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Add a new function, to be used by CGRTTI, CGVTables and CGVTT (which each has their own copy of this code).
llvm-svn: 124537
|
| #
a45a70cf |
| 29-Jan-2011 |
Ken Dyck <[email protected]> |
Replace a literal '8' with getCharWidth().
llvm-svn: 124536
|
| #
fd483406 |
| 29-Jan-2011 |
Anders Carlsson <[email protected]> |
Remove IsDefinition from CodeGenModule::setTypeVisibility; it is always true.
llvm-svn: 124529
|
| #
571e2ad0 |
| 24-Jan-2011 |
Anders Carlsson <[email protected]> |
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
|
| #
1e188897 |
| 22-Jan-2011 |
Benjamin Kramer <[email protected]> |
Use a FunctionType::get overload that doesn't require an empty vector.
llvm-svn: 124029
|
| #
d661a853 |
| 18-Jan-2011 |
Rafael Espindola <[email protected]> |
Add unnamed_addr in CreateRuntimeVariable.
llvm-svn: 123773
|
| #
9a648693 |
| 18-Jan-2011 |
Ken Dyck <[email protected]> |
Replace calls to CharUnits::fromQuantity() with ones to ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.
llvm-svn: 123720
|
| #
2e217d65 |
| 17-Jan-2011 |
Rafael Espindola <[email protected]> |
More unnamed_addr.
llvm-svn: 123681
|
| #
de089d46 |
| 17-Jan-2011 |
Rafael Espindola <[email protected]> |
merge strings created by const NSConstantString *appKey = @"MyApp";
llvm-svn: 123680
|
| #
e79d43da |
| 17-Jan-2011 |
Rafael Espindola <[email protected]> |
Add unnamed_addr to the special strings created by __builtin___CFStringMakeConstantString This fixes PR8993. A darwin expert might want to check that this is safe.
llvm-svn: 123658
|
| #
0ff0b376 |
| 13-Jan-2011 |
Peter Collingbourne <[email protected]> |
Move name mangling support from CodeGen to AST. In the process, perform a number of refactorings:
- Move MiscNameMangler member functions to MangleContext - Remove GlobalDecl dependency from Mangle
Move name mangling support from CodeGen to AST. In the process, perform a number of refactorings:
- Move MiscNameMangler member functions to MangleContext - Remove GlobalDecl dependency from MangleContext - Make MangleContext abstract and move Itanium/Microsoft functionality to their own classes/files - Implement ASTContext::createMangleContext and have CodeGen use it
No (intended) functionality change.
llvm-svn: 123386
show more ...
|
| #
b1e879c8 |
| 11-Jan-2011 |
Rafael Espindola <[email protected]> |
Set unnamed_addr for type infos that we are confortable marking as hidden. I think it is safe to mark all type infos with unnamed_addr, but I am not sure.
llvm-svn: 123275
|
| #
0ee986c1 |
| 11-Jan-2011 |
Rafael Espindola <[email protected]> |
Add unnamed_addr to constructors and destructors.
llvm-svn: 123197
|