Commit Graph

923 Commits

Author SHA1 Message Date
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
987bbfa922 Fix rustfmt errors. 2018-08-01 15:14:49 -07:00
bjorn3
5389b7784e Check signature compatibility in declare_function (fixes #427) 2018-08-01 14:23:59 -07:00
Dan Gohman
63e87895eb Remove an unneeded command-line option. 2018-08-01 13:24:53 -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
Caroline Cullen
65a1a6bb28 Add serde functionality into lib. (#422)
* Adds decoration to the verifier errors.

example:

function %bad(i32) fast {
ebb0(v0: i32):
    brnz.i32 v0, ebb1
    return
    ^~~~~~

verifier inst1: Internal return not allowed with return_at_end=1

ebb1:
    trapz.i32 v0, user6
    return
}

Fixes #68

* Making it so that pretty_function_error and write_function_plain are both private.

* Changes write_ebb to decorate_ebb.
Adds documentation line to decorate_function.

* Removing Cargo.toml lib/serde addition

* Add serde functionality into lib.

* Fix so code is compatible with Rust version 1.25.0.

* Move ser/de functions to utility file, update description, remove borrow from arms.

* Remove commented out code.
2018-07-31 07:48:12 -07:00
Corey Farwell
299898d494 Add fuzz target for cranelift_reader::parse_test. 2018-07-24 12:42:11 -07:00
Dan Gohman
d6d1e7253d Bump version to 0.17.0 2018-07-23 16:57:51 -07:00
Dan Gohman
6cb03a873d Bump version to 0.17.0-alpha 2018-07-23 16:15:53 -07:00
Dan Gohman
7f98f436f0 Add a link to the faerie github page. 2018-07-19 11:08:53 -07:00
Dan Gohman
20899d04a1 Fix "Title overline too short." warnings in more *.rst files. 2018-07-19 11:08:53 -07:00
Benjamin Bouvier
03159a9200 Misc refactorings when looking at the wasm code; 2018-07-19 06:39:56 -07:00
Dan Gohman
c068721964 Bump version to 0.16.1 2018-07-18 13:33:15 -07:00
Dan Gohman
ce27b2a74f Bump version to 0.16.0 2018-07-17 15:49:04 -07:00
Dan Gohman
c0d5ffc380 The latest Ubuntu LTS now has Rust 1.25. 2018-07-17 15:01:08 -07:00
Dan Gohman
82ea38e4af Convert expected uses to an unnumbered list, as they aren't ordered. 2018-07-17 15:01:08 -07:00
Dan Gohman
8d0f34310f Convert top-level *.rst files to markdown.
These files don't use any Sphinx has that Markdown lacks, and Markdown
is more widely used and easier to edit.
2018-07-17 15:01:08 -07:00
Dan Gohman
a28a3c3ea9 Bump version to 0.15.0 2018-07-14 07:27:35 -07:00
Dan Gohman
753bb049f8 Fix "Title overline too short." warnings in *.rst files. 2018-07-13 17:23:23 -07:00
Dan Gohman
ff188042bb Update comments and formatting in test-all.sh and publish-all.sh.
In particular, we no longer use the Github Releases page, so remove the
comment about that.
2018-07-13 17:21:03 -07:00
Dan Gohman
8930cb1b5d Update dependency versions. 2018-07-13 16:34:34 -07:00
Dan Gohman
262689908e Bump version to 0.14.0 2018-07-13 09:26:46 -07:00
Dan Gohman
401c872c52 Update more paths for the CraneStation/cranelift rename. 2018-07-13 09:22:15 -07:00
Dan Gohman
f4dbd38a4c Rename Cretonne to Cranelift! 2018-07-13 09:15:16 -07:00
Dan Gohman
19a636af96 Change Cretonne's license to "Apache-2.0 WITH LLVM-exception".
This adds the "LLVM-exception" to Cretonne's existing Apache-2.0
license.

https://spdx.org/licenses/LLVM-exception.html
2018-07-13 07:25:32 -07:00
Benjamin Bouvier
26523fdf5c [clippy] Pass a few argument types by value, not by reference;
Since Location is basically just a usize, and wasmparser::Type is an
enum, and both are copiable, this passes them down by value instead of
by reference, as suggested by Clippy.
2018-07-10 06:11:30 -07:00
Benjamin Bouvier
1987d4dba9 Reject with a plain text error when no ISA is defined with the wasm command; (#391)
And restructure code a bit to make it easier to understand.
2018-07-06 12:04:00 -07:00
Amanieu d'Antras
c6badde836 Update wabt to 0.4 (#389)
This fixes compilation on system with GCC 8.
2018-07-05 19:17:53 -07:00
bjorn3
5db45d26cc Legalize several i8 insts (#380)
* Legalize several i8 insts

* X86: implement regmove.{i8,i16}

* Legalize bnot

* Remove comments

* Nicer type param binding in legalize.py

* Legalize sdiv_imm.i8

* Hopefully fix mypy error

* Add missing trailing newlines

* Fix tests
2018-07-04 06:31:00 -07:00
Grégoire Geis
dd72b54eef Now diagnosing missing vmctx arguments (fixes #376) (#384)
* Now diagnosing missing vmctx arguments (fixes #376).

* Added filetest for fix of #376.

* Respect formatting rules in verifier/mod.rs.

* Added parameters for each use of vmctx in test files.

* Added comments on additions on vmctx verifications.
2018-07-03 20:59:32 -07:00
Grégoire Geis
e5014e0fff Made Capstone an optional dependency (fixes #382) (#383)
* Made Capstone an optional dependency (fixes #382).

* Introduced feature 'disas' for disassembly (related to #382).

* Made 'disas' a default feature in cretonne-tools.

* Fixed errors in src/compile.rs introduced by get_disassembler changes.

- Moves `use` statements before the function declaration.
- Returns an error if the disassembler cannot be found created.
2018-07-03 20:54:54 -07:00
Dan Gohman
4930ef8ba8 Remove srclocs from a regalloc testcase.
These aren't relevant to the testcase.
2018-07-02 22:44:30 -07:00
Dan Gohman
112ae6df56 Bump version to 0.13.0 2018-07-02 15:48:18 -07:00
Dan Gohman
b0cce6daec Update the documentation for the new adjust_sp_* instruction names.
`adjust_sp_imm` has been split into `adjust_sp_up_imm` and
`adjust_sp_down_imm`, and `adjust_sp_down` has been added.
2018-07-02 15:43:15 -07:00
Dan Gohman
d2d8b56ddb Fix test-no_std.sh to handle the case where topdir is ".".
Instead of using "cd $topdir" to get back to the top, use popd.
2018-07-02 15:17:14 -07:00
Dan Gohman
276ba8b97d Support systems which don't have a "python" command. (#386)
Add support for finding an appropriate python command on systems which
don't have "python". Try "python3" and "python2.7".

Fixed #381.
2018-07-02 13:02:00 -07:00
Dan Gohman
1074e2c755 Tidy up trailing whitespace. 2018-07-02 08:05:14 -07:00
Dan Gohman
8f3c49bc6c Update more references to "global variables".
This continues the transition to "global values", which aren't
implicitly dereferenced.
2018-06-28 12:52:51 -07:00
Dan Gohman
99b9b96eee Pop and fill don't trigger StackOverflow. (#365) 2018-06-28 12:47:13 -07:00
Dan Gohman
c5aad1eb5f Add support for macho relocations. (#378)
This requires splitting X86PCRel4 into two separate relocations, to
distinguish the case where the instruction is a call, as Mach-O uses a
different relocation in that case.

This also makes it explicit that only x86-64 relocations are supported
currently.
2018-06-28 10:15:10 -07:00
Dan Gohman
7d2b44289c Implement stack_addr, stack_load, stack_store for x86-64. (#370) 2018-06-26 06:15:21 -07:00
Dan Gohman
0349270b58 Bump version to 0.12.0 2018-06-16 07:50:27 -07:00
Lachlan Sneff
b3c3ca331b Removed implicit indirection when computing heap base. (#363)
Fix expected legalized heap_addr
2018-06-16 07:31:52 -07:00
Lachlan Sneff
38ab82bcc0 Made changes for review 2018-06-15 18:33:30 -07:00
Lachlan Sneff
3686fc2fc7 Fix typos caused by find-and-replace 2018-06-15 18:33:30 -07:00
Lachlan Sneff
5c320a0d30 Change GlobalVar to GlobalValue 2018-06-15 18:33:30 -07:00