13#ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
14#define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
27struct VectorizeOptions;
45 const VectorizeOptions *Opts =
nullptr;
49 AuxPassArg TopDownArg = ArgsRegistry.createArg(
"top-down");
50 AuxPassArg BottomUpArg = ArgsRegistry.createArg(
"bottom-up");
54 std::unique_ptr<InstrMaps> IMaps;
57 unsigned long InvocationCnt = 0;
79 auto begin()
const {
return Actions.begin(); }
80 auto end()
const {
return Actions.end(); }
81 void push_back(std::unique_ptr<Action> &&ActPtr) {
82 ActPtr->Idx = Actions.size();
83 Actions.push_back(std::move(ActPtr));
85 void clear() { Actions.clear(); }
91 ActionsVector Actions;
94 unsigned DebugBndlCnt = 0;
105 Value *emitVectors();
111 ArgsRegistry.parse(AuxArg);
114 }
else if (TopDownArg) {
119 ErrSS <<
"bundle-vec requires either '" << BottomUpArg.getFlagStr()
120 <<
"' or '" << TopDownArg.getFlagStr()
121 <<
"' as its aux argument!\n";
static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
A raw_ostream that writes to an std::string.
This represents an auxiliary pass argument.
A registry for the auxiliary pass argument arguments.
An ArrayRef of Values or Instructions that we can print/dump for debugging.
BundleVec(StringRef AuxArg)
Performs the legality analysis and returns a LegalityResult object.
virtual LLVM_DUMP_METHOD void dump() const
RegionPass(StringRef Name)
Name can't contain any spaces or start with '-'.
A SandboxIR Value has users. This is the base class.
Utility class to collect and erase dead instructions.
BasicBlock(llvm::BasicBlock *BB, Context &SBCtx)
LLVM_ABI iterator begin() const
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI void reportFatalUsageError(Error Err)
Report a fatal error that does not indicate a bug in LLVM.