<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/test/CodeGen/X86/select.ll, branch 1.13.2</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/test/CodeGen/X86/select.ll?h=1.13.2</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/test/CodeGen/X86/select.ll?h=1.13.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2013-01-08T18:27:24Z</updated>
<entry>
<title>Pad Short Functions for Intel Atom</title>
<updated>2013-01-08T18:27:24Z</updated>
<author>
<name>Preston Gurd</name>
<email>preston.gurd@intel.com</email>
</author>
<published>2013-01-08T18:27:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=c7b902e7fe3498503efbfd98cabb1b1c67cadda6'/>
<id>urn:sha1:c7b902e7fe3498503efbfd98cabb1b1c67cadda6</id>
<content type='text'>
The current Intel Atom microarchitecture has a feature whereby
when a function returns early then it is slightly faster to execute
a sequence of NOP instructions to wait until the return address is ready,
as opposed to simply stalling on the ret instruction until
the return address is ready.

When compiling for X86 Atom only, this patch will run a pass,
called "X86PadShortFunction" which will add NOP instructions where less
than four cycles elapse between function entry and return.

It includes tests.

This patch has been updated to address Nadav's review comments
- Optimize only at &gt;= O1 and don't do optimization if -Os is set
- Stores MachineBasicBlock* instead of BBNum
- Uses DenseMap instead of std::map
- Fixes placement of braces

Patch by Andy Zhang.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171879 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert revision 171524. Original message:</title>
<updated>2013-01-05T05:42:48Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-01-05T05:42:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=5d1f5c17377e56d88a525cf82d02e6e5df254580'/>
<id>urn:sha1:5d1f5c17377e56d88a525cf82d02e6e5df254580</id>
<content type='text'>
URL: http://llvm.org/viewvc/llvm-project?rev=171524&amp;view=rev
Log:
The current Intel Atom microarchitecture has a feature whereby when a function
returns early then it is slightly faster to execute a sequence of NOP
instructions to wait until the return address is ready,
as opposed to simply stalling on the ret instruction
until the return address is ready.

When compiling for X86 Atom only, this patch will run a pass, called
"X86PadShortFunction" which will add NOP instructions where less than four
cycles elapse between function entry and return.

It includes tests.

Patch by Andy Zhang.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171603 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>The current Intel Atom microarchitecture has a feature whereby when a function</title>
<updated>2013-01-04T20:54:54Z</updated>
<author>
<name>Preston Gurd</name>
<email>preston.gurd@intel.com</email>
</author>
<published>2013-01-04T20:54:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=dd30b471750aca5c652873f9a8972df162b7e5eb'/>
<id>urn:sha1:dd30b471750aca5c652873f9a8972df162b7e5eb</id>
<content type='text'>
returns early then it is slightly faster to execute a sequence of NOP
instructions to wait until the return address is ready,
as opposed to simply stalling on the ret instruction
until the return address is ready.

When compiling for X86 Atom only, this patch will run a pass, called
"X86PadShortFunction" which will add NOP instructions where less than four
cycles elapse between function entry and return.

It includes tests.

Patch by Andy Zhang.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171524 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>X86: Fix accidentally swapped operands.</title>
<updated>2012-10-13T12:50:19Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-10-13T12:50:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f8b65aaf39d84e5576c0579c19ba9998ebb634d2'/>
<id>urn:sha1:f8b65aaf39d84e5576c0579c19ba9998ebb634d2</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165871 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>X86: Promote i8 cmov when both operands are coming from truncates of the same width.</title>
<updated>2012-10-13T10:39:49Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2012-10-13T10:39:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=444dccecfc6c6d0dad4f400141a12f9ca76943d8'/>
<id>urn:sha1:444dccecfc6c6d0dad4f400141a12f9ca76943d8</id>
<content type='text'>
X86 doesn't have i8 cmovs so isel would emit a branch. Emitting branches at this
level is often not a good idea because it's too late for many optimizations to
kick in. This solution doesn't add any extensions (truncs are free) and tries
to avoid introducing partial register stalls by filtering direct copyfromregs.

I'm seeing a ~10% speedup on reading a random .png file with libpng15 via
graphicsmagick on x86_64/westmere, but YMMV depending on the microarchitecture.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165868 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Update testing case for Atom when disabling rematerialization in</title>
<updated>2012-07-25T20:17:14Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2012-07-25T20:17:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=24182757bfa5e36ddcc5e3c9d259367ee85ada65'/>
<id>urn:sha1:24182757bfa5e36ddcc5e3c9d259367ee85ada65</id>
<content type='text'>
TwoAddressInstructionPass.

The generated code for Atom has a different code sequence. This is realted
to commit r160749.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160755 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Disable rematerialization in TwoAddressInstructionPass.</title>
<updated>2012-07-25T18:28:13Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2012-07-25T18:28:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=d68e8cda245269c032a692873dc8eb163fa6ef00'/>
<id>urn:sha1:d68e8cda245269c032a692873dc8eb163fa6ef00</id>
<content type='text'>
It is redundant; RegisterCoalescer will do the remat if it can't eliminate
the copy. Collected instruction counts before and after this. A few extra
instructions are generated due to spilling but it is normal to see these kinds
of changes with almost any small codegen change, according to Jakob.

This also fixed rdar://11830760 where xor is expected instead of movi0.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160749 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>X86: optimization for -(x != 0)</title>
<updated>2012-05-07T18:06:23Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2012-05-07T18:06:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=ed57984483b9268c30c71031fca07e71b985f169'/>
<id>urn:sha1:ed57984483b9268c30c71031fca07e71b985f169</id>
<content type='text'>
This patch will optimize -(x != 0) on X86
FROM 
cmpl	$0x01,%edi
sbbl	%eax,%eax
notl	%eax
TO
negl %edi
sbbl %eax %eax

In order to generate negl, I added patterns in Target/X86/X86InstrCompiler.td:
def : Pat&lt;(X86sub_flag 0, GR32:$src), (NEG32r GR32:$src)&gt;;

rdar: 10961709


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156312 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert r155853</title>
<updated>2012-05-02T15:24:32Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2012-05-02T15:24:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=e2849851b29c0ac02d4428cd006163966dbf1bbf'/>
<id>urn:sha1:e2849851b29c0ac02d4428cd006163966dbf1bbf</id>
<content type='text'>
The commit is intended to fix rdar://10961709.
But it is the root cause of PR12720.
Revert it for now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155992 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>X86: optimization for -(x != 0)</title>
<updated>2012-04-30T22:51:25Z</updated>
<author>
<name>Manman Ren</name>
<email>mren@apple.com</email>
</author>
<published>2012-04-30T22:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=16a76519a5aa0e3a351cfde8e7236119ffd8b7fb'/>
<id>urn:sha1:16a76519a5aa0e3a351cfde8e7236119ffd8b7fb</id>
<content type='text'>
This patch will optimize -(x != 0) on X86
FROM 
cmpl	$0x01,%edi
sbbl	%eax,%eax
notl	%eax
TO
negl %edi
sbbl %eax %eax


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