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

Use a closure to control the convert_from_abi() function.

This will be used for converting function return types soon, so
generalize it a bit.

a36160aa20d9561ac2533787afaa5e031d6b5849 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Break out differently purposed tests from abi.cton.

- abi.cton is for testing the actual RISC-V ABI.
- legalize-abi.cton is for testing the legalize...

e4a83c8063fa4699a5fbfd66f7b2cc40073cbb2f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add attach_secondary_result and append_secondary_result.

These low-level functions allow us to build up a list of instruction
results incrementally. They...

6549065491e6114375ade004543154833c9d746d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add DataFlowGraph::redefine_first_value()

This makes it possible to compute the first result of an instruction in
a different way without ...

578fec90cd122d9626f507619a586490bdb7ae90 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't return a Values iterator from detach_secondary_results().

Instead, just return the first of the detached values, and provide a
next_secondary_result() met...

89f45a5c824c4d08bd66f68baf7f670ca8448bed authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename take_ebb_args to detach_ebb_args()

This better matches the detach_secondary_results cousin.

Also rename the converse put_ebb_arg -...

765c866971926a78d917d3fadcb79b9f21913761 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Legalize ABI arguments to call and return instructions.

The type signatures of functions can change when they are legalized for
a specific ABI. This mea...

28153c97eaf9f32c163aac646ee256009f78db95 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add DataFlowGraph::display_inst().

This method returns an object that can display an instruction in the
standard textual format, bu...

aa400d46ecde03ea1b4a5d65531ab178599e3ba1 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a primitive debug tracing facility.

When the CRETONNE_DBG environment variable is set, send debug messages
to a file named cretonne....

210530da9c31f3014bf492dbe775ad7fa302a8b2 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix logic bug in requires_typevar_operand.

The Python code computing this property had a bug. The property has only
been used for optimizin...

d86854b286b442e008a7bbe62a43f637dd797655 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add OpcodeConstraints::fixed_value_arguments()

Now that some instruction formats put all of their value arguments in a
value list, we need to k...

b4b913cc543aa601bf6b62bd423eda06e84c5fe8 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Create alias HashMap in parser context

a18ad5a306f221ee894eb81ddeba600a11ac228e authored almost 8 years ago by Keith Yeung <[email protected]>
Parse instruction results separately from instructions

ce1ad378630ecc095d3c5c6f03d73956b5293dab authored almost 8 years ago by Keith Yeung <[email protected]>
Make value aliases during references rewriting

e1d17b2acf4d275521b360e0d8509bd6e97a7927 authored almost 8 years ago by Keith Yeung <[email protected]>
Allow type inference to go through value aliasing

c6f8bfff0b2c475631a608b691eaf308f7d8a3c5 authored almost 8 years ago by Keith Yeung <[email protected]>
Add unit test for value aliasing

c190884bca8d9f2fd3818a71c4efc29257a845c7 authored almost 8 years ago by Keith Yeung <[email protected]>
Upgrade to rustfmt 0.8.0.

Lots of changes this time.

Worked around what looks like a rustfmt bug in parse_inst_operands w...

32709a56ca8ef31bc15c311f0d56976b782fe26c authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Expanded instruction integrity checking in the verifier, now verifying result types and entity references.

849f3f3e9bba85612db6bd4f256511678139c50e authored almost 8 years ago by Angus Holder <[email protected]>
Add a grow_at() method to EntityList.

This method opens up a hole in the middle of a list where new elements
can be written.

d9a0c0d05601b07c51a2623b591cc4ad7b20bff8 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add take_value_list and put_value_list methods.

Any code that needs to manipulate a variable argument list on an
instruction will need to remove...

5f2e37e05c3ffc27dcf6cd14a65cd28046a57a2c authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Added ControlFlowGraph::recompute_ebb for incremental CFG updates.

404a88f58197edf93fe3fe4c4c451200f4384207 authored almost 8 years ago by Angus Holder <[email protected]>
Define boolean conversion instructions.

27e7945f63f437444d3ca35db464beac4bb59e08 authored almost 8 years ago by Angus Holder <[email protected]>
[B-tree] Initial comment to describe the design choices.

1ebf0fd81517c70618fc3f058e64f56589c39a63 authored almost 8 years ago by Davide Italiano <[email protected]>
Remove the value_list and boxed_storage format flags.

The value_list flag can be inferred from the presence of VARIABLE_ARGS
in the operand list.

The...

1b6702ceba6fdca7c53078c139699a90a73aea68 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Coalesce some formats into MultiAry.

Allow some flexibility in the signature matching for instruction
formats. In particular, look fo...

519eb1934be15b8d5ca080acb2d34137bf21e916 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove the vconst instruction and the UnaryImmVector format.

No instruction sets actually have single instructions for materializing
vector constants. You al...

6021da8e1c8ce9eea95bfe32954b62234695e1e7 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Separate immediate and value operands in the instruction format.

Instruction formats are now identified by a signature that doesn't
include the ordering of value...

60daf3e76b6e64a3fef742a5abb39eae3eb4e44a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Eliminate InstructionFormat.value_operands and .kinds.

Part of the refactoring of instruction formats. This list is now stored
in the instruction itsel...

c480f2264a3f7fbb89bcad9d516110960a17dd4f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Change index domain for typevar_operand.

An instruction format is now seen as having two separate operand lists:
immediates and values. C...

405cc14522171a602ad324cee04e95ef71b37b04 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Eliminate InstructionFormat.members.

This field is no longer needed. We can use imm_members to get the names
of immediate fields, and...

2c845ad65c5a83840d99eb39ff54a8c8628e678a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Avoid using 'members' and 'value_operands' in the legalizer.

Use the new Instruction fields instead.

c1fa8fbb61017091bf965fee5425832bddad584d authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Change InstBuilder low-level format constructor signatures.

The per-instruction format low-level constructors in InstBuilder should
be independent of the re...

be7ff71b151d92ff375503963e01cc0df5901b4e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add value_opnums and imm_opnums fields to Instruction.

These two tuples contain operand indexes of the explicit value operands
and immediate operands r...

2b209c791db1bbefddb53f6777b52794dab76e9f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Clean up lifetimes a bit.

No functional change.

e217b04347c70dd2c3f8afc83341b81abce6f408 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Initial B-tree interface.

f4d43101d08bb6e49cf43c088c66cae69125d04c authored almost 8 years ago by Davide Italiano <[email protected]>
Simplify the arguments() return type.

Now that variable arguments are always stored in a value list with the
fixed arguments, we no lo...

f451cf42c8f81586211125d62b6209abc558ef51 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Python InstructionFormat refactoring.

Make some changes that will make it easier to get rid of the
'value_operands' and 'members' fiel...

703762a67c527da07f90a8a567bbf29082f74428 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Remove some has_value_list workarounds.

Now that all variable_args formats use has_value_list, we can remove
some workarounds that allow...

cd06b176ac99036d222470ea197b1033df9c8780 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Convert return formats to value lists.

With the Return and ReturnReg formats converted to using value lists for
storing their arguments...

582a048089e13190405bfe0d2071ba65521827f4 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Convert the Branch and Jump instruction formats to value_list.

The Branch format also stores its fixed argument in the value list. This
requires the value pool...

1135a89af9d5978e194f3f156eb0cbf0222a58e0 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use value lists for call arguments.

Add a new kind of instruction format that keeps all of its value
arguments in a value list. Thes...

364b8e5f0aa0671e058fba74a265497770f3ca23 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Added parsing of argument locations for functions and signatures.

81f26cfbba2c184201ccd3eb74419a25cc0f42d8 authored almost 8 years ago by Angus Holder <[email protected]>
Upgrade to Sphinx 1.5.3

Read the Docs is now using the latest version of Sphinx, so upgrade our
recommended version too....

3e87092ce8aae9e144e299dab2b7691f35b86426 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Some refactoring, relaxed error handling so we allow encoding specifiers even without a unique ISA.

41e4ea91586520385110c6a4cc8d7686cc1e257c authored almost 8 years ago by Angus Holder <[email protected]>
We now parse and record a ValueLoc for each SSA value result of each instruction. Code currently not passing tests.

cfdecfdcbf738a7017aa543a7542265fc77231df authored almost 8 years ago by Angus Holder <[email protected]>
Handle a half-full func.locations map.

If func.locations has not been properly resized to have an entry for all
values, we should just ...

bc1901b766782176c9c2edede466de09387eee15 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add is_call and is_return instruction attributes.

58756e5d3463749ede0188e37cf0a29d2f2d06e5 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use a unique ISA in 'test cat' file tests.

Add a Function::display() method which can include ISA-specific
information when printing the fu...

7a45aeebebf1820564ccfdf615633d1e8800f6f2 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Added tests, some refactoring, fixed a parsing bug.

10f86baf63b1b6fdacc0c9f625cf3dbf0ae98ac0 authored almost 8 years ago by Angus Holder <[email protected]>
Added parsing of instruction encodings and result registers specifications.

a081b09c94fe76208dfb0d59463a29742b657d02 authored almost 8 years ago by Angus Holder <[email protected]>
Strip trailing white space from regex: directives.

This was particularly confusing when reading a file with Windows line
endings. The CR would beco...

fd9d7fae7668dd768029785d971095f1bb14a7f0 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement From traits on ArgAction for convenience.

3578fbc42868bb924ef4162a4b7947a59c2b32ea authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Heed uext and sext annotations on RISC-V arguments.

Translate the small integer arguments to i32 or i64 with the appropriate
extend and ireduce inst...

83d3a1020dc8bc332ee21a244c02dd46fe685f89 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add vsplit and vconcat instructions.

Add support for two new type variable functions: half_vector() and
double_vector().

Use these t...

25677d1bd8b20ac2a10cb1fa7a90783cc7f84a28 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Legalize entry block arguments to match ABI types.

Insert conversion code that reconstructs the original function argument
types from the legalized...

5d266acb5f1bda662fe4595ddb75468ca9a21fcd authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add take_ebb_args(), put_ebb_arg() method pair.

These two methods can be use to rewrite the argument values to an EBB.
In particular, we need to...

5185cce1e9f5ca4a0961c74fa50b04c16f90c58e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Implement legalize_signature for RISC-V.

Add an abi module with code that is probably useful to all ISAs when
implementing this function....

e84a4e41a0de6aa18e075257a62cfc68598378c4 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a legalize_signature method to TargetIsa.

This entry point will be used for controlling ABI conventions when
legalizing.

Provide an empty...

408395db256db4a51c30647e0784e5633d1253ce authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Use ISA information to display function signatures.

The argument locations contains register unit references that we want to
display with their corr...

cb3e503f07ab81f7d7a6a11a320a91157cc93a2f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add {ValueLoc,ArgumentLoc}::display().

These functions return an object containing the necessary ISA info to
print a ValueLoc or Argume...

00772fb6c40eeee12508a3e01e62c4c09f094f96 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fixed for mypy 0.501.

The List and Dict types are no longer implicitly available. They must be
imported from typing.

...

8c5a69eb4727d4fc09d02cdc8c15f89e4aa6ec7e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
[EntityList] Fix typo. No functional change.

6d3ee32f7b7cd02cbef285069d8a8dff9bbfa71a authored almost 8 years ago by Davide Italiano <[email protected]>
Require a current Rust version.

Rust 1.12 did work at one point, but Travis is testing against the
current stable and beta relea...

8616db60dc5a6e19dbcc177c84d75e56d4af8993 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Converts all try! macros to ? syntax.

Fixes #46

7459fee71a85e3cb12507b451308136c03e363b5 authored almost 8 years ago by rep-nop <[email protected]>
Ran rustfmt

7edbc90d5e0c9aa65e7e66f25b76b8648a471d02 authored almost 8 years ago by rep-nop <[email protected]>
Fixes formatting for settings.rs

9f8748ee086351b4e14fc4219fe5793a553949cd authored almost 8 years ago by rep-nop <[email protected]>
Fixes error on propagating a Result<()> with the `?` operator

077f39d8daae07988c103b200797b3edbb95c1ea authored almost 8 years ago by rep-nop <[email protected]>
Add ABI annotations to function signatures.

Specify the location of arguments as well as the size of stack argument
array needed. The ABI an...

c8be39fa9d06ccf7fb5765c125c16672cebce992 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add an ArgumentLoc data type.

This will be used to amend function signatures with ABI lowering
information.

15e0822ac393fdfa5e55de77695e3eaad640e0fe authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a section about implementation limits.

Fix a few other minor issues with the documentation.

b51cf57e3982d9c204e5fe2b59a3eeb28205ea9a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Convert try! to ? in extfunc.rs

afd42cf9c2a338a7718a5a03440539642f52327c authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Added tests, some fixes.

a35d946bc495b8f0f86cbbf3d90003ac55d1ff20 authored almost 8 years ago by Angus Holder <[email protected]>
Lexer can now scan names, hex sequences, brackets and minus signs.

0b310017b703d3369fdbf32bd6114e76e078afa4 authored almost 8 years ago by Angus Holder <[email protected]>
Shortened comment to pass lint.

bf26fffc924fdff0a845dc7fe7c72c451dafc24f authored almost 8 years ago by Angus Holder <[email protected]>
Add a register allocation context module.

Collect the data structures that hang around between function
compilations.

Provide a main entr...

83571028d951ef1ef6cafa500e15fd90147e250f authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
SSA register coloring pass.

This is a bare-bones outline of the SSA coloring pass. Many features are
missing, including:

- ...

329e51ac4fb3fadcd66b3d3369a3fd4465c0247e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Also write out register assignments in write_instruction.

The value locations appear after the encodings:

> [R#0c,%x2] v0 = iadd vx0, vx1
> ...

ccda0a192c42bc9c1028128b83132d22ffce8166 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a 'regalloc' filetest command.

Run functions through the register allocator, and then filecheck.

4ba5cfeed3cfe447106c7c2f0f934cda25a9c9bf authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Fix test case that I missed before.

75a426a81212a8d8d98f2d7bb121836f50a36874 authored almost 8 years ago by Angus Holder <[email protected]>
Removed unnecessary documentation.

2ec7412a81ca6a06d6674991916941bd689019ac authored almost 8 years ago by Angus Holder <[email protected]>
Add assertion that the NonZero optimization works on Option<Opcode>.

81a6e343ad884578a8f97c9b181b3529758c3d5f authored almost 8 years ago by Angus Holder <[email protected]>
Removed the Opcode::NotAnOpcode variant, replaced its uses with Option<Opcode>, and used the NonZero optimization to maintain the small 1-byte size of an optional Opcode.

a4e4776087ac368ee52c8d256478464c1f16b66c authored almost 8 years ago by Angus Holder <[email protected]>
Documentation fix for what appears to be a minor copy-paste mistake.

3d0240d2449eb1d5b405dc8cf634fdb32c275ebd authored almost 8 years ago by Angus Holder <[email protected]>
Add return_reg encodings for RISC-V.

62334b26b4436cf03d798cc9ebe850bc5ed4a68b authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Compute the controlling type variable accurately.

Some polymorphic instructions don't return the controlling type
variable, so it has to be comput...

a7d24ab1dcc87d6ea04216b76407dd7c109abe4a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a return_reg instruction to the base instruction set.

Register-style return is used by all RISC architectures, so it is
natural to have a shared instr...

20ff2f0025f6c74a4fa276b0cc189886d6fb1d3a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Create live ranges for dead defs.

When the liveness pass implements dead code elimination, missing live
ranges can be used to indi...

74eb13c17a6e648b58117ff6188674f2a0e85764 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Improve assertion text for missing live ranges.

706720eba930b6891016143f1c25fcc975eb2531 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Make the DominatorTree reusable.

Add a compute() method which can recompute a dominator tree for
different functions.

Add a domi...

fa205d049dcb13d271839b34a61b4fa8f2c23de3 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Make the ControlFlowGraph reusable.

Move the flow graph computation into a compute method which can be
called with multiple function...

0f29fc7a526ea561f0e1180e6e2fb050529859f8 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Return slices instead of &Vec references.

We Don't need to expose the internal control flow graph representation.

793b3a140aba0eda5aa69435f9aebabbe03bd61a authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a compilation context struct.

This will provide main entry points for compiling functions, and it
serves as a place for keepin...

518d30b3793b57182a01afeca65879709da832ea authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Give register classes a name.

This is just for better error messages etc.

3072728d375e88e428a1313bc36177bd44533b5c authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Cache the affinity in LiveValue.

Most of the register allocator algorithms will only have to look at the
currently live values as...

e182bfa9adff305ab6a3a3c733131b11057435e4 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Return slices of live-ins and arguments from ebb_top().

The coloring algorithm needs to process these two types of live values
differently, so we may as...

efab6d0214f543e5f97782d9a53712f05c603b8e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Return RegInfo by value from TargetIsa::register_info().

The struct is just a pair of static references, and we don't need the
double indirection.

23614675363ae8695d8a9b17ffc1ef57af2d9422 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a contains_key method to SparseMap.

8d7756c06b4e24675068335020f41bae391342d5 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a Layout::next_ebb() method.

This lets us iterate over the blocks in a function without holding a
reference to the layout.

71ec92281ced60cfe7638cadc7ee153126deb187 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Live Value Tracker.

Keep track of which values are live and dead as we move through the
instructions in an EBB.

e3480987bd320583f0f8a0035854e589fd7ffb3e authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>
Add a partition_slice function.

Partition the elements in a mutable slice according to a predicate.

6567eca21ec3448e513f94185699875a9bcfcd57 authored almost 8 years ago by Jakob Stoklund Olesen <[email protected]>