History log of /llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (Results 76 – 91 of 91)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1
# 21109249 15-Dec-2017 David Blaikie <dblaikie@gmail.com>

Fix WebAssembly backend for some LLVM API changes

llvm-svn: 320893


Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1
# 9bf73c07 05-Jul-2017 Sam Clegg <sbc@chromium.org>

[WebAssembly] Fix types for address taken functions

Differential Revision: https://reviews.llvm.org/D34966

llvm-svn: 307198


Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1
# e2688c43 14-Mar-2017 Derek Schuff <dschuff@google.com>

[WebAssembly] Use LEB encoding for value types

Previously we were using the encoded LEB hex values
for the value types. This change uses the decoded
negative value and the LEB encoder to write them

[WebAssembly] Use LEB encoding for value types

Previously we were using the encoded LEB hex values
for the value types. This change uses the decoded
negative value and the LEB encoder to write them out.

Differential Revision: https://reviews.llvm.org/D30847

Patch by Sam Clegg

llvm-svn: 297777

show more ...


Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3
# d934cb88 24-Feb-2017 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Basic support for Wasm object file encoding.

With the "wasm32-unknown-unknown-wasm" triple, this allows writing out
simple wasm object files, and is another step in a larger series tow

[WebAssembly] Basic support for Wasm object file encoding.

With the "wasm32-unknown-unknown-wasm" triple, this allows writing out
simple wasm object files, and is another step in a larger series toward
migrating from ELF to general wasm object support. Note that this code
and the binary format itself is still experimental.

llvm-svn: 296190

show more ...


Revision tags: llvmorg-4.0.0-rc2
# 3de487b2 28-Jan-2017 Richard Trieu <rtrieu@google.com>

[WebAssembly] Use print instead of dump method.

This fixes non-debug non-assert builds after r293359.

llvm-svn: 293368


Revision tags: llvmorg-4.0.0-rc1, llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1, llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1, llvmorg-3.8.1, llvmorg-3.8.1-rc1, llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1
# 1d68e80f 12-Jan-2016 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Make CFG stackification independent of basic-block labels.

This patch changes the way labels are referenced. Instead of referencing the
basic-block label name (eg. .LBB0_0), instructio

[WebAssembly] Make CFG stackification independent of basic-block labels.

This patch changes the way labels are referenced. Instead of referencing the
basic-block label name (eg. .LBB0_0), instructions now just have an immediate
which indicates the depth in the control-flow stack to find a label to jump to.
This makes them much closer to what we expect to have in the binary encoding,
and avoids the problem of basic-block label names not being explicit in the
binary encoding.

Also, it terminates blocks and loops with end_block and end_loop instructions,
rather than basic-block label names, for similar reasons.

This will also fix problems where two constructs appear to have the same label,
because we no longer explicitly use labels, so consumers that need labels will
presumably create their own labels, and presumably they won't reuse labels
when they do.

This patch does make the code a little more awkward to read; as a partial
mitigation, this patch also introduces comments showing where the labels are,
and comments on each branch showing where it's branching to.

llvm-svn: 257505

show more ...


# 26c6765b 11-Jan-2016 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Define WebAssembly-specific relocation codes.

Currently WebAssembly has two kinds of relocations; data addresses and
function addresses. This adds ELF relocations for them, as well as

[WebAssembly] Define WebAssembly-specific relocation codes.

Currently WebAssembly has two kinds of relocations; data addresses and
function addresses. This adds ELF relocations for them, as well as an
MC symbol kind to indicate which type of relocation is needed.

llvm-svn: 257416

show more ...


# a2b2cdc8 22-Dec-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Trim unneeded #includes. NFC.

llvm-svn: 256301


# a4b710a7 06-Dec-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Enable folding of offsets into global variable addresses.

llvm-svn: 254882


Revision tags: llvmorg-3.7.1
# 9551a44d 29-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Delete an obsolete TODO comment.

llvm-svn: 254272


# 7a6b9825 29-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Minor clang-format and selected clang-tidy cleanups. NFC.

llvm-svn: 254267


# 2c8fe6a4 25-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Codegen support for ISD::ExternalSymbol

llvm-svn: 254075


Revision tags: llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1
# cf4748f1 12-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Reapply r252858, with svn add for the new file.

Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
- Use the MC framework for print

[WebAssembly] Reapply r252858, with svn add for the new file.

Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
- Use the MC framework for printing almost all instructions.
- AsmStrings are now live.
- This introduces an indirection between LLVM vregs and WebAssembly registers,
and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping.
This addresses some basic issues with argument registers and unused registers.
- The way ARGUMENT instructions are handled no longer generates redundant
get_local+set_local for every argument.

This also changes the assembly syntax somewhat; most notably, MC's printing
does not use sigils on label names, so those are no longer present, and
push/pop now have a sigil to keep them unambiguous.

The usage of set_local/get_local/$push/$pop will continue to evolve
significantly. This patch is just one step of a larger change.

llvm-svn: 252910

show more ...


# 7384a2de 12-Nov-2015 Hans Wennborg <hans@hanshq.net>

Revert r252858: "[WebAssembly] Switch to MC for instruction printing."

It broke the CMake build:

"Cannot find source file: WebAssemblyRegNumbering.cpp"

llvm-svn: 252897


# 9dd55a80 12-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
- Use the MC framework for printing almost all instructions.
- AsmStrings are no

[WebAssembly] Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
- Use the MC framework for printing almost all instructions.
- AsmStrings are now live.
- This introduces an indirection between LLVM vregs and WebAssembly registers,
and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping.
This addresses some basic issues with argument registers and unused registers.
- The way ARGUMENT instructions are handled no longer generates redundant
get_local+set_local for every argument.

This also changes the assembly syntax somewhat; most notably, MC's printing
use sigils on label names, so those are no longer present, and push/pop now
have a sigil to keep them unambiguous.

The usage of set_local/get_local/$push/$pop will continue to evolve
significantly. This patch is just one step of a larger change.

llvm-svn: 252858

show more ...


# e9361d58 05-Nov-2015 Dan Gohman <dan433584@gmail.com>

[WebAssembly] Add WebAssemblyMCInstLower.cpp.

This isn't used yet; it's just a start towards eventually using MC to
do instruction printing, and eventually binary encoding.

llvm-svn: 252194


1234