4 changes: 3 additions & 1 deletion llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,9 @@ static void substituteOperandWithArgument(Function *OldF,
NewF->setName(FName);
}

static void reduceOperandsToArgs(Oracle &O, Module &Program) {
static void reduceOperandsToArgs(Oracle &O, ReducerWorkItem &WorkItem) {
Module &Program = WorkItem.getModule();

SmallVector<Use *> OperandsToReduce;
for (Function &F : make_early_inc_range(Program.functions())) {
if (!canReplaceFunction(&F))
Expand Down
5 changes: 4 additions & 1 deletion llvm/tools/llvm-reduce/deltas/ReduceSpecialGlobals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ static StringRef SpecialGlobalNames[] = {"llvm.used", "llvm.compiler.used"};

/// Removes all special globals aren't inside any of the
/// desired Chunks.
static void extractSpecialGlobalsFromModule(Oracle &O, Module &Program) {
static void extractSpecialGlobalsFromModule(Oracle &O,
ReducerWorkItem &WorkItem) {
Module &Program = WorkItem.getModule();

for (StringRef Name : SpecialGlobalNames) {
if (auto *Used = Program.getNamedGlobal(Name)) {
Used->replaceAllUsesWith(getDefaultValue(Used->getType()));
Expand Down
17 changes: 13 additions & 4 deletions llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@

using namespace llvm;

static void reduceUsingSimplifyCFG(Oracle &O, Module &Program) {
static void reduceUsingSimplifyCFG(Oracle &O, ReducerWorkItem &WorkItem) {
Module &Program = WorkItem.getModule();
SmallVector<BasicBlock *, 16> ToSimplify;
for (auto &F : Program)
for (auto &BB : F)
Expand All @@ -33,7 +34,9 @@ static void reduceUsingSimplifyCFG(Oracle &O, Module &Program) {
void llvm::reduceUsingSimplifyCFGDeltaPass(TestRunner &Test) {
runDeltaPass(Test, reduceUsingSimplifyCFG, "Reducing using SimplifyCFG");
}
static void reduceConditionals(Oracle &O, Module &M, bool Direction) {
static void reduceConditionals(Oracle &O, ReducerWorkItem &WorkItem,
bool Direction) {
Module &M = WorkItem.getModule();
SmallVector<BasicBlock *, 16> ToSimplify;

for (auto &F : M) {
Expand All @@ -58,12 +61,18 @@ static void reduceConditionals(Oracle &O, Module &M, bool Direction) {

void llvm::reduceConditionalsTrueDeltaPass(TestRunner &Test) {
runDeltaPass(
Test, [](Oracle &O, Module &M) { reduceConditionals(O, M, true); },
Test,
[](Oracle &O, ReducerWorkItem &WorkItem) {
reduceConditionals(O, WorkItem, true);
},
"Reducing conditional branches to true");
}

void llvm::reduceConditionalsFalseDeltaPass(TestRunner &Test) {
runDeltaPass(
Test, [](Oracle &O, Module &M) { reduceConditionals(O, M, false); },
Test,
[](Oracle &O, ReducerWorkItem &WorkItem) {
reduceConditionals(O, WorkItem, false);
},
"Reducing conditional branches to false");
}
3 changes: 2 additions & 1 deletion llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ static cl::opt<std::string> PassPipeline(
cl::init("function(sroa,instcombine,gvn,simplifycfg,infer-address-spaces)"),
cl::cat(LLVMReduceOptions));

static void runPasses(Oracle &O, Module &Program) {
static void runPasses(Oracle &O, ReducerWorkItem &WorkItem) {
Module &Program = WorkItem.getModule();
LoopAnalysisManager LAM;
FunctionAnalysisManager FAM;
CGSCCAnalysisManager CGAM;
Expand Down
3 changes: 2 additions & 1 deletion llvm/tools/llvm-reduce/deltas/SimplifyInstructions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ using namespace llvm;

/// Calls simplifyInstruction in each instruction in functions, and replaces
/// their values.
static void extractInstrFromModule(Oracle &O, Module &Program) {
static void extractInstrFromModule(Oracle &O, ReducerWorkItem &WorkItem) {
std::vector<Instruction *> InstsToDelete;

Module &Program = WorkItem.getModule();
const DataLayout &DL = Program.getDataLayout();

std::vector<Instruction *> InstToDelete;
Expand Down
3 changes: 2 additions & 1 deletion llvm/tools/llvm-reduce/deltas/StripDebugInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ using namespace llvm;

/// Removes all aliases aren't inside any of the
/// desired Chunks.
static void stripDebugInfoImpl(Oracle &O, Module &Program) {
static void stripDebugInfoImpl(Oracle &O, ReducerWorkItem &WorkItem) {
Module &Program = WorkItem.getModule();
bool HasDebugInfo = any_of(Program.named_metadata(), [](NamedMDNode &NMD) {
return NMD.getName().startswith("llvm.dbg.");
});
Expand Down