13#ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
14#define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
44 AuxPassArg TopDownArg = ArgsRegistry.createArg(
"top-down");
45 AuxPassArg BottomUpArg = ArgsRegistry.createArg(
"bottom-up");
49 std::unique_ptr<InstrMaps> IMaps;
52 unsigned long InvocationCnt = 0;
74 auto begin()
const {
return Actions.begin(); }
75 auto end()
const {
return Actions.end(); }
76 void push_back(std::unique_ptr<Action> &&ActPtr) {
77 ActPtr->Idx = Actions.size();
78 Actions.push_back(std::move(ActPtr));
80 void clear() { Actions.clear(); }
86 ActionsVector Actions;
89 unsigned DebugBndlCnt = 0;
100 Value *emitVectors();
106 ArgsRegistry.parse(AuxArg);
109 }
else if (TopDownArg) {
114 ErrSS <<
"bundle-vec requires either '" << BottomUpArg.getFlagStr()
115 <<
"' or '" << TopDownArg.getFlagStr()
116 <<
"' 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.
LLVM_ABI 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
LLVM_ABI void reportFatalUsageError(Error Err)
Report a fatal error that does not indicate a bug in LLVM.