<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/Transforms/InstCombine, branch testing</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/Transforms/InstCombine?h=testing</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/Transforms/InstCombine?h=testing'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-03-14T18:08:26Z</updated>
<entry>
<title>Perform factorization as a last resort of unsafe fadd/fsub simplification.</title>
<updated>2013-03-14T18:08:26Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-03-14T18:08:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a0c9939873c404f272b3e0abb102c335146764fe'/>
<id>urn:sha1:a0c9939873c404f272b3e0abb102c335146764fe</id>
<content type='text'>
Rules include:
  1)1 x*y +/- x*z =&gt; x*(y +/- z) 
    (the order of operands dosen't matter)

  2) y/x +/- z/x =&gt; (y +/- z)/x 

 The transformation is disabled if the new add/sub expr "y +/- z" is a 
denormal/naz/inifinity.

rdar://12911472


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177088 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a performance regression when combining to smaller types in icmp (shl %v, C1), C2 :</title>
<updated>2013-03-13T14:40:37Z</updated>
<author>
<name>Arnaud A. de Grandmaison</name>
<email>arnaud.adegm@gmail.com</email>
</author>
<published>2013-03-13T14:40:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=bdd2d981391bd9329aba669cffcdde0c39373cb1'/>
<id>urn:sha1:bdd2d981391bd9329aba669cffcdde0c39373cb1</id>
<content type='text'>
Only combine when the shl is only used by the icmp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176950 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Simplify code. No functionality change.</title>
<updated>2013-03-09T11:18:59Z</updated>
<author>
<name>Jakub Staszak</name>
<email>kubastaszak@gmail.com</email>
</author>
<published>2013-03-09T11:18:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e629a33d166f55a916f40a1feae47af8ab97feed'/>
<id>urn:sha1:e629a33d166f55a916f40a1feae47af8ab97feed</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176765 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>InstCombine: Don't shrink allocas when combining with a bitcast.</title>
<updated>2013-03-06T05:44:53Z</updated>
<author>
<name>Jim Grosbach</name>
<email>grosbach@apple.com</email>
</author>
<published>2013-03-06T05:44:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=186d8a3d67ccd2b2401c5d7d4e2cc15c4d1fdeae'/>
<id>urn:sha1:186d8a3d67ccd2b2401c5d7d4e2cc15c4d1fdeae</id>
<content type='text'>
When considering folding a bitcast of an alloca into the alloca itself,
make sure we don't shrink the amount of memory being allocated, or
things rapidly go sideways.

rdar://13324424

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176547 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a bug in instcombine for fmul in fast math mode.</title>
<updated>2013-02-28T21:12:40Z</updated>
<author>
<name>Quentin Colombet</name>
<email>qcolombet@apple.com</email>
</author>
<published>2013-02-28T21:12:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c5a4c25b8780434a00968ed93634974a0b796a06'/>
<id>urn:sha1:c5a4c25b8780434a00968ed93634974a0b796a06</id>
<content type='text'>
The instcombine recognized pattern looks like:
a = b * c
d = a +/- Cst
or
a = b * c
d = Cst +/- a

When creating the new operands for fadd or fsub instruction following the related fmul, the first operand was created with the second original operand (M0 was created with C1) and the second with the first (M1 with Opnd0).

The fix consists in creating the new operands with the appropriate original operand, i.e., M0 with Opnd0 and M1 with C1.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176300 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>The transform is:</title>
<updated>2013-02-16T23:41:36Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2013-02-16T23:41:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cc54889cd58322b8766525f43cc1f7cb52e4692e'/>
<id>urn:sha1:cc54889cd58322b8766525f43cc1f7cb52e4692e</id>
<content type='text'>
    (or (bool?A:B),(bool?C:D)) --&gt; (bool?(or A,C):(or B,D))

By the time the OR is visited, both the SELECTs have been visited and not
optimized and the OR itself hasn't been transformed so we do this transform in
the hopes that the new ORs will be optimized.

The transform is explicitly disabled for vector-selects until "codegen matures
to handle them better".

Patch by Muhammad Tauqir!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175380 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix refactoring mistake in "Teach InstCombine to work with smaller legal types..."</title>
<updated>2013-02-15T15:18:17Z</updated>
<author>
<name>Arnaud A. de Grandmaison</name>
<email>arnaud.adegm@gmail.com</email>
</author>
<published>2013-02-15T15:18:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ad079b274d6ecd3e36fb98099864baeeeb96ac82'/>
<id>urn:sha1:ad079b274d6ecd3e36fb98099864baeeeb96ac82</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175273 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach InstCombine to work with smaller legal types in icmp (shl %v, C1), C2</title>
<updated>2013-02-15T14:35:47Z</updated>
<author>
<name>Arnaud A. de Grandmaison</name>
<email>arnaud.adegm@gmail.com</email>
</author>
<published>2013-02-15T14:35:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=7c5c9b39c91d5f53284011c0ddbf458d553740da'/>
<id>urn:sha1:7c5c9b39c91d5f53284011c0ddbf458d553740da</id>
<content type='text'>
It enables to work with a smaller constant, which is target friendly for those which can compare to immediates.
It also avoids inserting a shift in favor of a trunc, which can be free on some targets.

This used to work until LLVM-3.1, but regressed with the 3.2 release.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175270 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix comment</title>
<updated>2013-02-13T00:19:19Z</updated>
<author>
<name>Arnaud A. de Grandmaison</name>
<email>arnaud.adegm@gmail.com</email>
</author>
<published>2013-02-13T00:19:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=66bff1eec9f45733ff12b8d2307326a389270874'/>
<id>urn:sha1:66bff1eec9f45733ff12b8d2307326a389270874</id>
<content type='text'>
visitSExt is an adapted copy of the related visitZExt method, so adapt the comment accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175019 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Optimization: bitcast (&lt;1 x ...&gt; insertelement ..., X, ...) to ... ==&gt; bitcast X to ...</title>
<updated>2013-02-11T21:41:44Z</updated>
<author>
<name>Michael Ilseman</name>
<email>milseman@apple.com</email>
</author>
<published>2013-02-11T21:41:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=9c213cc3c31da04a08a8e00a3395ac33d3d18536'/>
<id>urn:sha1:9c213cc3c31da04a08a8e00a3395ac33d3d18536</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174905 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
