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

Set expectations.

f2c7a1d57b192420bd41aa6c6bfce97c84b4e6ee authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Classify Vars in patterns.

There's 4 classes of variables, depending on whether they have defs in
the source and destinatio...

1ba8e9e05b71db73ab86b296ccd4bab10a8b6bef authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Canonicalize the objects in an RTL list.

Any Apply objects in the input are converted to Defs with empty def
lists.

88cbd5a43b89832f1b7fc930a0ee39fe7ed23b6c authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix inconsistent instruction name.

The 'fpromote' instruction was renamed from 'fcvt_ftof', but the name
argument was not changed.

22e75b127156dce933f15a44fd6515508a3288d9 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add glossary entries for IL and IR.

0b7010e3670352554ecdda433974fa9e9df851d6 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add type annotations to TypeVar

bfeb9e483970abfe0bac578745d8efe0142c95a1 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Run unittests with Python 3 if it is available.

The check.sh script always runs the Python unittests with 'python', but
if 'python3' is in the p...

b7634ae5c323fb93e5e6b1a97bda5e67070eeecb authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Typo

c2dc400572a69fae75e782ed54ebfb24e22ef72c authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix a few typos in the docs;

de109103242b6f93b62a8761f77d4bddb879db0c authored about 8 years ago by Benjamin Bouvier <[email protected]>
Use `items` instead of `iteritems` for Python 3 compatibility

409ce915130747279a7531d22047e8abe7b6aed8 authored about 8 years ago by Sean Gillespie <[email protected]>
Typo fix

72479b53ff48a81e24e69d684166c76915bd97e9 authored about 8 years ago by Joel Gallant <[email protected]>
Add build instructions in the REAME;

2cb126341b2b12861857e568642b866c7284fca9 authored about 8 years ago by Benjamin Bouvier <[email protected]>
Add a document comparing Cretonne and LLVM.

2fa707bc4fa782bca4dc5807fe92c30c001c3c11 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Require documentation on cretonne public items.

3da569de06f5d8e6c9e02b6e03361e50c49f004e authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Require documentation on reader public items.

7b3160dbbbabcf593c21d23841cf912366a804ae authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Require documentation on filecheck public items.

77cc9623802d3371b6cf123b705b1eac10f40a61 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Begin generating code for the legalizer.

This is a work in progress. The 'legalizer.rs' file generated by
gen_legalizer.py is not used fo...

bcd5bc559c14aae60c5e025d76a1599909b876ed authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Create FormatField attributes on demand.

The InstructionFormat objects make their non-value operands available as
FormatField attributes ...

7722ba91ffe68f5a300b1f6a107a2d9b8bc8306b authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Run mypy if it's available.

The Python tools pyliint, flake8, and mypy are only run if they exist in
$PATH.

5dc9ea1de498f884bd94e87f741a3eafd36b0f59 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add PEP 484 type annotations to a bunch of Python code.

Along with the mypy tool, this helps find bugs in the Python code
handling the instruction defin...

67488179859821adea188713cb00ab7f5f86a1b0 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
File stale path references.

After rearranging the directory layout, some paths in documentation
needed updating.

Fix some t...

b6ff2621f988834e6b1fa7947d5561e30b428f70 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Introduce value aliases.

A extended value can now be changed to a third form: An alias of another
value. This is like a c...

84faddbf6555586f61657d46d6377efb30066456 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Properly infer result type for single-result instructions.

Polymorphic single-result instructions don't always return the
controlling type variable as thei...

61f5eeee2fd9c9ed7aba21c0d1dc475681bc2d0d authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement From<i64> for Imm64.

This makes it possible to use literal integers as arguments to
InstBuilder methods.

853e995c99be2c6d5c1e8c8ab2f3e9b3c136204f authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Make Type::as_bool() less pedantic for scalars.

All scalar types are mapped to b1 which is usually what you want for a
scalar. Vector types have...

20aabcd1c763144d31dcdde7e8594791828112ba authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move the 'ins' method to DataFlowGraph.

This given us better symmetry between the replace and insert builder operations:

dfg.replac...

6aa3e4594af497f3b74e003fa91186c50e1bc1fc authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Define live range splitting instructions.

The copy/spill/fill instructions will be used by the register allocator
for splitting live range...

84172ddf98718b0952aadb0271bc4ed4184aae19 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a ReplaceBuilder instruction builder.

The DataFlowGraph::replace(inst) method returns an instruction builder
that will replace an inst...

bb0bb1e91c401f08da8a387b80d90d3bba898aee authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename Builder to InsertBuilder.

This instruction builder inserts an instruction at the cursor position.
We'll add other kinds of...

634de933379c1073ba2aec34fbc169b583606340 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Switch InstrBuilder to the one-shot builder pattern.

All the InstrBuilder methods now consume the builder, and the non-leaf
methods return the dfg mu...

6db94bb9809c318a91f841f08c3709beaa9fe34c authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a Cursor::ins() method which constructs a Builder.

Rewrite Builder uses in test cases to use this method and construct a
new builder for each instr...

ab910b3f58afe70fd05c57c9edafc8bac60ae691 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use more precise lifetimes for Builder.

Distinguish the lifetime of the Cursor and its referenced function
layout.

Use two separate fun...

368b12e7cdf563f9b94fb86d33666e8bd0b88a06 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate an InstBuilder trait.

All of the instruction format an opcode methods are emitted as an
InstBuilder trait instead of a...

58168bcd07ff7a206f6a9929b5a8bfdb3aecdb96 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename lifetimes in layout.rs to 'f

These lifetimes all represent the lifetime of the Function.

c8f28e590214efff7b22d040ee9a5295fcd1c4e9 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Also rebuild if build.rs itself changes.

We already have all the meta/**.py as dependencies.

cba5cdd22e8fda8f975b778c42538495cba97a82 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add more expansion patterns.

RISC-V does not have a flags register, and thus no add-with-carry
instructions. Neither does MIP...

b068bace9d9f175aadbd19e59f50cad8101ca687 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Bump filecheck version to 0.0.1, allow publication.

0b674fb28b1f99e7af6651205f8264fb6d1bc1ae authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Parse signature and function declarations.

Also add support for parsing call and call_indirect instructions.

d85225c537d456f3d134d35651b9ca9fd1a00f3c authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add result values to call instructions too.

The make_inst_results() method now understands direct and indirect
calls, and can allocate resul...

7d7a7875d54231819df3cd8d4e0ec45ab66da6a0 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add signatures and ext_funcs tables to DataFlowGraph.

These two tables are used to keep track of type signatures of function
calls as well as external...

c961e89fdc1554be81b8a54674c28fca2fb1b4c2 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add call and call_indirect instructions.

Add a new IndirectCall instruction format which has a value callee as
well as the call arguments...

e4e1c30f872fb0a73495ee6a3ab75f7d7b276513 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Track signatures and function references in the source map.

8055ac681ca13498e22078723e45e0d6c46335d0 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generalize def_inst() to def_entity().

Use this source map method for assigning a location to any entity whose
source number is not exp...

45cf655ce45d0e33d95717a25d109013c4c4a691 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Promote the src/tools crate to the top-level workspace.

The 'src' and 'tests' top-level directories now contain tools sources
and integration tests for ...

a8a79df6206d928c3c91c0b268b70c4bd0dde2cf authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move library crates under 'lib/'.

Give these crates each a more standard directory layout with sources in
a 'src' sub-sirectory an...

0764df28b54ee3bf5a1910f6ed0e278df08fab29 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move the 'meta' dir to 'lib/cretonne/meta'.

The 'lib/cretonne' directory will be the new root of a stand-alone
cretonne crate containg both ...

e7f30a40b4f539b800ba32cc57fe834e57702a2f authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove test_utils.

These test utilities have been subsumed by ir::Builder.

8480879f3ef3228e102575f33d88c857a2441119 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Switch domtree tests to using Builder.

af8f8d98e6f4ff8edb937525b215ea212cebc526 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Give Builder a Cursor.

The Builder keeps track of a position in the layout and inserts new
instructions there.

Add ins...

d4197ca73184c8b917f295afa052b747adc33b85 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add Cursor::insert_ebb() method.

Insert an EBB at the current position and switch to inserting
instructions there. Call the relev...

eb5cea7c6ae23ab0ea2c4932ba4c4c114d2e47fc authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add Layout::insert_ebb_after() method.

Symmetrical with the existing insert_ebb().

8592979fc9ca2e030f70d82418aeebd0ba8a2f88 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add Layout::split_ebb().

This method splits an EBB in two and moves trailing instructions to a
new EBB.

10c579e0cd6daa5b6ddbcd5adf2628c9b2183a27 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add Cursor::insert_inst().

Insert an instruction at thecurrent cursor position.

6f68673e8a65702daab5611934a0c2513335edc7 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a LAyout Cursor data structure.

A layout cursor can be used instead of an iterator to keep track of a
position in a basic block ...

d650d30b882a051287dadcc88e1211594a14ded8 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate a Builder data type. WIP.

The Builder provides a convenient interface for inserting instructions
into an extended basic bl...

8ca970ba5cdbc73cd003f5f2c5ca5e873c150d65 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move second_result outside boxed storage.

In instruction formats that have multiple results AND boxed storage,
place the second_result fie...

5a2f8cbdf8b0e9637652028485ec9d7fd5106692 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Capture the Rust type used to represent an operand kind.

The Rust type is usually the camel-cased name of the operand kind, but
there are variations, so ...

f78baf9c0b98916d4adeee9a2d67c3c692b671f0 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add simple Uimm8 and ImmVector immediate types.

Implement the boxed storage of the UnaryImmVector instruction format.

b8a537bb13296d4193990c2c204d1cfae67169b2 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add FuncRef and SigRef entity references.

These refer to external functions and function signatures declared in
the preamble. Since we're ...

7cf25a073b83f5a9f3eef90cf9b35710b8151baa authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Track InstructionData member names.

Entity references in instruction format operands also have member names
in the InstructionData s...

2372486ec5d0cc08bb9b87163018c504ea7b89d8 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move signatures into new ir::extfunc module.

This new module will gain more data types dealing with external function
calls.

b42d85ae24a12f420d60655fb40284b07a9f0ac0 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use 'varargs' consistently for VariableArgs members.

The meta code generators need to be able to infer these too.

b258644d07bee06dd58f2038349fbd2250ca8550 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Upgrade to rustfmt 0.6.2

02eae6afd02f3b03d54687e249cee507242ec658 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Create a phantom workspace manifest for all crates.

Share a single Cargo.lock and target directory at the repo top-level.

67abb2d2f678e71a1e07b8162788ed06b45633fe authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Define AST nodes and instruction transformations.

Enable syntax: iadd(x, y) which creates an Apply node.
Enable syntax: z << iadd(x, y) which crea...

7c91bacafebddcf0aa59c7ebf53f5282518103ed authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add legalization patterns.

a460a637ddd4e35acc468c01528ead973c50751b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add legalization helper instructions.

The isplit_lohi instruction breaks an integer into two halves. This will
typically be used to ge...

29c449f117c32fc7bd042dd056e87ceb6e77a128 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Expand OpcodeConstraints to 32 bits.

Make room for 255 different type sets and 2^16 entries in the operand
constraints table.

2a2871e739d98378234f6b223fbde0595600c5f1 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add HalfWidth and DoubleWidth type variable functions.

These functions compute types with half or double the number of bits in
each lane.

60b2257331891b010aa6714a44035318d2ac9669 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add some Python tests for TypeSet.

470507dd9befe15675f3754a4c54fc122a55b79c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
In-place intersection of type sets.

65caf2d9a14e8f272b841fedcfb5df36d6e65ad7 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Run Python unittests and doctests.

Add a meta/check.sh script that runs unit tests before the syntax
linters.

Add unittest convert...

d7e9d4dade0ec217ec622f706944ee817882d1db authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Represent type sets with ranges.

Allow limits on the smallest and largest integer type in the set, the
highest and lowest number ...

d45b011fa215c5129f90bea89c2ce06d92b2b973 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move TypeVar and TypeSet into their own Python package.

These classes are not very entangled with the rest of __init__, and
we'll be expanding them a bit.

b06668aa8a8df34bd799c72071c88752dc9c759a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add documentation links to all existing instructions.

d915718526200d0a9473b4d84a53a9924a301dcd authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an autoinstgroup Sphinx directive.

This directive documents an instruction group and lists all instructions
contained in the group,...

686aa4ec1d3fdf2e624e9489d9fbf0fcefc34049 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Integer subtraction with borrow flags.

This is the x86-style of borrow flags. ARM uses subtract-with-carry
which inverts the sense of t...

f66d84fd958e511a3993604f5f476b1fa290350c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Integer add with carry instructions.

Integer addition with carry in/out/both.

9cb3451432e9cde3785f5aec51b31bf10eb9632d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a Cretonne testing guide.

Describe the basics of Rust-level tests, and go into more detail about
the file-level tests.

7ec54a5a019ae1f02e3ac14d4b5c43aeb6bc643c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Basic *.cton syntax mode for Vim.

0dd16a360d15e6c24c12828ced40d209e52c1d7f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a 'test legaliser' filetest command.

This test command sends each function through legalize_function() and
then filecheck.

65f69fb0885a118be2dc83837c74ae72ae4416de authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Write out encoding annotations on instructions.

All instructions with associated encodings are now annotated with
encoding information in a colu...

6a71613d9283f4b93fcff3412d03a127a50b7903 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Expose Vec::get() in EntityMap.

1c4eb44ef767ee3dc6c4a4644d5dd8cc38e46caf authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Print encodings as [R#10c] instead of [R/10c].

The # is a more conventional prefix for hexadecimal, and when ISA
information is not available, ...

ea901653dabac1548f5054c088f88c91d66e064e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Pass flags and target ISAs to filetests.

Add a `needs_isa()` method to the SubTest trait, and pass a TargetIsa
trait object to those sub-...

7587a51bd7c2e842c752adebd88c355b84149366 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Parse ISA specifications between test commands and functions.

Some tests are only applicable to specific ISAs. This can be indicated
with an ISA specification...

36b143df995bc5ef27720b0ef70a053f5b623ddb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Allow settings::Builder to be reused.

When constructing the Flags object from the Builder, don't consume it,
but take a reference inst...

83adf341ec059547e69e7ceb68f24dd448d3ff1b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Share split_entity_name between lexer and sourcemap.

There's only one way of parsing entity names correctly.

26332f6f918230a48fd1ff6155c38ab46d400afc authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't have keywords in the lexer and parser.

Instead of recognizing "function" as a keyword, simply match it as a
context-sensitive keyword i...

64490a3587e1b14faff9334131411d0eaef039bf authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a stub implementation of the legalizer.

This basic version only fills in the encoding of already-legal
instructions. It doesn't have any...

fab16941c8640120fbbdd8d1bd85681680ee99d0 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Store instruction encodings in Function.

This is a side-table of ISA-dependent information that will initially be
filled out by the legal...

1d0ab91136bfb08f81499f9d8ce6e90c3ddbef32 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add clear, is_empty, and resize methods to EntityMap.

These are simply forwards from the underlying Vec.

57b6967ddd1c674674b75fd96b7e354caa7cb733 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Wrap FunctionName in a newtype struct.

Function names display differently than normal strings since they need
quotes and escaping.

Mov...

af29fee5d2fcf2f8c32ffa2ad6123cb9bf9fbf7b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a TargetIsa::display_enc() method.

The interpretation of an encoding depends on the target ISA, and so does
the proper printing of ...

43aa6f66d9f714af739dc378b0fd5e87b44e834c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move 'Encoding' into its own module.

59c404ed298bad14980b503fc385e47f0e408f77 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename 'encoding' modules to 'enc_tables'.

These modules contain encoding tables, not the 'Encoding' struct.

ce6a463267526b26094cc0f237991fd655cfcdf6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove the inst_locs vector in the parser.

Use the source map to track instruction locations instead.

The rewrite methods now take an AnyE...

622006ecc54b8e8150020b14ca81d19c2f435c78 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Also record locations for tracked entities.

d0f9f92317dedb5ba8b90f62eeb40d1ac1a86d1f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an internal MutableSourceMap trait.

Use the SourceMap for mapping during parsing too.

dd8e7df8ba5712c31ab257be538ff974d84913cc authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Extract Result and Error into their own module.

Also include the err! macro and make it usable outside the module.

feef2ecf3f556c88f50acf0341d34499ed9d7c4c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>