Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/swiftwasm/wasmtime

Standalone JIT-style runtime for WebAsssembly, using Cranelift
https://github.com/swiftwasm/wasmtime

Use the correct index for printing function definitions when imports are present.

b4e7e918ccbaaa5a83124c3addbbb918f57e29db authored over 7 years ago by Dan Gohman <[email protected]>
Split the runtime and execution code into separate crates.

23bafd121855a190401232a610e852146f6dff3e authored over 7 years ago by Dan Gohman <[email protected]>
Change the reloc sink to use vectors instead of hash maps.

6ded83332f458477ba38ba56c799ec99aed8aa38 authored over 7 years ago by Dan Gohman <[email protected]>
Fix reseting of the heap when compiling a module containing multiple functions.

412fedcc6d39a9de88b78a52adb0d78ba8565ca9 authored over 7 years ago by Dan Gohman <[email protected]>
Support multiple globals.

31a962fa1bcdbee952a44b32f721d61ee05e5752 authored over 7 years ago by Dan Gohman <[email protected]>
Rename wasmstandalone::StandaloneRuntime to wasmstandalone::Runtime.

865a3d9f31371ad88ac0926f2cf4b12d325be91c authored over 7 years ago by Dan Gohman <[email protected]>
Use `Self`.

db88701eaacdfe65bde8211f572ca4741aa6f3a3 authored over 7 years ago by Dan Gohman <[email protected]>
Use Option::unwrap_or_else.

97b877bb9c9217452e7d246f5f61a89dd9d55e39 authored over 7 years ago by Dan Gohman <[email protected]>
Drop an unneeded dependency.

d4438f4006c62fe53f2668cf20dce131006fad93 authored over 7 years ago by Dan Gohman <[email protected]>
Set the faerie target based on the cretonne target.

6c4bbc643c02588c8dce4021cd1b6f11b2cb3bed authored over 7 years ago by Dan Gohman <[email protected]>
Sniff the wasm magic bytes, rather than relying on the filename extension.

a68b2619bdc9a307fa210ba52587bed581d7f86a authored over 7 years ago by Dan Gohman <[email protected]>
Fix the command name in the usage message.

e5ed1517ce2d2b32969d2bd2a3ea16a18ce21277 authored over 7 years ago by Dan Gohman <[email protected]>
Make the "wat2wasm" error message not panic.

324a395a95de0f12f124b1469dc91854676e01fd authored over 7 years ago by Dan Gohman <[email protected]>
Update to wasmparser 0.11.2.

cad7e501065a92e5f5c6cbd29214bea12baf8673 authored over 7 years ago by Dan Gohman <[email protected]>
Avoid unnecessary BufReaders.

5b0a083124074dde0ccb6f559cda031d2339f0da authored over 7 years ago by Dan Gohman <[email protected]>
Fix dependency paths. wasmstandalone no longer depends on out-of-tree patches.

e64eb79aaf7627fd32e7b1cfd1dfea29d0b945ed authored over 7 years ago by Dan Gohman <[email protected]>
Clean up unused imports.

666d565fd416cefd3f3ebcd5dcb430e9e3808251 authored over 7 years ago by Dan Gohman <[email protected]>
Import the wasm2obj experiment and minimally update it.

0c78a2f2983a1572620af0526371fbb969bc44d3 authored over 7 years ago by Dan Gohman <[email protected]>
Add an assert on an implemented feature rather than letting it silently fail.

06f0b00c2d1c8cc3643d023daacf87b04c646a66 authored over 7 years ago by Dan Gohman <[email protected]>
Reduce the extent of unsafe code.

64d596005c1f10b206056c27db735286b8c5dce4 authored over 7 years ago by Dan Gohman <[email protected]>
Remove comments about manually saving callee-saved registers.

Even though Cretonne doesn't implement callee-saved registers yet,
it will, so we shouldn't need...

ecd746718b5abbc877631cac718efc2f77fd7ca8 authored over 7 years ago by Dan Gohman <[email protected]>
Use debug_assert_eq! where applicable.

4c5f584d0170716f3e0f1ea1b9b3674c5847dec9 authored over 7 years ago by Dan Gohman <[email protected]>
Fix redundant borrows.

b583d75c7a354b1a5c5c940250757e06e563d1bd authored over 7 years ago by Dan Gohman <[email protected]>
Fix a useless format!.

382415ed0cde2ce2de3a3cf54c09e675ca94a901 authored over 7 years ago by Dan Gohman <[email protected]>
Rename "wast" to "wat".

b89277d9ce002a6cc57d2ce0cb00e8d3585c74aa authored over 7 years ago by Dan Gohman <[email protected]>
Roughly update for the recent Cretonne API changes.

Everything builds and simple modules run, though there's still lots more
to do.

cdffc1b50a946b22dc0fc8832ff2117b7d431ba5 authored over 7 years ago by Dan Gohman <[email protected]>
Change the license to MIT/Apache-2.0.

b3a952ed6792f4b48b345a2968989b45f7adfb0f authored over 7 years ago by Dan Gohman <[email protected]>
Clippy cleanups.

73f5adb19d16a120d79d2e76d53bb4a8c1505a98 authored over 7 years ago by Dan Gohman <[email protected]>
Fix missing documentation comment.

cb7e66d12a050615c05dc484bf2bdba70b24af84 authored over 7 years ago by Dan Gohman <[email protected]>
Remove trivial numeric casts.

6c80e81c6c4b0189053e310fd9ab983f3ef4da31 authored over 7 years ago by Dan Gohman <[email protected]>
Fix redundant qualification.

54a3f1fcd40c242b4ce23ae8e6912148d09dce46 authored over 7 years ago by Dan Gohman <[email protected]>
Enable deny(missing_docs) in the wasmstandalone library.

6c30cf8f0068be9e4269b84307cc8ef4d8b90f96 authored over 7 years ago by Dan Gohman <[email protected]>
Format with rustfmt 0.9.0.

386846791719739f0aaa27538bc2b99f82fd2d59 authored over 7 years ago by Dan Gohman <[email protected]>
Check in the wasmstandalone code.

This is based on the code in https://github.com/denismerigoux/cretonne/commits/wasm2cretonne
bef...

d0fe50a2a87d69253163b5fd4dea31fec77ddb9e authored over 7 years ago by Dan Gohman <[email protected]>
Merge commit '051bc08d23df0930be5e959645c50dd0cdf411d4'

8f6957296e843b57ac98b0d88a3f795ad42c1c3e authored over 7 years ago by Dan Gohman <[email protected]>
Initial commit

344fbed77a462804e4651954c81b234933936018 authored over 7 years ago by Dan Gohman <[email protected]>
Added description and license to Cargo.toml

051bc08d23df0930be5e959645c50dd0cdf411d4 authored over 7 years ago by Denis Merigoux <[email protected]>
Bugfix: wrong jump arguments for br_if to loops

727f297ba99473904d8817b8a5e64fe46a5e0c44 authored over 7 years ago by Denis Merigoux <[email protected]>
Added Fibonacci test case

5fc61bd6f69c665f60a5611287e2eb8109eba843 authored over 7 years ago by Denis Merigoux <[email protected]>
Integrated wasm test suite translation as cretonne test

dfdab56a5480e92727f1e7e6dfc27234c2026e77 authored over 7 years ago by Denis Merigoux <[email protected]>
Dumped code from the wasm2cretonne repo

234e72a5b317a8c77ce21fea28b238644ff20868 authored over 7 years ago by Denis Merigoux <[email protected]>
Switch branch relaxation to a FuncCursor.

378e7cfe6b6ab4d14c68de8ee7477700d003f7da authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add a FuncCursor type to the cursor library.

A FuncCursor works a like a layout cursor, but it holds a reference to
the entire function and l...

6f024267c6f528241581dbd68b28ae849223e621 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Use EncCursor for reload.rs.

Same deal as for spilling. Place an EncCursor in the context and use
that to reference into the ...

8b2f5c418b65d46c9ba42cf113252f09a4665589 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Use EncCursor in regalloc/spilling.rs

Use an EncCursor instead of a layout cursor to keep track of the
current position in the functio...

3eb80fde152a8d3176c7524c9c5a33c728e3586e authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Cursor library.

Add a new cursor module and define an EncCursor data type in it. An
EncCursor is a cursor that i...

0ab1976231228da46f66030062a67e3739a29c37 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Reorganize the instruction builder traits.

Leave the primary InstBuilderBase trait alone, but add an alternative
InstInserterBase trait tha...

ff39458f9668c5c1552952172fd4db145d0fe322 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add CursorBase builder methods.

The CursorBase::at_* are convenience methods for building a cursor that
points to a specific ins...

019e5dd8940fbc65c999f624b96cdb9e31398e2a authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Move most Cursor methods into a CursorBase trait.

The Cursor navigation methods all just depend on the cursor's position
and layout reference. Mak...

78db5b371549c7d2ff2fb55b18b6eb676b644c3f authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Avoid evaluating dbg!() arguments in a closure.

The dbg!() macro should behave like a function call in how it evaluates
its arguments, and captu...

81ff9bac726d7e805b375d5934cf424caa5753d0 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Added partial recompute of dominator tree in case of Ebb splitting (#135)

* Partial recompute for dominator tree in case of ebb splitting
Implemented via striding in RPO...

e0fd5252d5c9d0fb0eaae5f33a2d55b197c33ad4 authored over 7 years ago by Denis Merigoux <[email protected]>
Add a prologue_epilogue() hook to TargetIsa.

This will compute the stack frame layout as appropriate for the
function's calling convention an...

d591b38b37746b4471eb01d5f458dd38964b9f27 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Move the stack layout computation into its own module.

This is trying to keep algorithms out if the ir module which deals with
the intermediate represe...

f82004e3c084079ff4527e1542ab14b95165a68d authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add a calling convention to all function signatures.

A CallConv enum on every function signature makes it possible to
generate calls to functions wit...

7f3b8075972f90f43ce00b57034e46d887516031 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Apply conditional compilation of isa targets

bf1820587c5fb1f0130bea8ce9f33c97d1b88f06 authored over 7 years ago by Aleksey Kuznetsov <[email protected]>
Implement conditional compilation configuration in build.rs

bf5edd5c7121af9a1df5ee97989c55907342f610 authored over 7 years ago by Aleksey Kuznetsov <[email protected]>
Compute the stack frame layout.

Add a StackSlots::layout() method which computes the total stack frame
size and assigns offsets ...

534d1dd10d0bd6f8c1b3454eb5cb51ca0c3a044b authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Don't use documentation-style comments inside a function body. (#131)

f19ddb49a33bf7254e1d03b46287aac5814a9e9d authored over 7 years ago by Dan Gohman <[email protected]>
Avoid floating-point types in Ieee32::new and Ieee64::new. (#130)

* Avoid floating-point types in Ieee32::new and Ieee64::new.

This eliminates the need for uns...

39488630f6335ee011d7922b5b8fddaa7a36cb51 authored over 7 years ago by Dan Gohman <[email protected]>
Assign call arguments to stack slots.

When making an outgoing call, some arguments may have to be passed on
the stack. Allocate Outgoi...

6dc5b3e6083a09446f9c8d992a1f676da51472b8 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Verify the location of outgoing call arguments.

Once a signature has been legalized, the arguments to any call using
that signature must be assi...

d53688872563de831c39289b73576894178bb04a authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Keep track of OutgoingArg stack slots.

Stack slots for outgoing arguments can be reused between function calls.
Add a list of outgoing ...

c50a836a56ef8f14428bc6155d01acdd7b0237df authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Cleanup for PR #123 (#129)

* Fix bextend semantics; Change smtlib.py to use z3 python bindings for query building instead o...

9e3f4e9195130e66c040e78e55021367fadfde6d authored over 7 years ago by d1m0 <[email protected]>
Added Intel x86-64 encodings for 64bit loads and store instructions (#127)

* Added Intel x86-64 encodings for 64bit loads and store instructions

* Using GPR registers i...

b74723cb6848d8f7a4038088c52c4904118182c9 authored over 7 years ago by Denis Merigoux <[email protected]>
Add Intel legalization for division and multiplication.

These operations need custom legalization in order to use Intel's div
and idiv instructions.

be8331d0a066f04a27fa8b3a416277cbd33a2a7e authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Try to depend only on the `ir` module being in scope.

Generated code should used qualified names assuming that `ir` is in
scope, not everything else.

6609d7baf4e8f19e4dfb5099b3a42ebe3d83b2c9 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Evaluate instruction predicates during legalization.

The generated legalization code needs to evaluate any instruction
patterns on the input pattern ...

1968ebad58cdd5a8ebe875df32166a66c39d20f8 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Include bound typevars in the instruction predicate.

We already do this for the encoding tables, but the instruction
predicates computed by Apply.ins...

e2bf4f898160203a071aaed30d890e927cd89b67 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add an inst.all_typevars() method.

Get all type variables controlling an instruction, whether it is
polymorphic or not.

9df0b0930137dc55c4338e7257de887406e79366 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Allow for multiple legalization patterns for the same opcode.

Each input pattern can have a predicate in addition to an opcode being
matched. When an opcode h...

dd5bbc298ecc920c31986794595c93b26fb0a298 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Support constant integers in AST expressions.

Make it possible to write AST nodes: iconst.i32(imm64(0)).

222ccae4b24998afff229bc84a02908747d6282f authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
When doing ti on a polymorphic definition first unify the control variable, then the rest.

7d1a9c7d81c332145df665d017cfa592d017e17b authored over 7 years ago by Dimo <[email protected]>
Cleanup, typechecking and documentation nits

a324d60cccabea7c0e6dea1a47ec2be9cfeafd4f authored over 7 years ago by Dimo <[email protected]>
Fix up a couple of test changed by unifying control tv first

a2b60108fdabac80c877f47118406916086a880c authored over 7 years ago by Dimo <[email protected]>
Add smtlib.py

c3092d680f666a9923c5a4f4f03a60259163fde6 authored over 7 years ago by Dimo <[email protected]>
Fix broken test_elaborate tests after the moving of is_concrete/cleanup_concrete_rtl

59e204cec2bcb5713d3aabc7999fceed6574548b authored over 7 years ago by Dimo <[email protected]>
Add primitive bvult, bvzeroext; Add semantics for bextend, icmp (partial - only for <) iadd_cout

e346bd50c89cddbc520a8c4d98d7d11de08cc5fc authored over 7 years ago by Dimo <[email protected]>
Add Rtl.free_vars()

3fd43fd00635aa3e2de244e795ba946fe3406454 authored over 7 years ago by Dimo <[email protected]>
cleanup_semantics() should remove repeated prim_from_bv(x)

ec9e9bd1ca7e819241c3182b63cb63d3f1a7a5da authored over 7 years ago by Dimo <[email protected]>
Nit: Make elaborate return a new Rtl instead of modifying the existing rtl inplace

93b57a5209979b7344b23a2ddbcf54233b3770a8 authored over 7 years ago by Dimo <[email protected]>
Move apply() -> Xform.apply(); is_concrete_rtl() -> Rtl.is_concrete(); cleanup_concrete_rtl() -> Rtl.cleanup_concrete_rtl(). Documnetation nits in semantics.elaborate

80a42fdeaab05ff77234eb1957e234ca6872eca5 authored over 7 years ago by Dimo <[email protected]>
Add semantics for several more iadd with carry; Add xform_correct() and doc cleanup

9767654dd7525b17e89e95a859b2af05204ef5bc authored over 7 years ago by Dimo <[email protected]>
With multiple semantic transforms mentioning Enumerators, it may be possible for there not to be a substitution from the concrete rtl to some of the transforms. This is not an error - just a case where a given semantic transform doesnt apply. (e.g. icmp being described by different transforms with concrete intcc condition codes)

a92021ebced012be41b88ffdb296c84411b5ecbb authored over 7 years ago by Dimo <[email protected]>
bextend/breduce need constraints

23877458474ac26d62fc9ef8593b8187fb8b27cd authored over 7 years ago by Dimo <[email protected]>
Return a function pointer from TargetIsa::encode().

Replace the isa::Legalize enumeration with a function pointer. This
allows an ISA to define its ...

b04a2c30d22839da9170e12a94f6619e50c6c36c authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Assign legalization codes early.

Make sure legalization codes are assigned by TargetIsa::finish() such
that they can be accessed ...

1bbc06e2d6791c4f2ab80555d14bf77151eba321 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Bugfix: encode function wasn't calling legalize function properly

f6af7be205161de83a537e1ec25a857215240acd authored over 7 years ago by Denis Merigoux <[email protected]>
Add Intel encodings for more conversion instructions.

The following instructions have simple encodings:

- bitcast.f32.i32
- bitcast.i32.f32
- bitcast...

ebf5c8095944bee2fe432e1a1d286c78e8c744ea authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add support for type variable wildcards in bound instructions.

Instructions will multiple type variables can now use `any` to indicate
encodings that don't car...

06bab60fcc765954545fd12d58ad5ebb0a9214b1 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Remove the number field from the PredNode union type.

Predicate numbers are available in the maps
isa.settings.predicate_number and isa.instp_number i...

ac830e0446fd66f4f125d313f7447c97f98e8c92 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Remove the name field from the PredNode union type.

The name of a predicate was only ever used for named settings that are
computed as a boolean exp...

84fffa79f6a27426b700efcf07a50a16a9553571 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add a predicate_key() method to all predicates.

This enables interning of predicates to avoid duplicates.

Add a predicate registry to TargetIsa...

136cfe00dd515a5cc6bf9cab4a73b457683e4428 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Generate type check predicates for secondary type variables.

The encoding tables are keyed by the controlling type variable only. We
need to distinguish diff...

6da734221a50c27e8fed10601742dcc890295338 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Add support for legalization codes in the encoding tables.

The new encoding format allows entries that mean "stop with this
legalization code" which makes ...

9067fe7f990da33d7c5919738016245354ccb9cb authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Define I64 before I32 for better encoding table compression.

The encoding list compression algorithm is not the sharpest knife in the
drawer. It can reuse su...

629bfe7ba928bc9650217b90190409708740ee82 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Use a more compact encoding list representation.

Encodings has a 16-bit "recipe" field, but even Intel only has 57
recipes currently, so it is un...

22d49c6510a3790219535c8ec030800aefae62af authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Change TV ranking to select src vars as a representative during unification; Nit: cleanup dot() emitting code; Nit: fix small bug in verify_semantics() - make an internal copy of src rtl to avoid clobbering of typevars re-used in multiple definitions

345d6754f58a51433bb2aa2bf565c0465913032e authored over 7 years ago by Dimo <[email protected]>
Handle non-ssa Vars and Enumerator constants in Rtl substitutions

7498d7a3f9e7664d80c1613a3333c97aa438767e authored over 7 years ago by Dimo <[email protected]>
Generate a RECIPE_PREDICATES table for each ISA.

It turns out that most encoding predicates are expressed as recipe
predicates. This means that t...

a31dd3aa7a5a23fb88fccbebfd131a0d52e6ef95 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Generate an INST_PREDICATES table for each ISA.

Instead of generating a single `check_instp()` function, create an array
of individual function ...

f643e7e752cfccee2f2b9c55fa4169013b9eb151 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>