[llvm] [SandboxIR][Region] Implement an auxiliary vector in Region (PR #126376)

Jorge Gorbe Moya via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 13 11:45:49 PST 2025


================
@@ -87,16 +87,23 @@ class ScoreBoard {
 //  |    |
 //  |Rgn3| -> Transform1 ->  ... -> TransformN -> Check Cost
 //  +----+
+//
+// The region can also hold an ordered sequence of "auxiliary" instructions.
+// This can be used to pass auxiliary information across region passes, like for
+// example the initial seed slice used by the bottom-up vectorizer.
 
 class Region {
   /// All the instructions in the Region. Only new instructions generated during
   /// vectorization are part of the Region.
   SetVector<Instruction *> Insts;
+  /// An auxiliary sequence of Instruction-Index pairs.
+  SmallVector<Instruction *> Aux;
 
   /// MDNode that we'll use to mark instructions as being part of the region.
   MDNode *RegionMDN;
   static constexpr const char *MDKind = "sandboxvec";
   static constexpr const char *RegionStr = "sandboxregion";
+  static constexpr const char *AuxMDKind = "sbaux";
----------------
slackito wrote:

the other names use "sandbox" instead of "sb" as a prefix. Should this be "sandboxaux"? Or even "sandboxregionaux"? (I don't know how long these strings usually are)

https://github.com/llvm/llvm-project/pull/126376


More information about the llvm-commits mailing list