<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in cxx-lambda.proftext</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>6186971a - [PGO] Detect more structural changes with the stable hash</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext#6186971a</link>
        <description>[PGO] Detect more structural changes with the stable hashLifting from Bob Wilson&apos;s notes: The hash value that we compute andstore in PGO profile data to detect out-of-date profiles does notinclude enough information. This means that many significant changes tothe source will not cause compiler warnings about the profile being outof date, and worse, we may continue to use the outdated profile data tomake bad optimization decisions.  There is some tension here becausesome source changes won&apos;t affect PGO and we don&apos;t want to invalidate theprofile unnecessarily.This patch adds a new hashing scheme which is more sensitive to loopnesting, conditions, and out-of-order control flow. Here are exampleswhich show snippets which get the same hash under the current scheme,and different hashes under the new scheme:Loop Nesting Example--------------------  // Snippet 1  while (foo()) {    while (bar()) {}  }  // Snippet 2  while (foo()) {}  while (bar()) {}Condition Example-----------------  // Snippet 1  if (foo())    bar();  baz();  // Snippet 2  if (foo())    bar();  else    baz();Out-of-order Control Flow Example---------------------------------  // Snippet 1  while (foo()) {    if (bar()) {}    baz();  }  // Snippet 2  while (foo()) {    if (bar())      continue;    baz();  }In each of these cases, it&apos;s useful to differentiate between thesnippets because swapping their profiles gives bad optimization hints.The new hashing scheme considers some logical operators in an effort todetect more changes in conditions. This isn&apos;t a perfect scheme. E.g, itdoes not produce the same hash for these equivalent snippets:  // Snippet 1  bool c = !a || b;  if (d &amp;&amp; e) {}  // Snippet 2  bool f = d &amp;&amp; e;  bool c = !a || b;  if (f) {}This would require an expensive data flow analysis. Short of that, thenew hashing scheme looks reasonably complete, based on a scan over thestatements we place counters on.Profiles which use the old version of the PGO hash remain valid and canbe used without issue (there are tests in tree which check this).rdar://17068282Differential Revision: https://reviews.llvm.org/D39446llvm-svn: 318229

            List of files:
            /llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext</description>
        <pubDate>Tue, 14 Nov 2017 23:56:53 +0000</pubDate>
        <dc:creator>Vedant Kumar &lt;vsk@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>e1769ef5 - [PGO] Revert r255366: solution incomplete, not handling lambda yet</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext#e1769ef5</link>
        <description>[PGO] Revert r255366: solution incomplete, not handling lambda yetllvm-svn: 255368

            List of files:
            /llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext</description>
        <pubDate>Fri, 11 Dec 2015 20:23:12 +0000</pubDate>
        <dc:creator>Xinliang David Li &lt;davidxl@google.com&gt;</dc:creator>
    </item>
<item>
        <title>871daea5 - [PGO] Stop using invalid char in instr variable names.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext#871daea5</link>
        <description>[PGO] Stop using invalid char in instr variable names.(This is part-2 of the patch -- fixing test cases)Before the patch, -fprofile-instr-generate compile will failif no integrated-as is specified when the file containsany static functions (the -S output is also invalid).This patch fixed the issue. With the change, the index formatversion will be bumped up by 1. Backward compatibility is preserved with this change.Differential Revision: http://reviews.llvm.org/D15243llvm-svn: 255366

            List of files:
            /llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext</description>
        <pubDate>Fri, 11 Dec 2015 19:53:35 +0000</pubDate>
        <dc:creator>Xinliang David Li &lt;davidxl@google.com&gt;</dc:creator>
    </item>
<item>
        <title>534f14ab - test: Use llvm-profdata merge in Profile tests</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext#534f14ab</link>
        <description>test: Use llvm-profdata merge in Profile testsIn preparation for using a binary format for instrumentation basedprofiling, explicitly treat the test inputs as text and transform thembefore running. This will allow us to leave the checked in files inhuman readable format once the instrumentation format is binary.No functional change.llvm-svn: 206509

            List of files:
            /llvm-project-15.0.7/clang/test/Profile/Inputs/cxx-lambda.proftext</description>
        <pubDate>Thu, 17 Apr 2014 22:49:06 +0000</pubDate>
        <dc:creator>Justin Bogner &lt;mail@justinbogner.com&gt;</dc:creator>
    </item>
</channel>
</rss>
