From: OCHyams Date: Fri, 6 Jan 2023 08:42:18 +0000 (+0000) Subject: [DebugInfo][NFC] Rename is/setUndef to is/setKilllocation X-Git-Tag: upstream/17.0.6~21943 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=042107494d341f0e6eb38b474ec8bed13b6fd978;p=platform%2Fupstream%2Fllvm.git [DebugInfo][NFC] Rename is/setUndef to is/setKilllocation These names better reflect the semantics and also the implementation, since it's not just "undef" operands that are sentinels used to signal that the debug intrinsic terminates dominating locations definitions. Related to https://discourse.llvm.org/t/auto-undef-debug-uses-of-a-deleted-value Reviewed By: StephenTozer Differential Revision: https://reviews.llvm.org/D140903 --- diff --git a/llvm/include/llvm/IR/IntrinsicInst.h b/llvm/include/llvm/IR/IntrinsicInst.h index e9dfd04..5c6c945 100644 --- a/llvm/include/llvm/IR/IntrinsicInst.h +++ b/llvm/include/llvm/IR/IntrinsicInst.h @@ -267,7 +267,7 @@ public: getIntrinsicID() != Intrinsic::dbg_assign; } - void setUndef() { + void setKillLocation() { // TODO: When/if we remove duplicate values from DIArgLists, we don't need // this set anymore. SmallPtrSet RemovedValues; @@ -279,7 +279,7 @@ public: } } - bool isUndef() const { + bool isKillLocation() const { return (getNumVariableLocationOps() == 0 && !getExpression()->isComplex()) || any_of(location_ops(), [](Value *V) { return isa(V); }); diff --git a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp index 1561fb4..294f5f6 100644 --- a/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp +++ b/llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp @@ -2111,7 +2111,8 @@ bool AssignmentTrackingLowering::emitPromotedVarLocs( // operand is nullptr. We also can't handle variadic DIExpressions yet. // Some of those conditions don't have a type we can pick for // undef. Use i32. - if (DVI->isUndef() || DVI->getValue() == nullptr || DVI->hasArgList()) + if (DVI->isKillLocation() || DVI->getValue() == nullptr || + DVI->hasArgList()) return UndefValue::get(Type::getInt32Ty(DVI->getContext())); return DVI->getValue(); }; diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index 860551d..cdfe98f 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -8326,7 +8326,7 @@ bool CodeGenPrepare::placeDbgValues(Function &F) { dbgs() << "Unable to find valid location for Debug Value, undefing:\n" << *DVI); - DVI->setUndef(); + DVI->setKillLocation(); break; } diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index c01c596..e60382b 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -6389,7 +6389,7 @@ static bool SalvageDVI(llvm::Loop *L, ScalarEvolution &SE, llvm::PHINode *LSRInductionVar, DVIRecoveryRec &DVIRec, const SCEV *SCEVInductionVar, SCEVDbgValueBuilder IterCountExpr) { - if (!DVIRec.DVI->isUndef()) + if (!DVIRec.DVI->isKillLocation()) return false; // LSR may have caused several changes to the dbg.value in the failed salvage @@ -6538,7 +6538,7 @@ static void DbgGatherSalvagableDVI( continue; // Ensure that if any location op is undef that the dbg.vlue is not // cached. - if (DVI->isUndef()) + if (DVI->isKillLocation()) continue; // Check that the location op SCEVs are suitable for translation to diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index acde526..d14e5b8 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -502,8 +502,8 @@ static bool remomveUndefDbgAssignsFromEntryBlock(BasicBlock *BB) { bool IsDbgValueKind = (!DAI || at::getAssignmentInsts(DAI).empty()); DebugVariable Aggregate = GetAggregateVariable(DVI); if (!SeenDefForAggregate.contains(Aggregate)) { - bool IsUndef = DVI->isUndef() && IsDbgValueKind; - if (!IsUndef) { + bool IsKill = DVI->isKillLocation() && IsDbgValueKind; + if (!IsKill) { SeenDefForAggregate.insert(Aggregate); } else if (DAI) { ToBeRemoved.push_back(DAI); diff --git a/llvm/lib/Transforms/Utils/Debugify.cpp b/llvm/lib/Transforms/Utils/Debugify.cpp index b114353..9894736 100644 --- a/llvm/lib/Transforms/Utils/Debugify.cpp +++ b/llvm/lib/Transforms/Utils/Debugify.cpp @@ -345,7 +345,7 @@ bool llvm::collectDebugInfoMetadata(Module &M, if (I.getDebugLoc().getInlinedAt()) continue; // Skip undef values. - if (DVI->isUndef()) + if (DVI->isKillLocation()) continue; auto *Var = DVI->getVariable(); @@ -588,7 +588,7 @@ bool llvm::checkDebugInfoMetadata(Module &M, if (I.getDebugLoc().getInlinedAt()) continue; // Skip undef values. - if (DVI->isUndef()) + if (DVI->isKillLocation()) continue; auto *Var = DVI->getVariable(); diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index bc81e0f..7df8651 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -637,7 +637,7 @@ void llvm::deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE, "There should be a non-PHI instruction in exit block, else these " "instructions will have no parent."); for (auto *DVI : DeadDebugInst) { - DVI->setUndef(); + DVI->setKillLocation(); DVI->moveBefore(InsertDbgValueBefore); } } diff --git a/llvm/unittests/Transforms/Utils/LocalTest.cpp b/llvm/unittests/Transforms/Utils/LocalTest.cpp index 59658d4..2591f01 100644 --- a/llvm/unittests/Transforms/Utils/LocalTest.cpp +++ b/llvm/unittests/Transforms/Utils/LocalTest.cpp @@ -786,7 +786,7 @@ TEST(Local, ReplaceAllDbgUsesWith) { auto *FDbgVal = cast(F_.getNextNode()); EXPECT_EQ(FDbgVal->getNumVariableLocationOps(), 1u); - EXPECT_TRUE(FDbgVal->isUndef()); + EXPECT_TRUE(FDbgVal->isKillLocation()); SmallVector FDbgVals; findDbgValues(FDbgVals, &F_);