* 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.
* 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.
This switches from a custom list of architectures to use the
target-lexicon crate.
- "set is_64bit=1; isa x86" is replaced with "target x86_64", and
similar for other architectures, and the `is_64bit` flag is removed
entirely.
- The `is_compressed` flag is removed too; it's no longer being used to
control REX prefixes on x86-64, ARM and Thumb are separate
architectures in target-lexicon, and we can figure out how to
select RISC-V compressed encodings when we're ready.
* Generate debug symbols in optimized builds.
This allows profiling tools to provide more accurate information,
especially details about inlined functions.
* Rewrite and optimize partition_slice
This improves the performance of the register allocation passes
which use LiveValueTracker.