<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/test/NaCl/Bitcode, branch master</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/test/NaCl/Bitcode?h=master</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/test/NaCl/Bitcode?h=master'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2013-10-03T16:43:21Z</updated>
<entry>
<title>PNaCl bitcode: Simplify how the writer elides casts</title>
<updated>2013-10-03T16:43:21Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-10-03T16:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=ed6b15283ff5f9d13cb48f88ba6e189be11291e8'/>
<id>urn:sha1:ed6b15283ff5f9d13cb48f88ba6e189be11291e8</id>
<content type='text'>
The PNaCl bitcode writer had some complex logic for deciding when to
omit casts in the output.  This was left over from when the writer was
trying to leave in the casts in some but not all cases (as part of
incrementally removing casts).

This is no longer needed now that the writer just omits all inttoptrs,
all ptrtoints, and all pointer bitcasts.

This cleanup also fixes the writer so that it elides an inttoptr of a
ptrtoint.  This sequence is allowed by the PNaCl ABI verifier, but
never occurred in practice because ReplacePtrsWithInts'
SimplifyCasts() function converts this sequence to an equivalent
bitcast.  Before this change, the writer would give this error for an
inttoptr-of-ptrtoint:

  LLVM ERROR: Illegal (PNaCl ABI) pointer cast :   %1 = ptrtoint [4 x i8]* @bytes to i32

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3590
TEST=toolchain trybots

Review URL: https://codereview.chromium.org/25817002
</content>
</entry>
<entry>
<title>Only allow PNaCl version 2 bitcode files.</title>
<updated>2013-09-18T17:13:42Z</updated>
<author>
<name>Karl Schimpf</name>
<email>kschimpf@google.com</email>
</author>
<published>2013-09-18T17:13:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=72f158730cf2073e23e8f2795192a6d6f08140df'/>
<id>urn:sha1:72f158730cf2073e23e8f2795192a6d6f08140df</id>
<content type='text'>
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3590
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/23503071
</content>
</entry>
<entry>
<title>PNaCl bitcode: Fix reader to handle pointer type in is.lock.free intrinsic</title>
<updated>2013-09-09T22:04:34Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-09T22:04:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=e97dae781c3e7ebd30e05e6ead5a32a86e5b8455'/>
<id>urn:sha1:e97dae781c3e7ebd30e05e6ead5a32a86e5b8455</id>
<content type='text'>
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=test/NaCl/Bitcode/*.ll
   + NaCl's toolchain_tests with bitcode v2 enabled

Review URL: https://codereview.chromium.org/23523041
</content>
</entry>
<entry>
<title>PNaCl bitcode: Remove TYPE_CODE_POINTER entries from type table</title>
<updated>2013-09-09T17:32:47Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-09T17:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=b63e4bfe73188f7d68065f5b274e169491e593d2'/>
<id>urn:sha1:b63e4bfe73188f7d68065f5b274e169491e593d2</id>
<content type='text'>
There are now no uses of pointer type IDs in PNaCl bitcode, so we can
stop outputting pointer types into the type table.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=test/NaCl/Bitcode/*.ll

Review URL: https://codereview.chromium.org/23600013
</content>
</entry>
<entry>
<title>PNaCl bitcode: Change FORWARDTYPEREF to never use pointer types</title>
<updated>2013-09-09T17:06:19Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-09T17:06:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=1c0cea6c1fc807794f0d785392e05b19d0c70210'/>
<id>urn:sha1:1c0cea6c1fc807794f0d785392e05b19d0c70210</id>
<content type='text'>
Before, FORWARDTYPEREFs used i8* type rather than i32 if they
referenced an "alloca" instruction.

Clean this up so that FORWARDTYPEREFs use i32 instead in this case.

Note that this means that a forward-referenced "alloca" can be used
via an ptrtoint+inttoptr, rather than a bitcast, but that's no
problem.

This is a step towards removing TYPE_CODE_POINTER from the types
table, to simplify the PNaCl bitcode format.

Rename NormalizeParamType() to NormalizeScalarType() to reflect that
it's used in more cases; make it public.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=test/NaCl/Bitcode/*.ll

Review URL: https://codereview.chromium.org/23719016
</content>
</entry>
<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>Clean up vestigial code for constants in PNaCl bitcode files.</title>
<updated>2013-09-06T20:27:38Z</updated>
<author>
<name>Karl Schimpf</name>
<email>kschimpf@google.com</email>
</author>
<published>2013-09-06T20:27:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=9b86d1e242fec1dce22eda36b8f2eb3d6f1cc380'/>
<id>urn:sha1:9b86d1e242fec1dce22eda36b8f2eb3d6f1cc380</id>
<content type='text'>
* Removes code that is no longer used because global variables are handled
separately.

* Removes CST_CODE_NULL.
* Adds special abbreviations for constant integer 0, replacing
  most of what was lost when CST_CODE_NULL is removed.
* Adds abbreviation for floating point constants.
* Removes CST_CODE_AGGREGATE and CST_CODE_DATA, except for reading
  old PNaCl version 1 bitcode files.
* Removes call to ParseConstants() in ParseModule() since the module
  block no longer contains a constants block (globals are handled
  separately).
* Removes getConstantFwdRef() method, since it is no longer needed.
* Remove ConstantPlaceHolder class, since it is no longer needed.
* Remove ResolvedConstants and ResolveConstantForwardRefs()
from the bitcode reader, since it is no longer needed.

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3668
R=mseaborn@chromium.org

Review URL: https://codereview.chromium.org/23522024
</content>
</entry>
<entry>
<title>PNaCl bitcode: Fix some tests to not use unsupported pointer-typed args</title>
<updated>2013-09-06T18:39:16Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-06T18:39:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=38a5426a06d06aa18de1cc332411c04c348b01e4'/>
<id>urn:sha1:38a5426a06d06aa18de1cc332411c04c348b01e4</id>
<content type='text'>
Remove an unused "i32* %ptr" argument from a couple of test cases.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=call-elide.ll

Review URL: https://codereview.chromium.org/23945004
</content>
</entry>
<entry>
<title>PNaCl bitcode: Change test to use an intrinsic to make it more realistic</title>
<updated>2013-09-06T01:13:16Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-06T01:13:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=b6cff79ccb02a23475733459ad3d1f2e8c7ab8f9'/>
<id>urn:sha1:b6cff79ccb02a23475733459ad3d1f2e8c7ab8f9</id>
<content type='text'>
Pointer-typed arguments are only allowed for intrinsics, so change the
test of pointer-args to call an intrinsic.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3671
TEST=call-elide.ll

Review URL: https://codereview.chromium.org/23735008
</content>
</entry>
<entry>
<title>PNaCl bitcode: Indirect calls: Store return type instead of function type</title>
<updated>2013-09-05T16:41:53Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-09-05T16:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=cd4a14419f49fb236d65e5b69d871d6fc61fcb99'/>
<id>urn:sha1:cd4a14419f49fb236d65e5b69d871d6fc61fcb99</id>
<content type='text'>
For indirect call instructions (INST_CALL_INDIRECT), it's not
necessary to store the full function type.  The argument types are
already known from the arguments in the instruction.  We only need to
store the return type to be able to reconstruct the full function
type.

Storing only the return type ID will make the bitcode a little more
compact.  Return type IDs will be frequently-used scalar types, which
can be given smaller type IDs than function types, which are less
frequently used.

This potentially makes the writer simpler: In principle, the writer no
longer needs to make a pass across all functions' bodies to determine
which function types are used in order to build the type table.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3544
TEST=*.ll tests

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