Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move name mangling support from CodeGen to AST. In the | Peter Collingbourne | 2011-01-13 | 1 | -179/+0 |
| | | | | | | | | | | | | | | 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 | ||||
* | Implement ARM static local initialization guards, which are more compact than | John McCall | 2010-09-08 | 1 | -2/+4 |
| | | | | | | Itanium guards and use a slightly different compiled-in API. llvm-svn: 113330 | ||||
* | Add function for mangling reference temporaries. | Anders Carlsson | 2010-06-26 | 1 | -0/+2 |
| | | | | llvm-svn: 106948 | ||||
* | Patch to correctly mangle block helper functions | Fariborz Jahanian | 2010-06-24 | 1 | -2/+4 |
| | | | | | | | when block literal is declared inside a ctor/dtor. Fixes radr 8096995. llvm-svn: 106700 | ||||
* | When mangling for the Microsoft C++ ABI, mangle variables in the global | Charles Davis | 2010-06-11 | 1 | -1/+1 |
| | | | | | | namespace, too. llvm-svn: 105809 | ||||
* | Add a stub Microsoft Visual C++ ABI class (with stub mangler). | Charles Davis | 2010-06-09 | 1 | -21/+23 |
| | | | | llvm-svn: 105767 | ||||
* | Make methods non-virtual again for now. I accidentally committed this in | Charles Davis | 2010-05-31 | 1 | -23/+21 |
| | | | | | | preparation for an alternate mangler. llvm-svn: 105224 | ||||
* | Silence GCC warning about an accessible non-virtual destructor in a class with | Chandler Carruth | 2010-05-31 | 1 | -0/+2 |
| | | | | | | | | virtual methods. Please review cdavis, should these methods even be virtual? llvm-svn: 105218 | ||||
* | Extract the ObjC and blocks manglers into their own class. No functionality | Charles Davis | 2010-05-26 | 1 | -19/+40 |
| | | | | | | change. llvm-svn: 104715 | ||||
* | Improve name mangling for blocks and support mangling of static local | Douglas Gregor | 2010-05-25 | 1 | -2/+15 |
| | | | | | | | | | variables within blocks. We loosely follow GCC's mangling, but since these are always internal symbols the names don't really matter. I intend to revisit block mangling later, because GCC's mangling is rather verbose. <rdar://problem/8015719>. llvm-svn: 104610 | ||||
* | Vtable -> VTable renames across the board. | Anders Carlsson | 2010-04-17 | 1 | -2/+2 |
| | | | | llvm-svn: 101666 | ||||
* | Provide an extremely unsatisfactory diagnostic (instead of crashing) when | John McCall | 2010-04-09 | 1 | -2/+6 |
| | | | | | | | mangling an unknown expression kind. Also conveniently tells the user what kind of expression they should add to the mangler! llvm-svn: 100907 | ||||
* | Remove the old vtable layout code. | Anders Carlsson | 2010-03-30 | 1 | -11/+0 |
| | | | | llvm-svn: 99869 | ||||
* | Change two class forward declarations to struct forward declarations, ↵ | Douglas Gregor | 2010-03-24 | 1 | -2/+2 |
| | | | | | | silencing a Clang warning llvm-svn: 99405 | ||||
* | More thunks scaffolding. | Anders Carlsson | 2010-03-23 | 1 | -0/+9 |
| | | | | llvm-svn: 99294 | ||||
* | Change CodeGenModule to rely on the Module's symbol table instead of | John McCall | 2010-03-19 | 1 | -4/+29 |
| | | | | | | | | | | | | | shadowing it in the GlobalDeclMap. Eliminates the string-uniquing requirement for mangled names, which should help C++ codegen times a little. Forces us to do string lookups instead of pointer lookups, which might hurt codegen times a little across the board. We'll see how it plays out. Removing the string-uniquing requirement implicitly fixes any bugs like PR6635 which arose from the fact that we had multiple uniquing tables for different kinds of identifiers. llvm-svn: 99012 | ||||
* | Refactor local class name mangling and make it | Fariborz Jahanian | 2010-03-04 | 1 | -1/+16 |
| | | | | | | ABI conforming. llvm-svn: 97702 | ||||
* | Work-in-progress: teach mangler how to mangle thunks for destructors. | Eli Friedman | 2009-12-03 | 1 | -0/+3 |
| | | | | llvm-svn: 90360 | ||||
* | Change rtti/Rtti to RTTI, as it is an acronym. | Mike Stump | 2009-12-02 | 1 | -2/+2 |
| | | | | llvm-svn: 90334 | ||||
* | Add a CovariantThunkAdjustment struct that represents the adjustments needed ↵ | Anders Carlsson | 2009-11-26 | 1 | -2/+3 |
| | | | | | | for a covariant thunk. llvm-svn: 89933 | ||||
* | Move the mangler into the CodeGen namespace. Change mangleThunk to take a ↵ | Anders Carlsson | 2009-11-26 | 1 | -9/+13 |
| | | | | | | ThunkAdjustment. llvm-svn: 89930 | ||||
* | Add a ThunkAdjustment struct which holds a non-virtual and a virtual ↵ | Anders Carlsson | 2009-11-26 | 1 | -1/+2 |
| | | | | | | adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925 | ||||
* | Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle. | Daniel Dunbar | 2009-11-21 | 1 | -1/+3 |
| | | | | | | | | - Sometimes we have to mangle things we wouldn't normally (e.g., because they appear in a template expression). - This also tidies up the predicate to be more obvious what is getting mangled. llvm-svn: 89555 | ||||
* | IRgen: Switch the C++ mangler interfaces to take the SmallVector to write into, | Daniel Dunbar | 2009-11-21 | 1 | -12/+15 |
| | | | | | | | instead of requiring clients to make a raw_svector_ostream, which is just an implementation detail. llvm-svn: 89548 | ||||
* | Sink free mangle* methods into MangleContext. | Daniel Dunbar | 2009-11-21 | 1 | -46/+44 |
| | | | | llvm-svn: 89547 | ||||
* | Mangling support for typeinfo names. | Mike Stump | 2009-11-14 | 1 | -0/+2 |
| | | | | llvm-svn: 88726 | ||||
* | Add mangling for the construction vtable. | Mike Stump | 2009-11-10 | 1 | -0/+3 |
| | | | | llvm-svn: 86643 | ||||
* | Fix thinko, mangleCXXRtti should obviously take a QualType! | Anders Carlsson | 2009-10-30 | 1 | -1/+1 |
| | | | | llvm-svn: 85565 | ||||
* | mangleCXXRtti obviously needs to take a type, what was I thinking... | Anders Carlsson | 2009-10-30 | 1 | -1/+1 |
| | | | | llvm-svn: 85555 | ||||
* | Add mangling for VTTs. | Mike Stump | 2009-10-28 | 1 | -0/+2 |
| | | | | llvm-svn: 85363 | ||||
* | Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵ | Anders Carlsson | 2009-10-11 | 1 | -2/+4 |
| | | | | | | QualTypes. llvm-svn: 83793 | ||||
* | Mangle anonymous structs/unions correctly. Fixes PR5139. | Anders Carlsson | 2009-10-07 | 1 | -0/+11 |
| | | | | llvm-svn: 83448 | ||||
* | Add a MangleContext and pass it to all mangle functions. It will be used for ↵ | Anders Carlsson | 2009-10-07 | 1 | -12/+22 |
| | | | | | | keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. llvm-svn: 83442 | ||||
* | Add basic covariant thunk generation support. WIP. | Mike Stump | 2009-09-11 | 1 | -4/+3 |
| | | | | llvm-svn: 81585 | ||||
* | Remove tabs, and whitespace cleanups. | Mike Stump | 2009-09-09 | 1 | -3/+3 |
| | | | | llvm-svn: 81346 | ||||
* | Refine vcall offsets. Cleanups. WIP. | Mike Stump | 2009-09-07 | 1 | -1/+2 |
| | | | | llvm-svn: 81143 | ||||
* | Install thunks later to fixup overrides. Track space taken by vbase | Mike Stump | 2009-09-05 | 1 | -1/+1 |
| | | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067 | ||||
* | Add mangling for covariant thunks. | Mike Stump | 2009-09-02 | 1 | -0/+4 |
| | | | | llvm-svn: 80747 | ||||
* | Shorten name. | Mike Stump | 2009-09-02 | 1 | -2/+2 |
| | | | | llvm-svn: 80744 | ||||
* | Add mangling for thunks. | Mike Stump | 2009-09-02 | 1 | -0/+2 |
| | | | | llvm-svn: 80743 | ||||
* | Add beginnigs of rtti generation, wire up more of -fno-exceptions. | Mike Stump | 2009-07-31 | 1 | -0/+1 |
| | | | | llvm-svn: 77751 | ||||
* | Add code to setup the vtable pointer in the constructor. Work in progress. | Mike Stump | 2009-07-31 | 1 | -0/+2 |
| | | | | llvm-svn: 77699 | ||||
* | Add support for generating (very basic) C++ destructors. These aren't called ↵ | Anders Carlsson | 2009-04-17 | 1 | -0/+3 |
| | | | | | | by anything yet. llvm-svn: 69343 | ||||
* | Add support for mangling C++ constructors. Review appreciated (I'm looking ↵ | Anders Carlsson | 2009-04-15 | 1 | -0/+5 |
| | | | | | | at you, Doug) llvm-svn: 69150 | ||||
* | Add support for mangling guard variables. | Anders Carlsson | 2009-04-13 | 1 | -1/+4 |
| | | | | llvm-svn: 68969 | ||||
* | fix several problems with asm renaming, by pulling it into the mangling code: | Chris Lattner | 2009-03-21 | 1 | -0/+1 |
| | | | | | | | | 1. it wasn't applying to definitions, only declarations, e.g. int x __asm("foo") 2. multiple definitions were conflicting, they weren't getting merged. 3. the code was duplicated in several places. llvm-svn: 67442 | ||||
* | Address Chris's comments regarding C++ name mangling. | Douglas Gregor | 2009-02-18 | 1 | -1/+1 |
| | | | | llvm-svn: 64984 | ||||
* | Add basic support for C++ name mangling according to the Itanium C++ | Douglas Gregor | 2009-02-13 | 1 | -0/+32 |
ABI to the CodeGen library. Since C++ code-generation is so incomplete, we can't exercise much of this mangling code. However, a few smoke tests show that it's doing the same thing as GCC. When C++ codegen matures, we'll extend the ABI tester to verify name-mangling as well, and complete the implementation here. At this point, the major client of name mangling is in the uses of the new "overloadable" attribute in C, which allows overloading. Any "overloadable" function in C (or in an extern "C" block in C++) will be mangled the same way that the corresponding C++ function would be mangled. llvm-svn: 64413 |