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
Keep the top-level ir module free of implementation details that are
inadvertently exposed to su...
Delete the StackSlots iterator and move the remaining StackSlotData into its
own module.
Clients should not have to navigate the ir sub-modules to find commonly used
types.
The 'cargo test' command simply compiles each 'tests/*.rs' and runs the
enclosed tests. The 'lib...
The integration tests use both libcretonne and libreader, so moving them avoids
the circular dev...
Each ISA predicate is assigned a bit the the Flags struct, and a corresponding
method is generated.
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]>
Add an isa::lookup() function which serves as a target registry for creating
Box<TargetIsa> trai...
8c48739afd35c4c36dd3fb266daa09b496a39e0a authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
- Move detail data structures into a settings::detail module to avoid polluting
the settings n...
The EnumSetting objects can take one of 256 named values.
1ef72dd5ec5704de81c07adcc74c92aeeff48e29 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
This trait allows settings to be manipulated as strings, using descriptors and
constant hash-tab...
d152719d93fffa1656a6e273b12e99f828fa0d44 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
36ad7da3ece901f826cb658ca7b9cdbd71940627 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Settings can be defined globally or per-ISA. They are available to code through
a generated Sett...
More to come here.
6b6939128967de36097838ac3e954ff38104037d authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Clarify terminology by always referring to a 'Target ISA' instead of just
'Target'. Use 'isa' as...
Targeted ISAs will be defined as sub-modules of isa.
c47c52401782a6c17b61a98b44a7cd0f7bc85c97 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>5bd2117ad705bb39da472ee678d5100811e76ceb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
The shift instructions have two type variables since the shift amount can be a
differently sized...
Encodings need to refer to concrete instances of polymorphic instructions by
binding type variab...
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]>
Move the CPUMode reference from EncRecipe to the Encoding itself, allowing
EncRecipes to be shar...
c4faef196ee1436a9c26b8715db760eeb7b7c5a5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
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]>
Require this trait on the value type stored in an EntityMap to 'unlock' the
methods intended for...
549a14bf96e6a76946694a36d1eba370e924ea15 authored over 8 years ago by Morgan Phillips <[email protected]>
80abf8b1f00761debb41f0f6a2d0914c98931080 authored over 8 years ago by Morgan Phillips <[email protected]>
This iterator enumerates all EBB references whether they are in the layout or
not. That is usual...
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]>e9cfcf4f780a5a25d41bc3f51a7fe9d7f3eca8bf authored over 8 years ago by Morgan Phillips <[email protected]>
5a38ca2db72c699d2b165160ec2f2653b7532ba9 authored over 8 years ago by Morgan Phillips <[email protected]>
19a47d57b3b27860735644e6c98637c14232a6db authored over 8 years ago by Morgan Phillips <[email protected]>
0ce01c1b8dffd46691284ba1f4170da3d5296c8d authored over 8 years ago by Morgan Phillips <[email protected]>
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]>
The push and pop commands print the directory stack to stdout, while subshells
and cd is quiet.
a9748dff0276f653b6ad6af334ff91a0602aceb6 authored over 8 years ago by Morgan Phillips <[email protected]>
858d7566312c6dd0cfc53472e812f5fbf4312782 authored over 8 years ago by Morgan Phillips <[email protected]>
82ff64820c06895ff498538d0777372992e2936e authored over 8 years ago by Morgan Phillips <[email protected]>
ad79ad753d53f64a7b5e29cc07bfc36c5c7dabfe authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
e94d7c2a9991a4d9e44026be694e0efdb76e6f81 authored over 8 years ago by Morgan Phillips <[email protected]>
1cd6e35a427882f9b227722c0e3fa59b7b6a5899 authored over 8 years ago by Morgan Phillips <[email protected]>
The previous implementation was actually a reverse preorder walk.
42b98353636c03c830ef47d9c3ed8beaf0548e97 authored over 8 years ago by Morgan Phillips <[email protected]>71bf589af36f0c89c92317f7ed2195f6be824d5a authored over 8 years ago by Morgan Phillips <[email protected]>
400504d3211ad2301505e6d64aea2ee690808475 authored over 8 years ago by Morgan Phillips <[email protected]>
63b58214f7f2526324b73a858594549047aa8117 authored over 8 years ago by Morgan Phillips <[email protected]>
bb7ecc8753d4f86d8319c724f70e5246f3d60b40 authored over 8 years ago by Morgan Phillips <[email protected]>
This is a more accurate description. Further return the ebbs in a
btreemap so that the index of ...
Rather than switching on instruction formats to discover the destination of a
branch, use the an...
Resolve the jump table reference immediately since all jump tables are declared
in the preamble.
410c1390d12e064113eca81f1d32ee62ea7fc787 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
- Add a ir::jumptable module with a JumpTableData struct representing the vector
of destinatio...
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]>
This module and its submodules define the Intermidiate Representation of the
Cretonne IL.
367752be1d337b41bfb293aa75f6063295c60fdc authored over 8 years ago by Morgan Phillips <[email protected]>
bdab73b0c7ad5ce21591035ccda4c8263074b683 authored over 8 years ago by Morgan Phillips <[email protected]>
761fb54d8ae3f420abcefeaa11b8c09c666fa6d7 authored over 8 years ago by Morgan Phillips <[email protected]>
30eb25d013ece38a16576156bb91910bc2622a3b authored over 8 years ago by Morgan Phillips <[email protected]>
2caa802f50ca9f5ee5a65dde1ed5cc9942b483d8 authored over 8 years ago by Morgan Phillips <[email protected]>
Use the cretonne::repr module as a common namespace for sub-modules defining the
in-memory repre...
6e04ec5df9091d97d50fb55aad354e593119f414 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Replace the three tables instructions, extended_basic_blocks, and
extended_values with a single ...
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]>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]>f63d7941ede9977847c3ea39f0ead12b63b39bb3 authored over 8 years ago by Morgan Phillips <[email protected]>
The ebbs_numerically() function was a workaround for the unimplemented EBB layout
order.
4ee2ab5042c821dd7b9fa47df9cd63f86b74b784 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
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]>Fix bugs in append methods. Linked lists are hard.
2f74efd5fc3258a6a1f3a9ddbc95c4109de16086 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Each EBB has a linked list of instructions in layout order.
21c2474d4dac59256d7d2a51a19b2ea41d53cffb authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Move test utility functions to their own module
0bee6b3c966ec6a564861f30538e71f94dc84a87 authored over 8 years ago by Morgan Phillips <[email protected]>Implement some tests, fix bugs in is_ebb_inserted().
a641bdb1f262f32f125c77d14edb2972600bb7f0 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>28c1eda4f691c5b0c7d23004b32cfd746c817540 authored over 8 years ago by Morgan Phillips <[email protected]>
This is the opposite of unwrap(). It converts the ad-hoc null references like
NO_EBB and NO_INST...
8bbc75e39f5d7f186a4190050cf00c666b1c7bca authored over 8 years ago by Morgan Phillips <[email protected]>
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]>The only exception is Value which has two dimensions.
99464bc29de93ac2a4d7759cf5d248dc4b6d8b86 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
This supports the pattern of creating structs wrapping a u32 and using them as
indexes into a ve...
Graphviz
2901198815f15f509db356fd943076719ac81d3c authored over 8 years ago by Morgan Phillips <[email protected]>5bcce51bd94568f0401abebd7aa46435a0368c72 authored over 8 years ago by Morgan Phillips <[email protected]>
0cdcf29308b5eea353bacae09127e15a70a516d5 authored over 8 years ago by Morgan Phillips <[email protected]>
Add a print-cfg subcommand.
428e89c566388e7e574e01f3e997c5c80cfee548 authored over 8 years ago by Morgan Phillips <[email protected]>
The command returns parses a .cton file, builds a CFG, and prints it to
stdout in graphviz format.
Control Flow Graph
83279026ba3cf3b81e4a3a0d8adcbb7ae74d0783 authored over 8 years ago by Morgan Phillips <[email protected]>
It seems reasonable that certain non-recoverable errors during the building of the
CFG should cr...
79c7ae6233d2db63e5f0a85868251c3445bebe1c authored over 8 years ago by Morgan Phillips <[email protected]>
180eae3bb5c85dbd1a3a12728692489fe91840dc authored over 8 years ago by Morgan Phillips <[email protected]>
The CFG must be instantiated against an existing function but may be
modified after creation
84357c340298bf487ee1e4d2d8380f1ab61abcdf authored over 8 years ago by Morgan Phillips <[email protected]>
ad5e6b14cff7318cb6256f5da9f49a98d6b3adec authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
This was supposed to make verification fast, but WebAssembly is no longer in
this form since it'...
It is possible to return multiple values from a function, so ReturnData contains
a VariableArgs ...
We llow forward references to values and EBBs, so it is not possible to rewrite
these from the s...
02861df78c167343f827411efa275941ebdaf4dc authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
fd9f08c30f54d89d20b571b1654a2cc284bc957f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
The latest Sphinx 1.4.4 produces lots of warnings about four-column indices.
We'll wait for Read...
84abe288377684a255f6f68cdf51990cecccb471 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Naming is interesting here. Since 'truncate' refers to removing the least
significant digits, us...
ce7524d68f3ab11fff637612fbb03d490b653eca authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
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]>