<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/Reassociate, branch release_33</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/Reassociate?h=release_33</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/Reassociate?h=release_33'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-04-30T17:52:57Z</updated>
<entry>
<title>TBAA: remove !tbaa from testing cases if not used.</title>
<updated>2013-04-30T17:52:57Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2013-04-30T17:52:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=2dc50d306752c8672d1543feb88517705cdb25e7'/>
<id>urn:sha1:2dc50d306752c8672d1543feb88517705cdb25e7</id>
<content type='text'>
This will make it easier to turn on struct-path aware TBAA since the metadata
format will change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180796 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a XOR reassociation bug. </title>
<updated>2013-04-27T18:02:12Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-04-27T18:02:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4d4c54d29ff911f59fe2be1a31331dbcbb741f5f'/>
<id>urn:sha1:4d4c54d29ff911f59fe2be1a31331dbcbb741f5f</id>
<content type='text'>
When Reassociator optimize "(x | C1)" ^ "(X &amp; C2)", it may swap the two
subexpressions, however, it forgot to swap cached constants (of C1 and C2)
accordingly.

rdar://13739160


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180676 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Correct assertion condition</title>
<updated>2013-04-01T18:13:05Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-04-01T18:13:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ad26993e1a9b147c3ca4b170ab2eba260f89a1ac'/>
<id>urn:sha1:ad26993e1a9b147c3ca4b170ab2eba260f89a1ac</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178484 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Implement XOR reassociation. It is based on following rules:</title>
<updated>2013-03-30T02:15:01Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-03-30T02:15:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=2d1001064989b7fa79507816fc17d467fc00a2f2'/>
<id>urn:sha1:2d1001064989b7fa79507816fc17d467fc00a2f2</id>
<content type='text'>
  rule 1: (x | c1) ^ c2 =&gt; (x &amp; ~c1) ^ (c1^c2),
     only useful when c1=c2
  rule 2: (x &amp; c1) ^ (x &amp; c2) = (x &amp; (c1^c2))
  rule 3: (x | c1) ^ (x | c2) = (x &amp; c3) ^ c3 where c3 = c1 ^ c2
  rule 4: (x | c1) ^ (x &amp; c2) =&gt; (x &amp; c3) ^ c1, where c3 = ~c1 ^ c2

 It reduces an application's size (in terms of # of instructions) by 8.9%.
 Reviwed by Pete Cooper. Thanks a lot!

 rdar://13212115  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178409 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Tests: rewrite 'opt ... %s' to 'opt ... &lt; %s' so that opt does not emit a ModuleID</title>
<updated>2012-12-30T02:33:22Z</updated>
<author>
<name>Dmitri Gribenko</name>
<email>gribozavr@gmail.com</email>
</author>
<published>2012-12-30T02:33:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a6542923b8ad94d791a12d3d5ae3e62a611f0383'/>
<id>urn:sha1:a6542923b8ad94d791a12d3d5ae3e62a611f0383</id>
<content type='text'>
This is done to avoid odd test failures, like the one fixed in r171243.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171250 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix PR14060, an infinite loop in reassociate.  The problem was that one of the</title>
<updated>2012-11-18T19:27:01Z</updated>
<author>
<name>Duncan Sands</name>
<email>baldrick@free.fr</email>
</author>
<published>2012-11-18T19:27:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=b8e1111fbf71766903d2fc7b158dc612df097ea3'/>
<id>urn:sha1:b8e1111fbf71766903d2fc7b158dc612df097ea3</id>
<content type='text'>
operands of the expression being written was wrongly thought to be reusable as
an inner node of the expression resulting in it turning up as both an inner node
*and* a leaf, creating a cycle in the def-use graph.  This would have caused the
verifier to blow up if things had gotten that far, however it managed to provoke
an infinite loop first.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168291 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a crash observed by Shuxin Yang.  The issue here is that LinearizeExprTree,</title>
<updated>2012-11-15T09:58:38Z</updated>
<author>
<name>Duncan Sands</name>
<email>baldrick@free.fr</email>
</author>
<published>2012-11-15T09:58:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=7ecfcc163956a9e27845ac217f6c650658631030'/>
<id>urn:sha1:7ecfcc163956a9e27845ac217f6c650658631030</id>
<content type='text'>
the utility for extracting a chain of operations from the IR, thought that it
might as well combine any constants it came across (rather than just returning
them along with everything else).  On the other hand, the factorization code
would like to see the individual constants (this is quite reasonable: it is
much easier to pull a factor of 3 out of 2*3 than it is to pull it out of 6;
you may think 6/3 isn't so hard, but due to overflow it's not as easy to undo
multiplications of constants as it may at first appear).  This patch therefore
makes LinearizeExprTree stupider: it now leaves optimizing to the optimization
part of reassociate, and sticks to just analysing the IR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168035 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>revert r167740</title>
<updated>2012-11-13T00:08:49Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2012-11-13T00:08:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4df2826166f1339eb7ddf5c5c84565fccb794de8'/>
<id>urn:sha1:4df2826166f1339eb7ddf5c5c84565fccb794de8</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167787 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This change is to fix rdar://12571717 which is about assertion in Reassociate pass.</title>
<updated>2012-11-12T19:34:11Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2012-11-12T19:34:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=0a46bf13a3b6c412749b874b52c8234b027b7134'/>
<id>urn:sha1:0a46bf13a3b6c412749b874b52c8234b027b7134</id>
<content type='text'>
The assertion is trigged when the Reassociater tries to transform expression
     ... + 2 * n * 3 + 2 * m + ...
  into:
     ... + 2 * (n*3 + m).

In the process of the transformation, a helper routine folds the constant 2*3 into 6,
confusing optimizer which is trying the to eliminate the common factor 2, and cannot
find 2 any more. 

Review is pending. But I'd like commit first in order to help those who are waiting 
for this fix. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167740 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Stop reassociate from looking through expressions of arbitrary complexity.  This</title>
<updated>2012-07-26T09:26:40Z</updated>
<author>
<name>Duncan Sands</name>
<email>baldrick@free.fr</email>
</author>
<published>2012-07-26T09:26:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=20b2d21509b3d5a10ec5d7be6dea8afa9e92fdee'/>
<id>urn:sha1:20b2d21509b3d5a10ec5d7be6dea8afa9e92fdee</id>
<content type='text'>
is a temporary measure until my fix for PR13021 is ready.


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