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:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user