<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/lib/Analysis, branch master</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/lib/Analysis?h=master</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/lib/Analysis?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2013-09-06T21:56:16Z</updated>
<entry>
<title>PNaCl bitcode: Strip pointer types from intrinsic declarations' parameters</title>
<updated>2013-09-06T21:56:16Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-06T21:56:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=68cb3f7eca7536d85301f92314dbb5db6757cd94'/>
<id>urn:sha1:68cb3f7eca7536d85301f92314dbb5db6757cd94</id>
<content type='text'>
Change the writer to strip pointer types from intrinsics' argument and
return types, replacing them with i32.  This simplifies the PNaCl
bitcode format so that pointer types don't need to be represented
here.

Change the reader to restore the pointer types so that the intrinsic
declarations pass the LLVM and PNaCl verifiers.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=intrinsic tests in call-elide.ll
  + intrinsic-pointer-args.ll
  + run small_tests with bitcode v2 enabled

Review URL: https://codereview.chromium.org/23793005
</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>Add Intrinsic::nacl_atomic_is_lock_free</title>
<updated>2013-08-01T22:06:01Z</updated>
<author>
<name>JF Bastien</name>
<email>jfb@chromium.org</email>
</author>
<published>2013-08-01T22:06:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=a7665e96f34c4a981d59c78b0b872b8f0b100cb9'/>
<id>urn:sha1:a7665e96f34c4a981d59c78b0b872b8f0b100cb9</id>
<content type='text'>
This is part of a bigger CL to fix C++11 in PNaCl, to commit in the following order:
 - https://codereview.chromium.org/20552002
 - https://codereview.chromium.org/20554002
 - https://codereview.chromium.org/20560002
 - https://codereview.chromium.org/20561002

This should be the last PNaCl ABI change for C11/C+11 atomic support.

Note that Clang already has a builtin for lock-free, but it's partly resolved by Clang's ExprConstant.cpp and CGBuiltin.cpp, whereas what we want is a call that becomes a constant at translation-time. I made the translation part fairly general so it's easy to support architectures where ``true`` isn't always the right answer.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3475
TEST= ./scons run_synchronization_cpp11_test --verbose bitcode=1 platform=x86-64
TEST= ninja check-all
R=dschuff@chromium.org

Review URL: https://codereview.chromium.org/20554002
</content>
</entry>
<entry>
<title>Disallow dev/private intrinsics by default (only llvm.nacl.target.arch remains)</title>
<updated>2013-07-22T17:44:21Z</updated>
<author>
<name>Jan Voung</name>
<email>jvoung@chromium.org</email>
</author>
<published>2013-07-22T17:44:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=9b2942831f43dd9a5802565b9996bdf2c0bfd896'/>
<id>urn:sha1:9b2942831f43dd9a5802565b9996bdf2c0bfd896</id>
<content type='text'>
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3525
R=jfb@chromium.org

Review URL: https://codereview.chromium.org/19668004
</content>
</entry>
<entry>
<title>Remove prefetch</title>
<updated>2013-07-21T02:35:41Z</updated>
<author>
<name>JF Bastien</name>
<email>jfb@chromium.org</email>
</author>
<published>2013-07-21T02:35:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=1856bd7d7cb47f7ae32b7c848a8df5c28281e424'/>
<id>urn:sha1:1856bd7d7cb47f7ae32b7c848a8df5c28281e424</id>
<content type='text'>
Following our discussion in the related bug, prefetch will not be part of our initial stable ABI.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3531
TEST= cd ./pnacl/build/llvm_x86_64; ninja check
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/19771015
</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>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>
<entry>
<title>Reject the llvm.powi intrinsic in the PNaCl ABI verifier.</title>
<updated>2013-07-10T20:58:16Z</updated>
<author>
<name>Eli Bendersky</name>
<email>eliben@chromium.org</email>
</author>
<published>2013-07-10T20:58:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=a7324c581f3f66acfbf98e18dee3d919d85af16d'/>
<id>urn:sha1:a7324c581f3f66acfbf98e18dee3d919d85af16d</id>
<content type='text'>
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3524
R=jfb@chromium.org

Review URL: https://codereview.chromium.org/18614013
</content>
</entry>
<entry>
<title>Move LLVM sqrt intrinsic to stable (for float and doubles).</title>
<updated>2013-07-02T23:29:16Z</updated>
<author>
<name>Jan Voung</name>
<email>jvoung@chromium.org</email>
</author>
<published>2013-07-02T23:29:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=a6817fbfe9248e8992132206448eb5eda1745c92'/>
<id>urn:sha1:a6817fbfe9248e8992132206448eb5eda1745c92</id>
<content type='text'>
On the hardware that we support, they are implemented
by instructions and have consistent behavior for -0.0,
values less than -0.0, infinity, and nan.

We will need to be careful to guarantee the same behavior
for untested hardware.

TEST=run_llvm_math_intrinsics_test

BUG=http://code.google.com/p/nativeclient/issues/detail?id=3378
R=jfb@chromium.org, mseaborn@chromium.org

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