#include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/SandboxIR/Function.h"
#include "llvm/SandboxIR/Instruction.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/NullPass.h"
namespace llvm::sandboxir {
static cl::opt<bool>
PrintPassPipeline("sbvec-print-pass-pipeline", cl::init(false), cl::Hidden,
cl::desc("Prints the pass pipeline and returns."));
static const char *DefaultPipelineMagicStr = …;
static cl::opt<std::string> UserDefinedPassPipeline(
"sbvec-passes", cl::init(DefaultPipelineMagicStr), cl::Hidden,
cl::desc("Comma-separated list of vectorizer passes. If not set "
"we run the predefined pipeline."));
static std::unique_ptr<RegionPass> createRegionPass(StringRef Name) { … }
BottomUpVec::BottomUpVec() : … { … }
static llvm::SmallVector<Value *, 4> collectSeeds(BasicBlock &BB) { … }
static SmallVector<Value *, 4> getOperand(ArrayRef<Value *> Bndl,
unsigned OpIdx) { … }
void BottomUpVec::vectorizeRec(ArrayRef<Value *> Bndl) { … }
void BottomUpVec::tryVectorize(ArrayRef<Value *> Bndl) { … }
bool BottomUpVec::runOnFunction(Function &F) { … }
}