mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
Add support to the mangler for targets which require _'s on global symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7741 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -42,8 +42,9 @@ std::string Mangler::getValueName(const Value *V) {
|
||||
// 2) V's name would collide if it is not mangled.
|
||||
//
|
||||
const GlobalValue* gv = dyn_cast<GlobalValue>(V);
|
||||
if(gv && !gv->hasInternalLinkage() && !MangledGlobals.count(gv)) {
|
||||
if (gv && !gv->hasInternalLinkage() && !MangledGlobals.count(gv)) {
|
||||
name = makeNameProper(gv->getName());
|
||||
if (AddUnderscorePrefix) name = "_" + name;
|
||||
} else {
|
||||
// Non-global, or global with internal linkage / colliding name
|
||||
// -> mangle.
|
||||
@ -54,12 +55,13 @@ std::string Mangler::getValueName(const Value *V) {
|
||||
name = "ltmp_" + utostr(Count++) + "_"
|
||||
+ utostr(V->getType()->getUniqueID());
|
||||
}
|
||||
|
||||
Memo[V] = name;
|
||||
return name;
|
||||
}
|
||||
|
||||
Mangler::Mangler(Module &M_) : M(M_)
|
||||
{
|
||||
Mangler::Mangler(Module &m, bool addUnderscorePrefix)
|
||||
: M(m), AddUnderscorePrefix(addUnderscorePrefix) {
|
||||
// Calculate which global values have names that will collide when we throw
|
||||
// away type information.
|
||||
std::set<std::string> FoundNames;
|
||||
|
Reference in New Issue
Block a user