<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/Transforms, branch master</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/Transforms?h=master</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/Transforms?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-05-14T00:21:18Z</updated>
<entry>
<title>LoopVectorize: Handle loops with multiple forward inductions</title>
<updated>2013-05-14T00:21:18Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-05-14T00:21:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=123f18bcb9baeb6dc177cb642126a3a4d9ca8b43'/>
<id>urn:sha1:123f18bcb9baeb6dc177cb642126a3a4d9ca8b43</id>
<content type='text'>
We used to give up if we saw two integer inductions. After this patch, we base
further induction variables on the chosen one like we do in the reverse
induction and pointer induction case.

Fixes PR15720.

radar://13851975

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181746 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc-opts] Added debug statements when we set and unset whether a pointer is known positive.</title>
<updated>2013-05-14T00:08:09Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-05-14T00:08:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=dba53a8c9d4ece0bf44acbf5fce871f2e754d97d'/>
<id>urn:sha1:dba53a8c9d4ece0bf44acbf5fce871f2e754d97d</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181745 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc-opts] In the presense of an alloca unconditionally remove RR pairs if and only if we are both KnownSafeBU/KnownSafeTD rather than just either or.</title>
<updated>2013-05-13T23:49:42Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-05-13T23:49:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=acfb3584c58159ec20a8379c864c9d644f8d967e'/>
<id>urn:sha1:acfb3584c58159ec20a8379c864c9d644f8d967e</id>
<content type='text'>
In the presense of a block being initialized, the frontend will emit the
objc_retain on the original pointer and the release on the pointer loaded from
the alloca. The optimizer will through the provenance analysis realize that the
two are related (albiet different), but since we only require KnownSafe in one
direction, will match the inner retain on the original pointer with the guard
release on the original pointer. This is fixed by ensuring that in the presense
of allocas we only unconditionally remove pointers if both our retain and our
release are KnownSafe (i.e. we are KnownSafe in both directions) since we must
deal with the possibility that the frontend will emit what (to the optimizer)
appears to be unbalanced retain/releases.

An example of the miscompile is:

  %A = alloca
  retain(%x)
  retain(%x) &lt;--- Inner Retain
  store %x, %A
  %y = load %A
  ... DO STUFF ...
  release(%y)
  call void @use(%x)
  release(%x) &lt;--- Guarding Release

getting optimized to:

  %A = alloca
  retain(%x)
  store %x, %A
  %y = load %A
  ... DO STUFF ...
  release(%y)
  call void @use(%x)

rdar://13750319

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181743 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Move a couple more statistics inside '#ifndef NDEBUG'.</title>
<updated>2013-05-13T21:10:49Z</updated>
<author>
<name>Matt Beaumont-Gay</name>
<email>matthewbg@google.com</email>
</author>
<published>2013-05-13T21:10:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=9b5e6c0943dcfced64980240e25427cdc06c9bad'/>
<id>urn:sha1:9b5e6c0943dcfced64980240e25427cdc06c9bad</id>
<content type='text'>
Suppresses an unused-variable warning in -Asserts builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181733 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc-opts] Add comment to BBState making it clear that get{TopDown,BottomUp}PtrState will create a new PtrState object if it does not find a PtrState for Arg.</title>
<updated>2013-05-13T19:40:39Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-05-13T19:40:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=774a8cf2f5a5f8cd580c71f5eb3055a293917102'/>
<id>urn:sha1:774a8cf2f5a5f8cd580c71f5eb3055a293917102</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181726 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[objc-arc] Move the before optimization statistics gathering phase out of OptimizeIndividualCalls.</title>
<updated>2013-05-13T18:29:07Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-05-13T18:29:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=fa709768b91df14bb7b5606700d92c3c10aba625'/>
<id>urn:sha1:fa709768b91df14bb7b5606700d92c3c10aba625</id>
<content type='text'>
This makes the statistics gathering completely independent of the actual
optimization occuring, preventing any sort of bleeding over from occuring.

Additionally, it simplifies a switch statement in the non-statistic gathering case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181719 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Suppress GCC compiler warnings in release builds about variables that are only</title>
<updated>2013-05-13T07:50:47Z</updated>
<author>
<name>Duncan Sands</name>
<email>baldrick@free.fr</email>
</author>
<published>2013-05-13T07:50:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b99052ce4a75a3eac638afcd5171903514aa28e9'/>
<id>urn:sha1:b99052ce4a75a3eac638afcd5171903514aa28e9</id>
<content type='text'>
read in asserts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181689 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SLPVectorizer: Swap LHS and RHS. No functionality change.</title>
<updated>2013-05-13T05:13:13Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-05-13T05:13:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=985eb9004c280f4921e4bb450d6b3ee2ce75f634'/>
<id>urn:sha1:985eb9004c280f4921e4bb450d6b3ee2ce75f634</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181684 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SLPVectorizer: Fix a bug in the code that generates extracts for values with multiple users.</title>
<updated>2013-05-12T22:58:45Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-05-12T22:58:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=507b9242ed3cbac13a1c4c58fe28188e1a0d6fa6'/>
<id>urn:sha1:507b9242ed3cbac13a1c4c58fe28188e1a0d6fa6</id>
<content type='text'>
The external user does not have to be in lane #0. We have to save the lane for each scalar so that we know which vector lane to extract.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181674 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SLPVectorizer: Clear the map that maps between scalars to vectors after each round of vectorization.</title>
<updated>2013-05-12T22:55:57Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-05-12T22:55:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=57e02b3358e8caeddb093fab88fee6f73cd5d597'/>
<id>urn:sha1:57e02b3358e8caeddb093fab88fee6f73cd5d597</id>
<content type='text'>
Testcase in the next commit.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181673 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
