13#ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
14#define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_PASSES_BUNDLEVEC_H
43 static constexpr StringRef TopDownArgStr =
"top-down";
44 static constexpr StringRef BottomUpArgStr =
"bottom-up";
50 std::unique_ptr<InstrMaps> IMaps;
53 unsigned long InvocationCnt = 0;
60 void tryEraseDeadInstrs();
80 auto begin()
const {
return Actions.begin(); }
81 auto end()
const {
return Actions.end(); }
82 void push_back(std::unique_ptr<Action> &&ActPtr) {
83 ActPtr->Idx = Actions.size();
84 Actions.push_back(std::move(ActPtr));
86 void clear() { Actions.clear(); }
92 ActionsVector Actions;
95 unsigned DebugBndlCnt = 0;
106 Value *emitVectors();
112 if (AuxArg == BottomUpArgStr) {
114 }
else if (AuxArg == TopDownArgStr) {
119 ErrSS <<
"bundle-vec requires either '" << BottomUpArgStr <<
"' or '"
120 << TopDownArgStr <<
"' 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")
Represent a constant reference to an array (0 or more elements consecutively in memory),...
Implements a dense probed hash-table based set.
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.
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.
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.