| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | -fapple-kext, elimination of all direct calls to virtual dtors. | Fariborz Jahanian | 2011-02-02 | 1 | -0/+4 |
| | | | | | llvm-svn: 124757 | ||||
| * | Emit debug info for template value parameters. | Devang Patel | 2011-02-02 | 1 | -0/+7 |
| | | | | | llvm-svn: 124756 | ||||
| * | Emit debug info for template type parameters. | Devang Patel | 2011-02-02 | 1 | -1/+18 |
| | | | | | llvm-svn: 124753 | ||||
| * | Add NetBSD target support. Patch by Joerg Sonnenberger. | Benjamin Kramer | 2011-02-02 | 1 | -0/+1 |
| | | | | | llvm-svn: 124736 | ||||
| * | -fapple-kext support for indirect call to virtuals dtors - wip. | Fariborz Jahanian | 2011-02-01 | 4 | -2/+58 |
| | | | | | llvm-svn: 124701 | ||||
| * | Do the right thing for zero-initializing VLAs that don't have a zero | John McCall | 2011-02-01 | 1 | -5/+60 |
| | | | | | | | | bit-pattern. It's not clear that this is actually useful given current language restrictions. llvm-svn: 124685 | ||||
| * | Revert 124633. The linker has been told how to merge available_externally. | Rafael Espindola | 2011-02-01 | 1 | -1/+2 |
| | | | | | llvm-svn: 124651 | ||||
| * | Convert RecordLayout::NonVirtualSize from bit units to CharUnits. | Ken Dyck | 2011-02-01 | 1 | -6/+7 |
| | | | | | llvm-svn: 124646 | ||||
| * | Set visibility for available_externally globals. This is important for two ↵ | Rafael Espindola | 2011-02-01 | 1 | -2/+1 |
| | | | | | | | | | | | 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 | ||||
| * | Amazing that there are still issues with the fields of anonymous struct/unions.. | Argyrios Kyrtzidis | 2011-01-31 | 1 | -5/+29 |
| | | | | | | | Allow taking the address of such a field for a pointer-to-member constant. Fixes rdar://8818236. llvm-svn: 124575 | ||||
| * | When building with optimizations, emit vtables where the key is not in the | Anders Carlsson | 2011-01-30 | 3 | -1/+68 |
| | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
| * | Remove dead code. | Anders Carlsson | 2011-01-29 | 1 | -57/+3 |
| | | | | | llvm-svn: 124554 | ||||
| * | When emitting RTTI for a non-class type, compute the visibility of the RTTI ↵ | Anders Carlsson | 2011-01-29 | 1 | -10/+15 |
| | | | | | | | data based on the explicit visibility of the type. llvm-svn: 124553 | ||||
| * | Move GetLLVMVisibility to CodeGenModule. | Anders Carlsson | 2011-01-29 | 2 | -11/+10 |
| | | | | | llvm-svn: 124550 | ||||
| * | Add RTTIBuilder::GetAddrOfTypeName which uses the newly added ↵ | Anders Carlsson | 2011-01-29 | 2 | -5/+42 |
| | | | | | | | | | CreateOrReplaceCXXRuntimeVariable. Set the visibility for typeinfo names. llvm-svn: 124548 | ||||
| * | Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum ↵ | Anders Carlsson | 2011-01-29 | 5 | -6/+16 |
| | | | | | | | instead of an "IsForRTTI" flag. llvm-svn: 124546 | ||||
| * | Replace an isa/cast with a dyn_cast. | Anders Carlsson | 2011-01-29 | 1 | -2/+2 |
| | | | | | llvm-svn: 124542 | ||||
| * | Get rid of an unneeded parameter from setGlobalVisibility. | Anders Carlsson | 2011-01-29 | 3 | -10/+7 |
| | | | | | llvm-svn: 124541 | ||||
| * | Give VTTs the right visibility. | Anders Carlsson | 2011-01-29 | 1 | -0/+3 |
| | | | | | llvm-svn: 124540 | ||||
| * | Make emitting a VTT a two-step process, much like emitting a VTable. You ↵ | Anders Carlsson | 2011-01-29 | 5 | -51/+46 |
| | | | | | | | first get the address of the VTT, and then pass it to EmitVTTDefinition. llvm-svn: 124539 | ||||
| * | Use CGM.CreateOrReplaceCXXRuntimeVariable in CGVTables.cpp | Anders Carlsson | 2011-01-29 | 2 | -48/+5 |
| | | | | | llvm-svn: 124538 | ||||
| * | Add a new function, to be used by CGRTTI, CGVTables and CGVTT (which each ↵ | Anders Carlsson | 2011-01-29 | 2 | -0/+47 |
| | | | | | | | has their own copy of this code). llvm-svn: 124537 | ||||
| * | Replace a literal '8' with getCharWidth(). | Ken Dyck | 2011-01-29 | 1 | -2/+3 |
| | | | | | llvm-svn: 124536 | ||||
| * | Remove IsDefinition from CodeGenModule::setTypeVisibility; it is always true. | Anders Carlsson | 2011-01-29 | 4 | -6/+5 |
| | | | | | llvm-svn: 124529 | ||||
| * | When trying to get the most derived class, don't assume that we can ignore ↵ | Anders Carlsson | 2011-01-29 | 1 | -1/+17 |
| | | | | | | | all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost. llvm-svn: 124528 | ||||
| * | When calling a virtual member function on a base class and the most derived ↵ | Anders Carlsson | 2011-01-29 | 1 | -1/+24 |
| | | | | | | | class is marked 'final', we can devirtualize the call. llvm-svn: 124524 | ||||
| * | When doing a derived-to-base class through a virtual class, we don't have to ↵ | Anders Carlsson | 2011-01-29 | 1 | -2/+11 |
| | | | | | | | get the vbase offset from the vtable if the derived class is marked final. llvm-svn: 124523 | ||||
| * | More work to support -fapple-kext regarding | Fariborz Jahanian | 2011-01-28 | 3 | -1/+11 |
| | | | | | | | | indirect vf calls and addition of extra entry at bottom of vtbls. llvm-svn: 124507 | ||||
| * | Add my new file to the CMake lists, sorry about that. | John McCall | 2011-01-28 | 1 | -0/+1 |
| | | | | | llvm-svn: 124503 | ||||
| * | Move all the cleanups framework code into a single file. | John McCall | 2011-01-28 | 8 | -1661/+1710 |
| | | | | | | | Pure motion. llvm-svn: 124484 | ||||
| * | Reorganize the value-dominance metaprogram and introduce a specialization | John McCall | 2011-01-28 | 2 | -121/+119 |
| | | | | | | | for CodeGen's RValue type. llvm-svn: 124483 | ||||
| * | Convert the exception-freeing cleanup over to the conditional cleanups code, | John McCall | 2011-01-28 | 4 | -119/+88 |
| | | | | | | | | | | 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 | ||||
| * | When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only | Douglas Gregor | 2011-01-27 | 1 | -2/+3 |
| | | | | | | | | | | 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 | ||||
| * | Do a proper recursive lookup when deciding whether a class's usual | John McCall | 2011-01-27 | 4 | -63/+59 |
| | | | | | | | | | | 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 | ||||
| * | Notes on dynamic array cookies in MSVC. | John McCall | 2011-01-27 | 1 | -0/+23 |
| | | | | | | | My thanks to chapuni for his help in investigating this. llvm-svn: 124351 | ||||
| * | Fixes an IRgen bug where __block variable is | Fariborz Jahanian | 2011-01-26 | 3 | -10/+35 |
| | | | | | | | | referenced in the block-literal initializer of that variable. // rdar://8893785 llvm-svn: 124332 | ||||
| * | Un-nest the meat of this function. | John McCall | 2011-01-26 | 1 | -54/+53 |
| | | | | | llvm-svn: 124310 | ||||
| * | Fix some obvious bugs in the conditional-cleanup code and then make the | John McCall | 2011-01-26 | 3 | -56/+15 |
| | | | | | | | dtor cleanup use it. llvm-svn: 124309 | ||||
| * | Better framework for conditional cleanups; untested as yet. | John McCall | 2011-01-26 | 8 | -79/+296 |
| | | | | | | | | | 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 | ||||
| * | Add -add-plugin flag, which runs plugins in addition to codegen. | Nico Weber | 2011-01-25 | 1 | -9/+8 |
| | | | | | llvm-svn: 124227 | ||||
| * | Revert r124146 for now. It appears to be failing on a few platforms. | Eric Christopher | 2011-01-24 | 1 | -48/+23 |
| | | | | | llvm-svn: 124153 | ||||
| * | pre/post increase/decrease for AltiVec vectors | Anton Yartsev | 2011-01-24 | 1 | -23/+48 |
| | | | | | llvm-svn: 124146 | ||||
| * | Use attributes for all the override control specifiers. | Anders Carlsson | 2011-01-24 | 1 | -2/+2 |
| | | | | | llvm-svn: 124122 | ||||
| * | When building a type info struct for EH, we always want it to have ↵ | Anders Carlsson | 2011-01-24 | 1 | -0/+6 |
| | | | | | | | linkonce_odr linkage. llvm-svn: 124096 | ||||
| * | Change CodeGenModule::getVTableLinkage to be a non-static member function. | Anders Carlsson | 2011-01-24 | 2 | -5/+5 |
| | | | | | llvm-svn: 124095 | ||||
| * | "Name" a bool parameter. | Anders Carlsson | 2011-01-24 | 1 | -3/+5 |
| | | | | | llvm-svn: 124094 | ||||
| * | Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the ↵ | Anders Carlsson | 2011-01-24 | 2 | -9/+13 |
| | | | | | | | | | exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. llvm-svn: 124089 | ||||
| * | Get rid of the [[final]] C++0x attribute. | Anders Carlsson | 2011-01-23 | 1 | -5/+5 |
| | | | | | llvm-svn: 124083 | ||||
| * | Null initialize a few variables flagged by | Ted Kremenek | 2011-01-23 | 1 | -3/+3 |
| | | | | | | | | | | | clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124072 | ||||
| * | Use a FunctionType::get overload that doesn't require an empty vector. | Benjamin Kramer | 2011-01-22 | 1 | -5/+2 |
| | | | | | llvm-svn: 124029 | ||||

