<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/tools/opt, branch master</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/tools/opt?h=master</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/tools/opt?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2014-02-26T17:37:10Z</updated>
<entry>
<title>NoExitRuntime</title>
<updated>2014-02-26T17:37:10Z</updated>
<author>
<name>Alon Zakai</name>
<email>alonzakai@gmail.com</email>
</author>
<published>2014-02-26T02:02:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=547e6d4d13108f7b9a9c0c81451b623017dd7eff'/>
<id>urn:sha1:547e6d4d13108f7b9a9c0c81451b623017dd7eff</id>
<content type='text'>
</content>
</entry>
<entry>
<title>boilerplate for ExpandI64Pass</title>
<updated>2013-12-04T18:57:52Z</updated>
<author>
<name>Alon Zakai</name>
<email>alonzakai@gmail.com</email>
</author>
<published>2013-12-04T18:57:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=82307b1c5b914e45b400aa5721688714adce18e7'/>
<id>urn:sha1:82307b1c5b914e45b400aa5721688714adce18e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add PNaClSjLjEH pass to implement C++ exception handling using setjmp()+longjmp()</title>
<updated>2013-10-16T20:06:24Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-10-16T20:06:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f058041de6c69aadafcd030c62678d4244ba2cf7'/>
<id>urn:sha1:f058041de6c69aadafcd030c62678d4244ba2cf7</id>
<content type='text'>
There are two parts to this:

 * PNaClSjLjEH.cpp expands out the "invoke", "landingpad" and "resume"
   instructions, modifying the control flow to use setjmp().

 * ExceptionInfoWriter.cpp lowers landingpads' clause lists to data
   that PNaCl's C++ runtime library will interpret.  This part will be
   reused when we drop the SjLj part and create a stable ABI for
   zero-cost EH.

This pass isn't enabled in PNaClABISimplify yet: I'll do that in a
separate change.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=*.ll tests (also tested end-to-end: plumbing for this will follow later)

Review URL: https://codereview.chromium.org/24777002
</content>
</entry>
<entry>
<title>Use ARM TTI in "opt" to make up for missing LE32 TTI.</title>
<updated>2013-09-16T20:33:23Z</updated>
<author>
<name>Jan Voung</name>
<email>jvoung@chromium.org</email>
</author>
<published>2013-09-16T20:33:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=de60bbfea3de2565a2f696810befece301507494'/>
<id>urn:sha1:de60bbfea3de2565a2f696810befece301507494</id>
<content type='text'>
Since we deleted the rewrite of ARM -&gt; LE32 in the
bitcode reader, opt is unable to look up a TTI to transform

switch(c) { case 1: x = &lt;const1&gt;; break; case 2: x = &lt;const2&gt;; break; ... }

into a lookup table to get x from c.

This causes a regression in pnacl-llc's size (which has
lots of switch statements).

Fake the target lookup in opt for now.  Eventually we should
look into making target info for le32.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=2554
TEST= trybot http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-linux-pnacl-x86_64/builds/887
http://chromegw.corp.google.com/i/tryserver.nacl/builders/nacl-toolchain-mac-pnacl-x86_32/builds/842

R=dschuff@chromium.org

Review URL: https://codereview.chromium.org/23551013
</content>
</entry>
<entry>
<title>Add the new @llvm.nacl.atomic.fence.all intrinsic</title>
<updated>2013-08-07T22:50:54Z</updated>
<author>
<name>JF Bastien</name>
<email>jfb@chromium.org</email>
</author>
<published>2013-08-07T22:50:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=10c5d2cb2f5611441dae3114e3803526340e4b4b'/>
<id>urn:sha1:10c5d2cb2f5611441dae3114e3803526340e4b4b</id>
<content type='text'>
This is a follow-up to:
  https://codereview.chromium.org/22240002/
And requires the Clang changes from:
  https://codereview.chromium.org/22294002/

This new intrinsic represents ``asm("":::"~{memory}")`` as well as ``__sync_synchronize()``, and in IR it corresponds to a sequentially-consistent fence surrounded by ``call void asm sideeffect "", "~{memory}"()``.

R=jvoung@chromium.org
TEST= ninja check-all
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475

Review URL: https://codereview.chromium.org/22474008
</content>
</entry>
<entry>
<title>Rewrite ``asm("":::"memory")`` to ``fence seq_cst``</title>
<updated>2013-07-30T23:38:26Z</updated>
<author>
<name>JF Bastien</name>
<email>jfb@chromium.org</email>
</author>
<published>2013-07-30T23:38:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f75fd0a9f95109b9cb13a74aad6dcc98c3d5d625'/>
<id>urn:sha1:f75fd0a9f95109b9cb13a74aad6dcc98c3d5d625</id>
<content type='text'>
This is often used as a compiler barrier and should "just work" in user code.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=2345
R=eliben@chromium.org
TEST=  (cd ./pnacl/build/llvm_x86_64 &amp;&amp; ninja check-all)

Review URL: https://codereview.chromium.org/21178002
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/master'</title>
<updated>2013-07-19T01:00:27Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-19T01:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=4412ea4b8e019d00dc7574fe1723eea0473a8ec1'/>
<id>urn:sha1:4412ea4b8e019d00dc7574fe1723eea0473a8ec1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make it compile</title>
<updated>2013-07-16T17:52:19Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-16T17:52:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=89671101b88b575278760d3dda29571e4fc5ced0'/>
<id>urn:sha1:89671101b88b575278760d3dda29571e4fc5ced0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit '7dfcb84fc16b3bf6b2379713b53090757f0a45f9'</title>
<updated>2013-07-15T23:09:15Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-15T23:09:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=c6cf05cb5108f356dde97c01ee4188b0671d4542'/>
<id>urn:sha1:c6cf05cb5108f356dde97c01ee4188b0671d4542</id>
<content type='text'>
Conflicts:
	docs/LangRef.rst
	include/llvm/CodeGen/CallingConvLower.h
	include/llvm/IRReader/IRReader.h
	include/llvm/Target/TargetMachine.h
	lib/CodeGen/CallingConvLower.cpp
	lib/IRReader/IRReader.cpp
	lib/IRReader/LLVMBuild.txt
	lib/IRReader/Makefile
	lib/LLVMBuild.txt
	lib/Makefile
	lib/Support/MemoryBuffer.cpp
	lib/Support/Unix/PathV2.inc
	lib/Target/ARM/ARMBaseInstrInfo.cpp
	lib/Target/ARM/ARMISelLowering.cpp
	lib/Target/ARM/ARMInstrInfo.td
	lib/Target/ARM/ARMSubtarget.cpp
	lib/Target/ARM/ARMTargetMachine.cpp
	lib/Target/Mips/CMakeLists.txt
	lib/Target/Mips/MipsDelaySlotFiller.cpp
	lib/Target/Mips/MipsISelLowering.cpp
	lib/Target/Mips/MipsInstrInfo.td
	lib/Target/Mips/MipsSubtarget.cpp
	lib/Target/Mips/MipsSubtarget.h
	lib/Target/X86/X86FastISel.cpp
	lib/Target/X86/X86ISelDAGToDAG.cpp
	lib/Target/X86/X86ISelLowering.cpp
	lib/Target/X86/X86InstrControl.td
	lib/Target/X86/X86InstrFormats.td
	lib/Transforms/IPO/ExtractGV.cpp
	lib/Transforms/InstCombine/InstCombineCompares.cpp
	lib/Transforms/Utils/SimplifyLibCalls.cpp
	test/CodeGen/X86/fast-isel-divrem.ll
	test/MC/ARM/data-in-code.ll
	tools/Makefile
	tools/llvm-extract/llvm-extract.cpp
	tools/llvm-link/CMakeLists.txt
	tools/opt/CMakeLists.txt
	tools/opt/LLVMBuild.txt
	tools/opt/Makefile
	tools/opt/opt.cpp
</content>
</entry>
<entry>
<title>Concurrency support for PNaCl ABI</title>
<updated>2013-07-13T20:29:35Z</updated>
<author>
<name>JF Bastien</name>
<email>jfb@chromium.org</email>
</author>
<published>2013-07-13T20:29:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=4c1316ea42eb48ec8da6753f3e0319b676e50a75'/>
<id>urn:sha1:4c1316ea42eb48ec8da6753f3e0319b676e50a75</id>
<content type='text'>
Add portable support for concurrency in PNaCl's ABI:
 - Promote volatile to atomic.
 - Promote all memory ordering to sequential consistency.
 - Rewrite all atomic operations to frozen NaCl intrinsics for pexe.
 - Rewrite atomic intrinsics to LLVM instructions for translation.

This change also adds documentation to the PNaCl language reference, as
well as tests where it makes sense.

A future CL could clean up more of our code which mentions atomics,
volatiles, memory orderings.

Multiple reviewers because this is a big patch:
 - eliben: LLVM-fu and ResolvePNaClIntrinsics.
 - dschuff: ABI stability.
 - mseaborn: ABI stability.
 - sehr: Tron-duty (fight for the user's programs to work).

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475
R=dschuff@chromium.org, eliben@chromium.org, sehr@google.com
TEST= (cd ./pnacl/build/llvm_x86_64; ninja check-all) &amp;&amp; ./pnacl/test.sh test-x86-32 &amp;&amp; ./pnacl/test.sh test-x86-64 &amp;&amp; ./pnacl/test.sh test-arm &amp;&amp; ./pnacl/test.sh test-x86-32-sbtc &amp;&amp; ./pnacl/test.sh test-x86-64-sbtc &amp;&amp; ./pnacl/test.sh test-arm-sbtc

Review URL: https://codereview.chromium.org/17777004
</content>
</entry>
</feed>
