summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/Mangle.h
Commit message (Collapse)AuthorAgeFilesLines
* Move name mangling support from CodeGen to AST. In thePeter Collingbourne2011-01-131-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 thanJohn McCall2010-09-081-2/+4
| | | | | | Itanium guards and use a slightly different compiled-in API. llvm-svn: 113330
* Add function for mangling reference temporaries.Anders Carlsson2010-06-261-0/+2
| | | | llvm-svn: 106948
* Patch to correctly mangle block helper functionsFariborz Jahanian2010-06-241-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 globalCharles Davis2010-06-111-1/+1
| | | | | | namespace, too. llvm-svn: 105809
* Add a stub Microsoft Visual C++ ABI class (with stub mangler).Charles Davis2010-06-091-21/+23
| | | | llvm-svn: 105767
* Make methods non-virtual again for now. I accidentally committed this inCharles Davis2010-05-311-23/+21
| | | | | | preparation for an alternate mangler. llvm-svn: 105224
* Silence GCC warning about an accessible non-virtual destructor in a class withChandler Carruth2010-05-311-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 functionalityCharles Davis2010-05-261-19/+40
| | | | | | change. llvm-svn: 104715
* Improve name mangling for blocks and support mangling of static localDouglas Gregor2010-05-251-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 Carlsson2010-04-171-2/+2
| | | | llvm-svn: 101666
* Provide an extremely unsatisfactory diagnostic (instead of crashing) whenJohn McCall2010-04-091-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 Carlsson2010-03-301-11/+0
| | | | llvm-svn: 99869
* Change two class forward declarations to struct forward declarations, ↵Douglas Gregor2010-03-241-2/+2
| | | | | | silencing a Clang warning llvm-svn: 99405
* More thunks scaffolding.Anders Carlsson2010-03-231-0/+9
| | | | llvm-svn: 99294
* Change CodeGenModule to rely on the Module's symbol table instead ofJohn McCall2010-03-191-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 itFariborz Jahanian2010-03-041-1/+16
| | | | | | ABI conforming. llvm-svn: 97702
* Work-in-progress: teach mangler how to mangle thunks for destructors.Eli Friedman2009-12-031-0/+3
| | | | llvm-svn: 90360
* Change rtti/Rtti to RTTI, as it is an acronym.Mike Stump2009-12-021-2/+2
| | | | llvm-svn: 90334
* Add a CovariantThunkAdjustment struct that represents the adjustments needed ↵Anders Carlsson2009-11-261-2/+3
| | | | | | for a covariant thunk. llvm-svn: 89933
* Move the mangler into the CodeGen namespace. Change mangleThunk to take a ↵Anders Carlsson2009-11-261-9/+13
| | | | | | ThunkAdjustment. llvm-svn: 89930
* Add a ThunkAdjustment struct which holds a non-virtual and a virtual ↵Anders Carlsson2009-11-261-1/+2
| | | | | | adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925
* Mangler: Lift shouldMangleDeclName predicate out of CXXNameMangler::mangle.Daniel Dunbar2009-11-211-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 Dunbar2009-11-211-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 Dunbar2009-11-211-46/+44
| | | | llvm-svn: 89547
* Mangling support for typeinfo names.Mike Stump2009-11-141-0/+2
| | | | llvm-svn: 88726
* Add mangling for the construction vtable.Mike Stump2009-11-101-0/+3
| | | | llvm-svn: 86643
* Fix thinko, mangleCXXRtti should obviously take a QualType!Anders Carlsson2009-10-301-1/+1
| | | | llvm-svn: 85565
* mangleCXXRtti obviously needs to take a type, what was I thinking...Anders Carlsson2009-10-301-1/+1
| | | | llvm-svn: 85555
* Add mangling for VTTs.Mike Stump2009-10-281-0/+2
| | | | llvm-svn: 85363
* Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵Anders Carlsson2009-10-111-2/+4
| | | | | | QualTypes. llvm-svn: 83793
* Mangle anonymous structs/unions correctly. Fixes PR5139.Anders Carlsson2009-10-071-0/+11
| | | | llvm-svn: 83448
* Add a MangleContext and pass it to all mangle functions. It will be used for ↵Anders Carlsson2009-10-071-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 Stump2009-09-111-4/+3
| | | | llvm-svn: 81585
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-3/+3
| | | | llvm-svn: 81346
* Refine vcall offsets. Cleanups. WIP.Mike Stump2009-09-071-1/+2
| | | | llvm-svn: 81143
* Install thunks later to fixup overrides. Track space taken by vbaseMike Stump2009-09-051-1/+1
| | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067
* Add mangling for covariant thunks.Mike Stump2009-09-021-0/+4
| | | | llvm-svn: 80747
* Shorten name.Mike Stump2009-09-021-2/+2
| | | | llvm-svn: 80744
* Add mangling for thunks.Mike Stump2009-09-021-0/+2
| | | | llvm-svn: 80743
* Add beginnigs of rtti generation, wire up more of -fno-exceptions.Mike Stump2009-07-311-0/+1
| | | | llvm-svn: 77751
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-311-0/+2
| | | | llvm-svn: 77699
* Add support for generating (very basic) C++ destructors. These aren't called ↵Anders Carlsson2009-04-171-0/+3
| | | | | | by anything yet. llvm-svn: 69343
* Add support for mangling C++ constructors. Review appreciated (I'm looking ↵Anders Carlsson2009-04-151-0/+5
| | | | | | at you, Doug) llvm-svn: 69150
* Add support for mangling guard variables.Anders Carlsson2009-04-131-1/+4
| | | | llvm-svn: 68969
* fix several problems with asm renaming, by pulling it into the mangling code:Chris Lattner2009-03-211-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 Gregor2009-02-181-1/+1
| | | | llvm-svn: 64984
* Add basic support for C++ name mangling according to the Itanium C++Douglas Gregor2009-02-131-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
OpenPOWER on IntegriCloud