aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/IPO/MergeFunctions.cpp
diff options
context:
space:
mode:
authorStephen Tozer <stephen.tozer@sony.com>2024-03-19 20:07:07 +0000
committerGitHub <noreply@github.com>2024-03-19 20:07:07 +0000
commitffd08c7759000f55332f1657a1fab64a7adc03fd (patch)
treeffc35f7afc77e9aa3ff89031c72a9ec8e7321b2b /llvm/lib/Transforms/IPO/MergeFunctions.cpp
parent3cd9dccbb4235e057d0e53ab0b9673f3766800d4 (diff)
downloadllvm-ffd08c7759000f55332f1657a1fab64a7adc03fd.zip
llvm-ffd08c7759000f55332f1657a1fab64a7adc03fd.tar.gz
llvm-ffd08c7759000f55332f1657a1fab64a7adc03fd.tar.bz2
[RemoveDIs][NFC] Rename DPValue -> DbgVariableRecord (#85216)
This is the major rename patch that prior patches have built towards. The DPValue class is being renamed to DbgVariableRecord, which reflects the updated terminology for the "final" implementation of the RemoveDI feature. This is a pure string substitution + clang-format patch. The only manual component of this patch was determining where to perform these string substitutions: `DPValue` and `DPV` are almost exclusively used for DbgRecords, *except* for: - llvm/lib/target, where 'DP' is used to mean double-precision, and so appears as part of .td files and in variable names. NB: There is a single existing use of `DPValue` here that refers to debug info, which I've manually updated. - llvm/tools/gold, where 'LDPV' is used as a prefix for symbol visibility enums. Outside of these places, I've applied several basic string substitutions, with the intent that they only affect DbgRecord-related identifiers; I've checked them as I went through to verify this, with reasonable confidence that there are no unintended changes that slipped through the cracks. The substitutions applied are all case-sensitive, and are applied in the order shown: ``` DPValue -> DbgVariableRecord DPVal -> DbgVarRec DPV -> DVR ``` Following the previous rename patches, it should be the case that there are no instances of any of these strings that are meant to refer to the general case of DbgRecords, or anything other than the DPValue class. The idea behind this patch is therefore that pure string substitution is correct in all cases as long as these assumptions hold.
Diffstat (limited to 'llvm/lib/Transforms/IPO/MergeFunctions.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/MergeFunctions.cpp62
1 files changed, 32 insertions, 30 deletions
diff --git a/llvm/lib/Transforms/IPO/MergeFunctions.cpp b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
index 4ff14b6..05a3b16 100644
--- a/llvm/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/llvm/lib/Transforms/IPO/MergeFunctions.cpp
@@ -256,20 +256,22 @@ private:
/// Fill PDIUnrelatedWL with instructions from the entry block that are
/// unrelated to parameter related debug info.
- /// \param PDPVUnrelatedWL The equivalent non-intrinsic debug records.
- void filterInstsUnrelatedToPDI(BasicBlock *GEntryBlock,
- std::vector<Instruction *> &PDIUnrelatedWL,
- std::vector<DPValue *> &PDPVUnrelatedWL);
+ /// \param PDVRUnrelatedWL The equivalent non-intrinsic debug records.
+ void
+ filterInstsUnrelatedToPDI(BasicBlock *GEntryBlock,
+ std::vector<Instruction *> &PDIUnrelatedWL,
+ std::vector<DbgVariableRecord *> &PDVRUnrelatedWL);
/// Erase the rest of the CFG (i.e. barring the entry block).
void eraseTail(Function *G);
/// Erase the instructions in PDIUnrelatedWL as they are unrelated to the
/// parameter debug info, from the entry block.
- /// \param PDPVUnrelatedWL contains the equivalent set of non-instruction
+ /// \param PDVRUnrelatedWL contains the equivalent set of non-instruction
/// debug-info records.
- void eraseInstsUnrelatedToPDI(std::vector<Instruction *> &PDIUnrelatedWL,
- std::vector<DPValue *> &PDPVUnrelatedWL);
+ void
+ eraseInstsUnrelatedToPDI(std::vector<Instruction *> &PDIUnrelatedWL,
+ std::vector<DbgVariableRecord *> &PDVRUnrelatedWL);
/// Replace G with a simple tail call to bitcast(F). Also (unless
/// MergeFunctionsPDI holds) replace direct uses of G with bitcast(F),
@@ -512,7 +514,7 @@ static Value *createCast(IRBuilder<> &Builder, Value *V, Type *DestTy) {
// parameter debug info, from the entry block.
void MergeFunctions::eraseInstsUnrelatedToPDI(
std::vector<Instruction *> &PDIUnrelatedWL,
- std::vector<DPValue *> &PDPVUnrelatedWL) {
+ std::vector<DbgVariableRecord *> &PDVRUnrelatedWL) {
LLVM_DEBUG(
dbgs() << " Erasing instructions (in reverse order of appearance in "
"entry block) unrelated to parameter debug info from entry "
@@ -526,13 +528,13 @@ void MergeFunctions::eraseInstsUnrelatedToPDI(
PDIUnrelatedWL.pop_back();
}
- while (!PDPVUnrelatedWL.empty()) {
- DPValue *DPV = PDPVUnrelatedWL.back();
- LLVM_DEBUG(dbgs() << " Deleting DPValue ");
- LLVM_DEBUG(DPV->print(dbgs()));
+ while (!PDVRUnrelatedWL.empty()) {
+ DbgVariableRecord *DVR = PDVRUnrelatedWL.back();
+ LLVM_DEBUG(dbgs() << " Deleting DbgVariableRecord ");
+ LLVM_DEBUG(DVR->print(dbgs()));
LLVM_DEBUG(dbgs() << "\n");
- DPV->eraseFromParent();
- PDPVUnrelatedWL.pop_back();
+ DVR->eraseFromParent();
+ PDVRUnrelatedWL.pop_back();
}
LLVM_DEBUG(dbgs() << " } // Done erasing instructions unrelated to parameter "
@@ -564,12 +566,12 @@ void MergeFunctions::eraseTail(Function *G) {
// PDIUnrelatedWL with such instructions.
void MergeFunctions::filterInstsUnrelatedToPDI(
BasicBlock *GEntryBlock, std::vector<Instruction *> &PDIUnrelatedWL,
- std::vector<DPValue *> &PDPVUnrelatedWL) {
+ std::vector<DbgVariableRecord *> &PDVRUnrelatedWL) {
std::set<Instruction *> PDIRelated;
- std::set<DPValue *> PDPVRelated;
+ std::set<DbgVariableRecord *> PDVRRelated;
- // Work out whether a dbg.value intrinsic or an equivalent DPValue is a
- // parameter to be preserved.
+ // Work out whether a dbg.value intrinsic or an equivalent DbgVariableRecord
+ // is a parameter to be preserved.
auto ExamineDbgValue = [](auto *DbgVal, auto &Container) {
LLVM_DEBUG(dbgs() << " Deciding: ");
LLVM_DEBUG(DbgVal->print(dbgs()));
@@ -641,14 +643,14 @@ void MergeFunctions::filterInstsUnrelatedToPDI(
for (BasicBlock::iterator BI = GEntryBlock->begin(), BIE = GEntryBlock->end();
BI != BIE; ++BI) {
- // Examine DPValues as they happen "before" the instruction. Are they
- // connected to parameters?
- for (DPValue &DPV : filterDbgVars(BI->getDbgRecordRange())) {
- if (DPV.isDbgValue() || DPV.isDbgAssign()) {
- ExamineDbgValue(&DPV, PDPVRelated);
+ // Examine DbgVariableRecords as they happen "before" the instruction. Are
+ // they connected to parameters?
+ for (DbgVariableRecord &DVR : filterDbgVars(BI->getDbgRecordRange())) {
+ if (DVR.isDbgValue() || DVR.isDbgAssign()) {
+ ExamineDbgValue(&DVR, PDVRRelated);
} else {
- assert(DPV.isDbgDeclare());
- ExamineDbgDeclare(&DPV, PDPVRelated);
+ assert(DVR.isDbgDeclare());
+ ExamineDbgDeclare(&DVR, PDVRRelated);
}
}
@@ -686,8 +688,8 @@ void MergeFunctions::filterInstsUnrelatedToPDI(
// Collect the set of unrelated instructions and debug records.
for (Instruction &I : *GEntryBlock) {
- for (DPValue &DPV : filterDbgVars(I.getDbgRecordRange()))
- IsPDIRelated(&DPV, PDPVRelated, PDPVUnrelatedWL);
+ for (DbgVariableRecord &DVR : filterDbgVars(I.getDbgRecordRange()))
+ IsPDIRelated(&DVR, PDVRRelated, PDVRUnrelatedWL);
IsPDIRelated(&I, PDIRelated, PDIUnrelatedWL);
}
LLVM_DEBUG(dbgs() << " }\n");
@@ -728,7 +730,7 @@ static void copyMetadataIfPresent(Function *From, Function *To, StringRef Key) {
void MergeFunctions::writeThunk(Function *F, Function *G) {
BasicBlock *GEntryBlock = nullptr;
std::vector<Instruction *> PDIUnrelatedWL;
- std::vector<DPValue *> PDPVUnrelatedWL;
+ std::vector<DbgVariableRecord *> PDVRUnrelatedWL;
BasicBlock *BB = nullptr;
Function *NewG = nullptr;
if (MergeFunctionsPDI) {
@@ -740,7 +742,7 @@ void MergeFunctions::writeThunk(Function *F, Function *G) {
dbgs() << "writeThunk: (MergeFunctionsPDI) filter parameter related "
"debug info for "
<< G->getName() << "() {\n");
- filterInstsUnrelatedToPDI(GEntryBlock, PDIUnrelatedWL, PDPVUnrelatedWL);
+ filterInstsUnrelatedToPDI(GEntryBlock, PDIUnrelatedWL, PDVRUnrelatedWL);
GEntryBlock->getTerminator()->eraseFromParent();
BB = GEntryBlock;
} else {
@@ -790,7 +792,7 @@ void MergeFunctions::writeThunk(Function *F, Function *G) {
<< G->getName() << "()\n");
}
eraseTail(G);
- eraseInstsUnrelatedToPDI(PDIUnrelatedWL, PDPVUnrelatedWL);
+ eraseInstsUnrelatedToPDI(PDIUnrelatedWL, PDVRUnrelatedWL);
LLVM_DEBUG(
dbgs() << "} // End of parameter related debug info filtering for: "
<< G->getName() << "()\n");