[llvm] [SandboxVectorizer] Add container class to track and manage SeedBundles (PR #112048)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 14 14:44:10 PDT 2024
================
@@ -162,5 +169,107 @@ template <typename LoadOrStoreT> class MemSeedBundle : public SeedBundle {
using StoreSeedBundle = MemSeedBundle<sandboxir::StoreInst>;
using LoadSeedBundle = MemSeedBundle<sandboxir::LoadInst>;
+/// Class to conveniently track Seeds within Seedbundles. Saves newly collected
+/// seeds in the proper bundle. Supports constant-time removal, as seeds and
+/// entire bundles are vectorized and marked used to signify removal. Iterators
+/// skip bundles that are completely used.
----------------
Sterling-Augustine wrote:
Iterators skip bundles that are completely used, because the vectorizer will set an instruction as "used" when it is vectorized (or we have concluded that it can't be vectorized). We don't actually remove them from the bundle so that "removal" is a constant time operation. I will elaborate on this in the iterator comment.
https://github.com/llvm/llvm-project/pull/112048
More information about the llvm-commits
mailing list