<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div>
<div id="appendonsend"></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Xinliang David Li <davidxl@google.com><br>
<b>Sent:</b> Wednesday, March 17, 2021 9:02 AM<br>
<b>To:</b> Hongtao Yu <reviews+D98481+public+2d824aa1c1081e47@reviews.llvm.org><br>
<b>Cc:</b> Hongtao Yu <hoy@fb.com>; Wenlei He <wenlei@fb.com>; Kazu Hirata <kazu@google.com>; Chandler Carruth <chandlerc@gmail.com>; Wei Mi <wmi@google.com>; Easwaran Raman <eraman@google.com>; llvm-commits <llvm-commits@lists.llvm.org>; bhuvanendra.kumarn@amd.com
 <bhuvanendra.kumarn@amd.com>; 88888yl@gmail.com <88888yl@gmail.com>; dougpuob@gmail.com <dougpuob@gmail.com>; David Green <david.green@arm.com><br>
<b>Subject:</b> Re: [PATCH] D98481: [Inliner] Do not inline mutual-recursive functions to avoid exponential size growth.</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div class="x_gmail_default" style="font-family:monospace; font-size:small; color:#000000">
<br>
</div>
</div>
<br>
<div class="x_gmail_quote">
<div dir="ltr" class="x_gmail_attr">On Tue, Mar 16, 2021 at 11:43 PM Hongtao Yu via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br>
</div>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
hoy added a comment.<br>
<br>
A cap sounds good to me, since that's something we've been looking for for a long time. Regarding the cap, what kind of cap do you think will be appropriate? A cap on function size growth or a cap on how many times an original callsite can be inlined iteratively?
 Regarding the later, I was wondering what's a good way to track a callsite across SCC and function passes.<br>
<br>
</blockquote>
<blockquote itemscope="" itemtype="https://schemas.microsoft.com/QuotedText" style="border-left: 3px solid rgb(200, 200, 200); border-top-color: rgb(200, 200, 200); border-right-color: rgb(200, 200, 200); border-bottom-color: rgb(200, 200, 200); padding-left: 1ex; margin-left: 0.8ex; color: rgb(102, 102, 102);">
<div><br>
</div>
<div class="x_gmail_default" style="font-family:monospace; font-size:small; color:rgb(0,0,0)">
I think the latter -- but in a local sense. For callsite a-->b, have a cap on the total number of callsites that can be inlined into 'a' iteratively. When the cap is reached, break out the worklist loop.</div>
</blockquote>
<div class="x_gmail_default" style="font-family:monospace; font-size:small; color:rgb(0,0,0)">
I was thinking about capping on function size so that small callees such as getters/setters can always be inlined. What do you think?</div>
<div class="x_gmail_default" style="font-family:monospace; font-size:small; color:rgb(0,0,0)">
<br>
</div>
<div class="x_gmail_default" style="font-family:monospace; font-size:small; color:rgb(0,0,0)">
<br>
</div>
<blockquote class="x_gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left:1px solid rgb(204,204,204); padding-left:1ex">
<br>
Repository:<br>
  rG LLVM Github Monorepo<br>
<br>
CHANGES SINCE LAST ACTION<br>
  <a href="https://reviews.llvm.org/D98481/new/" rel="noreferrer" target="_blank">https://reviews.llvm.org/D98481/new/</a><br>
<br>
<a href="https://reviews.llvm.org/D98481" rel="noreferrer" target="_blank">https://reviews.llvm.org/D98481</a><br>
<br>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>