| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Eliminate excessive PCH deserialization caused by the search for | Douglas Gregor | 2010-04-08 | 1 | -35/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | __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 | ||||
| * | Drastically simplify the computation of linkage for typeinfo by using | Douglas Gregor | 2010-03-31 | 1 | -75/+12 |
| | | | | | | | | | 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 | ||||
| * | When given the magic class __cxxabiv1::__fundamental_type_info, produce | Rafael Espindola | 2010-03-27 | 1 | -6/+63 |
| | | | | | | | | | the typeinfo for the fundamental types. Fixes PR6685. llvm-svn: 99701 | ||||
| * | Rename CGVtableInfo to CodeGenVTables in preparation of adding another ↵ | Anders Carlsson | 2010-03-23 | 1 | -1/+1 |
| | | | | | | | VTableInfo class. llvm-svn: 99250 | ||||
| * | Rename getVirtualBaseOffsetIndex to getVirtualBaseOffsetOffset to reflect ↵ | Anders Carlsson | 2010-03-11 | 1 | -1/+1 |
| | | | | | | | what it actually does. llvm-svn: 98248 | ||||
| * | Extract a common structure for holding information about the definition | John McCall | 2010-02-04 | 1 | -2/+5 |
| | | | | | | | | | of a C++ record. Exposed a lot of problems where various routines were silently doing The Wrong Thing (or The Acceptable Thing in The Wrong Order) when presented with a non-definition. Also cuts down on memory usage. llvm-svn: 95330 | ||||
| * | Fix linkage for RTTI names by re-using the logic for computing the | Douglas Gregor | 2010-01-06 | 1 | -18/+3 |
| | | | | | | | | | linkage of vtables. Before this, we were emitting RTTI names for template instantiations with strong external linkage rather than with weak ODR linkage. llvm-svn: 92857 | ||||
| * | Speculative MSVC fix. | Anders Carlsson | 2010-01-02 | 1 | -3/+2 |
| | | | | | llvm-svn: 92421 | ||||
| * | If the key function of a record is inline, then the RTTI data should have ↵ | Anders Carlsson | 2009-12-31 | 1 | -0/+8 |
| | | | | | | | weak_odr linkage. llvm-svn: 92371 | ||||
| * | More RTTI builder cleanup. | Anders Carlsson | 2009-12-31 | 1 | -76/+26 |
| | | | | | llvm-svn: 92360 | ||||
| * | Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests. | Anders Carlsson | 2009-12-30 | 1 | -213/+188 |
| | | | | | llvm-svn: 92319 | ||||
| * | More RTTI cleanup, test that RTTI classes have the correct vtables. | Anders Carlsson | 2009-12-30 | 1 | -52/+57 |
| | | | | | llvm-svn: 92284 | ||||
| * | Match gcc and treat vector types as fundamental types. | Anders Carlsson | 2009-12-29 | 1 | -9/+23 |
| | | | | | llvm-svn: 92278 | ||||
| * | Handle enum types as well. | Anders Carlsson | 2009-12-29 | 1 | -3/+22 |
| | | | | | llvm-svn: 92276 | ||||
| * | Test linkage of RTTI descriptors of array types. | Anders Carlsson | 2009-12-29 | 1 | -29/+61 |
| | | | | | llvm-svn: 92274 | ||||
| * | Fix function type RTTI linkage and add tests. | Anders Carlsson | 2009-12-29 | 1 | -4/+14 |
| | | | | | llvm-svn: 92266 | ||||
| * | Don't set hidden for a non-external symbol as that would make it extenal. | Mike Stump | 2009-12-24 | 1 | -1/+29 |
| | | | | | | | Refine codegen for visibility and hidden. WIP. llvm-svn: 92118 | ||||
| * | Fix recent regression caught by g++.old-deja/g++.mike/eh19.C. | Mike Stump | 2009-12-24 | 1 | -0/+20 |
| | | | | | llvm-svn: 92109 | ||||
| * | Fix regression found by g++.dg/eh/alias1.C. | Mike Stump | 2009-12-23 | 1 | -0/+4 |
| | | | | | llvm-svn: 92072 | ||||
| * | Incomplete structs should also have internal linkage. | Anders Carlsson | 2009-12-21 | 1 | -9/+76 |
| | | | | | llvm-svn: 91805 | ||||
| * | Correcly handle pointers to member pointer types where the class or the ↵ | Anders Carlsson | 2009-12-20 | 1 | -42/+48 |
| | | | | | | | pointee is incomplete. llvm-svn: 91804 | ||||
| * | Rework the way pointer types are handled by the RTTI builder. We now get the ↵ | Anders Carlsson | 2009-12-20 | 1 | -101/+354 |
| | | | | | | | right linkage for indirect pointers to incomplete structs. llvm-svn: 91799 | ||||
| * | Remove ';' after method definition. Noticed by clang++, which one would think | Daniel Dunbar | 2009-12-19 | 1 | -1/+1 |
| | | | | | | | | would have a higher respect for its own code. This is getting old, is this warning really adding value? llvm-svn: 91779 | ||||
| * | Rename GetAddrOfRTTI to GetAddrOfRTTIDescriptor. Remove the overload that ↵ | Anders Carlsson | 2009-12-17 | 1 | -34/+26 |
| | | | | | | | takes a CXXRecordDecl since we were just creating a QualType from it anyway. llvm-svn: 91590 | ||||
| * | Simplify RTTIBuilder::finish. | Anders Carlsson | 2009-12-17 | 1 | -11/+9 |
| | | | | | llvm-svn: 91585 | ||||
| * | Move the Info vector into the RTTIBuilder struct. No functionality change. | Anders Carlsson | 2009-12-17 | 1 | -18/+19 |
| | | | | | llvm-svn: 91583 | ||||
| * | Use GetAddrOfRTTI everywhere and remove GenerateRTTI and GenerateRTTIRef. ↵ | Anders Carlsson | 2009-12-16 | 1 | -18/+0 |
| | | | | | | | With this change, we can now compile and link TableGen. llvm-svn: 91520 | ||||
| * | Simplify BuildSimpleType in the RTTBuilder to avoid using an std::vector. | Anders Carlsson | 2009-12-13 | 1 | -11/+6 |
| | | | | | llvm-svn: 91255 | ||||
| * | Change the RTTIBuilder's finish member function to take a pointer to the ↵ | Anders Carlsson | 2009-12-13 | 1 | -7/+5 |
| | | | | | | | constants array + the length of the array. llvm-svn: 91241 | ||||
| * | Fix linkage of type info and vtable for classes without linkage. | Eli Friedman | 2009-12-11 | 1 | -2/+2 |
| | | | | | llvm-svn: 91152 | ||||
| * | Move info vectors and add assertions in preparation of moving the vector ↵ | Anders Carlsson | 2009-12-11 | 1 | -7/+11 |
| | | | | | | | directly into RTTIBuilder. llvm-svn: 91129 | ||||
| * | Use GetAddrOfRTTI when getting the RTTI pointer for a base class. | Anders Carlsson | 2009-12-11 | 1 | -4/+1 |
| | | | | | llvm-svn: 91127 | ||||
| * | Improve linkage of RTTI data structures. Introduce ↵ | Anders Carlsson | 2009-12-11 | 1 | -37/+88 |
| | | | | | | | CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests). llvm-svn: 91098 | ||||
| * | Use named flags in RTTIBuilder::BuildPointerType. | Anders Carlsson | 2009-12-11 | 1 | -25/+54 |
| | | | | | llvm-svn: 91088 | ||||
| * | Be sure to instantiate rtti for non-polymorphic bases. | Mike Stump | 2009-12-04 | 1 | -1/+4 |
| | | | | | llvm-svn: 90586 | ||||
| * | Put the Builder classes into the anonymous namespace. | Mike Stump | 2009-12-02 | 1 | -0/+2 |
| | | | | | llvm-svn: 90335 | ||||
| * | Change rtti/Rtti to RTTI, as it is an acronym. | Mike Stump | 2009-12-02 | 1 | -17/+17 |
| | | | | | llvm-svn: 90334 | ||||
| * | Rename CGRtti.cpp to CGRTTI.cpp. | Mike Stump | 2009-12-02 | 1 | -0/+426 |
| llvm-svn: 90331 | |||||

