mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-13 01:15:32 +00:00
Do not forget llvm.dbg.declare's first argument while removing debugging information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59688 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ce5ac1606f
commit
f23de86fa3
@ -99,7 +99,8 @@ static void RemoveDeadConstant(Constant *C) {
|
|||||||
GV->eraseFromParent();
|
GV->eraseFromParent();
|
||||||
}
|
}
|
||||||
else if (!isa<Function>(C))
|
else if (!isa<Function>(C))
|
||||||
C->destroyConstant();
|
if (isa<CompositeType>(C->getType()))
|
||||||
|
C->destroyConstant();
|
||||||
|
|
||||||
// If the constant referenced anything, see if we can delete it as well.
|
// If the constant referenced anything, see if we can delete it as well.
|
||||||
for (SmallPtrSet<Constant *, 4>::iterator OI = Operands.begin(),
|
for (SmallPtrSet<Constant *, 4>::iterator OI = Operands.begin(),
|
||||||
@ -245,11 +246,18 @@ bool StripDebugInfo(Module &M) {
|
|||||||
if (Declare) {
|
if (Declare) {
|
||||||
while (!Declare->use_empty()) {
|
while (!Declare->use_empty()) {
|
||||||
CallInst *CI = cast<CallInst>(Declare->use_back());
|
CallInst *CI = cast<CallInst>(Declare->use_back());
|
||||||
Value *Arg = CI->getOperand(2);
|
Value *Arg1 = CI->getOperand(1);
|
||||||
|
Value *Arg2 = CI->getOperand(2);
|
||||||
assert(CI->use_empty() && "llvm.dbg intrinsic should have void result");
|
assert(CI->use_empty() && "llvm.dbg intrinsic should have void result");
|
||||||
CI->eraseFromParent();
|
CI->eraseFromParent();
|
||||||
if (Arg->use_empty())
|
if (Arg1->use_empty()) {
|
||||||
if (Constant *C = dyn_cast<Constant>(Arg))
|
if (Constant *C = dyn_cast<Constant>(Arg1))
|
||||||
|
DeadConstants.push_back(C);
|
||||||
|
if (Instruction *I = dyn_cast<Instruction>(Arg1))
|
||||||
|
I->eraseFromParent();
|
||||||
|
}
|
||||||
|
if (Arg2->use_empty())
|
||||||
|
if (Constant *C = dyn_cast<Constant>(Arg2))
|
||||||
DeadConstants.push_back(C);
|
DeadConstants.push_back(C);
|
||||||
}
|
}
|
||||||
Declare->eraseFromParent();
|
Declare->eraseFromParent();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user