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

Print out a report of slow-running tests.

The slow tests are computed as those that would be printed as outliers
on a boxplot of all the t...

17c2b5213a34cd71fb98abc7d8e2029e3addf261 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add --verbose flag to cton-util test.

5cb5110330f6eb6993681902f94919dd41d0d035 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Simplify with unwrap_or_else().

b1468ee0bcf7e3e94a91b9557ead2501e9171e30 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Record the location of parsed functions.

Remember the location of the 'function' keyword that starts every
function. This can be useful f...

aa1da4d87163f9bb4cb66a23d6625d3800138d34 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Tell Travis to cache Cargo intermediate build products.

The CI builds were using a lot of time downloading and building crates.

951ff3e6fc0b35c842e266e802acd1ab95c74730 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Run tests concurrently.

Spin up one worker thread per cpu, and run filetests on all of them. Use
a reorder buffer in Run...

1c1ae524aaf55aa6a8ab37669a99b047453c824d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Simplify job queue.

Always keep PathBufs for every entry in the test list. When concurrent
testing is enabled, we'll...

356e05d2255e72d5bf30519e3fbc66d4b53aa7ef authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move the code to run test into its own module.

Loading a file and running the test in it can be separated from the
mechanics of running multipl...

c04b2fa7938036d09695ef2ef14ebe0a33578d0c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move subtest::new() into the parent module.

This saves on importing of all the sub-modules that implement new test
commands, and it provides...

30009356a65350a3f71cd1e26727b9ed113b422f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
cargo update.

7f1f4175ac9a1f515ed5336704f1a8dc378b224b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove unnecessary external dependencies.

The main libcretonne crate should not have any external dependencies if
at all possible. Use sim...

d2e5059ab90e1e83f5214bc0ec09ead6a257ffb8 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a 'test verifier' sub-test.

This test runs the verifier on each function and matches the resulting
verifier error against th...

b5b1ee23b5726f11dbab9e15bdbacc4c37cb7cc9 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a location to verifier error messages.

The verifier reports the 'location' of an error message as a reference
to the entity that has a ...

c3afc1f2bec3dad60da8c0fb60cb61457e1e500a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove dead public functions from DominatorTree.

52aca982a1bcb73cf9c56a551bf990459cc50406 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement a domtree sub-test.

This test verifies the computed dominator tree against annotations.

Move the existing testcases...

4198b2dde57b723e669d92e5aa27577e7d833fae authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Make the source map available as filecheck variables.

This makes it possible to refer to entities defined in the source file,
using the source names p...

88218440a3d9504b6899d896c1c69ef0b94fffdb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a SourceMap to libreader.

Give crate clients the possiblility of mapping source-level entity names
to proper entity refere...

77264ead08b67fad905f647f2e2e9d4a00995180 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use Cow<str> for the values of filecheck variables.

Often, an implementation of VariableMap can return references to
internal strings, and Cow::Borr...

ea748f77180c8c7f3c1fd1ad513d4b69d22e0ae1 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Print the number of tests run.

Don't let 'cton-util test' finish without printing anything.

8a9b34411aaca59ed94e1b87ce2ec0079203e9b5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement the 'test print-cfg' sub-test.

Move the CFG tests into the filetests directory.

Remove the tests directory, there are no more ...

78a2e47d9587f69ffbab7e8b70478d48233f4207 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Also use fmt::Write for the print-cfg command.

This prepares use for implementing a 'test print-cfg' sub-test.

1ed8e1206df391c5aa767e4c7806e813ac76635a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Ignore test commands in parse_functions().

No point in returning a syntax error if the file contains test commands.

5ade8dc36a6f5779a556fa77c8a650551445b245 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a SubTest trait and filecheck utilities.

This trait serves as a shared interface for the different kinds of test
commands the 'cton-util ...

d221249e7f3c2d8dd3dba942da99f16ef334a33d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Convert parser tests to filetests.

Create a new directory hierarchy under 'filetests' for all the tests
that are run by 'cton-util ...

0b7f87b14cddec5c85df747530a9b562fc86810c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use fmt::Write instead of io::Write in write.rs.

It is common to represent a function as a String, and previously that
required re-validating the...

d16b57d54056d92fa423778c6b4f8b6f887d3e7a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Make functions cloneable for testing.

It's not super fast to clone a function, but it is faster than
re-parsing the test case file it ...

6ffca9ec99399d204486a2ae03abb4cc40a6a1ca authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Break DetailedFunction into a tuple.

Use (Function, Details) in place of the aggregrate DetailedFunction.
It turns out that some test...

2901a85a36b82714648398deb1a7befdb481b26f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a job queue and begin loading test files.

This code looks overly complicated because it is anticipating running
jobs in a thread pool.

Th...

a24ca56c0d67fed324315f7213fbc6cfc8df6f1f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a utility read_to_string() function.

480054a094d0b71fb0984e7c87f97d39c55d46e7 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add scaffolding for a 'cton-util test' command.

This command accepts files and directories containing test cases to run.
Recursively searches fo...

4521afd4744a414a9e11dee92844e0620a9f7e00 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Parse test commands in a .cton file.

The top-level parse_test() function now parses test commands in the
preamble of a .cton file.

a544c0e1719a3529d76558e50286780f8daf1f6e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a public rest_of_line() function to lexer.

This is used to grap the tail of a 'test' line which doesn't use the
same tokens as a normal .ct...

55a89c21675141caacbce2e0e1a23ef43e7cebcf authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Collect comments while parsing functions.

The result from parsing a function is now a DetailedFunction which
includes all comments that ca...

dedc44be698eae574627e7e45dd367f159ada000 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a next_key() method to primary entity maps.

It is sometimes useful to know the entity reference number that will be
assigned to the next thi...

525c69bbe81edb352c9e87c4581c537dcb0ad91c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a representation of a parsed test case file.

The new exported function `parse_test()` will produce it eventually.

4fd15f98eda4771bdcfbd5a406c9b1cd23daee02 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Simplify the interface to cretonne-reader.

Export a single function: parse_functions() which results a vector of
functions parsed from the ...

169a2f75426e854338b596aa441e8562fde339bf authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a data structure representing a parsed test command.

It's not used for anything yet.

d0fb647357c5500a32fd60bd907b20cecc61a649 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an AnyEntity enum type.

This type can reference any type of entity in a function. It will be
used for the location of ve...

eeb8f5e4e41b8efc05e0dc2181a044756efbbd0a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Idiomatic impl of unordered_begin.

0eea144fefad18690c86712d931af3ec8ca54499 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an explainer mode to filecheck.

The -c flag to 'cton-util filecheck' will now print out a description of how
the directives are ...

8483dc10850954933470b829fccf6d97f6999225 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
pub

b9d6ff2b51d56dc30e9abb2fcca3e3110bf7b733 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a MatchRange type alias.

The regex library also uses (usize, usize) for ranges. The type alias is just
to make it clearer...

7317775052c612e74c87d074af0f02651e275bc0 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Convert the DFG tests to use filecheck.

e41853cab0f46749719d2d1a44cd304fce00ff8d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a cton-util filecheck sub-command.

c95c23dbbee2b3c8324119717205cbde02c6b834 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a libfilecheck crate.

This library implements functionality similar to LLVM's FileCheck utility, but
in library form.

5b22634c8d8f3945f05a4b4142c85cf9f66b5c97 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a verifier

The current implementation only performs a few basic checks.

de04d6d083f7094c28d95450541ed531a2da1215 authored over 8 years ago by Morgan Phillips <[email protected]>
Emit ISA predicates in the encoding tables.

Use the new ISA predicate numbering to emit ISA predicate instructions in the
encoding tables.

...

116b898da36cbbda01687663168473543e1d123c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add casual string representation of named settings and predicates.

Use 'group.setting' format for named predicates, only display the expression
for anonymous predi...

f305f50829cab3f469e1f1a4a5c45daaa17c235e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move byte-vector layout into SettingGroup.layout().

Move all the byte-sized settings to the front of the byte-vector, and add a
mechanism for assign...

84b0a92326f82be295d6f52b60934476cd458cd6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix typo in predicate combination.

be8d486113f173943f18e1b87ee4cb8883635bc6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add encodings for imul instructions to RISC-V.

This is just the basic 'imul' the M instruction set also has mulh/mulhu which
yield the high bit...

a1cbeb7f7a03d0618ec9f60f65308168e521af18 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix settings_size vs byte_size confusion in gen_settings.py.

f18041b56cfb2ffcd215a6e892b8db90d133bc10 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add controls for enabling M, F, and D RISC-V extensions.

Three predicates affect each extension:

- supports_m determines whether the target CPU supports...

c1971db0913c5c3257c94a8234d233f75d92e913 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add encoding tests for RV32.

The 32-bit CPU mode uses a different encoding for iadd_imm.i32, and 64-bit
instructions are not ...

74e731ed25487482371b1c2a2f904d41b112e1ce authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an encoding test for RISC-V.

Test that the generated encoding tables work as expected.

Change isa::Encoding into a struct wi...

727510f97f63e778ba772454259e45cf86c18a4d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate a table of encoding recipe names for each ISA.

This will be used to pretty-print encodings in the textual IR.

1c5128584592ac26b8cfc516cd7b8f6159b32bf3 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Upgrade to rustfmt 0.6.0.

ba26ce2e9871056f471e4fee51101b3250f1fcc5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Split the Encoding data type into two u16 values.

This hardcodes the division line between the recipe bits and the
encoding bits. It does not seem...

cdbea59269f384415635ed01b7dd6f7c929e9f54 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an isa/encoding module.

Define data types for the level 1 and level 2 hash tables. These data types are
generic over the...

38e24360741522146bc42da884ceb92977c3ad7f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add comments to the level2 hash tables concatenation.

The large LEVEL2 table consists on multiple concatenated constant hash tables.
Add comments to t...

f816127dcc40d393c544f659d99c8431c46ff2f5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an is_64bit shared setting.

Many ISAs and 64-bit and 32-bit variants. Use a shared is_64bit setting to
distinguish.

d3faf5127e93be285555d2d805a59ab5d4a24489 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Require a specific rustfmt version in test-all script.

Rustfmt is still so immature that developers can't have different versions
installed, or there w...

ae8eb268ab0bf2c3dd4b4436458bbc0076c868b6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rustfmt fixes

894d3796fb0e103fbcebea0442fc01e6dffc440d authored over 8 years ago by Morgan Phillips <[email protected]>
Generate level 2 hashtables.

All of the level 2 hashtables are concatenated into one constant array per ISA.

7476d996f61c392567f7c85892732459013ef83e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add 32-bit ops to RV64.

The 32-bit arithmetic instructions are encoded differently in the RISC-V 64-bit
mode.

8a1f87d32e27e189e339d79720f03ee4ed479ddb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Emit encoding lists (WIP).

Compute the u16 representation of encoding lists and emit a big table
concatenating all of them....

176427e22072b61b0687e5bdce9cc044028bdfa4 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Collect and number all active encoding recipes.

The recipes are shared across CPU modes.

a26673654f531e78111d4a111922967f501d120a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate type numbers at meta-time.

We need to generate hash tables keyed by types, so the Python scripts need to
know the index use...

747dd508dfb97dbb48fbcaca28e19f4038c58914 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add another dominator tree test case

4b72d0e64d94058d4ad5773862b9de1f0730dc44 authored over 8 years ago by Morgan Phillips <[email protected]>
Flake8 lints.

a6fd6e95d86988140da8ad19f2393dd1713543e5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move predicate collection into TargetISA.

Add a TargetISA.finish() method which computes derived data structures after
the ISA definitions...

c11d82ea02fdf03049464d9e4c0cd0a781616cbf authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add string conversions for predicates and encodings.

This is just used for printing better comments in generated code.

0b1aa7c6cd9e7ac7fc562c6e4f8e643982fd99ea authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate encoding tables. (WIP).

Amend build script to generate an encodings-<isa>.rs file for each target ISA.

Emit a function ...

4f14d1ea32335058a5e549362663072076a35e21 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Call function in the predicates module.

When generating Rust code for an instruction predicate, call the corresponding
function in the p...

5f6859f0d91f391c78c4662c794a90aca2c9b01c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix Python3 compat in docs directory.

Update copyright.

b788ab80201bd5795ac1bf12f0eaec8f6fbf53b9 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Collect list of CPU modes in TargetISA.

Fix a typo nearby.

c251f26d0d2c2ccf1672d72ba132a11983ba761b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a predicate_leafs() method.

This collects all of the leaf predicates that go into a compound predicate.
Current leaf predica...

4d1eb84037ee5aabf6a1b74ea2d83309e429b080 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Verify Rust source code formatting as part of the unit tests.

Only do this is rustfmt is installed, which likely means don't run on Travis
CI.

d0db39189797ca04a39dfa660d7eef3051a266f6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Pass arguments on to rustfmt.

This allows the usage:

src/format-all.sh --write-mode=diff

21ba900d19579f58780eaf1b47774832eb4a7ab7 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Allow predicates on both EncRecipe and Encoding.

If both specify a predicate, combine them with 'And'.

9853657220cae30effdbbb265052ba67f4c52035 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add module with commonly used immediate predicates.

e812041738800c5ea256c5a033329528acdb83ad authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Clarify that Imm64 holds sign-extended values.

When representing smaller integer types, immediate values should be
sign-extended to i64.

cdd5872a1b93b575503faabc63aacaa83a2caac1 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add additional test cases

ea6eab4b3cadbb801dd088cef68aea2a79a35f75 authored over 8 years ago by Morgan Phillips <[email protected]>
Add RISC-V arithmetic w/immediate operand encodings.

Add new instruction predicates to support the 'I' encoding recipe: IsSignedInt,
IsUnsignedInt us...

1da15a10d795d23c9d05afcc7b95f920057a264e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add bitwise operations with an immediate operand.

5a5688e446f41ce470f56cb57a669ac1f802f109 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Track the default member name for immediate operands.

Usually an instruction firmat has only a single immediate operand called 'imm',
or 'cond' if it ...

7ead1e3f6f2420a4c6fe91c6e1085fb8422f4beb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add script for Python 3 compat checks.

2dfeea67e1f86da77872cd78d86ee05f1bcc9955 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Create format fields for immediate operands.

Each InstructionFormat instance gets data members corresponding to its immediate
operands, so th...

fe7ad84129d8a179fa10a482698764e4de25d28f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Python 3 compat.

Try to keep our Python sources compatible with both Python 2.7 and 3.

Check with 'pylint --py3k...

1e1baec50ad6c262f77e597c2029d7f5b21cc006 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move dominator tree test cases to their own folder.

cab356bd9f338f7c9f7fd8888e6dfc7ef43ebec0 authored over 8 years ago by Morgan Phillips <[email protected]>
rustfmt changes

102c0049e0011d6472f1a26600f474789b923c1d authored over 8 years ago by Morgan Phillips <[email protected]>
Modify the dominator tree's intersect method to interact with Basic Blocks

Corresponding changes to test cases are also included.

9165eef82301792c245aa7b7aebb54591672d019 authored over 8 years ago by Morgan Phillips <[email protected]>
Synchronize regex versions

67fdd27d04743ffdd074c6db652e848562feade9 authored over 8 years ago by Morgan Phillips <[email protected]>
Upgrade to rustfmt 0.6.0

ddd205ff78e5a0eb9e656de63eb23a40532233c6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add RISC-V encodings for imediate shifts.

Also add the 32-bit shift instructions for RV64.

4ebad2060a342ff1a9e8b28bff84225d4c6e1885 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add rotate and shift instructions with immediate amounts.

da27e65c255cdd1263b3fda0e9865cb0e5490891 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Merge branch 'master' of github.com:stoklund/cretonne

6952fa8aa4b2e0ef30451d568b877f5fcf1d9e47 authored over 8 years ago by Morgan Phillips <[email protected]>
Add basic block information to the dominator tree.

To be complete the dominator tree must represent idoms as Ebb, Inst pairs, i.e.
bais blocks.

8683541ed3e8a71a908b2d3beddf19ce31e2f39e authored over 8 years ago by Morgan Phillips <[email protected]>
Use shared quadratic probing for settings.

55f1e69e3e5a82089985688426d651d5cc0d94d6 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a generic implementation of quadratic hash table probing.

We have multiple pre-computed constant hash tables that all use the same
quadratic probing algor...

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