Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: emscripten-core/emscripten-fastcomp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.30.1
Choose a base ref
...
head repository: emscripten-core/emscripten-fastcomp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1.30.2
Choose a head ref
  • 18 commits
  • 41 files changed
  • 5 contributors

Commits on Mar 19, 2015

  1. Use movw/movt instead of constant pool loads to lower byval parameter…

    … copies
    
    The ARM backend can use a loop to implement copying byval parameters before
    a call. In non-thumb2 mode it uses a constant pool load to materialize the
    trip count. Since constpools go into rodata in NaCl instead of text, they
    can sometimes be placed too far away to reach with a load instruction.
    Instead, use movw/movt as in thumb mode to materialize the trip count.
    
    R=jfb@chromium.org
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4115
    
    Review URL: https://codereview.chromium.org/1019483003
    dschuff committed Mar 19, 2015
    Configuration menu
    Copy the full SHA
    b82e6c6 View commit details
    Browse the repository at this point in the history
  2. CMake option to install utils, e.g. FileCheck

    The goal is to replace nacl tests' use of a hand-crafted filecheck
    tool, with LLVM's FileCheck. To do so, we need to first ensure
    FileCheck is copied to the install directory.
    
    To that end, this CL introduces a build flag, LLVM_INSTALL_UTILS.
    
    A separate CL enables this switch in toolchain_build_pnacl.py, see https://codereview.chromium.org/1018123002/
    
    BUG=NONE
    R=dschuff@chromium.org
    
    Review URL: https://codereview.chromium.org/1019043002
    mtrofin committed Mar 19, 2015
    Configuration menu
    Copy the full SHA
    1352ceb View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2015

  1. LLVM: add support for asmjs arch and Emscripten OS

    This only adds support for the arch/OS and doesn't allow anything else in LLVM
    for now. There's a corresponding clang patch to allow IR generation.
    
    clang patch:
      https://codereview.chromium.org/1022123003
    
    R=jvoung@chromium.org, azakai@mozilla.com, sunfish@mozilla.com
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4102
    TEST= make check-all
    
    Review URL: https://codereview.chromium.org/1024073002
    jfbastien committed Mar 20, 2015
    Configuration menu
    Copy the full SHA
    a508ed2 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2015

  1. Lower signatures exposing struct registers to byval struct pointers

    The new phase, NormalizeStructRegSignatures, converts signatures having parameters, or returning struct registers; or using structs that transitively reference such function types.
    
    The phase relies on a subsequent phase to clean up the redundant alloca/load/store instructions, however, I'm still investigating which such phase should be.
    
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=3857
    R=dschuff@chromium.org, jfb@chromium.org, mseaborn@chromium.org
    
    Review URL: https://codereview.chromium.org/992493002
    mtrofin committed Mar 23, 2015
    Configuration menu
    Copy the full SHA
    6fbcecb View commit details
    Browse the repository at this point in the history
  2. Ensure globals marked as "used" are PNaCl - compliant.

    Globals marked as "used" (e.g. __attribute((used))__) are correctly
    ignored by the internalize pass. PNaCl ABI compliance requires all
    globals be marked internal. In such scenarios - whole, single program -
    marking all globals as internal would be correct. The new pass does so.
    
    4049: globals marked as "used" & pnacl abi compliance
    
    Using IRBuilder
    
    patch from issue 992493002 at patchset 140001 (http://crrev.com/992493002#ps140001)
    
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4049
    R=jfb@chromium.org
    
    Review URL: https://codereview.chromium.org/1015553002
    mtrofin committed Mar 23, 2015
    Configuration menu
    Copy the full SHA
    dd389e9 View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2015

  1. Clean up use of MemoryBuffer in NaClObjDump and NaClBitcodeMunge.

    Changes the API to function NaClObjDump to expect a MemoryBufferRef
    instead of a MemoryBuffer*, to be consistent with other functions
    in NaClReaderWriter.h
    
    Also cleans up class NaClBitcodeMunge.cpp to reuse the low-level
    implementation of the memory buffer. This was done after discovering
    that getMemBufferCopy allocates (and leaks) an internal low-level
    implementation of the memory buffer. The code now reuses a single
    buffer over all tests for that class, stopping the leak to memory.
    
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4103
    R=dschuff@chromium.org, jvoung@chromium.org
    
    Review URL: https://codereview.chromium.org/1013823002
    KarlSchimpf committed Mar 24, 2015
    Configuration menu
    Copy the full SHA
    989d0a7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    411c451 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2015

  1. Removes unused abbreviations from compressed code.

    The previous version of pnacl-bccompress never removed abbreviations
    as new abbreviations were added. This resulted in many unused
    abbreviations being left in the compressed file. This has two costs.
    The first is that the unnecessary abbreviation is saved to the
    file. The other is that it may cause the bitcode to use more bits for
    each abbreviation, increasing the size of each record.
    
    This CL removes such abbreviations by adding another bitcode scan to
    find the best abbreviation to use for each record, and then remove
    unused abbreviations before writing out the compressed bitcode file.
    
    This change (for large bitcode files) results in
    pnacl-compress running about a 10% slower and
    produces a bitcode file that is about 1.2% smaller.
    
    BUG=None
    R=jvoung@chromium.org
    
    Review URL: https://codereview.chromium.org/1003303002
    KarlSchimpf committed Mar 25, 2015
    Configuration menu
    Copy the full SHA
    9828f40 View commit details
    Browse the repository at this point in the history
  2. Avoid generating register-register load on ARM

    LLVM was generating register-register loads on ARM (rejected by the sandbox)
    when doing bswap16 because the pattern that combines the load wasn't predicated
    on NaCl. This patch adds this predication so that NaCl doesn't generate that
    pattern.
    
    The LLVM pattern was added in the following patch:
      https://llvm.org/svn/llvm-project/llvm/trunk@208620
    
    BUG= https://code.google.com/p/chromium/issues/detail?id=460432
    R=jvoung@chromium.org
    TEST= make check
    
    Review URL: https://codereview.chromium.org/1008233005
    jfbastien committed Mar 25, 2015
    Configuration menu
    Copy the full SHA
    9c6f288 View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2015

  1. PNaCl: Rewrite @llvm.assume calls to nothing.

    @llvm.assume calls can safely be removed.
    
    R=jfb@chromium.org
    TEST= (make -C toolchain_build/out/llvm_x86_64_linux_work -j `nproc` check)
    BUG=
    
    Review URL: https://codereview.chromium.org/1029273002
    jfbastien committed Mar 26, 2015
    Configuration menu
    Copy the full SHA
    7acbb4c View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2015

  1. PNaCl: Strip nonnull attributes from pointer arguments.

    R=jfb@chromium.org
    TEST= (make -C toolchain_build/out/llvm_x86_64_linux_work -j `nproc` check)
    BUG=
    
    Review URL: https://codereview.chromium.org/1042643002
    jfbastien committed Mar 29, 2015
    Configuration menu
    Copy the full SHA
    bf706a5 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2015

  1. Configuration menu
    Copy the full SHA
    ffdd8da View commit details
    Browse the repository at this point in the history
  2. Cherrypick upstream r233321

    We upstreamed our Triple localmod for ARM in r233321. Remove the LOCALMODs
    and update to the upstream version.
    
    R=jvoung@chromium.org
    BUG=None
    
    Review URL: https://codereview.chromium.org/1048993002
    dschuff committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    e5cec77 View commit details
    Browse the repository at this point in the history
  3. Emscripten global cleanup: keep llvm.used

    Emscripten relies on llvm.used to figure out what's exported:
      91288b6#diff-a7c3065843b374b0a91b623f66f6eb0a
    
    This patch also fixes the initialization of the globalcleanup.ll test: llvm.used
    can't use zeroinitializer (see test/Verifier/llvm.used-invalid-init.ll).
    
    R=dschuff@chromium.org, azakai@mozilla.com
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4102
    TEST= make check
    
    Review URL: https://codereview.chromium.org/1048983003
    jfbastien committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    cf83520 View commit details
    Browse the repository at this point in the history
  4. Remove redundant dead inst elimination

    Post-opt passes were running dead inst elimination as well as dead code
    elimination, which is strictly superior to dead inst elimination.
    
    R=dschuff@chromium.org
    BUG= none
    TEST= make check
    
    Review URL: https://codereview.chromium.org/1045043003
    jfbastien committed Mar 30, 2015
    Configuration menu
    Copy the full SHA
    2853e8f View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2015

  1. Do not tailcall optimize vararg calls with 6 arguments

    TCrets use a reduced subset of registers because they cannot use
    callee-saves. When using sandbox base hiding (with r11 reserved) there are not
    enough registers because all of the available registers are used for arguments.
    
    R=jvoung@chromium.org
    BUG= https://code.google.com/p/nativeclient/issues/detail?id=4123
    
    Review URL: https://codereview.chromium.org/1040233005
    dschuff committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    7afd189 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'pnacl/master' into incoming

    Conflicts:
    	include/llvm/ADT/Triple.h
    	lib/Transforms/NaCl/ExpandVarArgs.cpp
    	lib/Transforms/NaCl/GlobalCleanup.cpp
    	lib/Transforms/NaCl/PNaClABISimplify.cpp
    kripken committed Mar 31, 2015
    Configuration menu
    Copy the full SHA
    d53e3ab View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2015

  1. 1.30.2

    kripken committed Apr 1, 2015
    Configuration menu
    Copy the full SHA
    91e76b3 View commit details
    Browse the repository at this point in the history
Loading