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
When converting from ABI types to original program types, the final
conversion instruction can p...
When we're splitting an EBB argument, we insert a iconcat/vconcat
instruction that computes the ...
Now that we can detach and reuse all values, there is no longer a need
to create a lot of alias ...
This makes it possible to reuse one or more result values in the
instruction that is being inser...
This is convenient for asserting that the right instruction was removed.
2e64bb88baea633ea9b340b4d875246db40353a8 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
This is a generalization of the existing make_inst_results() which lets
you provide some or all ...
We didn't have a way of removing instructions again.
bcb3882ef602baf54d6edf6ddaa84cddee9c71de authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>These methods are used to reattach detached values:
- change_to_alias
- attach_result
- attach_...
All values are now references into the value table, so drop the
distinction between direct and t...
Also remove the type field from all the variants. The type of the first
result value can be reco...
0be78f970cfdca5844a0cada3a8960f9b39ac0a6 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
We're about to change that.
06b52744db657d1ce12900aeea9185dfb4f45eb8 authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>We only ever create table values now.
Simplify legalizer::legalize_inst_results. Instead of cal...
b9808bedc4e590961bd8b73ff9ab2692596c00cf authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
Since results are in a value list, they don't need to form a linked
list any longer.
- Simplify...
00ee850e33a7ea405867639bbe0fe239a5ee1dba authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>Soon, InstructionData won't have sufficient information to compute this.
Give TargetIsa::encode...
9c6a36d36d49cb10374c2ece53848ad0b157d51d authored over 7 years ago by Jakob Stoklund Olesen <[email protected]>
These low-level methods for manipulating instruction result value lists
will replace the existin...
That is now the job of make_inst_results().
08b4c5f52415b5dbd3dfedd4daa48d27b9139869 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Now that result values are stored in value lists in the DFG, these
head-of-list pointers are no ...
We don't want to distinguish between single-result and multiple-result
instructions any longer.
...
Now we can access instruction results and arguments as well as EBB
arguments as slices.
Delete ...
3c99dc0eb48bee1bc2bbbec53632eb7ba46225c2 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This is the same as slice::first(), except it returns the first element
by value.
The implement...
35d52872d9ac734638c27cdd0c8fd1e458d2cea9 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This is the first step of a larger refactoring to represent instruction
results as value lists i...
- Add a dfg.is_inst_valid() method for the verifier.
- Use the inst_args_mut() method when rewri...
Now that we have a value list of the arguments, we can get rid of:
- The first_arg and last_arg...
20ca22f6eb41e9f98be59f6b07c9aa625fb24e8d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rather than returning the head of a linked list of EBB arguments, just
return the whole value li...
This is the first step of the value list refactoring which will replace
linked lists of values w...
Calls are jal with a fixed %x1 link register.
1c890f317dfe4f177f8466ff34a4ee1520f6982a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>ca448d4ede5030b341dc385bbf1a5f49d6a681ef authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Define a MemFlags class, currently holding a notrap and aligned flag.
9d9807688c58db5020f278365c7fa7d24adf6e58 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Any *.cton files in the docs directory are now included when running the
test-all.sh script. Thi...
These are used when lowering WebAssembly sandbox code.
b5237b6a4afe49b771582608e283f762bee21037 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
WebAssembly memory instructions encode a 32-bit unsigned offset that is
used to compute an effec...
c52e3e0b3f1dce0837fa0da8da54c961ad16d3a8 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
af2516e996a48ae8c89447a39195d6f51388d610 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This will be used to represent an immediate 32-bit signed address offset
for load/store instruct...
This affects the comparison instructions which now read "icmp ult a, b".
This mimics LLVM's styl...
Fix a bug in gen_encoding.py when dealing with non-polymorphic
instructions where the type varia...
Change jumps to fallthroughs in the branch relaxation pass before
computing the EBB offsets.
Start with an adjacent_pairs() iterator adapter.
c6e027207c64bd6da431982a12217c29556d32bd authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Stop emitting EBB relocations. Use the offsets computed by
relax_branches() to encode the correc...
Only emit each instruction once, or the offset computations go all
wrong.
Compute exact EBB header offsets and check that branches are in range.
Not implemented yet: Rel...
b5c74fdc25614a73565a68bceb70e1437d570941 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Two new pieces of information are available for all encoding recipes:
- The size in bytes of an...
eb1052718bf0d2997724b3f6a0b18aeea2052272 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The tables returned by recipe_names() and recipe_constraints() are now
collected into an EncInfo...
We need to keep track of code offsets in order to compute accurate
branch displacements.
8353651559b3db82bac49c306855f015c7713226 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
These branches compare a register to zero. RISC-V implements this with
the %x0 hard-coded zero r...
Not all br_icmp opcodes are present in the ISA. The missing ones can be
reached by commuting ope...
This instruction behaves like icmp fused with brnz, and it can be used
to represent fused compar...
This instruction can materialize constants with the low 12 bits clear.
175b26976006309d85a22c552eae1502e23ac97b authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>The ISA has icmp_imm slt/ult with 12-bit signed immediate operands.
c13c318ec4745310a9893cf9b0aa793a1c4acb54 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>This reads better than "typeof(b1)".
d4d76c8d7695712d7ce6525db6795da3899b843a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The meaning of format.typevar_operand changes recently to be relative to
value operands only ins...
Compare a scalar integer to an immediate constant. Both Intel and RISC-V
ISAs have this operatio...
6532cbab6cc2636bd6af8023670d4f18dcede343 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
These are the shift-by-immediate instructions.
8187fd73719a02064f055ba6efd3b64c895588d1 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>These are the BinaryImm formats.
7c9d187b6dbd71a25f89adac3fe020589d4af37c authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Only slt and ult variants are in the instruction set. Other condition
codes must be synthesized.
Consolidate the imm_members and imm_kinds into this list so the
FormatField is the single defini...
When defining an instruction encoding, allow part of the instruction
predicate to be provided as...
Compute an instruction predicate from any constant values given as
arguments for the immediate o...
Compare an immediate operand to a constant value.
b31ca83b919f4724e9054ccfb6fb3ea7eeeb71d9 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Also require all Python functions to have a type declaration.
3b0ac20ce20c80c26ed0b1461d9f103031822a3e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>a9ec28ab7c9526c3dfa477e3460a4c68326ad8d3 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
49766bae1215dfd2cbef489680aca16d044b1ac4 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Declare the Instruction.number opcode number field.
c5f2ef8edba802bf52c22854eeb4cbf02fcc625d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>* Verify integrity of the existing control flow graph of the context.
* Make checking more th...
b94d01f892644f8ac92861251298498ed82bcab4 authored almost 8 years ago by Angus Holder <[email protected]>a82e521291b336fafd4dee46bcf00ba715b3e119 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Wherein we learned that only BoolSettings can be used as predicates.
ae12c94d04307c0c5f8cebd7d684295374ffb525 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The meta language patterns sometimes need to refer to specific values of
enumerated immediate op...
ffeeba7c93ad3764312b6ba6b0534053aafa4c6f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Run the verify_contexti() function after invoking the legalize() and
regalloc() context function...
These two instructions make sense for vector types by simply performing
the same operation on ea...
The carry and borrow values are boolean, so we have to convert them to
an integer type with bint...
These are the R-format instructions in RV32I.
a5d483900240872f60669830c769a38c9b1d1a7a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Also disable spell checking for .cton files. They tend to contain very
few words, and even comme...
* Verify that a recomputed dominator tree is identical to the existing one.
* The verifier now ...
If an instruction doesn't have an associated encoding, use the standard
TargetIsa hook to encode...
This makes it possible to write file tests that verify the binary
encoding of machine code.
Use the meta language encoding recipes to generate an emit_inst()
function for each ISA. The gen...
This module will provide supporting code for emitting binary machine
code with relocations.
A shortcut for calling arguments() directly that goes with the existing
inst_results() method.
This means that whenever we need to split a value, it is either already
defined by a concatenati...
cd52b671e6f81a85bb797f357a10115919d3cd95 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The EBB argument splitting may generate concat-split dependencies when
it repairs branch argumen...
07740b5e3cc14428ec3cd4be8c3ba662665bf19c authored almost 8 years ago by Keith Yeung <[email protected]>
098a48e3324f6c652f9cdecdea29a91d3a9e83b2 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
When the legalizer splits a value into halves, it would previously stop
if the value was an EBB ...
This is needed for rewriting EBB arguments with legalized types.
2ebbc78f74b50e5526afc58609bfd4c1ff597b0e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Legalizing some instructions may require modifications to the control
flow graph, and some opera...
The 'cfg' name was easy to confuse with 'configuration'.
f84e218a932bf76220d7cc0a10fba2375af212ed authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The legalizer often splits values into parts with the vsplit and
isplit_lohi instructions. Avoid...
For symmetry with the vector splitting instructions, we now have:
isplit iconcat
vsplit...
Keep things organized.
159486c70735a87bbc4297dc5350b47ffe314c0d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>As discussed in #3.
Once we know the controlling type variable of a polymorphic instruction,
th...
298cf2ed2110473a4ac89c9ba29b09919383eec4 authored almost 8 years ago by Angus Holder <[email protected]>
c596ea1ac1d94e98fc86cfeb46d980eb84001311 authored almost 8 years ago by Angus Holder <[email protected]>
bb0246c8c1496dcda6441aceb058104b844fdfb9 authored almost 8 years ago by Angus Holder <[email protected]>
The call arguments on call_indirect should not include the fixed callee
argument.
Add legalizer...
e83cccb6fc956c59871284da3bd6544aeebcee8b authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Like the entry block arguments, the return values from a call
instruction need to be converted b...