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

Move ir::Function into a sub-module.

Keep the top-level ir module free of implementation details that are
inadvertently exposed to su...

c3b7fc9a9c4dc0162293bdda514b1407cba2fba3 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use an EntityMap for stack slots.

Delete the StackSlots iterator and move the remaining StackSlotData into its
own module.

09b7420ca9fff652d5db2f70664bb8b83c87a6e2 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Re-export common types in the cretonne::ir module.

Clients should not have to navigate the ir sub-modules to find commonly used
types.

40e0989b8b822b3e3d22d41171e84b49dc4d0bfd authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove tests/lib.rs to avoid running tests twice.

The 'cargo test' command simply compiles each 'tests/*.rs' and runs the
enclosed tests. The 'lib...

9e87bffa82d28273cbc4f4827fe9f110f68d1d54 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move integration tests into src/tools/tests.

The integration tests use both libcretonne and libreader, so moving them avoids
the circular dev...

84a154a8ca4be35c7df569e24c9525284f685ad5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate code to precompute predicates.

Each ISA predicate is assigned a bit the the Flags struct, and a corresponding
method is generated.

514ebc6bf9b505187c4d008ff87486e3bcc517ca authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Introduce predicates.

Predcates are boolean functions. There will be ISA predicates and instruction
predicates.

The I...

8457f67e34e2a8b27c7aa6c49a366b8f79c98c47 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement the machinery to create a TargetIsa.

Add an isa::lookup() function which serves as a target registry for creating
Box<TargetIsa> trai...

aeb376227e818d102739a357ac54af4752f2eab5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Document ISA builder.

8c48739afd35c4c36dd3fb266daa09b496a39e0a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a settings::Builder data type.

- Move detail data structures into a settings::detail module to avoid polluting
the settings n...

b9baf06fb750986650766737a33e8d1b2594a441 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add support for enumerated settings.

The EnumSetting objects can take one of 256 named values.

1ef72dd5ec5704de81c07adcc74c92aeeff48e29 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add settings::Stringwise.

This trait allows settings to be manipulated as strings, using descriptors and
constant hash-tab...

07e851a222f8741d86cd0dfc2ba11dbf3a09e219 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move simple_hash into its own module.

d152719d93fffa1656a6e273b12e99f828fa0d44 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add ISA-dependent settings for RISC-V.

36ad7da3ece901f826cb658ca7b9cdbd71940627 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Scaffolding for defining settings.

Settings can be defined globally or per-ISA. They are available to code through
a generated Sett...

cfeefde3fc829ae8217e1378662d289b2ffd9a07 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Scaffold implementation of the TargetIsa trait.

More to come here.

6b6939128967de36097838ac3e954ff38104037d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename meta/target -> meta/isa.

Clarify terminology by always referring to a 'Target ISA' instead of just
'Target'. Use 'isa' as...

92f84c655ba7f1b6335238bf5fe9bad0065aa5ca authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an empty isa/riscv module scaffold.

Targeted ISAs will be defined as sub-modules of isa.

c47c52401782a6c17b61a98b44a7cd0f7bc85c97 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't sphinx-autobuild on Vim .swp file changes.

5bd2117ad705bb39da472ee678d5100811e76ceb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Verify that type variables have been fully bound.

The shift instructions have two type variables since the shift amount can be a
differently sized...

24c97ce6e5d85c484e43632f78d8e8509c08b0f4 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use dot syntax to bind type variables on instructions.

Encodings need to refer to concrete instances of polymorphic instructions by
binding type variab...

c1d32167dc65b5225bd0ac472ed69775ba597032 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an Encoding meta-language class.

Start adding some RISC-V encodings too as a way of testing the ergonomics.

9cdf6edd6202a32b853d13fb66350817e316c650 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an EncRecipe meta-language class.

Move the CPUMode reference from EncRecipe to the Encoding itself, allowing
EncRecipes to be shar...

d215b622e4c40371fe8a6191acb9f310386682d4 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a CPUMode meta-language class.

c4faef196ee1436a9c26b8715db760eeb7b7c5a5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Document binary encodings.

Describe the meta-language data structures that are built to represent
instruction encodings.

B...

bd72439fbc1a70a1f8de166a339155ad8b18b0b0 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add PrimaryEntityData marker trait.

Require this trait on the value type stored in an EntityMap to 'unlock' the
methods intended for...

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

549a14bf96e6a76946694a36d1eba370e924ea15 authored over 8 years ago by Morgan Phillips <[email protected]>
Remove uses of EntityMap::len.

80abf8b1f00761debb41f0f6a2d0914c98931080 authored over 8 years ago by Morgan Phillips <[email protected]>
Remove the cfg::predecessors_iter() method and iterator.

This iterator enumerates all EBB references whether they are in the layout or
not. That is usual...

2c1e80b0e0654840d9266d6838413fc556d5918c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Print CFG edges from func.layout instead of cfg.predecessors_iter.

EBBs not in the layout should never be printed as part of the CFG.

02c1bb8f2c44a39997b426ef5dda67bd2e497658 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Improve the structure and comments of the module.

e9cfcf4f780a5a25d41bc3f51a7fe9d7f3eca8bf authored over 8 years ago by Morgan Phillips <[email protected]>
Remove println\!

5a38ca2db72c699d2b165160ec2f2653b7532ba9 authored over 8 years ago by Morgan Phillips <[email protected]>
Add a dominator tree implementation.

19a47d57b3b27860735644e6c98637c14232a6db authored over 8 years ago by Morgan Phillips <[email protected]>
Clean up the CFG representation.

0ce01c1b8dffd46691284ba1f4170da3d5296c8d authored over 8 years ago by Morgan Phillips <[email protected]>
Add EntityMap::with_capacity.

Create a secondary entity map with space reserved for a known range of entity
references.

Add d...

bbdae39cb96e45c922e5487721786a9806155517 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use sub-shells instead of pushd / popd.

The push and pop commands print the directory stack to stdout, while subshells
and cd is quiet.

14027660c5443b28aa1c56ab4dfa6ae5b34b2796 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove innacurate comments.

a9748dff0276f653b6ad6af334ff91a0602aceb6 authored over 8 years ago by Morgan Phillips <[email protected]>
Merge branch 'master' of github.com:stoklund/cretonne into bleh

858d7566312c6dd0cfc53472e812f5fbf4312782 authored over 8 years ago by Morgan Phillips <[email protected]>
Simplify the reverse_postorder_ebbs implementation.

82ff64820c06895ff498538d0777372992e2936e authored over 8 years ago by Morgan Phillips <[email protected]>
Documentation typos.

ad79ad753d53f64a7b5e29cc07bfc36c5c7dabfe authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Avoid cloning levels

e94d7c2a9991a4d9e44026be694e0efdb76e6f81 authored over 8 years ago by Morgan Phillips <[email protected]>
Give the test module a more apt name.

1cd6e35a427882f9b227722c0e3fa59b7b6a5899 authored over 8 years ago by Morgan Phillips <[email protected]>
Fix broken reverse_postorder_ebbs implementation.

The previous implementation was actually a reverse preorder walk.

42b98353636c03c830ef47d9c3ed8beaf0548e97 authored over 8 years ago by Morgan Phillips <[email protected]>
Fix the test-all script so that it works with directories

71bf589af36f0c89c92317f7ed2195f6be824d5a authored over 8 years ago by Morgan Phillips <[email protected]>
Cargo-fmt and cleanup.

400504d3211ad2301505e6d64aea2ee690808475 authored over 8 years ago by Morgan Phillips <[email protected]>
Use cton_reader to simplify cfg traversal tests.

63b58214f7f2526324b73a858594549047aa8117 authored over 8 years ago by Morgan Phillips <[email protected]>
Change variable name to something more descriptive.

bb7ecc8753d4f86d8319c724f70e5246f3d60b40 authored over 8 years ago by Morgan Phillips <[email protected]>
make postorder_ebbs into actually reverse_postorder_ebbs.

This is a more accurate description. Further return the ebbs in a
btreemap so that the index of ...

91ced8df90ea180f2923f16b205151d22662aff5 authored over 8 years ago by Morgan Phillips <[email protected]>
Add an analyze_branch method to InstructionData.

Rather than switching on instruction formats to discover the destination of a
branch, use the an...

ae98edf8cc6fcc70ddd42b552ca1c9199b1f4f12 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Parse the BranchTable instruction format.

Resolve the jump table reference immediately since all jump tables are declared
in the preamble.

20fc675fc0a0fdf09084bdcb4fc2c68c40de10d3 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a keys() iterator to EntityMap.

410c1390d12e064113eca81f1d32ee62ea7fc787 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement jump tables.

- Add a ir::jumptable module with a JumpTableData struct representing the vector
of destinatio...

274671d12a3b9231dd839fd6c5b59479703f47de authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move entry_block() into Layout.

The single entry block in a function is simply the first block in the layout.

Remove the 'entry...

f116f03327ddb270f0d9551372bd88e6f191ed5c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename the 'repr' module to 'ir'.

This module and its submodules define the Intermidiate Representation of the
Cretonne IL.

38815dcca33babe2095ac4d2d305aa5a4c41d720 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Replace btreesets with vectors.

367752be1d337b41bfb293aa75f6063295c60fdc authored over 8 years ago by Morgan Phillips <[email protected]>
Cargo-fmt fixes

bdab73b0c7ad5ce21591035ccda4c8263074b683 authored over 8 years ago by Morgan Phillips <[email protected]>
Add support for postorder traversal of the cfg.

761fb54d8ae3f420abcefeaa11b8c09c666fa6d7 authored over 8 years ago by Morgan Phillips <[email protected]>
Track predecessors as well as successors in the CFG

30eb25d013ece38a16576156bb91910bc2622a3b authored over 8 years ago by Morgan Phillips <[email protected]>
Use EntityMap instead of BTreeMap

2caa802f50ca9f5ee5a65dde1ed5cc9942b483d8 authored over 8 years ago by Morgan Phillips <[email protected]>
Move IR modules under repr/.

Use the cretonne::repr module as a common namespace for sub-modules defining the
in-memory repre...

89ba9626c730be10edf4fa97d019f95dd140691e authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Prepare for repr sub-modules.

6e04ec5df9091d97d50fb55aad354e593119f414 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use DataFlowGraph in Function.

Replace the three tables instructions, extended_basic_blocks, and
extended_values with a single ...

c1806d0ab04ec6d240216e3fb82a623df5fb880b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement separate data flow graph module.

The DFG keeps track of instruction definitions, values, and EBBs.

Store the primary definition ...

39d3a8e3d76db29cc495460a86990753cd67f219 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't require Clone + Default for EntityMap values.

There are two kinds of entity maps:

- A primary map is used to allocate entity references and s...

d64e7fb576a86828e84007920fe1555cbb610d68 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix formatting

f63d7941ede9977847c3ea39f0ead12b63b39bb3 authored over 8 years ago by Morgan Phillips <[email protected]>
Use EBB layout order almost everywhere.

The ebbs_numerically() function was a workaround for the unimplemented EBB layout
order.

8c58fe463169c596b3200e4b4ee4505bfe681665 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement IntoIterator for Layout.

4ee2ab5042c821dd7b9fa47df9cd63f86b74b784 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Replace inst_order with Layout in Function.

The Layout also handles EBB layout, so new append_ebb calls are necessary.

- Rewrite callers to...

e926674b4e48ca61ff3d372e0694ae4470cc5007 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
More layout tests and bugfixes.

Fix bugs in append methods. Linked lists are hard.

2f74efd5fc3258a6a1f3a9ddbc95c4109de16086 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement instruction order.

Each EBB has a linked list of instructions in layout order.

21c2474d4dac59256d7d2a51a19b2ea41d53cffb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Merge pull request #9 from mrrrgn/testutils

Move test utility functions to their own module

0bee6b3c966ec6a564861f30538e71f94dc84a87 authored over 8 years ago by Morgan Phillips <[email protected]>
Add Layout::ebbs() and the corresponding iterator.

Implement some tests, fix bugs in is_ebb_inserted().

a641bdb1f262f32f125c77d14edb2972600bb7f0 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Move test utility functions to their own module

28c1eda4f691c5b0c7d23004b32cfd746c817540 authored over 8 years ago by Morgan Phillips <[email protected]>
Add an EntityRef::wrap() method.

This is the opposite of unwrap(). It converts the ad-hoc null references like
NO_EBB and NO_INST...

b9975f77af140ad43447f9842b11699f683251c2 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove extra newline

8bbc75e39f5d7f186a4190050cf00c666b1c7bca authored over 8 years ago by Morgan Phillips <[email protected]>
Begin a layout module.

The Layout data structure will keep track of the order of EBBs and their
instructions.

WIP.

5c15dcdebb5127cc88a1e5b475054a83050d6a32 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement EntityRef for most of the entities module.

The only exception is Value which has two dimensions.

99464bc29de93ac2a4d7759cf5d248dc4b6d8b86 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an entity_map module.

This supports the pattern of creating structs wrapping a u32 and using them as
indexes into a ve...

191c607bf9f9d842accdead8fe45decc4d1ea66b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Merge pull request #8 from mrrrgn/graphviz

Graphviz

2901198815f15f509db356fd943076719ac81d3c authored over 8 years ago by Morgan Phillips <[email protected]>
Add print-cfg tests

5bcce51bd94568f0401abebd7aa46435a0368c72 authored over 8 years ago by Morgan Phillips <[email protected]>
Id CFG graphs by function name

0cdcf29308b5eea353bacae09127e15a70a516d5 authored over 8 years ago by Morgan Phillips <[email protected]>
Merge pull request #7 from mrrrgn/graphviz

Add a print-cfg subcommand.

428e89c566388e7e574e01f3e997c5c80cfee548 authored over 8 years ago by Morgan Phillips <[email protected]>
Add a print-cfg subcommand.

The command returns parses a .cton file, builds a CFG, and prints it to
stdout in graphviz format.

4a6e53f90d032aa2fa93a36163927bf2c7cf196e authored over 8 years ago by Morgan Phillips <[email protected]>
Merge pull request #6 from mrrrgn/cfg-1

Control Flow Graph

83279026ba3cf3b81e4a3a0d8adcbb7ae74d0783 authored over 8 years ago by Morgan Phillips <[email protected]>
Replace Results with assertions in invariant cases.

It seems reasonable that certain non-recoverable errors during the building of the
CFG should cr...

295a4eb03fa93f3ba80654f5bdab7c1c5003478b authored over 8 years ago by Morgan Phillips <[email protected]>
Remove misleading test comments

79c7ae6233d2db63e5f0a85868251c3445bebe1c authored over 8 years ago by Morgan Phillips <[email protected]>
Cargo-fmt fixes

180eae3bb5c85dbd1a3a12728692489fe91840dc authored over 8 years ago by Morgan Phillips <[email protected]>
Add a Control Flow Graph representation.

The CFG must be instantiated against an existing function but may be
modified after creation

c6b1388fdcd8eaaa6a49273049bcff0b8aebfe2d authored over 8 years ago by Morgan Phillips <[email protected]>
Ignore cargo-fmt and vim related files

84357c340298bf487ee1e4d2d8380f1ab61abcdf authored over 8 years ago by Morgan Phillips <[email protected]>
Add tests for parsing call and return.

ad5e6b14cff7318cb6256f5da9f49a98d6b3adec authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Delete the concept of 'local SSA form'.

This was supposed to make verification fast, but WebAssembly is no longer in
this form since it'...

e7adcf9af942aefa3f68d66828a8ab6796105851 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Define a return instruction.

It is possible to return multiple values from a function, so ReturnData contains
a VariableArgs ...

520a438c42332c8c47a08a5cbad9ccdb6c4c4ca1 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rewrite EBB and value references after parsing.

We llow forward references to values and EBBs, so it is not possible to rewrite
these from the s...

a39e418d320e7d99f2193f8d20b5cb510920a9dd authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't print a space after quoted function names.

02861df78c167343f827411efa275941ebdaf4dc authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Define floating point conversion instructions.

fd9f08c30f54d89d20b571b1654a2cc284bc957f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix the recommended Sphinx version.

The latest Sphinx 1.4.4 produces lots of warnings about four-column indices.
We'll wait for Read...

6971ae4e407fc7f2ccb569a3324a7bc145233888 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix rustc warning about unused Write trait.

84abe288377684a255f6f68cdf51990cecccb471 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Metadefs for integer reduce and extend operations.

Naming is interesting here. Since 'truncate' refers to removing the least
significant digits, us...

6321fd1f5f39917c21fa2ef0c696855c07fa7cdd authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix Travis script path.

ce7524d68f3ab11fff637612fbb03d490b653eca authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Include parser tests in the test-all.sh script.

Move test-all.sh to the top level directory, and also run the parser tests from
this script.

Us...

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