<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Analysis/BasicAA, branch release_32</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Analysis/BasicAA?h=release_32</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Analysis/BasicAA?h=release_32'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2012-11-05T10:48:24Z</updated>
<entry>
<title>Don't infer whether a value is captured in the current function from the</title>
<updated>2012-11-05T10:48:24Z</updated>
<author>
<name>Richard Osborne</name>
<email>richard@xmos.com</email>
</author>
<published>2012-11-05T10:48:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=544533301e51e697abf7cc05979208d0ffc30973'/>
<id>urn:sha1:544533301e51e697abf7cc05979208d0ffc30973</id>
<content type='text'>
'nocapture' attribute.

The nocapture attribute only specifies that no copies are made that
outlive the function. This isn't the same as there being no copies at all.
This fixes PR14045.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167381 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>BasicAA: Recognize cyclic NoAlias phis</title>
<updated>2012-09-06T14:41:53Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>arnolds@codeaurora.org</email>
</author>
<published>2012-09-06T14:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=3d5f96ee1bf5189e324089976026ed09b6be9e58'/>
<id>urn:sha1:3d5f96ee1bf5189e324089976026ed09b6be9e58</id>
<content type='text'>
Enhances basic alias analysis to recognize phis whose first incoming values are
NoAlias and whose other incoming values are just the phi node itself through
some amount of recursion.

Example: With this change basicaa reports that ptr_phi and ptr_phi2 do not alias
each other.

bb:
 ptr = ptr2 + 1

loop:
  ptr_phi = phi [bb, ptr], [loop, ptr_plus_one]
  ptr2_phi = phi [bb, ptr2], [loop, ptr2_plus_one]
  ...
  ptr_plus_one = gep ptr_phi, 1
  ptr2_plus_one = gep ptr2_phi, 1

This enables the elimination of one load in code like the following:

extern int foo;

int test_noalias(int *ptr, int num, int* coeff) {
  int *ptr2 = ptr;
  int result = (*ptr++) * (*coeff--);
  while (num--) {
    *ptr2++ = *ptr;
    result +=  (*coeff--) * (*ptr++);
  }
  *ptr = foo;
  return result;
}

Part 2/2 of fix for PR13564.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163319 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>BasicAA: GEPs of NoAlias'ing base ptr with equivalent indices are NoAlias</title>
<updated>2012-09-06T14:31:51Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>arnolds@codeaurora.org</email>
</author>
<published>2012-09-06T14:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=029032693fdb065b6edfff6d68df188f98bee8ac'/>
<id>urn:sha1:029032693fdb065b6edfff6d68df188f98bee8ac</id>
<content type='text'>
If we can show that the base pointers of two GEPs don't alias each other using
precise analysis and the indices and base offset are equal then the two GEPs
also don't alias each other.
This is primarily needed for the follow up patch that analyses NoAlias'ing PHI
nodes.

Part 1/2 of fix for PR13564.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163317 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Convert the uses of '|&amp;' to use '2&gt;&amp;1 |' instead, which works on old</title>
<updated>2012-07-02T18:37:59Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2012-07-02T18:37:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=49589f0d0e35f643e697ab7ae8a51a530d38b0d8'/>
<id>urn:sha1:49589f0d0e35f643e697ab7ae8a51a530d38b0d8</id>
<content type='text'>
versions of Bash. In addition, I can back out the change to the lit
built-in shell test runner to support this.

This should fix the majority of fallout on Darwin, but I suspect there
will be a few straggling issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159544 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>FileCheck-ize these tests. Harden some of them.</title>
<updated>2012-04-24T09:15:38Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2012-04-24T09:15:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d5cc8b81ca5d0a09a1da7f8b094907eb63a582e6'/>
<id>urn:sha1:d5cc8b81ca5d0a09a1da7f8b094907eb63a582e6</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155432 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Duncan pointed out that if the alignment isn't explicitly specified, it defaults to the ABI alignment.  Given that, make this code a bit more aggressive in such cases.</title>
<updated>2012-02-27T23:16:46Z</updated>
<author>
<name>Eli Friedman</name>
<email>eli.friedman@gmail.com</email>
</author>
<published>2012-02-27T23:16:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cd38485b8ae2928cc8cb3bb67dcff7c7b7529ebe'/>
<id>urn:sha1:cd38485b8ae2928cc8cb3bb67dcff7c7b7529ebe</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151584 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach BasicAA about the LLVM IR rules that allow reading past the end of an object given sufficient alignment.  Fixes PR12098.</title>
<updated>2012-02-27T20:46:07Z</updated>
<author>
<name>Eli Friedman</name>
<email>eli.friedman@gmail.com</email>
</author>
<published>2012-02-27T20:46:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1680a24e534f3066f99fa6b8a618e71373e2920c'/>
<id>urn:sha1:1680a24e534f3066f99fa6b8a618e71373e2920c</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151553 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed.</title>
<updated>2012-02-16T06:28:33Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eli.bendersky@intel.com</email>
</author>
<published>2012-02-16T06:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=0f0c411079cd21bb3a81a1b70bf8c67539a16c22'/>
<id>urn:sha1:0f0c411079cd21bb3a81a1b70bf8c67539a16c22</id>
<content type='text'>
Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150664 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Manually upgrade the test suite to specify the flag to cttz and ctlz.</title>
<updated>2011-12-12T11:59:10Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2011-12-12T11:59:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ddbc274169ed4ee0e0ac32ed194b925a180202fe'/>
<id>urn:sha1:ddbc274169ed4ee0e0ac32ed194b925a180202fe</id>
<content type='text'>
I followed three heuristics for deciding whether to set 'true' or
'false':

- Everything target independent got 'true' as that is the expected
  common output of the GCC builtins.
- If the target arch only has one way of implementing this operation,
  set the flag in the way that exercises the most of codegen. For most
  architectures this is also the likely path from a GCC builtin, with
  'true' being set. It will (eventually) require lowering away that
  difference, and then lowering to the architecture's operation.
- Otherwise, set the flag differently dependending on which target
  operation should be tested.

Let me know if anyone has any issue with this pattern or would like
specific tests of another form. This should allow the x86 codegen to
just iteratively improve as I teach the backend how to differentiate
between the two forms, and everything else should remain exactly the
same.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146370 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic.</title>
<updated>2011-11-27T06:54:59Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-11-27T06:54:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d2bf432b2b6ba02e20958953a237213d48b00f20'/>
<id>urn:sha1:d2bf432b2b6ba02e20958953a237213d48b00f20</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145171 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
