[LLVMdev] RFC - Improvements to PGO profile support

Xinliang David Li xinliangli at gmail.com
Tue Mar 24 13:08:01 PDT 2015


Example. Assuming the cap is 'C'

void bar()
{
    // ENTRY count is 4*C, after capping it becomes 'C'
    ...
}

void test()
{
  // BB1:   count(BB1) = C
  bar();

  // BB2:   count(BB2) = C
  bar();

}

void test2()
{
  // BB3:   count(BB3) = C
  bar();

  // BB4:   count(BB4) = C
  bar();
}

What would inliner see here ? When it sees callsite1 -- it might mistaken
that is the only dominating callsite to 'bar'.

David


On Tue, Mar 24, 2015 at 12:57 PM, Chandler Carruth <chandlerc at google.com>
wrote:

>
> On Tue, Mar 24, 2015 at 12:53 PM, Xinliang David Li <xinliangli at gmail.com>
> wrote:
>
>> Capping also leads to other kinds of problems -- e.g., sum of incoming
>> edge count (callgraph) does not match the callee entry count etc.
>
>
> Can you explain these problems in more detail? I think that's essential
> for understanding why you think the design should be work in this way.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150324/079c7769/attachment.html>


More information about the llvm-dev mailing list