<?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 phi.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>15f1fb5a - [NewPM][test] Use -passes syntax in BoundsChecking lit tests</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#15f1fb5a</link>
        <description>[NewPM][test] Use -passes syntax in BoundsChecking lit testsThe legacy PM is deprecated, so use the new PM syntax in lit testsrunning the bounds-checking pass.

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Wed, 20 Oct 2021 10:34:45 +0000</pubDate>
        <dc:creator>Bjorn Pettersson &lt;bjorn.a.pettersson@ericsson.com&gt;</dc:creator>
    </item>
<item>
        <title>cb5c7bd9 - Fix a hang when lowering __builtin_dynamic_object_size</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#cb5c7bd9</link>
        <description>Fix a hang when lowering __builtin_dynamic_object_sizeIf the ObjectSizeOffsetEvaluator fails to fold the object size call, then it maylitter some unused instructions in the function. When done repeatably inInstCombine, this results in an infinite loop. Fix this by tracking the set ofinstructions that were inserted, then removing them on failure.rdar://49172227Differential revision: https://reviews.llvm.org/D60298llvm-svn: 358146

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Wed, 10 Apr 2019 23:42:11 +0000</pubDate>
        <dc:creator>Erik Pilkington &lt;erik.pilkington@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a79ac14f - [opaque pointer type] Add textual IR support for explicit type parameter to load instruction</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#a79ac14f</link>
        <description>[opaque pointer type] Add textual IR support for explicit type parameter to load instructionEssentially the same as the GEP change in r230786.A similar migration script can be used to update test cases, though a few moretest case improvements/changes were required this time around: (r229269-r229278)import fileinputimport sysimport repat = re.compile(r&quot;((?:=|:|^)\s*load (?:atomic )?(?:volatile )?(.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$)&quot;)for line in sys.stdin:  sys.stdout.write(re.sub(pat, r&quot;\1, \2\3*\4&quot;, line))Reviewers: rafael, dexonsmith, grosserDifferential Revision: http://reviews.llvm.org/D7649llvm-svn: 230794

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Fri, 27 Feb 2015 21:17:42 +0000</pubDate>
        <dc:creator>David Blaikie &lt;dblaikie@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>79e6c749 - [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#79e6c749</link>
        <description>[opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instructionOne of several parallel first steps to remove the target type of pointers,replacing them with a single opaque pointer type.This adds an explicit type parameter to the gep instruction so that when thefirst parameter becomes an opaque pointer type, the type to gep through isstill available to the instructions.* This doesn&apos;t modify gep operators, only instructions (operators will be  handled separately)* Textual IR changes only. Bitcode (including upgrade) and changing the  in-memory representation will be in separate changes.* geps of vectors are transformed as:    getelementptr &lt;4 x float*&gt; %x, ...  -&gt;getelementptr float, &lt;4 x float*&gt; %x, ...  Then, once the opaque pointer type is introduced, this will ultimately look  like:    getelementptr float, &lt;4 x ptr&gt; %x  with the unambiguous interpretation that it is a vector of pointers to float.* address spaces remain on the pointer, not the type:    getelementptr float addrspace(1)* %x  -&gt;getelementptr float, float addrspace(1)* %x  Then, eventually:    getelementptr float, ptr addrspace(1) %xImportantly, the massive amount of test case churn has been automated bysame crappy python code. I had to manually update a few test cases thatwouldn&apos;t fit the script&apos;s model (r228970,r229196,r229197,r229198). Thepython script just massages stdin and writes the result to stdout, Ithen wrapped that in a shell script to handle replacing files, thenusing the usual find+xargs to migrate all the files.update.py:import fileinputimport sysimport reibrep = re.compile(r&quot;(^.*?[^%\w]getelementptr inbounds )(((?:&lt;\d* x )?)(.*?)(| addrspace\(\d\)) *\*(|&gt;)(?:$| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$))&quot;)normrep = re.compile(       r&quot;(^.*?[^%\w]getelementptr )(((?:&lt;\d* x )?)(.*?)(| addrspace\(\d\)) *\*(|&gt;)(?:$| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$))&quot;)def conv(match, line):  if not match:    return line  line = match.groups()[0]  if len(match.groups()[5]) == 0:    line += match.groups()[2]  line += match.groups()[3]  line += &quot;, &quot;  line += match.groups()[1]  line += &quot;\n&quot;  return linefor line in sys.stdin:  if line.find(&quot;getelementptr &quot;) == line.find(&quot;getelementptr inbounds&quot;):    if line.find(&quot;getelementptr inbounds&quot;) != line.find(&quot;getelementptr inbounds (&quot;):      line = conv(re.match(ibrep, line), line)  elif line.find(&quot;getelementptr &quot;) != line.find(&quot;getelementptr (&quot;):    line = conv(re.match(normrep, line), line)  sys.stdout.write(line)apply.sh:for name in &quot;$@&quot;do  python3 `dirname &quot;$0&quot;`/update.py &lt; &quot;$name&quot; &gt; &quot;$name.tmp&quot; &amp;&amp; mv &quot;$name.tmp&quot; &quot;$name&quot;  rm -f &quot;$name.tmp&quot;doneThe actual commands:From llvm/src:find test/ -name *.ll | xargs ./apply.shFrom llvm/src/tools/clang:find test/ -name *.mm -o -name *.m -o -name *.cpp -o -name *.c | xargs -I &apos;{}&apos; ../../apply.sh &quot;{}&quot;From llvm/src/tools/polly:find test/ -name *.ll | xargs ./apply.shAfter that, check-all (with llvm, clang, clang-tools-extra, lld,compiler-rt, and polly all checked out).The extra &apos;rm&apos; in the apply.sh script is due to a few files in clang&apos;s testsuite using interesting unicode stuff that my python script was throwingexceptions on. None of those files needed to be migrated, so it seemedsufficient to ignore those cases.Reviewers: rafael, dexonsmith, grosserDifferential Revision: http://reviews.llvm.org/D7636llvm-svn: 230786

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Fri, 27 Feb 2015 19:29:02 +0000</pubDate>
        <dc:creator>David Blaikie &lt;dblaikie@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>42a4c9f9 - Allow aliases to be unnamed_addr.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#42a4c9f9</link>
        <description>Allow aliases to be unnamed_addr.Alias with unnamed_addr were in a strange state. It is stored in GlobalValue,the language reference talks about &quot;unnamed_addr aliases&quot; but the verifierwas rejecting them.It seems natural to allow unnamed_addr in aliases:* It is a property of how it is accessed, not of the data itself.* It is perfectly possible to write code that depends on the addressof an alias.This patch then makes unname_addr legal for aliases. One side effect is thatthe syntax changes for a corner case: In globals, unnamed_addr is now printedbefore the address space.llvm-svn: 210302

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Fri, 06 Jun 2014 01:20:28 +0000</pubDate>
        <dc:creator>Rafael Espindola &lt;rafael.espindola@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d3ee7af2 - Teach MemoryBuiltins about address spaces</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#d3ee7af2</link>
        <description>Teach MemoryBuiltins about address spacesllvm-svn: 197292

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Sat, 14 Dec 2013 00:27:48 +0000</pubDate>
        <dc:creator>Matt Arsenault &lt;Matthew.Arsenault@amd.com&gt;</dc:creator>
    </item>
<item>
        <title>20ea6252 - move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll#20ea6252</link>
        <description>move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place.No functionality change.llvm-svn: 160587

            List of files:
            /llvm-project-15.0.7/llvm/test/Instrumentation/BoundsChecking/phi.ll</description>
        <pubDate>Fri, 20 Jul 2012 22:39:33 +0000</pubDate>
        <dc:creator>Nuno Lopes &lt;nunoplopes@sapo.pt&gt;</dc:creator>
    </item>
</channel>
</rss>
