Aaron Power
09f2b78b14
Added FunctionBuilder::{call_memcpy, call_memset, call_memmove}
2018-09-23 11:25:39 +01:00
Aaron Power
c187e7a345
Replaced LibCall's fmt::Display implementation
2018-09-22 21:43:31 -07:00
Dan Gohman
d514cec065
Avoid unneeded '&'s in let patterns.
2018-09-19 20:11:37 -07:00
Dan Gohman
53a0c6c67f
Update to the rustfmt in rust 1.29, which is now stable.
2018-09-13 12:59:25 -07:00
Maddy
52e6b07058
Update the reload pass to replace copies with fill/spill instructions.
2018-09-12 14:15:45 -07:00
Dan Gohman
112e4a6083
Add a use std::vec::Vec; to fix the no_std build.
2018-09-04 21:57:32 -07:00
Dan Gohman
d4b8622393
Rename the VOID type to INVALID and clean up obsolete comments.
...
The VOID type isn't used for anything resembling what "void" means in C,
so rename it to INVALID to avoid confusion.
2018-09-04 21:46:22 -07:00
Dan Gohman
ca9da7702e
Reorganize the global value kinds. ( #490 )
...
* Reorganize the global value kinds.
This:
- renames "deref" global values to "load" and gives it a offset that works
like the "load" instructions' does
- adds an explicit "iadd_imm" global value kind, which replaces the
builtin iadd in "vmctx" and "deref" global values.
- also renames "globalsym" to "symbol"
2018-09-04 21:09:04 -07:00
Kaz Wesley
7e571f4a49
Print value aliases at referrent definition ( #492 )
...
* Print value aliases at referrent definition
Closes #488 .
2018-09-04 15:02:46 -07:00
Dan Gohman
8e2d01a675
Add an index_type field to Table.
...
This parallels the `index_type` field in `Heap`.
2018-08-28 14:28:43 -07:00
Dan Gohman
eb439c9a68
Fix legalization of heap_addrs with 32-bit indices. ( #480 )
...
This makes several changes:
- It adds an index_type to heap declarations, allowing heaps to specify the
type for indexing. This also anticipates 64-bit heap support.
- It adds a memory_type to deref global values, allowing deref globals to
have types other than pointers. This is used to allow the bound variable
in dynamic heaps to have type i32, to match the index type in heaps
with i32 index type.
- And, it fixes heap legalization to do the bounds check in the heap's
index type.
2018-08-28 13:37:33 -07:00
Dan Gohman
6af407144c
Remove Signature's argument_bytes field.
...
It's not currently used. If we do need such information, it would be
better to compute it on demand.
2018-08-28 13:19:59 -07:00
Grégoire Geis
0e67255f52
Fix error not reported if at least one other error expected. ( #485 )
...
* fix error not reported if at least one other error expected.
* Fixed unused extern crate error if wasm feature is not enabled.
* No longer reporting deref cycles multiple times.
* Fix filetest type_check.clif.
* Switched comparison order for perf.
* Fixed isa/riscv/verify-encoding.clif filetest.
2018-08-28 10:33:46 -07:00
Grégoire Geis
8e74a4f8fc
Pretty printing preamble errors. ( #472 )
...
* Pretty printing preamble errors.
2018-08-27 09:38:44 -07:00
Dan Gohman
3d89a8645b
Fix rustfmt errors.
2018-08-16 15:26:53 -07:00
Grégoire Geis
e2badb0ad6
Improvements to error reporting ( #470 )
...
* Fixed error reporting.
* Fixed compile time error when wasm feature is disabled.
* Fixed valid instructions not being printed in print_function_error.
* Fixed errors print_function_error not writing valid instructions after end.
* Made multiple checks non-fatal.
* verify_global_values is no longer fatal.
* Slightly better formatting of errors in pretty_verifier_error.
2018-08-16 11:34:52 -07:00
Dan Gohman
932b4ef9f3
Fix a few declarations for the no_std build.
2018-08-14 12:48:47 -07:00
Grégoire Geis
dbc547091f
Verifier now accepts multiple errors ( fixes #387 ). ( #452 )
...
* Verifier now accepts multiple errors (fixes #387 ).
2018-08-14 10:55:10 -07:00
bjorn3
3f582f7cbd
Legalize br_icmp ( #449 )
...
* Legalize br_icmp
2018-08-13 18:31:39 -07:00
Dan Gohman
51698f93f2
Merge branch 'master' into bforest
2018-08-13 15:55:31 -07:00
Dan Gohman
4769e67468
Fix a few declarations for the no_std build.
2018-08-13 12:52:43 -07:00
Dan Gohman
d4a83576e4
Add a few miscellaneous comments.
2018-08-13 12:51:49 -07:00
Dan Gohman
cc4bf1c7fb
Deny unstable_features in "std" builds.
2018-08-13 12:51:49 -07:00
Benjamin Bouvier
a044f58cea
Fixes #404 : Use log.rs and a file-per-thread logger instead of the dbg! macro;
2018-08-13 12:51:14 -07:00
Amanieu d'Antras
0b548c720c
Don't make the Comparator a type argument for bforest
2018-08-12 15:46:35 +02:00
Amanieu d'Antras
ae3a3c368b
Move bforest into a separate crate
2018-08-12 15:46:35 +02:00
Benjamin Bouvier
f7e481d9ac
Implement wasm saturating conversions;
2018-08-09 19:50:41 -07:00
Sergey Pepyakin
9dbfbbde10
Stack Limit as an Argument Purpose ( #372 )
...
* Initial approach.
* Move stack_limit check before opening the frame
* Account for GPRs and frame pointer in stack check
* Check stack_limit example.
* Remove stack_limit attribute code.
Amends #359
* fmt
2018-08-04 06:16:21 -07:00
Bruce Mitchener
76a7efc8db
Clippy improvements ( #408 )
...
* clippy: Allow subsec_nanos usage for now.
The recommendation from clippy requires Rust 1.27, but we currently
support Rust 1.25 and later.
* Simplify ref pattern matches.
This was recommended by clippy.
2018-08-02 22:10:51 -07:00
Dan Gohman
1b30265c5c
Define a "table" concept.
...
"Table" is to WebAssembly tables as "Heap" is to WebAssembly linear
memories.
2018-08-02 15:21:34 -07:00
Dan Gohman
cd75176f10
Update to the rustfmt in rust 1.28, which is now stable.
...
Also, rustfmt's --write-mode=check is now named --check.
2018-08-02 09:55:40 -07:00
Dan Gohman
26d122306d
Don't attempt to shrink regfill/regspill/regmove instructions.
...
This is a temporary workaround for bugs such as #420 , where normal
operand constraint checking doesn't correctly handle such instructions.
2018-08-02 09:53:25 -07:00
Dan Gohman
c61f8a5baf
Rename langref.rst to ir.rst.
...
This aligns with our use of the term "IR" rather than "IL" or
other terms involving "language".
2018-08-02 09:18:59 -07:00
Dan Gohman
bc8e5f82c8
Add use declarations needed for no_std mode.
2018-08-01 14:10:54 -07:00
Dan Gohman
f89cb1df64
Fix the test script to return an error if formatting diffs are found.
2018-08-01 13:24:53 -07:00
bjorn3
01729be8d7
Add comment support ( #379 )
...
* Add comment support
* Don't print empty comments
* Add nop instruction
* Add test and note
* Add FuncWriter trait
* Remove comment support
* Add write_preamble to FuncWriter
* Fix test
* Some changes
2018-08-01 11:21:05 -07:00
Dan Gohman
c42bed7452
Update paths for the meta => meta-python rename.
2018-08-01 05:05:33 -07:00
Benjamin Bouvier
3a550d185f
Enhance Verifier error reporting;
2018-07-31 08:02:14 -07:00
Dan Gohman
1b42105faa
Remove reserved_reg functionality. ( #424 )
...
* Remove reserved_reg functionality.
This wasn't implemented, and if we need it in the future, it seems like
it would be better to extend the concept of global values to cover this.
* Use GlobalValue::reserved_value() for sentinal values.
2018-07-31 07:57:37 -07:00
Dan Gohman
e0124fa82f
Rename local variables to clarify their purpose.
2018-07-26 11:14:52 -07:00
Dan Gohman
15520fa961
Enable a few more clippy lints.
2018-07-26 10:10:36 -07:00
Aaron Power
cc7ba7e69a
Fixed remaning clippy warnings
2018-07-25 13:05:14 -07:00
Aaron Power
952a086f32
Fixed trivially_copy_pass_by_ref warnings
2018-07-25 10:31:01 -07:00
Aaron Power
eed861c6e1
Implemented clippy improvements
2018-07-24 12:36:34 -07:00
Benjamin Bouvier
f72ff791b4
Promote the BasicBlock tuple to a real struct;
...
It makes reading code that uses it easier to understand.
2018-07-23 15:26:11 -07:00
Benjamin Bouvier
03159a9200
Misc refactorings when looking at the wasm code;
2018-07-19 06:39:56 -07:00
Dan Gohman
1081d06173
Use the new realm-switching ABI in the baldrdash calling convention.
2018-07-17 22:44:00 -07:00
Dan Gohman
2db2d946b8
Support the rustc in the latest Ubuntu LTS.
...
At this time, this is Bionic, with Rust 1.25.0.
2018-07-13 16:26:21 -07:00
Lachlan Sneff
202e45c213
Fix broken build on no_std
2018-07-13 16:26:02 -07:00
Dan Gohman
f4dbd38a4c
Rename Cretonne to Cranelift!
2018-07-13 09:15:16 -07:00