aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Support/Mangler.h
Commit message (Collapse)AuthorAgeFilesLines
* Rename Mangler linkage enums to something less gross.Bill Wendling2009-07-201-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76456 91177308-0d34-0410-b5e6-96231b3b80d8
* Add plumbing for the `linker_private' linkage type. This type is meant forBill Wendling2009-07-201-4/+17
| | | | | | | | | | "private" symbols which the assember shouldn't strip, but which the linker may remove after evaluation. This is mostly useful for Objective-C metadata. This is plumbing, so we don't have a use of it yet. More to come, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate the Mangler::PreserveAsmNames bit, the sole client of thisChris Lattner2009-07-151-8/+0
| | | | | | | can do it perfectly well itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75743 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply my previous asmprinter changes now with more testing and two Chris Lattner2009-07-141-3/+6
| | | | | | | | | | | | | | | | | | | | | | additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75646 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r75610 (and r75620, which was blocking the revert), in the hopes ofDaniel Dunbar2009-07-141-6/+3
| | | | | | | | | | | | | | | unbreaking llvm-gcc (on Darwin). --- Reverse-merging r75620 into '.': U include/llvm/Support/Mangler.h --- Reverse-merging r75610 into '.': U test/CodeGen/X86/loop-hoist.ll G include/llvm/Support/Mangler.h U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp U lib/VMCore/Mangler.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75636 91177308-0d34-0410-b5e6-96231b3b80d8
* remove renamed method.Chris Lattner2009-07-141-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75620 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the X86 asmprinter to use the mangler to apply suffixes like ↵Chris Lattner2009-07-141-3/+10
| | | | | | | | | | | | | | | | | | "$non_lazy_ptr" to symbols instead of doing it with "printSuffixedName". This gets us to the point where there is a real separation between computing a symbol name and printing it, something I need for MC printer stuff. This patch also fixes a corner case bug where unnamed private globals wouldn't get the private label prefix. Next up, rename all uses of getValueName -> getMangledName for better greppability, and then tackle the ppc/arm backends to eliminate "printSuffixedName". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75610 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the internal interface to makeNameProper to take a bool thatChris Lattner2009-07-141-2/+2
| | | | | | | | | | | | | | indicates whether the label is private or not, instead of taking prefix stuff. One effect of this is that symbols will be generated with *just* the private prefix, instead of both the private prefix *and* the user-label-prefix, but this doesn't matter as long as it is consistent. For example we'll now get "Lfoo" instead of "L_foo". These are just assembler temporary labels anyway, so they never even make it into the .o file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75607 91177308-0d34-0410-b5e6-96231b3b80d8
* rename Memo/Count to AnonGlobalIDs/NextAnonGlobalID to be more Chris Lattner2009-07-141-4/+6
| | | | | | | | | | | | descriptive. Thange them to keep track of the ID of a global that is assigned, not the first mangled name returned for it. Without doing this, we are required to always use the same suffix for a global that gets mangled. This means that we can mangle the same global once with $stub and another time with $non_lazy_ptr or whatever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75561 91177308-0d34-0410-b5e6-96231b3b80d8
* remove Mangler::getTypeID and related data, it was only used for manglingChris Lattner2009-07-131-10/+0
| | | | | | | local symbols and we haven't had type planes since llvm 1.9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75558 91177308-0d34-0410-b5e6-96231b3b80d8
* remove mangler support for mangling local names. Mangler should only be Chris Lattner2009-07-131-1/+0
| | | | | | | used with globals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75557 91177308-0d34-0410-b5e6-96231b3b80d8
* Quotes should be printed before private prefix; some code clean up.Evan Cheng2009-05-051-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71032 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed trailing whitespace.Misha Brukman2009-02-201-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65196 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the private linkage.Rafael Espindola2009-01-151-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove some dead code from the days llvm had type planes.Rafael Espindola2009-01-121-5/+0
| | | | | | | | There might be more dead code, but with llvm-gcc bootstrap broken on linux x86-64 it is had to test :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62088 91177308-0d34-0410-b5e6-96231b3b80d8
* - Replace use of std::map<std::string, ..> with StringMap. Replace use of ↵Evan Cheng2008-07-101-10/+7
| | | | | | | | | std::map with DenseMap, std::set with SmallPtrSet. This results in minor speed up. - Some code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53379 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a DenseMap instead of an std::map for mangled name lookup. This is Owen Anderson2008-06-261-1/+2
| | | | | | | improves AsmPrinter runtime on instcombine from 0.3920s to 0.3836s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52787 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove uses of llvm/System/IncludeFile.h that are no longer needed.Dan Gohman2008-05-061-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50695 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't attribute in file headers anymore. See llvmdev for theChris Lattner2007-12-291-2/+2
| | | | | | | | discussion of this change. Boy are my fingers tired. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for appending a suffix to the end of a mangled name.Bill Wendling2007-09-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42071 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix minor doxygen nits.Reid Spencer2007-08-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40854 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not necessary to do rounding for alloca operations when the requestedDan Gohman2007-07-181-0/+118
alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8