<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
What is the current status of the proposal? I haven’t seen any further discussion/changes. Are there any plans to move forward?
<div class=""><br class="">
</div>
<div class="">Artur</div>
<div class=""><br class="">
</div>
<div>
<blockquote type="cite" class="">
<div class="">On 22 Oct 2015, at 21:25, Cox, Robert via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">RFC: Inlining Report<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="color: rgb(31, 73, 125);" class=""> </span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">Motivation<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">Making good inlining choices while optimizing an application is often key to achieving optimal performance.  While the compiler’s default inlining heuristics sometimes provide great out-of-box results, optimal performance is sometimes
 achieved only after varying the settings of certain compiler options related to inlining or adding “always_inline” or “noinline” attributes to certain functions.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">Before we can determine how we need change the compiler’s inlining choices to get better performance for an application, we need to have a clear picture of the compiler’s inlining choices and what motivated them.  Many compilers like
 LLVM and GCC provide<span class="Apple-converted-space"> </span><b class="">informational notes<span class="Apple-converted-space"> </span></b>when a function is inlined, but  these notes provide only a “blow by blow” description of what the compiler did,
 rather than a high level illustration of the result. This high level picture can be provided by an<span class="Apple-converted-space"> </span><b class="">inlining report.<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">Over the years, I’ve worked with several compilers that provide inlining reports, and I can attest that the customers using those compilers have found them to be invaluable tool in investigating and improving their applications’ performance. 
 In addition,  the inlining report can be used by compiler developers to visualize and improve the compiler’s default heuristics and option values.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">For these reasons, I’d like to contribute code to LLVM to generate an inlining report as part of the inliner.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">Description<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">The inlining report I am proposing contains the following information:<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
<span style="" class="">(1)</span><span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span><span style="" class="">The values of the principle threshold options which affect how much
 inlining is done under various circumstances<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
<span style="" class="">(2)</span><span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span><span style="" class="">Whether each function is compiled or has been eliminated by dead static
 function elimination.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
<span style="" class="">(3)</span><span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span><span style="" class="">For each function, the call sites that were and were not inlined. 
 Since inlining a call site can expose other call sites for inlining, the inlining report also reports on whether these exposed call sites have been inlined or not.  This information is presented in hierarchical manner.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
<span style="" class="">(4)</span><span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span><span style="" class="">For each call site, we include the principle reason the call site was
 or was not inlined, together with any cost vs . threshold computation that was done.<o:p class=""></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">High Level Design<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The inline report is created if the option –inline-report=X is passed on command line with a positive integer value of X.  If X is 0, or this option is not specified, the Inliner does not create or perform any operations on the inline report, and there is no
 compile time overhead.<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Three main classes are used to implement the inline report:<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><i class="">class InlineReportCallSite<span class="Apple-converted-space"> </span><o:p class=""></o:p></i></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
This class contains the inlining report information specific to a particular CallSite CS, including:<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(1)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A bool indicating whether or not the CallSite was or was not inlined<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(2)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>An inlining reason  indicating why the CallSite was or was not inlined<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(3)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>The inlining cost, outer inlining cost, and threshold values used in calculating the profitability of inlining<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(4)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A vector of InlineReportCallSite*, each of which points to an InlineReportCallSite for a CallSite exposed when CS was inlined.
  <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><i class="">class InlineReportFunction<span class="Apple-converted-space"> </span><o:p class=""></o:p></i></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
This class contains the inlining report information specific to a particular Function F in the call graph, including:<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(1)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A bool indicating whether the function has been dead static eliminated.<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(2)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A vector of call InlineReportCallSite*, each of which points to an InlineReportCallSite for a CallSite that appeared in F
 before any inlining was applied.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><i class="">class InlineReport<span class="Apple-converted-space"> </span><o:p class=""></o:p></i></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The main class which summarizes the high level information in the inline report, including:<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(1)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>The values of the inlining threshold options<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(2)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>The “level” of the inlining report, which is a bit vector of feature options.  For example, whether to print external functions
 and intrinsics, whether to print the inlining reasons, etc.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(3)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A map MF from each Function* to InlineReportFunction*<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.75in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(4)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>A map MCS from each CallSite* to InlineReportCallSite*<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
In addition, the class InlineCost (from InlineCost.h) is augmented to include the primary reason a call site was inlined.  <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The class Inliner has been augmented with an InlineReport, which is created when an Inliner is constructed. The InlineReport is updated using calls to the member functions of these three classes in Inliner::runOnSCC() and the functions called by it.  <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Before any inlining is done in a particular call to runOnSCC(), the map MF is updated so that each Function (caller or callee) that will be examined for inlining has a corresponding InlineReportFunction in the map.  (The map MCS is also updated in a similar
 way, but only when a Function is actually inlined.)<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The Inliner determines if a CallSite should be inlined by first calling Inliner::ShouldInline().   This calls getInlineCost() which returns an InlineCost, which now includes the reason the call site should or should not be inlined.  This reason, as well and
 costs and threshold from the InlineCost are stored in the InlineReportCallSite for the CallSite. <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Then Inliner calls the static function InlineCallPossible(). If the inlining was not performed, the reason for not inlining is recorded in the InlineReportCallSite corresponding to the CallSite.  If the inlining was performed, the corresponding InlineReportCallSite
 is marked as inlined, and it is populated with the InlineReportCallSites corresponding to the newly exposed CallSites that were created during the inlining. <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The InlineReport is printed during the call to Inliner::doFinalization().<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Since the compiler can run any number of optimizations between two successive calls to runOnSCC(), the Instructions corresponding to CallSites can be deleted by the optimizations.  Callbacks are used to mark the corresponding InlineReportCallSites as deleted
 when this happens.<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">Example<span class="Apple-converted-space"> </span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="" class="">Here is an example of abbreviated inlining report that is generated in my locally modified copy of the LLVM sources.  I generated this by compiling the file bzip2.c from the spec 2006 benchmark 401.bzip.  (For the sake of brevity, I
 didn’t include all of the report</span>.  Omitted parts are indicated by …. in the report.)<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">---- Begin Inlining Report ----<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">Option Values:<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  inline-threshold: 225<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  inlinehint-threshold: 325<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  inlinecold-threshold: 225<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  inlineoptsize-threshold: 15<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: fopen_output_safely<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: open<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fdopen<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: close<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">DEAD STATIC FUNC: setExit<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">DEAD STATIC FUNC: copyFileName<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">DEAD STATIC FUNC: showFileNames<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">DEAD STATIC FUNC: stat<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">….<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: cleanUpAndFail<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> llvm.lifetime.start<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      [[Callee is intrinsic]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: stat (35<=487)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Callee is single basic block>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> EXTERN: __xstat<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fclose<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: remove<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: setExit (15<=225)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Inlining is profitable>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: exit<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">….<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: outOfMemory<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: showFileNames (70<=225)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Inlining is profitable>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> cleanUpAndFail<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      [[Callee is noreturn]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">….<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: snocString<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: mkCell (-14920<=225)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Callee has single callsite and local linkage>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> INLINE: myMalloc (70<=225)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         <<Inlining is profitable>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         -> EXTERN: malloc<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         -> outOfMemory<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">            [[Callee is noreturn]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: strlen<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: myMalloc (-14925<=225)<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Callee has single callsite and local linkage>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> EXTERN: malloc<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> outOfMemory<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         [[Callee is noreturn]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: strcpy<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> snocString<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      [[Callee is never inline]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">…..<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">---- End Inlining Report ------<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Here is an explanation of some of the features:<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(1)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>Option values<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">Option Values:<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">  inline-threshold: 225<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">  inlinehint-threshold: 325<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">  inlinecold-threshold: 225<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">  inlineoptsize-threshold: 15</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The report begins with a list of the most relevant option values to inlining.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(2)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>Compiled and dead functions<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">COMPILE FUNC: fopen_output_safely</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: open<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fdopen<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: close<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">DEAD STATIC FUNC: setExit</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Functions in the file are identified as either being compiled or eliminated by dead static function elimination.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(3)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>External function calls<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: fopen_output_safely<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">-> EXTERN: open<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">   -> EXTERN: fdopen<o:p class=""></o:p></span></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">   -> EXTERN: close</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Calls to externally defined functions are indicated by the word EXTERN.  These lines can optionally be omitted.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(4)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>Inlining and nesting  <o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: snocString<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">  <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">-> INLINE: mkCell (-14920<=225)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      <<Callee has single callsite and local linkage>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">-> INLINE: myMalloc (70<=225)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         <<Inlining is profitable>><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">         -> EXTERN: malloc<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Inlined functions are marked INLINE. The inlining of a function within other inlined functions is shown clearly in the report using indentation.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(5)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>Reasons functions were and were not inlined<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: cleanUpAndFail<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> llvm.lifetime.start<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">[[Callee is intrinsic]]</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: stat<span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">(35<=487)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class=""><<Callee is single basic block>></span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> EXTERN: __xstat<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fclose<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: remove<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: setExit<span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">(15<=225)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class=""><<Inlining is profitable>></span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: exit<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
….<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: outOfMemory<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> INLINE: showFileNames<span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">(70<=225)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class=""><<Inlining is profitable>></span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">      -> EXTERN: fprintf<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> cleanUpAndFail<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">     <span class="Apple-converted-space"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">[[Callee is noreturn]]</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
The principal reason a function was or was not inlined can be optionally displayed in the report.  The reason a function was inlined is indicated in double angle brackets << >>.  The reason a function was not inlined is indicated in double square brackets [[
 ]].   When a comparison of the cost and threshold was used to determine if the function should be inlined, the comparison done is given.   (Since intrinsics are never inlined, information about them can be suppressed in the report.) The reasons for or for
 not inlining can optionally be displayed on the same line as the function considered for inlining for easy analysis using grep, awk, etc.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt 0.5in; font-size: 11pt; font-family: Calibri, sans-serif; text-indent: -0.25in;" class="">
(6)<span style="font-size: 7pt; font-family: 'Times New Roman', serif;" class="">   <span class="Apple-converted-space"> </span></span>Line and column info<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">COMPILE FUNC: outOfMemory<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> EXTERN: fprintf   <span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">bzip2.c(1016,4)</span><o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> showFileNames   <span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">bzip2.c(1019,4)</span><span class="Apple-converted-space"> </span>[[Callee is never inline]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class="">   -> cleanUpAndFail   <span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial;" class="">bzip2.c(1020,4)</span><span class="Apple-converted-space"> </span>[[Callee is never inline]]<o:p class=""></o:p></b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<b class=""> </b></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Optionally, file, line, and column info can be provided for call sites if source position information is present (using –g or<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
–gline-tables-only).<span class="Apple-converted-space"> </span><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
I would appreciate any comments you have on whether you support the inclusion of an inline report in LLVM, the form and features I have outlined above, and your thoughts on the high level design.<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<span style="color: rgb(31, 73, 125);" class=""> </span></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Thank you in advance for your comments,<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
Robert Cox<o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<a href="mailto:robert.cox@intel.com" style="color: purple; text-decoration: underline;" class=""><span style="color: windowtext; text-decoration: none;" class="">robert.cox@intel.com</span></a><o:p class=""></o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
<div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">
<o:p class=""> </o:p></div>
</div>
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">LLVM
 Developers mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<a href="mailto:llvm-dev@lists.llvm.org" style="color: purple; text-decoration: underline; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">llvm-dev@lists.llvm.org</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" style="color: purple; text-decoration: underline; font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></div>
</blockquote>
</div>
<br class="">
</body>
</html>