mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 00:11:00 +00:00
AutoUpgrade: Remove obsolete dbg.declare/value upgrade
This upgrade of `@llvm.dbg.declare` and `@llvm.dbg.value` isn't useful, since it's for an old debug info version. The calls will get stripped anyway by `UpgradeDebugInfo()`. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234181 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
10483b93ea
commit
e75a8c3855
@ -124,19 +124,6 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'd': {
|
||||
if (Name.startswith("dbg.declare") && F->arg_size() == 2) {
|
||||
F->setName(Name + ".old");
|
||||
NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::dbg_declare);
|
||||
return true;
|
||||
}
|
||||
if (Name.startswith("dbg.value") && F->arg_size() == 3) {
|
||||
F->setName(Name + ".old");
|
||||
NewFn = Intrinsic::getDeclaration(F->getParent(), Intrinsic::dbg_value);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 'o':
|
||||
// We only need to change the name to match the mangling including the
|
||||
@ -354,23 +341,6 @@ bool llvm::UpgradeGlobalVariable(GlobalVariable *GV) {
|
||||
return false;
|
||||
}
|
||||
|
||||
static MDNode *getNodeField(const MDNode *DbgNode, unsigned Elt) {
|
||||
if (!DbgNode || Elt >= DbgNode->getNumOperands())
|
||||
return nullptr;
|
||||
return dyn_cast_or_null<MDNode>(DbgNode->getOperand(Elt));
|
||||
}
|
||||
|
||||
static MetadataAsValue *getExpression(Value *VarOperand, Function *F) {
|
||||
// Old-style DIVariables have an optional expression as the 8th element.
|
||||
DIExpression Expr(getNodeField(
|
||||
cast<MDNode>(cast<MetadataAsValue>(VarOperand)->getMetadata()), 8));
|
||||
if (!Expr) {
|
||||
DIBuilder DIB(*F->getParent(), /*AllowUnresolved*/ false);
|
||||
Expr = DIB.createExpression();
|
||||
}
|
||||
return MetadataAsValue::get(F->getContext(), Expr);
|
||||
}
|
||||
|
||||
// Handles upgrading SSE2 and AVX2 PSLLDQ intrinsics by converting them
|
||||
// to byte shuffles.
|
||||
static Value *UpgradeX86PSLLDQIntrinsics(IRBuilder<> &Builder, LLVMContext &C,
|
||||
@ -753,25 +723,6 @@ void llvm::UpgradeIntrinsicCall(CallInst *CI, Function *NewFn) {
|
||||
default:
|
||||
llvm_unreachable("Unknown function for CallInst upgrade.");
|
||||
|
||||
// Upgrade debug intrinsics to use an additional DIExpression argument.
|
||||
case Intrinsic::dbg_declare: {
|
||||
auto NewCI =
|
||||
Builder.CreateCall3(NewFn, CI->getArgOperand(0), CI->getArgOperand(1),
|
||||
getExpression(CI->getArgOperand(1), F), Name);
|
||||
NewCI->setDebugLoc(CI->getDebugLoc());
|
||||
CI->replaceAllUsesWith(NewCI);
|
||||
CI->eraseFromParent();
|
||||
return;
|
||||
}
|
||||
case Intrinsic::dbg_value: {
|
||||
auto NewCI = Builder.CreateCall4(
|
||||
NewFn, CI->getArgOperand(0), CI->getArgOperand(1), CI->getArgOperand(2),
|
||||
getExpression(CI->getArgOperand(2), F), Name);
|
||||
NewCI->setDebugLoc(CI->getDebugLoc());
|
||||
CI->replaceAllUsesWith(NewCI);
|
||||
CI->eraseFromParent();
|
||||
return;
|
||||
}
|
||||
case Intrinsic::ctlz:
|
||||
case Intrinsic::cttz:
|
||||
assert(CI->getNumArgOperands() == 1 &&
|
||||
|
Loading…
Reference in New Issue
Block a user