Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge cranelift 0.43.1 #4

Merged
merged 283 commits into from
Sep 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
283 commits
Select commit Hold shift + click to select a range
4125d47
Fix mem::uninitialized depricated since 1.38
aleksmelnikov Jul 7, 2019
137b138
[meta] Legalization: remove spurious assert;
bnjbvr Jul 2, 2019
1ebf697
Add ir::Types::lane_of as an alias of lane_type to be used in typevar…
bnjbvr Jul 2, 2019
6a2a5e4
[meta] Legalization: emit typeof type variables for results in all th…
bnjbvr Jul 2, 2019
35dc80b
[meta] Legalization: remove spurious Option wrapping for type variables;
bnjbvr Jul 4, 2019
1d77e15
[meta] Legalization: Unprefix some module paths to make code neater;
bnjbvr Jul 4, 2019
3fb48ac
[meta] Legalization: Don't generate a variable for replaced instructi…
bnjbvr Jul 4, 2019
8ce66b2
Build fix: add crates::predicates to the Riscv enc_tables file;
bnjbvr Jul 9, 2019
fe24dc2
Legalize trapz/trapnz to a BB-like format.
nbp Jul 9, 2019
14065d9
Legalize br_table to a BB-like format.
nbp Jul 9, 2019
b9543a0
Fix an outdated comment referring to `FunctionLayout` instead of `Lay…
sstangl Jul 9, 2019
544ae1b
Fixes #837: Use an u64 comparison instead of a usize comparison in meta;
bnjbvr Jul 9, 2019
86e7b0f
Bump version to 0.34.0
sunfishcode Jul 9, 2019
7441ba6
[meta] Riscv: add back stacknull encodings for copy_nop;
bnjbvr Jul 8, 2019
78cf9ac
[meta] Generate full documentation for instructions in InstBuilder;
bnjbvr Jul 10, 2019
2b0ce55
[docs] Update docs to point to the docs.rs website;
bnjbvr Jul 10, 2019
e9dc868
[docs] Remove special handling of CDSL python modules;
bnjbvr Jul 10, 2019
04d433b
[docs] Remove rst annotations in instructions doc comments;
bnjbvr Jul 10, 2019
0a5961c
[docs] Don't accidentally generate doc tests;
bnjbvr Jul 10, 2019
c9b1101
issue #772: added an memmap replacement to support selinux
benschau May 23, 2019
63f03f4
Use Default trait for Position and DisplayFunctionAnnotations (#843)
MarkMcCaskey Jul 12, 2019
a8bb521
BB-like manual legalization for x86 ISA
nbp Jul 12, 2019
8cb74ad
Add support for some serde serialization (#847)
mrowqa Jul 12, 2019
327e222
Do not import libc on windows (#848)
mrowqa Jul 12, 2019
a4426e5
Bump version to 0.35.0
sunfishcode Jul 12, 2019
e38e187
Prepare legalizer codegen for SIMD features
abrown Jul 11, 2019
6673697
Disable SIMD features by default
abrown Jul 11, 2019
66fb5e2
Add x86-specific SIMD settings, e.g. SSE2
abrown Jul 11, 2019
78d7f09
Assign vector arguments to FPR registers
abrown Jul 11, 2019
94477f2
Allow CDSL instructions to bind to vector types
abrown Jul 11, 2019
93390fb
Add scalar_to_vector instruction
abrown Jul 11, 2019
f6fa866
Add raw_bitcast instruction
abrown Jul 11, 2019
b4e91fa
Add x86-specific shuffle instructions
abrown Jul 11, 2019
8106189
Add x86 implementation of insertlane instruction
abrown Jul 11, 2019
a5b17e8
Add x86 implementation of splat instruction
abrown Jul 11, 2019
a0fbde0
Enable basic block checks through a feature. (#856)
sstangl Jul 18, 2019
d6bdbf8
Verify that FunctionBuilder blocks are basic blocks in debug mode (#857)
sstangl Jul 19, 2019
99f05ba
Add serde derive to PrimaryMap
mrowqa Jul 19, 2019
e7f2b71
Bump version to 0.36.0
sunfishcode Jul 19, 2019
777ad71
Give cranelift-wasm a "basic-blocks" feature.
sstangl Jul 19, 2019
1bcea50
Add some comments to the frontend code.
sstangl Jul 22, 2019
eeebe91
Generate basic blocks for Wasm `br_if`.
sstangl Jul 22, 2019
aba199b
Produce more helpful basic block errors in cranelift-frontend.
sstangl Jul 22, 2019
c1b9989
Add basic-blocks feature flag at the top-level Cargo.toml.
nbp Jul 24, 2019
f59545d
Fix licm/jump-table-entry.clif test case to work with basic blocks.
nbp Jul 24, 2019
39b96e7
Assert if newly added instructions break the Basic Block invariant.
nbp Jul 25, 2019
d7f3973
cranelift-wasm hooks to instrument wasm operators (#861)
iximeow Jul 25, 2019
a58a9d1
Generate basic blocks for wasm if..then..else.
sstangl Jul 24, 2019
4b27419
Derive Hash for some types
mrowqa Jul 25, 2019
3c42749
Bump version to 0.37.0
sunfishcode Jul 27, 2019
bfa34ab
Add a unit test for ir::Type::lane_type() for a vector type
abrown Jul 25, 2019
0555ac2
check no other sections after data section
laizy Jul 16, 2019
c6f08e2
[wasm] Pass translation state along for before/after_translate_operat…
iximeow Jul 30, 2019
e48bd4e
Fix the label filter
lu-zero Jul 30, 2019
a08a6ed
add VisibleTranslationState for a public-friendly interface
iximeow Jul 30, 2019
124237f
Improve graphviz rendering
bjorn3 Mar 17, 2019
6391ffb
Fix tests
bjorn3 Mar 27, 2019
a90c66a
Simple preopt: use the immediate form for adjust_sp_down/ifcmp whenev…
bnjbvr Jul 1, 2019
6be0fc6
Simple preopt: fold binary opcodes chains together;
bnjbvr Jul 5, 2019
de1e6aa
Simple preopt: try to fold right-shift of left-shift into an extended…
bnjbvr Jul 5, 2019
71631b6
Simple preopt: fold instructions using simple algebraic identities;
bnjbvr Jul 10, 2019
fd27058
Simple preopt: Fold (imm OP x) into (OP_IMM x imm) whenever possible;
bnjbvr Jul 31, 2019
4723bff
preopt: use replaced arg after having replaced BinaryImm
iximeow Aug 1, 2019
05d22df
Properly legalize with empty jump tables.
nbp Jul 29, 2019
7f35ca4
Simplify jump table instructions and add missing conversion;
bnjbvr Aug 1, 2019
a864ba9
Factor out func.dfg[inst] accesses in binemit.
nbp Jul 29, 2019
7ff2ead
Uses divert.apply for all instruction within binemit.
nbp Jul 29, 2019
307b60d
Shrink: Factor accesses of instruction data
nbp Aug 1, 2019
8b92f59
Rename data to inst_data in binemit generated code.
nbp Aug 2, 2019
9151f16
Fix an assertion that wasn't doing what it said
davidlattimore Aug 3, 2019
c927680
Serialize ValueLabel and StackSlots (#888)
yurydelendik Aug 5, 2019
81a0235
Bump version to 0.38.0 (#894)
yurydelendik Aug 6, 2019
cf66f64
Return a `WasmResult` from `ModuleEnvironment` methods (#886)
acfoltzer Aug 7, 2019
470ff52
Add bugpoint command
bjorn3 Aug 8, 2019
57fa45c
Add a fold_redundant_jumps() pass to the branch relaxation phase. (#887)
sstangl Aug 9, 2019
b2c69b1
Adds the libcall_call_conv setting and use it for libcall calls expan…
bnjbvr Aug 5, 2019
6714485
Implement a Windows Baldrdash calling convention;
bnjbvr Aug 14, 2019
80b80ea
Use aliasing instead of copying in simple_preopt;
bnjbvr Aug 16, 2019
39f3fd0
Add reference types R32 and R64
Jul 23, 2019
375554c
Fix broken links using rustdoc nightly
jyn514 Aug 16, 2019
72b97fc
Installed deadlinks if not already installed
jyn514 Aug 16, 2019
34fe66d
[codegen] Rename and explicit usage of replace_with_alias;
bnjbvr Aug 19, 2019
ab1998c
Add x86 implementation of extractlane instruction
abrown Jul 11, 2019
75579a7
Avoid unnecessary lane calculations in codegen code
abrown Jul 11, 2019
e3d6cc0
Fix static analysis warnings
abrown Jul 11, 2019
8977442
Remove SSE2 setting for x86
abrown Jul 17, 2019
7c93a7b
Update to latest versions of term, capstone, wabt, goblin, wasmparser.
sunfishcode Aug 20, 2019
1eb460f
Bump version to 0.39.0
sunfishcode Aug 20, 2019
1169dc5
Temporarily disable `fold_redundant_jumps`.
sunfishcode Aug 20, 2019
4811be1
Revert the test changes too.
sunfishcode Aug 20, 2019
5534fd2
Bump version to 0.40.0
sunfishcode Aug 20, 2019
f87cbf8
cranelift-codegen: Remove all default architecture support
mbestavros Jul 16, 2019
f90ace4
Fixes #877: Remove appveyor configuration and badge;
bnjbvr Aug 16, 2019
14666ca
Add `test run` to cranelift-filetests to allow executing CLIF (#890)
abrown Aug 21, 2019
351931d
Sort custom_legalizes for more deterministic generated code
glandium Aug 22, 2019
c473078
Make fold_redundant_jumps() feature-gated on basic-blocks
sstangl Aug 20, 2019
af959eb
Implement serde and equality traits for SecondaryMap
mrowqa Aug 22, 2019
4e3c376
cranelift-wasm: bump `wasmparser` version to `0.37.0`
YaronWittenstein Aug 22, 2019
31279bc
Fix documentation typo
jyn514 Aug 23, 2019
281914d
Fix segfault due to b64 encoding (#919)
abrown Aug 23, 2019
164f91a
Cranelift: implement redundant fill removal on tree-shaped CFG region…
julian-seward1 Aug 25, 2019
8435729
Use roundss/roundsd when available for Ceil/Floor/Trunc/Nearest (#931)
ryzokuken Aug 26, 2019
ec29f61
Switch from mmap to memmap to support Windows
tschneidereit Aug 26, 2019
1c5f6cd
[clif-util] Use a simple cfg guard instead of cfg_if for the wasm mod…
bnjbvr Aug 23, 2019
37e613a
Clear jump tables when function data is cleared
abrown Jul 23, 2019
ff43ddb
Add ConstantPool
abrown Jul 23, 2019
8ef665d
Add ability to relocate constants using RelocSink
abrown Jul 23, 2019
ef45aa9
Add unsigned 128-bit immediate
abrown Jul 23, 2019
8694d1a
Add operand kind and format for unsigned 128-bit immediates
abrown Jul 23, 2019
42cc143
Add x86 recipe for vconst
abrown Jul 23, 2019
4042574
Add x86 encoding for vconst
abrown Jul 23, 2019
eadf204
Add filetest for verifying emitted rodata (i.e. `test rodata`)
abrown Jul 23, 2019
b6798b6
Translate existing WASM SIMD operations to CLIF
abrown Jul 29, 2019
50fb501
Use little-endian ordering for CLIF vconst immediate
abrown Aug 2, 2019
50028e1
Convert constants added by v128.const to the appropriate type before use
abrown Aug 8, 2019
d5058da
Verify that cranelift-wasm can translate SIMD instructions
abrown Aug 8, 2019
e204d2d
Add flags to allow wasm SIMD instructions (#910)
abrown Aug 27, 2019
002766f
Fixes #841: Bump the required version of rustc to 1.37;
bnjbvr Aug 22, 2019
22215f3
Build: remove pip packages from the install step;
bnjbvr Aug 22, 2019
8222380
[meta] Generate doc comments for the encodings tables;
bnjbvr Aug 21, 2019
d755002
Add options for parsing test files (#942)
abrown Aug 27, 2019
bac7215
Remove calling convention on FunctionRunner test
abrown Aug 27, 2019
dbe45c4
Remove specific calling convention in clif-util's run test.
bnjbvr Aug 28, 2019
6516250
Add feature flags to test files.
nbp Aug 27, 2019
2f146c6
Fix documentation warnings in ConstantPool
abrown Aug 28, 2019
fc88520
Add Azure Pipelines CI setup (#948)
tschneidereit Aug 29, 2019
2999076
Add EntryRegDiversions to record diversions for each block entry.
nbp Aug 1, 2019
ef8bda4
Split edges to have a block to add regmove & copy instructions.
nbp Aug 30, 2019
100fa12
Bump version to 0.41.0
sunfishcode Aug 31, 2019
9fe5245
[meta] Try to use {prefix+number} when looking up a register by name;
bnjbvr Aug 28, 2019
900e57a
[regalloc] Transform the program_input_abi function into a Context me…
bnjbvr Aug 29, 2019
2072052
Tweak comments;
bnjbvr Aug 27, 2019
b73dc98
Remove Travis CI; (#967)
bnjbvr Sep 3, 2019
396d287
Don't incorrectly omit a REX prefix for some encodings of `copy_to_ss…
julian-seward1 Sep 3, 2019
bda45f4
Improve uimm128 parsing
abrown Aug 28, 2019
f2e5132
[codegen] Make scalar_to_vector's output type a lane of its input type;
bnjbvr Aug 23, 2019
bff2fd2
upgrade to target-lexicon 0.8.0
Sep 4, 2019
1d63cfd
upgrade to faerie 0.11.0
Sep 4, 2019
b720e8a
Basic-block: Insert regmove instructions in new blocks dedicated to h…
nbp Sep 5, 2019
3e71ee0
[codegen] add encodings for iadd carry variants (#961)
ryzokuken Sep 5, 2019
850db85
Limit redundant jump folding to only fold parameterless target blocks…
sstangl Sep 5, 2019
dcaa7f5
Tweak comments;
bnjbvr Sep 3, 2019
7c53604
[meta] Split FormatBuilder::imm to avoid the extra Into<> parameter t…
bnjbvr Sep 3, 2019
45892f7
[meta] Simplify and comment instruction building a bit;
bnjbvr Sep 3, 2019
6850d8e
[meta] Remove unused immfield index in the FormatField;
bnjbvr Sep 3, 2019
f9cec78
[codegen] add encodings for isub borrow variants
ryzokuken Aug 31, 2019
5c94b0c
[codegen] remove support for isub borrow variants on riscv
ryzokuken Sep 4, 2019
31e7c29
[codegen] change operand type from bool to iflag for isub borrow vari…
ryzokuken Sep 4, 2019
cd43197
Bump version to 0.42.0
sunfishcode Sep 6, 2019
117178c
upgrade to latest target-lexicon 0.8.1
stefson Sep 6, 2019
bb8f671
[meta] Introduce the Immediates structure instead of using dynamic lo…
bnjbvr Sep 4, 2019
cdc0a23
[meta] Introduce the EntityRefs structure instead of using dynamic lo…
bnjbvr Sep 4, 2019
6c7f449
[meta] Morph a few pub into pub(crate), and remove dead code;
bnjbvr Sep 4, 2019
b4c52d1
[codegen] Add a pinned register that's entirely under the control of …
bnjbvr Aug 28, 2019
7979e9d
[codegen] Allow using the pinned register as the heap base via a sett…
bnjbvr Aug 28, 2019
8e8b83f
Add basic test for the pinned register;
bnjbvr Sep 2, 2019
dae1fa5
Fixes #984: Add a isa::lookup_by_name function;
bnjbvr Sep 6, 2019
fe3d69c
Generate basic-blocks instead of Ebb in frontend::switch. (#981)
nbp Sep 6, 2019
ab51fb9
Fix legalize-br-table test case for basic blocks. (#990)
nbp Sep 6, 2019
d215cfb
Basic Block: Fix IR builder library example. (#989)
nbp Sep 6, 2019
624d567
Fix binary64.clif to work with fold_redundant_jump. (#987)
nbp Sep 6, 2019
38be9dd
Basic i128 support
bjorn3 Jun 12, 2019
b39039c
Add test
bjorn3 Jun 12, 2019
867263f
Use little endian byte order in i128 test
bjorn3 Jun 12, 2019
dd2cf98
Fix WideInt max size in insturctions.py
bjorn3 Jun 17, 2019
f0ef5bf
Handle isplit when it is not the result of a legalization
bjorn3 Jun 17, 2019
c1aa629
Rustfmt
bjorn3 Jun 17, 2019
190b2f5
Fix isplit legalization
bjorn3 Jun 17, 2019
2dab9f1
[WIP]
bjorn3 Jun 27, 2019
0012989
Fix bug when i128 ebb param is unused
bjorn3 Jun 29, 2019
334b88f
[meta] Fix legalization in presence of varargs
bjorn3 Jun 29, 2019
c1d3291
[meta] Give a nicer error message when a legalization uses an incorre…
bjorn3 Jun 29, 2019
f070b0f
[meta] Add some Debug derives
bjorn3 Jun 29, 2019
92c3dff
Legalize brz.i128 and brnz.i128
bjorn3 Jun 29, 2019
6276396
Remove some dbg! invocations
bjorn3 Jun 29, 2019
c66e1b6
Narrowing legalize some more bitops
bjorn3 Jun 29, 2019
399e4ea
Rustfmt
bjorn3 Jun 29, 2019
499fba8
Fix lone isplit, when the corresponding iconcat will be created later…
bjorn3 Jun 29, 2019
bcf0bf6
Fix warnings
bjorn3 Jun 29, 2019
ffc0cb4
Legalize load.i128 and store.i128
bjorn3 Jun 29, 2019
85ddf00
Add b128 type to fix tests
bjorn3 Jul 8, 2019
cf435ef
Legalize load.i128 and store.i128 with arbitrary offsets
bjorn3 Jul 18, 2019
fd94752
Fix compilation
bjorn3 Jul 19, 2019
77b8762
Fix load.i64 and store legalization
bjorn3 Aug 15, 2019
a5539d1
[split] Prevent double legalization of isplit and vsplit
bjorn3 Aug 29, 2019
665e8c3
Fix compilation
bjorn3 Aug 30, 2019
55c2d73
Fix review comments
bjorn3 Aug 31, 2019
b117cfd
Fix rebase
bjorn3 Sep 7, 2019
4cd2c76
Remove FunctionBuilderContext from API, and change FunctionBuilder API
Mar 21, 2019
f3da731
Add a custom section hook to `ModuleEnvironment`
alexcrichton Aug 13, 2019
0847521
rustfmt
alexcrichton Aug 13, 2019
7351792
VirtRegs::find: use SmallVec instead of Vec for val_stack.
julian-seward1 Sep 7, 2019
eb43014
EbbHeaderBlockData::predecessors: use SmallVec instead of Vec
julian-seward1 Sep 7, 2019
c72ab98
legalizer/split.rs: simplify_branch_arguments: use SmallVec instead o…
julian-seward1 Sep 7, 2019
a0e3ae7
Simplify isa_builder macro
nbp Sep 6, 2019
ea28344
Add cranelift-object
philipc May 6, 2019
362306c
allow module environment to parse name section
data-pup Jun 28, 2019
27cce9d
[codegen] add new recipe "rout" (#1014)
ryzokuken Sep 10, 2019
c65fa1d
Add equivalent safepoint test cases for basic blocks.
nbp Sep 6, 2019
4de6d38
Fix #975 (Structure of cranelift-wasm/src/translation_utils.rs causes…
julian-seward1 Sep 10, 2019
f759f2b
Avoid unnecessary reallocations in domtree::with_function() (#1011)
sstangl Sep 10, 2019
58d8467
Log compiled and legalized functions
abrown Aug 21, 2019
9cbb8c6
Enable SSSE3 setting when detected on CPU
abrown Aug 21, 2019
e72f19a
Use raw_bitcast when legalizing splat
abrown Aug 21, 2019
5bfb8ab
Translate the sign-extended and zero-extended versions of extract_lane
abrown Aug 21, 2019
1eaed09
Avoid extra register movement when lowering the x86 extractlane of a …
abrown Aug 21, 2019
900175e
Avoid extra register movement when lowering the x86 scalar_to_vector …
abrown Aug 22, 2019
0fb6dab
Avoid extra register movement when lowering an x86 insertlane to a fl…
abrown Aug 23, 2019
a88da28
Fix documentation
abrown Sep 5, 2019
840aae4
Legalize i64.const by breaking it into two i32.const, on 32-bits plat…
bnjbvr Aug 30, 2019
302bcf3
[codegen] Don't simplify an operation if it would result in unnecessa…
bnjbvr Sep 9, 2019
326f2f3
Basic Blocks: Fix frontend::sample_function test case. (#1007)
nbp Sep 10, 2019
bdfd2ad
Replace region::protect by make_exec in cranelift-filetests
walac Sep 10, 2019
d2a554d
Fix x86/br-i128 test case to use basic blocks.
nbp Sep 11, 2019
667ec7f
Minor speedup tuning for SecondaryMap (#1020)
julian-seward1 Sep 12, 2019
4c7e3c3
Remove unused import when cross-compiling, fixes #1022
abrown Sep 12, 2019
8945b82
[codegen] reintroduce support for carry and borrow instructions in RI…
ryzokuken Sep 13, 2019
d13a7b2
fix reflink in CONTRIBUTING.md
Sep 14, 2019
92b0a20
[frontend] Add message for pristine assertion violation
walac Sep 14, 2019
a04514a
legalizer/split.rs: split_ebb_params: avoid pointless Vec allocations…
julian-seward1 Sep 16, 2019
c064d2f
Use 'xor r, r' to set registers to 0 instead of mov (#766)
iximeow Sep 16, 2019
374fd23
Continuous fuzzing (#944)
bookmoons Sep 17, 2019
2f98941
Revert "Continuous fuzzing (#944)" (#1036)
tschneidereit Sep 17, 2019
9c6f8fe
Revert "Remove FunctionBuilderContext from API, and change FunctionBu…
XAMPPRocky Sep 14, 2019
fa5ad60
[codegen] Check for downcasting in bitcast instruction
walac Sep 16, 2019
92f5c55
Add verifier check to ensure each SIMD lane index is within bounds, f…
abrown Sep 13, 2019
6351018
Continuous fuzzing with Fuzzit (#1042)
bookmoons Sep 18, 2019
37a1f06
Correctly zero extend operand of fcvt_from_uint for 8ints and 16bit i…
bjorn3 Sep 18, 2019
5045a97
Simplify and rename `Stackmap::from_vec` (#1032)
AnthonyMikh Sep 18, 2019
e275159
Fixed broken pipe race condition in ensure_installed
XAMPPRocky Sep 17, 2019
ddd4790
fix broken link in cranelift-object
jyn514 Sep 18, 2019
d46311c
Add more documentation for entities, fixes #1038 (#1041)
jyn514 Sep 18, 2019
92a19e9
Reorganise optimisation level settings, and make the insn shrink pass…
julian-seward1 Sep 19, 2019
bd4c232
Add x86 implementation of shuffle
abrown Aug 26, 2019
5619eaf
Add boolean encodings for x86
abrown Aug 27, 2019
ee9a677
Add boolean shuffle test
abrown Aug 27, 2019
65ae2d4
Check for types::INVALID in the function signature, resolves #493 (#1…
walac Sep 19, 2019
c41de9f
Allow global initialization of SIMD vectors
abrown Sep 6, 2019
5c35a7d
Add V128 -> I8X16 type conversions
abrown Sep 6, 2019
6e20b75
Add x86 encodings for vector store, load, fill, spill, and regmove
abrown Sep 6, 2019
ebb4bce
Handle use of SIMD vector globals and locals
abrown Sep 6, 2019
cce056e
Rename Uimm128 to V128Imm
abrown Sep 9, 2019
1eb4669
Add x86 implemention for SIMD iadd
abrown Sep 11, 2019
6e58d7e
Add x86 encodings for vector copy, copy_nop, fill_nop
abrown Sep 11, 2019
194902e
Bump version to 0.43.0
sunfishcode Sep 19, 2019
de7354e
tidy: Remove extra semicolons
fitzgen Sep 19, 2019
58cb8b6
Fix incorrect regmove and fill encodings for SIMD types
abrown Sep 20, 2019
0024169
Bump version to 0.43.1
sunfishcode Sep 20, 2019
13b4834
Merge branch 'cranelift-master' into feature/merge-cranelift-0-43-1
bjfish Sep 21, 2019
c5da762
Fixes changes missed in merged
bjfish Sep 21, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
180 changes: 180 additions & 0 deletions .azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
name: $(Build.SourceBranch)-$(date:yyyy-MM-dd)$(rev:.r)
trigger:
branches:
include:
- 'master'
tags:
include:
- '*'
exclude:
- 'dev'

jobs:
- job: rustfmt
pool:
vmImage: 'macos-10.14'
steps:
- checkout: self
submodules: true
- template: ci/azure-install-rust.yml
- script: rustup component add rustfmt
displayName: Add rustfmt
- script: cargo fmt --all -- --check
displayName: Check formatting
variables:
toolchain: stable

# Smoke test to build docs on one builder, using OSX for now since it's the
# fastest
- job: docs
pool:
vmImage: 'macos-10.14'
steps:
- checkout: self
submodules: true
- template: ci/azure-install-rust.yml
- script: cargo doc
displayName: Build documentation
- script: cargo install cargo-deadlinks
displayName: Install cargo-deadlinks
- bash: |
find ./target/doc -maxdepth 1 -type d -name "cranelift*" | xargs -I{} cargo deadlinks --dir {}
displayName: Run cargo-deadlinks
variables:
toolchain: nightly

- job: Test
strategy:
matrix:
windows-earliest:
imageName: 'vs2017-win2016'
toolchain: '1.37.0'
linux-earliest:
imageName: 'ubuntu-16.04'
toolchain: '1.37.0'
mac-earliest:
imageName: 'macos-10.14'
toolchain: '1.37.0'
mac-stable:
imageName: 'macos-10.14'
toolchain: stable
mac-beta:
imageName: 'macos-10.14'
toolchain: beta
mac-nightly:
imageName: 'macos-10.14'
toolchain: nightly

pool:
vmImage: $(imageName)

steps:
- checkout: self
submodules: true
- template: ci/azure-install-rust.yml

- script: cargo fetch
displayName: Fetch cargo dependencies

- script: cargo build
displayName: Cargo build

- bash: cargo test --all
displayName: Cargo test
env:
RUST_BACKTRACE: 1

# Ensure fuzzer works by running it with a single input
- bash: cargo install cargo-fuzz
displayName: Install cargo-fuzz
condition: and(succeeded(), eq(variables['toolchain'], 'nightly'))
- bash: |
fuzz_module="ffaefab69523eb11935a9b420d58826c8ea65c4c"
cargo fuzz run fuzz_translate_module \
"fuzz/corpus/fuzz_translate_module/$fuzz_module"
displayName: Run cargo-fuzz
env:
RUST_BACKTRACE: 1
condition: and(succeeded(), eq(variables['toolchain'], 'nightly'))

- job: Fuzz_regression
displayName: Fuzz regression
pool:
vmImage: "ubuntu-16.04"
variables:
toolchain: nightly
steps:
- template: ci/azure-install-rust.yml
- bash: cargo install cargo-fuzz
- bash: ci/fuzzit.sh local-regression

- job: Fuzz
condition: ne(variables['Build.Reason'], 'PullRequest')
pool:
vmImage: "ubuntu-16.04"
variables:
toolchain: nightly
steps:
- template: ci/azure-install-rust.yml
- bash: cargo install cargo-fuzz
- bash: ci/fuzzit.sh fuzzing
env:
FUZZIT_API_KEY: $(FUZZIT_API_KEY)

- job: Build
strategy:
matrix:
windows:
imageName: 'vs2017-win2016'
# Statically link against msvcrt to produce slightly more portable
# binaries on Windows by reducing our binary compatibility requirements.
RUSTFLAGS: -Ctarget-feature=+crt-static
mac:
imageName: 'macos-10.14'
# Lower the deployment target from our build image in an attempt to
# build more portable binaries that run on older releases. Note that
# 10.9 here is arbitrarily chosen and just happens to be the lowest that
# works at this time. Raising this is probably fine.
MACOSX_DEPLOYMENT_TARGET: 10.9
variables:
toolchain: '1.37.0'
pool:
vmImage: $(imageName)
# We try to be compatible with beta and nightly, but they occasionally
# fail, so we don't allow them to hold up people using stable.
continueOnError: $[ne(variables['toolchain'], 'stable')]
steps:
- template: ci/azure-build-release.yml

# Build the Linux release binary in an older Linux container (in this case
# Centos 6)
- job: Build_linux
variables:
toolchain: '1.37.0'
container:
image: centos:6
options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro"
steps:
# We're executing in the container as non-root but `yum` requires root. We
# need to install `sudo` but to do that we need `sudo`. Do a bit of a weird
# hack where we use the host `docker` executable to re-execute in our own
# container with the root user to install `sudo`
- bash: /tmp/docker exec -t -u 0 ci-container sh -c "yum install -y sudo"
displayName: Configure sudo

# See https://edwards.sdsu.edu/research/c11-on-centos-6/ for where these
# various commands came from.
- bash: |
set -e
sudo yum install -y centos-release-scl cmake xz
sudo yum install -y devtoolset-8-gcc devtoolset-8-binutils devtoolset-8-gcc-c++
echo "##vso[task.prependpath]/opt/rh/devtoolset-8/root/usr/bin"
displayName: Install system dependencies

# Delete `libstdc++.so` to force gcc to link against `libstdc++.a` instead.
# This is a hack and not the right way to do this, but it ends up doing the
# right thing for now.
- bash: sudo rm -f /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so
displayName: Force a static libstdc++

- template: ci/azure-build-release.yml
51 changes: 0 additions & 51 deletions .travis.yml

This file was deleted.

10 changes: 1 addition & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ things set in stone yet.

We abide by our [Code of Conduct] and ask that you do as well.

[Code of Conduct](CODE_OF_CONDUCT.md)
[Code of Conduct]: CODE_OF_CONDUCT.md

## Coding Guidelines

Expand Down Expand Up @@ -84,14 +84,6 @@ build.

[Rust Update Policy for Firefox]: https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox#Schedule

### Python

Our Python code is checked with [mypy](http://mypy-lang.org/) and
[flake8](http://flake8.pycqa.org/en/latest/); see the
[check.sh](https://github.com/CraneStation/cranelift/blob/master/cranelift-codegen/meta-python/check.sh)
file for details. The versions available in common package repositories such
as Ubuntu or Homebrew typically work fine.

## Development Process

We use [issues] for asking questions and tracking bugs and unimplemented
Expand Down
43 changes: 24 additions & 19 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "cranelift-tools"
authors = ["The Cranelift Project Developers"]
version = "0.31.0"
version = "0.43.1"
description = "Binaries for testing the Cranelift libraries"
license = "Apache-2.0 WITH LLVM-exception"
documentation = "https://cranelift.readthedocs.io/"
Expand All @@ -19,33 +19,38 @@ path = "src/clif-util.rs"

[dependencies]
cfg-if = "0.1"
cranelift-codegen = { path = "cranelift-codegen", version = "0.31.0" }
cranelift-entity = { path = "cranelift-entity", version = "0.31.0" }
cranelift-reader = { path = "cranelift-reader", version = "0.31.0" }
cranelift-frontend = { path = "cranelift-frontend", version = "0.31.0" }
cranelift-serde = { path = "cranelift-serde", version = "0.31.0", optional = true }
cranelift-wasm = { path = "cranelift-wasm", version = "0.31.0", optional = true }
cranelift-native = { path = "cranelift-native", version = "0.31.0" }
cranelift-filetests = { path = "cranelift-filetests", version = "0.31.0" }
cranelift-module = { path = "cranelift-module", version = "0.31.0" }
cranelift-faerie = { path = "cranelift-faerie", version = "0.31.0" }
cranelift-simplejit = { path = "cranelift-simplejit", version = "0.31.0" }
cranelift-preopt = { path = "cranelift-preopt", version = "0.31.0" }
cranelift = { path = "cranelift-umbrella", version = "0.31.0" }
cranelift-codegen = { path = "cranelift-codegen", version = "0.43.1" }
cranelift-entity = { path = "cranelift-entity", version = "0.43.1" }
cranelift-reader = { path = "cranelift-reader", version = "0.43.1" }
cranelift-frontend = { path = "cranelift-frontend", version = "0.43.1" }
cranelift-serde = { path = "cranelift-serde", version = "0.43.1", optional = true }
cranelift-wasm = { path = "cranelift-wasm", version = "0.43.1", optional = true }
cranelift-native = { path = "cranelift-native", version = "0.43.1" }
cranelift-filetests = { path = "cranelift-filetests", version = "0.43.1" }
cranelift-module = { path = "cranelift-module", version = "0.43.1" }
cranelift-faerie = { path = "cranelift-faerie", version = "0.43.1" }
cranelift-object = { path = "cranelift-object", version = "0.43.1" }
cranelift-simplejit = { path = "cranelift-simplejit", version = "0.43.1" }
cranelift-preopt = { path = "cranelift-preopt", version = "0.43.1" }
cranelift = { path = "cranelift-umbrella", version = "0.43.1" }
filecheck = "0.4.0"
clap = "2.32.0"
serde = "1.0.8"
term = "0.5.1"
capstone = { version = "0.5.0", optional = true }
wabt = { version = "0.7.0", optional = true }
target-lexicon = "0.4.0"
term = "0.6.1"
capstone = { version = "0.6.0", optional = true }
wabt = { version = "0.9.1", optional = true }
target-lexicon = "0.8.1"
pretty_env_logger = "0.3.0"
file-per-thread-logger = "0.1.2"
indicatif = "0.11.0"
walkdir = "2.2"

[features]
default = ["disas", "wasm"]
default = ["disas", "wasm", "cranelift-codegen/all-arch"]
disas = ["capstone"]
wasm = ["wabt", "cranelift-wasm"]
basic-blocks = ["cranelift-codegen/basic-blocks", "cranelift-frontend/basic-blocks",
"cranelift-wasm/basic-blocks", "cranelift-filetests/basic-blocks"]

# We want debug symbols on release binaries by default since it allows profiling
# tools to give more accurate information. We can always strip them out later if
Expand Down
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ into executable machine code.

[![Documentation Status](https://readthedocs.org/projects/cranelift/badge/?version=latest)](https://cranelift.readthedocs.io/en/latest/?badge=latest)
[![Travis Status](https://travis-ci.org/CraneStation/cranelift.svg?branch=master)](https://travis-ci.org/CraneStation/cranelift)
[![Appveyor Status](https://ci.appveyor.com/api/projects/status/oub7wrrb59utuv8x?svg=true)](https://ci.appveyor.com/project/CraneStation/cranelift)
[![Fuzzit Status](https://app.fuzzit.dev/badge?org_id=CraneStation)](https://app.fuzzit.dev/orgs/CraneStation/dashboard)
[![Gitter chat](https://badges.gitter.im/CraneStation/CraneStation.svg)](https://gitter.im/CraneStation/Lobby)
![Minimum rustc 1.34](https://img.shields.io/badge/rustc-1.34+-green.svg)
![Minimum rustc 1.37](https://img.shields.io/badge/rustc-1.37+-green.svg)

For more information, see [the
documentation](https://cranelift.readthedocs.io/en/latest/?badge=latest).
Expand Down Expand Up @@ -53,8 +53,7 @@ needed before it would be ready for a production use case.

Cranelift's APIs are not yet stable.

Cranelift currently requires Rust 1.32 or later, and Python 2.7 or 3
to build.
Cranelift currently requires Rust 1.37 or later to build.

Planned uses
------------
Expand Down
28 changes: 0 additions & 28 deletions appveyor.yml

This file was deleted.

Loading