<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emscripten-fastcomp/test/Transforms, branch 1.13.0</title>
<subtitle>LLVM with the emscripten fastcomp javascript backend</subtitle>
<id>https://git.amat.us/emscripten-fastcomp/atom/test/Transforms?h=1.13.0</id>
<link rel='self' href='https://git.amat.us/emscripten-fastcomp/atom/test/Transforms?h=1.13.0'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/'/>
<updated>2014-02-28T20:39:49Z</updated>
<entry>
<title>Use range metadata instead of introducing selects.</title>
<updated>2014-02-28T20:39:49Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@mozilla.com</email>
</author>
<published>2014-02-28T20:39:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=dc59054db06864099c1b1051b8ef28a30f13e6c7'/>
<id>urn:sha1:dc59054db06864099c1b1051b8ef28a30f13e6c7</id>
<content type='text'>
When GlobalOpt has determined that a GlobalVariable only ever has two values,
it would convert the GlobalVariable to a boolean, and introduce SelectInsts
at every load, to choose between the two possible values. These SelectInsts
introduce overhead and other unpleasantness.

This patch makes GlobalOpt just add range metadata to loads from such
GlobalVariables instead. This enables the same main optimization (as seen in
test/Transforms/GlobalOpt/integer-bool.ll), without introducing selects.

The main downside is that it doesn't get the memory savings of shrinking such
GlobalVariables, but this is expected to be negligible.
</content>
</entry>
<entry>
<title>Move ExpandI64 into lib/Target/JSBackend.</title>
<updated>2014-02-28T19:22:37Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@mozilla.com</email>
</author>
<published>2014-02-26T16:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=0dac79df771f7708a03e724126dded4f64531bc5'/>
<id>urn:sha1:0dac79df771f7708a03e724126dded4f64531bc5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Preserve alignment information when promoting integer loads and stores.</title>
<updated>2014-02-14T19:38:16Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-14T03:24:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=71fb6dcb87d2abd302080149d4a583a5e35e3697'/>
<id>urn:sha1:71fb6dcb87d2abd302080149d4a583a5e35e3697</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Preserve alignment information when splitting loads and stores.</title>
<updated>2014-02-14T19:38:16Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-14T03:02:20Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=f3359807242e95f9e94bb35c0d90a73c794f1af0'/>
<id>urn:sha1:f3359807242e95f9e94bb35c0d90a73c794f1af0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Emscripten doesn't need to legalize pointers.</title>
<updated>2014-02-13T23:04:31Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-13T22:51:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=7f2cf3ceadbcbb41227b9c0008c33d7e911e59e3'/>
<id>urn:sha1:7f2cf3ceadbcbb41227b9c0008c33d7e911e59e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Don't leave behind unreachable blocks with illegal instructions.</title>
<updated>2014-02-13T19:47:44Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-13T19:47:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=6f629a513c37587247dc83b961e86c177cef5d6d'/>
<id>urn:sha1:6f629a513c37587247dc83b961e86c177cef5d6d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revamp ExpandI64.</title>
<updated>2014-02-13T06:30:21Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-13T02:09:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=718e02f4cea34a6f34d7a6f1f82411960bff1ba4'/>
<id>urn:sha1:718e02f4cea34a6f34d7a6f1f82411960bff1ba4</id>
<content type='text'>
By using a reverse-postorder traversal of the basic blocks, we can perform
this transform in a single pass. This eliminates the need for tricky
coordination between the passes.
</content>
</entry>
<entry>
<title>Generalize PromoteIntegers to handle arbitrary bit widths.</title>
<updated>2014-02-13T06:30:21Z</updated>
<author>
<name>Dan Gohman</name>
<email>sunfish@google.com</email>
</author>
<published>2014-02-13T02:09:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=2b36da6f5426d0ea67c85fdee8016a5bbc828a23'/>
<id>urn:sha1:2b36da6f5426d0ea67c85fdee8016a5bbc828a23</id>
<content type='text'>
</content>
</entry>
<entry>
<title>PNaCl: Change exception info format to distinguish catch-all/cleanup clauses</title>
<updated>2013-11-16T01:22:57Z</updated>
<author>
<name>Mark Seaborn</name>
<email>mseaborn@chromium.org</email>
</author>
<published>2013-11-16T01:22:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=a4504c6f116760d6c0f9f920bb755c3d0136f6c6'/>
<id>urn:sha1:a4504c6f116760d6c0f9f920bb755c3d0136f6c6</id>
<content type='text'>
The initial version of ExceptionInfoWriter.cpp encodes a landingpad's
"cleanup" clause the same as "catch i8* null" (a catch-all).

But it turns out we do want to distinguish these two: If an uncaught
exception occurs, we don't want the runtime to run C++ destructors
(cleanups), because this involves unwinding the stack to jump to
landingpads, which loses the context of where the uncaught exception
was thrown from, which is unhelpful for debugging.  (The C++ standard
says it's optional whether destructors are run when an uncaught
exception occurs.)

So, change the encoding as follows:

 * Use 0 as the ID for "cleanup" clauses.
 * Add 1 to the IDs of types and "catch" clauses.  (Adding 1 to both
   seems neater than just one of them.)
 * This means we can use 0 for the terminator of filter lists instead
   of -1, which seems a little neater.

This requires a corresponding change to eh_pnacl.cc in libsupc++.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696
TEST=NaCl's EH tests with libsupc++ change applied

Review URL: https://codereview.chromium.org/69923008
</content>
</entry>
<entry>
<title>Switch PromoteIntegers pass from clearing upper bits after converted operations</title>
<updated>2013-11-15T19:02:12Z</updated>
<author>
<name>Derek Schuff</name>
<email>dschuff@chromium.org</email>
</author>
<published>2013-11-15T19:02:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/emscripten-fastcomp/commit/?id=ee2d94412a363a6e50574fc9b81b64f6d096e298'/>
<id>urn:sha1:ee2d94412a363a6e50574fc9b81b64f6d096e298</id>
<content type='text'>
that may affect them, to clearing before operations that may be affected

This is just a cleanup that doesn't have any significant performance or
functionality impact, but I thought it might make fixing bug 3714 a bit
simpler.

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

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