mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
Use "llvm.metadata" section for debug globals. Filter out these globals in the
asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26599 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e8c3e3b51c
commit
7809811e4e
@ -131,8 +131,12 @@ void AsmPrinter::EmitConstantPool(MachineConstantPool *MCP) {
|
||||
/// special global used by LLVM. If so, emit it and return true, otherwise
|
||||
/// do nothing and return false.
|
||||
bool AsmPrinter::EmitSpecialLLVMGlobal(const GlobalVariable *GV) {
|
||||
assert(GV->hasInitializer() && GV->hasAppendingLinkage() &&
|
||||
"Not a special LLVM global!");
|
||||
// Ignore debug and non-emitted data.
|
||||
if (GV->getSection() == "llvm.metadata") return true;
|
||||
|
||||
if (!GV->hasAppendingLinkage()) return false;
|
||||
|
||||
assert(GV->hasInitializer() && "Not a special LLVM global!");
|
||||
|
||||
if (GV->getName() == "llvm.used")
|
||||
return true; // No need to emit this at all.
|
||||
|
@ -350,6 +350,7 @@ public:
|
||||
GlobalValue::InternalLinkage,
|
||||
CA, "llvm.dbg.array",
|
||||
SR.getModule());
|
||||
CAGV->setSection("llvm.metadata");
|
||||
Constant *CAE = ConstantExpr::getCast(CAGV, EmptyTy);
|
||||
Elements.push_back(CAE);
|
||||
}
|
||||
@ -1193,6 +1194,7 @@ Constant *DISerializer::getString(const std::string &String) {
|
||||
GlobalVariable *StrGV = new GlobalVariable(ConstStr->getType(), true,
|
||||
GlobalVariable::InternalLinkage,
|
||||
ConstStr, "str", M);
|
||||
StrGV->setSection("llvm.metadata");
|
||||
// Convert to generic string pointer.
|
||||
Slot = ConstantExpr::getCast(StrGV, getStrPtrType());
|
||||
return Slot;
|
||||
@ -1214,6 +1216,7 @@ GlobalVariable *DISerializer::Serialize(DebugInfoDesc *DD) {
|
||||
// Create the GlobalVariable early to prevent infinite recursion.
|
||||
GlobalVariable *GV = new GlobalVariable(Ty, true, DD->getLinkage(),
|
||||
NULL, DD->getDescString(), M);
|
||||
GV->setSection("llvm.metadata");
|
||||
|
||||
// Insert new GlobalVariable in DescGlobals map.
|
||||
Slot = GV;
|
||||
|
@ -564,7 +564,7 @@ bool DarwinAsmPrinter::doFinalization(Module &M) {
|
||||
if (!I->hasInitializer()) continue; // External global require no code
|
||||
|
||||
// Check to see if this is a special global used by LLVM, if so, emit it.
|
||||
if (I->hasAppendingLinkage() && EmitSpecialLLVMGlobal(I))
|
||||
if (EmitSpecialLLVMGlobal(I))
|
||||
continue;
|
||||
|
||||
std::string name = Mang->getValueName(I);
|
||||
|
@ -92,7 +92,7 @@ bool X86SharedAsmPrinter::doFinalization(Module &M) {
|
||||
if (!I->hasInitializer()) continue; // External global require no code
|
||||
|
||||
// Check to see if this is a special global used by LLVM, if so, emit it.
|
||||
if (I->hasAppendingLinkage() && EmitSpecialLLVMGlobal(I))
|
||||
if (EmitSpecialLLVMGlobal(I))
|
||||
continue;
|
||||
|
||||
std::string name = Mang->getValueName(I);
|
||||
|
Loading…
Reference in New Issue
Block a user