Revert "Add a pass to collect dropped var stats for MIR. (#115566)"

This reverts commit 6e2b77d469.

Reverting due to buildbot failure:

unittests/IR/CMakeFiles/IRTests.dir/DroppedVariableStatsIRTest.cpp.o:DroppedVariableStatsIRTest.cpp:function llvm::DroppedVariableStatsIR::runAfterPass(llvm::StringRef, llvm::Any): error: undefined reference to 'llvm::DroppedVariableStatsIR::runOnModule(llvm::Module const*, bool)'
This commit is contained in:
Shubham Sandeep Rastogi
2024-11-18 16:03:30 -08:00
parent 39bdf7a9db
commit 81924ac1fb
6 changed files with 3 additions and 1193 deletions

View File

@@ -7,7 +7,7 @@
///===---------------------------------------------------------------------===//
/// \file
/// Dropped Variable Statistics for Debug Information. Reports any number
/// of #dbg_values or DBG_VALUEs that get dropped due to an optimization pass.
/// of #dbg_value that get dropped due to an optimization pass.
///
///===---------------------------------------------------------------------===//
@@ -221,52 +221,6 @@ private:
}
};
/// A class to collect and print dropped debug information due to MIR
/// optimization passes. After every MIR pass is run, it will print how many
/// #DBG_VALUEs were dropped due to that pass.
class DroppedVariableStatsMIR : public DroppedVariableStats {
public:
DroppedVariableStatsMIR() : llvm::DroppedVariableStats(false) {}
void runBeforePass(StringRef PassID, MachineFunction *MF) {
if (PassID == "Debug Variable Analysis")
return;
setup();
return runOnMachineFunction(MF, true);
}
void runAfterPass(StringRef PassID, MachineFunction *MF) {
if (PassID == "Debug Variable Analysis")
return;
runOnMachineFunction(MF, false);
calculateDroppedVarStatsOnMachineFunction(MF, PassID, MF->getName().str());
cleanup();
}
private:
const MachineFunction *MFunc;
/// Populate DebugVariablesBefore, DebugVariablesAfter, InlinedAts before or
/// after a pass has run to facilitate dropped variable calculation for an
/// llvm::MachineFunction.
void runOnMachineFunction(const MachineFunction *MF, bool Before);
/// Iterate over all Instructions in a MachineFunction and report any dropped
/// debug information.
void calculateDroppedVarStatsOnMachineFunction(const MachineFunction *MF,
StringRef PassID,
StringRef FuncOrModName);
/// Override base class method to run on an llvm::MachineFunction
/// specifically.
virtual void
visitEveryInstruction(unsigned &DroppedCount,
DenseMap<VarID, DILocation *> &InlinedAtsMap,
VarID Var) override;
/// Override base class method to run on DBG_VALUEs specifically.
virtual void visitEveryDebugRecord(
DenseSet<VarID> &VarIDSet,
DenseMap<StringRef, DenseMap<VarID, DILocation *>> &InlinedAtsMap,
StringRef FuncName, bool Before) override;
};
} // namespace llvm
#endif

View File

@@ -18,7 +18,6 @@
#ifndef LLVM_CODEGEN_MACHINEFUNCTIONPASS_H
#define LLVM_CODEGEN_MACHINEFUNCTIONPASS_H
#include "llvm/CodeGen/DroppedVariableStats.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/Pass.h"
@@ -68,7 +67,6 @@ private:
MachineFunctionProperties RequiredProperties;
MachineFunctionProperties SetProperties;
MachineFunctionProperties ClearedProperties;
DroppedVariableStatsMIR DroppedVarStatsMF;
/// createPrinterPass - Get a machine function printer pass.
Pass *createPrinterPass(raw_ostream &O,

View File

@@ -7,7 +7,7 @@
///===---------------------------------------------------------------------===//
/// \file
/// Dropped Variable Statistics for Debug Information. Reports any number
/// of #dbg_values or DBG_VALUEs that get dropped due to an optimization pass.
/// of #dbg_value that get dropped due to an optimization pass.
///
///===---------------------------------------------------------------------===//
@@ -192,64 +192,3 @@ void DroppedVariableStatsIR::visitEveryDebugRecord(
}
}
}
void DroppedVariableStatsMIR::runOnMachineFunction(const MachineFunction *MF,
bool Before) {
auto &DebugVariables = DebugVariablesStack.back()[&MF->getFunction()];
auto FuncName = MF->getName();
MFunc = MF;
run(DebugVariables, FuncName, Before);
}
void DroppedVariableStatsMIR::calculateDroppedVarStatsOnMachineFunction(
const MachineFunction *MF, StringRef PassID, StringRef FuncOrModName) {
MFunc = MF;
StringRef FuncName = MF->getName();
const Function *Func = &MF->getFunction();
DebugVariables &DbgVariables = DebugVariablesStack.back()[Func];
calculateDroppedStatsAndPrint(DbgVariables, FuncName, PassID, FuncOrModName,
"MachineFunction", Func);
}
void DroppedVariableStatsMIR::visitEveryInstruction(
unsigned &DroppedCount, DenseMap<VarID, DILocation *> &InlinedAtsMap,
VarID Var) {
unsigned PrevDroppedCount = DroppedCount;
const DIScope *DbgValScope = std::get<0>(Var);
for (const auto &MBB : *MFunc) {
for (const auto &MI : MBB) {
if (!MI.isDebugInstr()) {
auto *DbgLoc = MI.getDebugLoc().get();
if (!DbgLoc)
continue;
auto *Scope = DbgLoc->getScope();
if (updateDroppedCount(DbgLoc, Scope, DbgValScope, InlinedAtsMap, Var,
DroppedCount))
break;
}
}
if (PrevDroppedCount != DroppedCount) {
PrevDroppedCount = DroppedCount;
break;
}
}
}
void DroppedVariableStatsMIR::visitEveryDebugRecord(
DenseSet<VarID> &VarIDSet,
DenseMap<StringRef, DenseMap<VarID, DILocation *>> &InlinedAtsMap,
StringRef FuncName, bool Before) {
for (const auto &MBB : *MFunc) {
for (const auto &MI : MBB) {
if (MI.isDebugValueLike()) {
auto *DbgVar = MI.getDebugVariable();
if (!DbgVar)
continue;
auto DbgLoc = MI.getDebugLoc();
populateVarIDSetAndInlinedMap(DbgVar, DbgLoc, VarIDSet, InlinedAtsMap,
FuncName, Before);
}
}
}
}

View File

@@ -32,11 +32,6 @@
using namespace llvm;
using namespace ore;
static cl::opt<bool> DroppedVarStatsMIR(
"dropped-variable-stats-mir", cl::Hidden,
cl::desc("Dump dropped debug variables stats for MIR passes"),
cl::init(false));
Pass *MachineFunctionPass::createPrinterPass(raw_ostream &O,
const std::string &Banner) const {
return createMachineFunctionPrinterPass(O, Banner);
@@ -96,15 +91,7 @@ bool MachineFunctionPass::runOnFunction(Function &F) {
MFProps.reset(ClearedProperties);
bool RV;
if (DroppedVarStatsMIR) {
auto PassName = getPassName();
DroppedVarStatsMF.runBeforePass(PassName, &MF);
RV = runOnMachineFunction(MF);
DroppedVarStatsMF.runAfterPass(PassName, &MF);
} else {
RV = runOnMachineFunction(MF);
}
bool RV = runOnMachineFunction(MF);
if (ShouldEmitSizeRemarks) {
// We wanted size remarks. Check if there was a change to the number of

View File

@@ -16,7 +16,6 @@ set(LLVM_LINK_COMPONENTS
add_llvm_unittest(MIRTests
MachineMetadata.cpp
MachineStableHashTest.cpp
DroppedVariableStatsMIRTest.cpp
)
target_link_libraries(MIRTests PRIVATE LLVMTestingSupport)

File diff suppressed because it is too large Load Diff