#include "ReduceOpcodes.h"
#include "Delta.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
usingnamespacellvm;
static bool shouldIgnoreArgument(const Value *V) { … }
static Value *replaceIntrinsic(Module &M, IntrinsicInst *II,
Intrinsic::ID NewIID,
ArrayRef<Type *> Tys = { … }
static Value *reduceIntrinsic(Oracle &O, Module &M, IntrinsicInst *II) { … }
static bool callLooksLikeLoadStore(CallBase *CB, Value *&DataArg,
Value *&PtrArg) { … }
static Value *tryReplaceCallWithLoadStore(Oracle &O, Module &M, CallBase *CB) { … }
static bool callLooksLikeOperator(CallBase *CB,
SmallVectorImpl<Value *> &OperatorArgs) { … }
static Value *tryReplaceCallWithOperator(Oracle &O, Module &M, CallBase *CB) { … }
static Value *reduceInstruction(Oracle &O, Module &M, Instruction &I) { … }
static void replaceOpcodesInModule(Oracle &O, ReducerWorkItem &WorkItem) { … }
void llvm::reduceOpcodesDeltaPass(TestRunner &Test) { … }