do reg2mem/mem2reg around the setjmp pass, to ensure our cfg changes do not break module validation through altering dominances
optimize reg/mem stuff around setjmp lowering
add missing |0s in unaligned accesses
Create a test directory for basic JS Codegen
Change some dyn_casts to casts.
Use more LLVM-idiomatic debug and error facilities.
Map optimizations.
Use the LLVM pass-manager infrastructure for DataLayout.
Constify more things.
Disable an unnecessary optimization pass.
Generalize PromoteIntegers to handle arbitrary bit widths.
Revamp ExpandI64.

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.
Merge pull request #11 from sunfishcode/incoming

Several patches
Don't leave behind unreachable blocks with illegal instructions.
Merge pull request #12 from sunfishcode/incoming

Don't leave behind unreachable blocks with illegal instructions.
handle ashr on >64 bits
Emscripten doesn't need to legalize pointers.
don't do 32-bit shifts on 32-bit values, as it is undefined behavior
Merge pull request #13 from sunfishcode/incoming

Emscripten doesn't need to legalize pointers.
erase more carefully in setjmp lowering