#include "ReduceOperandsToArgs.h"
#include "Delta.h"
#include "Utils.h"
#include "llvm/ADT/Sequence.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
usingnamespacellvm;
static bool canReplaceFunction(Function *F) { … }
static bool canReduceUse(Use &Op) { … }
static void replaceFunctionCalls(Function *OldF, Function *NewF) { … }
static void substituteOperandWithArgument(Function *OldF,
ArrayRef<Use *> OpsToReplace) { … }
static void reduceOperandsToArgs(Oracle &O, ReducerWorkItem &WorkItem) { … }
void llvm::reduceOperandsToArgsDeltaPass(TestRunner &Test) { … }