[PATCH] D59715: [HotColdSplit] Reflect full cost of parameters in split penalty

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 6 16:22:22 PDT 2020


vsk added a comment.

I haven't forgotten about this! Hope to have an update by Monday (8/10).



================
Comment at: llvm/lib/Transforms/IPO/HotColdSplitting.cpp:88
 
+static cl::opt<int> MaxParametersForSplit(
+    "hotcoldsplit-max-params", cl::init(8), cl::Hidden,
----------------
hiraditya wrote:
> Should we initialize this to be same as # of argument registers. Any arguments more than supported by argument registers are generally stored on stack and may add to code-size overhead both in caller and callee.
Ah, do you mean the number of arguments that can be passed by register? If so, yes, that seems like a straightforward improvement.


================
Comment at: llvm/lib/Transforms/IPO/HotColdSplitting.cpp:309
+  unsigned NumSplitExitPhis = 0;
+  for (BasicBlock *ExitBB : SuccsOutsideRegion) {
+    for (PHINode &PN : ExitBB->phis()) {
----------------
hiraditya wrote:
> Do we have a limit on max # successors outside of the region? In pathological cases this piece of code may have super linear time complexity. If we dont encounter this often then this seems fine though.
No, we don't have a limit like that, but I'd be open to adding one if a pathological case is found. I've never observed a performance issue here (in practice |SuccsOutsideRegion| is very small).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59715/new/

https://reviews.llvm.org/D59715



More information about the llvm-commits mailing list