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
LiveRanges represent the live-in range of a value as a sorted
list of intervals. Each interval s...
Each live range has an affinity hint containing the preferred register
class (or stack slot). Co...
4ae7fd2a372806cdc1b4cfdcb37512b2071bda0f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
On ISAs with no instruction predicates, just emit an unimplemented!()
stub for the check_instp()...
Like a vector, but with a tiny footprint, and allocated from a pool so
all memory can be release...
An SSA value is usually biased towards a specific register class or a
stack slot, depending on t...
These were found by the spellchecker.
a395f01b3eafe36beeadf744e337ec1f30208eb6 authored almost 8 years ago by Andrea Canciani <[email protected]>The nightly compiler isn't able to compile rustfmt in 10 minutes. This causes Travis CI to termi...
7e54cdb4f55482d74619f87f54c8cee575db813f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>0d3990c3945cd1ef0ceeeeea7b84044de2d96236 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The built rustfmt should be cached.
6e33173fce77d2d1f262f6f1e25a92e6b44a8bd5 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>5b71ec922a3257190a918af9d5a622859404e685 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
c132b8c328c74687da3b7da38b0ed456559985ad authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Try switching to Trusty to get a newer Python 3.
188ffb9881bdab7b52f6bf853c2e66c93de4bbc1 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Try to go via python3-setuptools instead.
f2b567b83f8e30d94813b1ad14187574e5bbac18 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Then use pip3 to install dependencies.
27e735b028bb6563f736e7df6a97913b887931e3 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>8635aedc20ee1230511d6a8a22c8070b771ef1a4 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
c111361e19ca8b60e9e6d2de46765f87f9cfe76d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
42a0c27b246abca0d79b7db21a8aedba135e30cd authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The Python style enforcements are easy to miss otherwise.
2932d41f183a17e7dace0b334232a79df98643ae authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Ensure that the set of register classes is closed under intersection.
Provide a RegClass::inter...
672e4abd7e619470433a2b286681bdb1a4423b69 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Every encoding recipe must specify register constraints on input and
output values.
Generate re...
0394f3503480497b346dcf3bbb8781c0527a698a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This set of available register units also manages register aliasing in
an efficient way.
Detect...
58dedb673a09739abc048b21d8a73abb542fef04 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Add a mechanism for defining sub-classes of register classes.
ae926157c29c900621b2e98d07a742a7ab32b67a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>ac798c1aed5227828b578f62261eabe2f660697a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This has been superceded by PackedOption.
8f2ca7c4718a3090dc6d41a82d581fc26aa56c4d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Clean up comments.
Add an assertion to check that PackedOption is working as designed.
1221d942727196490ca60b69a9f33eddbf2901b7 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Also rework the algorithm to be more robust against unreachable blocks.
- Add an is_reachable(e...
4aa5c313ea96021e1942e694d7f1dabdd7500691 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
- Remove NO_VALUE and ExpandedValue::None.
- Remove the Default implelmentation for Value.
- Ins...
This was only used for the comment rewrite mechanism, and we can just
predict the next allocated...
This also revealed that the last_inst() method should return an Option.
3fc0f802235d623fb0373472418afc9737603639 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>The doubly linked lists are terminated with None.
Remove NO_EBB and the Default impl for Ebb.
52db486500c902bd8788994334ca9ab957f1665f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>Avoid NO_EBB.
5fc222348d3a25db8ccab1402938bebd6dd9965b authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
These types can be wrapped in a PackedOption now, so we don't need the
NO_* constants and defaul...
Implement ReservedValue for all the entities.
c041a51e2ea90b6a07db048eb8eba864af244629 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
The PackedOption<T> struct uses the same amount of memory as T, but can
represent None via a res...
7b80bd03e30d74bb408fac150580901a659b5e17 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
This code is best tested with larger functions with more EBBs.
Perhaps a new file-test category ...
Make it possible to iterate backwards over the instructions in an EBB.
8390c829d353bf1deca9fe02443b951e75e40191 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>This requires the value number to be stored in the live range itself.
29777e26eedf8313ab97bf1b74b65d9a94aa0ad3 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>This is simply the slice iterator for the dense vector.
- map.values() returns an iterator with...
a26a8b5f0d0af9526370db4d268806c732fcaffc authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>This implements the classic Briggs/Torczon sparse set construct.
Adapt it to our existing Entit...
56177ce351562632e3c428ebeafa6803631dcb1b authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
We will track live ranges separately for each SSA value, rather than per
virtual register like L...
The ProgramOrder::cmp() comparison is often used where one or both
arguments are statically know...
Assign sequence numbers to both instructions and EBB headers such that
their relative position c...
893a630ca0fe59750819bdf755e583b971dcd776 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Program points are used to represent a linear position in a function.
Thus will be used for the ...
This table holds the result of register allocation.
f9af88c49e8c4da64d9bc1e30434aaf050b983df authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Python coding style is verified by the lib/cretonne/meta/check.sh script
which is not run as par...
for InstructionData. Use generated `is_terminator()` for `Opcode`
instead. `is_terminator`, `can...
generate `is_branch`, `is_terminator`, `can_trap` methods for `enum
Opcode`.
The intel, arm32, and arm32 targets were only defined in the meta
language previously. Add Rust ...
Use the information in the ISA's registers.py files to generate a
RegInfo Rust data structure.
9cdccf66912ebf7db650f774bdaf017c923cce0f authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
977adddc0ac04f4cc0b56f9e6010bff46a3fbf14 authored about 8 years ago by ranma42 <[email protected]>
a8cd8bc18bf0da35d9bf2d25552b25cf5998a6ee authored about 8 years ago by Jacob Shaffer <[email protected]>
4192ba0532cfdd0aeea7fe8602493e57f148f606 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a RegBank class for describing CPU register banks.
Define register banks for all the ISA st...
b0b6a8f6935900a34be62f830815709de1c33e66 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
- is_power_of_two
- next_power_of_two
Make sure we run doctests on these functions.
c20d7d8f138ac184e3c82f910d6809a0e6b42bd2 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>The Intel ISA handles both 32-bit and 64-bit code.
ARM is split into separate arm32 and arm64 I...
77c672a2793afd91c8407a8e1d40c57b7657596d authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>856b8c99aaa3196fcaa544a7bd0a4e45924305c4 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use the inferred type variables to construct a type argument for builder
methods. This is for th...
Expand foo_imm into iconst + foo.
d76280afba31afc5571a9e7a9fb4eda885ddeb93 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Generate a Rust expression that computes the value of a derived type
variable.
Each instruction used in a pattern has constraints on the types of its
operands. These constrain...
This reduces the set of types a type variable can assume.
This implementation is not complete y...
935da5946f951a8a22f353901022089f1881b11c authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>Strips out any type variable copies from an expression.
6fd5c6195d34524415b0e86bdf610fb29d42eba7 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add TypeVar constants representing the available type functions, and a
TypeVar.derived() static ...
dd326350ffd50b976a632e8a26e8848556fa3416 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
A few operands have a fixed type assigned. Create a singleton type
variable for these exceptions...
9327d567b4474d58ffa37b15536cb0af825835cc authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
The cretonne package is now split into two: cdsl and base.
bd7662326649714ca76d5132328540ae7f2415ca authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
- cdsl.instructions defines the Instruction class.
- base.instructions defines the base instruct...
- cdsl.ast defines classes representing abstract syntax trees.
- cdsl.xform defines classes for ...
- cdsl.formats provides classes for describing instruction formats.
- base.formats provides conc...
fa7dc6825aab5f167155a2f363837658c87223ea authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
This method caused lots of import cycles when type checking.
Use isinstance() in the Operand co...
93a1387f2f9360236784b8888423e46adcd35a9d authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>- cdsl.typevar defines TypeVar and TypeSet classes.
5498169ca0aafad318ca9b3ee911a5112fe94027 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
- base.formats defines instruction formats.
- base.entities defines kinds of entity references.
...
- cdsl.operands has the Operand and OperandKind classes.
bb28dc6686171352440a80368daa456f400c0371 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
- cdsl.predicates defines classes for describing predicates.
- cdsl.settings defines classes for...
We want to separate the Python classes that make up the DSL used to
define the Cretonne language...
1e1830aaa6108e57cf4c6c22fc1b6837c36d4edd authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
01494b1a47bf23c09a5bf9943f5d43fced501f0d authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an assertion for the value placements that we don't support yet.
1. A primary result in the...
1e2f3c0ed48fe5bddf08f6a29d3ade4d0c16697b authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
Since we're deconstructing an instruction anyway, go ahead and resolve
any value aliases on its ...
If a secondary value in the source pattern becomes a primary value in
the destination pattern, i...
When the extended_values table is empty, the value to resolve is
definitely not an alias, but we...
If an instruction uses any values that are aliases of other values,
print out the alias mappings...
Provide a generic way of accessing the value arguments on an
instruction. This is provided as tw...
Utility functions for converting &T to an &[T] slice with a single
element.
When expanding iadd_cout, the original instruction is replaced with an
iadd, and an icmp is inse...
Include the test file preamble comments when building a filecheck
instance for every function in...
Comments preceding the first function are not associated with any
specific entity in the file. P...
When an illegal instruction is replaced with other instructions, back up
and revisit the expande...
Make it possible to move a cursor to a new position.
In the current implementation of Layout an...
63fc81541e90bc4256a2caacb8338ecd7e5edf79 authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>RISC-V 32-bit tests for band.i64, bor.i64, bxor.i64.
9086c6c8f063cd4e724766e726ca40b2eb18eddc authored about 8 years ago by Jakob Stoklund Olesen <[email protected]>
When an instruction can't be encoded, provide a viable legalization
action in the form of a Lega...
When it is known that a value is the first result of an instruction, it
is safe to unwrap the in...
Begin emitting legalization patterns in the form of two functions,
'expand' and 'narrow' that ar...
When a Var is used in an XForm, it can be defined in the src or dst or
both patterns, and it is ...