[libcxx-commits] [clang-tools-extra] [clang] [llvm] [libc] [flang] [lld] [lldb] [libcxx] [compiler-rt] [VPlan] Implement cloning of VPlans. (PR #73158)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jan 25 06:42:48 PST 2024


================
@@ -614,6 +614,61 @@ void VPBasicBlock::print(raw_ostream &O, const Twine &Indent,
   printSuccessors(O, Indent);
 }
 #endif
+static void cloneCFG(VPBlockBase *Entry,
+                     DenseMap<VPBlockBase *, VPBlockBase *> &Old2NewVPBlocks);
----------------
ayalz wrote:

This cloning is recursive, so perhaps more accurately called `cloneHCFG()`.
It also clones a (maximal(*)) SESE region, so could be called `cloneSESE()`, and return a pair of VPB's - the new entry and new exit? Could `Old2NewVPBlocks` map be internal to the function, rather than an in/out parameter?

(*) There are currently two callees: the top-level of VPlan consisting of the vector-loop-preheader - loop-region - middle-block, and the internal CFG of a region from its entry/header to its exit(ing)/latch.

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


More information about the libcxx-commits mailing list