<?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 getelementptr.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>d93620bf - IR: Introduce inrange attribute on getelementptr indices.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#d93620bf</link>
        <description>IR: Introduce inrange attribute on getelementptr indices.If the inrange keyword is present before any index, loading from orstoring to any pointer derived from the getelementptr has undefinedbehavior if the load or store would access memory outside of the bounds ofthe element selected by the index marked as inrange.This can be used, e.g. for alias analysis or to split globals at elementboundaries where beneficial.As previously proposed on llvm-dev:http://lists.llvm.org/pipermail/llvm-dev/2016-July/102472.htmlDifferential Revision: https://reviews.llvm.org/D22793llvm-svn: 286514

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Thu, 10 Nov 2016 22:34:55 +0000</pubDate>
        <dc:creator>Peter Collingbourne &lt;peter@pcc.me.uk&gt;</dc:creator>
    </item>
<item>
        <title>a7b6c973 - [ConstantFold] Don&apos;t incorrectly infer inbounds on array GEP</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#a7b6c973</link>
        <description>[ConstantFold] Don&apos;t incorrectly infer inbounds on array GEPThe many levels of nesting inside the responsible code made it easy forbugs to sneak in.  Flattening the logic makes it easier to see what&apos;sgoing on.llvm-svn: 275244

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Wed, 13 Jul 2016 03:24:41 +0000</pubDate>
        <dc:creator>David Majnemer &lt;david.majnemer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0a99278f - Make the test introduced in r239015 more targeted.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#0a99278f</link>
        <description>Make the test introduced in r239015 more targeted.We don&apos;t need to go through LSR to trigger this bug.  Instead,hand-craft a tricky GEP and get the constant folder to hack on it whenparsing the IR.llvm-svn: 239017

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Thu, 04 Jun 2015 07:21:42 +0000</pubDate>
        <dc:creator>David Majnemer &lt;david.majnemer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f72d05bc - [opaque pointer type] Add textual IR support for explicit type parameter to gep operator</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#f72d05bc</link>
        <description>[opaque pointer type] Add textual IR support for explicit type parameter to gep operatorSimilar to gep (r230786) and load (r230794) changes.Similar migration script can be used to update test cases, whichsuccessfully migrated all of LLVM and Polly, but about 4 test casesneeded manually changes in Clang.(this script will read the contents of stdin and massage it into stdout- wrap it in the &apos;apply.sh&apos; script shown in previous commits + xargs toapply it over a large set of test cases)import fileinputimport sysimport rerep = re.compile(r&quot;(getelementptr(?:\s+inbounds)?\s*\()((&lt;\d*\s+x\s+)?([^@]*?)(|\s*addrspace\(\d+\))\s*\*(?(3)&gt;)\s*)(?=$|%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|zeroinitializer|&lt;|\[\[[a-zA-Z]|\{\{)&quot;, re.MULTILINE | re.DOTALL)def conv(match):  line = match.group(1)  line += match.group(4)  line += &quot;, &quot;  line += match.group(2)  return lineline = sys.stdin.read()off = 0for match in re.finditer(rep, line):  sys.stdout.write(line[off:match.start()])  sys.stdout.write(conv(match))  off = match.end()sys.stdout.write(line[off:])llvm-svn: 232184

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Fri, 13 Mar 2015 18:20:45 +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/Assembler/getelementptr.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/Assembler/getelementptr.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>8b77454d - ConstantFold: Properly fold GEP indices wider than i64</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#8b77454d</link>
        <description>ConstantFold: Properly fold GEP indices wider than i64llvm-svn: 229420

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Mon, 16 Feb 2015 19:10:02 +0000</pubDate>
        <dc:creator>David Majnemer &lt;david.majnemer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c8eccd11 - verify-uselistorder: Force -preserve-bc-use-list-order</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#c8eccd11</link>
        <description>verify-uselistorder: Force -preserve-bc-use-list-orderllvm-svn: 216022

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Tue, 19 Aug 2014 21:08:27 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>852e00e3 - verify-uselistorder: Change the default -num-shuffles=5</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#852e00e3</link>
        <description>verify-uselistorder: Change the default -num-shuffles=5Change the default for `-num-shuffles` to 5 and better document thealgorithm in the header docs of `verify-uselistorder`.llvm-svn: 214419

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Thu, 31 Jul 2014 18:46:24 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>5faa6225 - verify-uselistorder: Add RUN lines to cases in test/Assembly</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#5faa6225</link>
        <description>verify-uselistorder: Add RUN lines to cases in test/AssemblyAdd RUN line for `verify-uselistorder` to every test in `test/Assembly`,unless it&apos;s a negative check (assembler rejects it) or verificationfails.There are three files that verification fails on (so I&apos;ve left out theRUN lines):  - 2002-08-22-DominanceProblem.ll  - ConstantExprFold.ll  - ConstantExprFoldCast.llThis is part of PR5680.llvm-svn: 214365

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Thu, 31 Jul 2014 00:10:27 +0000</pubDate>
        <dc:creator>Duncan P. N. Exon Smith &lt;dexonsmith@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>e6beec67 - Relax the restrictions on vector of pointer types, and vector getelementptr.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#e6beec67</link>
        <description>Relax the restrictions on vector of pointer types, and vector getelementptr.Previously in a vector of pointers, the pointer couldn&apos;t be any pointer type,it had to be a pointer to an integer or floating point type.  This is a hasslefor dragonegg because the GCC vectorizer happily produces vectors of pointerswhere the pointer is a pointer to a struct or whatever.  Vector getelementptrwas restricted to just one index, but now that vectors of pointers can haveany pointer type it is more natural to allow arbitrary vector getelementptrs.There is however the issue of struct GEPs, where if each lane chose differentstruct fields then from that point on each lane will be working down intounrelated types.  This seems like too much pain for too little gain, so whenyou have a vector struct index all the elements are required to be the same.llvm-svn: 167828

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Tue, 13 Nov 2012 12:59:33 +0000</pubDate>
        <dc:creator>Duncan Sands &lt;baldrick@free.fr&gt;</dc:creator>
    </item>
<item>
        <title>b1ed91f3 - Land the long talked about &quot;type system rewrite&quot; patch.  This</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#b1ed91f3</link>
        <description>Land the long talked about &quot;type system rewrite&quot; patch.  Thispatch brings numerous advantages to LLVM.  One way to look at itis through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-)Removing almost 3K lines of code is a good thing.  Other advantagesinclude:1. Value::getType() is a simple load that can be CSE&apos;d, not a mutating   union-find operation.2. Types a uniqued and never move once created, defining away PATypeHolder.3. Structs can be &quot;named&quot; now, and their name is part of the identity that   uniques them.  This means that the compiler doesn&apos;t merge them structurally   which makes the IR much less confusing.4. Now that there is no way to get a cycle in a type graph without a named   struct type, &quot;upreferences&quot; go away.5. Type refinement is completely gone, which should make LTO much MUCH faster   in some common cases with C++ code.6. Types are now generally immutable, so we can use &quot;Type *&quot; instead    &quot;const Type *&quot; everywhere.Downsides of this patch are that it removes some functions from the C API,so people using those will have to upgrade to (not yet added) new API.  &quot;LLVM 3.0&quot; is the right time to do this.There are still some cleanups pending after this, this patch is large enoughas-is.llvm-svn: 134829

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Sat, 09 Jul 2011 17:41:24 +0000</pubDate>
        <dc:creator>Chris Lattner &lt;sabre@nondot.org&gt;</dc:creator>
    </item>
<item>
        <title>bb451461 - remove some noise from tests.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#bb451461</link>
        <description>remove some noise from tests.llvm-svn: 112889

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Thu, 02 Sep 2010 22:35:33 +0000</pubDate>
        <dc:creator>Chris Lattner &lt;sabre@nondot.org&gt;</dc:creator>
    </item>
<item>
        <title>21c6216c - Teach lib/VMCore/ConstantFold.cpp how to set the inbounds keyword and</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#21c6216c</link>
        <description>Teach lib/VMCore/ConstantFold.cpp how to set the inbounds keyword andhow to fold notionally-out-of-bounds array getelementptr indices insteadof just doing these in lib/Analysis/ConstantFolding.cpp, because it canbe done in a fairly general way without TargetData, and because not allconstants are visited by lib/Analysis/ConstantFolding.cpp. This enablesmore constant folding.Also, set the &quot;inbounds&quot; flag when the getelementptr indices areone-past-the-end.llvm-svn: 81483

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Fri, 11 Sep 2009 00:04:14 +0000</pubDate>
        <dc:creator>Dan Gohman &lt;gohman@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>73b5b5ad - add testcase for strange types of gep indices</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll#73b5b5ad</link>
        <description>add testcase for strange types of gep indicesllvm-svn: 70085

            List of files:
            /llvm-project-15.0.7/llvm/test/Assembler/getelementptr.ll</description>
        <pubDate>Sat, 25 Apr 2009 22:20:49 +0000</pubDate>
        <dc:creator>Chris Lattner &lt;sabre@nondot.org&gt;</dc:creator>
    </item>
</channel>
</rss>
