Chris Fallin
e5d76db97a
WIP.
2021-11-11 15:56:55 -08:00
Chris Fallin
8c727b175a
more codegen WIP: start to generate functions
2021-11-11 15:56:55 -08:00
Chris Fallin
638c9edd01
Support for file input and output, including multiple input files with proper position tracking.
2021-11-11 15:56:55 -08:00
Chris Fallin
e9a57d854d
Generate internal enum types.
2021-11-11 15:56:54 -08:00
Chris Fallin
5aa72bc060
skeleton for codegen
2021-11-11 15:56:54 -08:00
Chris Fallin
02ec77a45b
trie insertion
2021-11-11 15:56:54 -08:00
Chris Fallin
77ed861857
Start of significant rework: compile to a trie, not an FSM, and handle rule priorities appropriately.
...
See long block comment in codegen.rs. In brief, I think we actually want
to compile to a trie with priority-intervals, a sort of hybrid of a
priority tree and a trie representing decisions keyed on match-ops
(PatternInsts).
The reasons are:
1. The lexicographic ordering that is fundamental to the FSM-building in
the Peepmatic view of the problem is sort of fundamentally limited
w.r.t. our notion of rule priorities. See the example in the block
comment.
2. While the FSM is nice for interpreter-based execution, when compiling
to a language with structured control flow, what we really want is a
tree; otherwise, if we want to form DAGs to share substructure, we
need something like a "diamond-recovery" algorithm that finds common
suffixes of *input match-op sequences*, and then we need to
incorporate something like phi-nodes in order to allow captures from
either side of the diamond to be used.
3. One of the main advantages of the automaton/transducer approach,
namely sharing suffixes of the *output* sequence (emitting partial
output at each state transition), is unfortunately not applicable if
we allow the overall function to be partial. Otherwise, there is
always the possibility that we fail at the last match op, so we
cannot allow any external constructors to be called until we reach
the final state anyway.
4. Pragmatically, I found I was having to significantly edit the
peepmatic_automata implementation to adapt to this use-case
(compilation to Rust), and it seemed more practical to design the
data structure we want than to try to shoehorn the existing thing
into the new problem.
WIP, hopefully working soon.
2021-11-11 15:56:54 -08:00
Chris Fallin
f2399c5384
WIP -- more thinking about how to work priorities into FSM
2021-11-11 15:56:54 -08:00
Chris Fallin
6a567924cd
WIP
2021-11-11 15:56:54 -08:00
Chris Fallin
e08160845e
WIP: rip out a bunch of stuff and rework
2021-11-11 15:56:54 -08:00
Chris Fallin
84b7612b98
Initial public commit of ISLE prototype DSL compiler.
2021-11-11 15:56:54 -08:00
Alex Crichton
f7543d3d10
Update docs of Module::serialize ( #3448 )
...
The docs hadn't been updated since `Module::deserialize` was added!
2021-10-12 09:47:12 -05:00
bjorn3
b2d9faa472
Slightly simplify build script
2021-10-12 15:12:26 +02:00
bjorn3
b0b8c1edbf
Remove default_map
2021-10-12 15:12:26 +02:00
bjorn3
6b32fcfcea
Remove Constraint
2021-10-12 15:12:26 +02:00
bjorn3
466a446f8c
Remove OpcodeNumber
2021-10-12 15:12:26 +02:00
bjorn3
99114547be
Remove clobbers_all_regs
2021-10-12 15:12:26 +02:00
bjorn3
e8b18b58a1
Remove is_ghost
2021-10-12 15:12:26 +02:00
bjorn3
a05bf2bf42
Remove instructions necessary for the old regalloc
2021-10-12 14:37:36 +02:00
bjorn3
1fd491dadd
Remove fallthrough instruction
2021-10-12 14:22:07 +02:00
bjorn3
5b24e117ee
Remove instructions used by old br_table legalization
2021-10-12 14:18:52 +02:00
Chris Fallin
783bb1f759
Merge pull request #3443 from adv-sw/main
...
Fixes (indirectly) #3419 by providing debugger with ability to resolve sandbox pointers
2021-10-11 13:37:04 -07:00
Chris Fallin
5c2a629871
Merge pull request #2455 from Hywan/feat-cranelift-codegen-re-export-gimli
...
feat(cranelift-codegen) Re-export `gimli` when `unwind` feature is enabled
2021-10-11 13:09:16 -07:00
Steve
4975bf8b62
Merge branch 'main' of https://github.com/adv-sw/wasmtime
2021-10-11 19:58:18 +01:00
Steve
807619a874
as requested: cargo fmt
2021-10-11 19:57:07 +01:00
Pat Hickey
8554d69e4b
update userfaultfd to 0.4.1 ( #3442 )
...
which updates nix to 0.23.0, getting rid of the benign RUSTSEC-2021-0119
in our dep tree
2021-10-11 13:06:54 -05:00
Alex Crichton
713ce07d35
Add some debug logging for timing in module compiles ( #3417 )
...
* Add some debug logging for timing in module compiles
This is sometimes helpful when debugging slow compiles from fuzz bugs or
similar.
* Fix total duration calculation to not double-count
2021-10-11 12:50:15 -05:00
Advance Software
8194c3a2a1
Merge branch 'bytecodealliance:main' into main
2021-10-11 18:47:02 +01:00
Pat Hickey
3d8253beb5
Merge pull request #3433 from bjorn3/stackslot_remove_dead_code
...
Remove a lot of dead code from the stackslot module
2021-10-11 10:34:22 -07:00
Chris Fallin
ee60a361e9
Merge pull request #3440 from cfallin/wasmtime-meeting-20211014
...
Add Wasm EH discussion (#3427 ) to Wasmtime meeting agenda for 2021-10-14.
2021-10-11 09:54:23 -07:00
Chris Fallin
92eb210ff7
Add Wasm EH discussion ( #3427 ) to Wasmtime meeting agenda for 2021-10-14.
2021-10-11 09:52:08 -07:00
bjorn3
3f87b768d5
Update filetests
2021-10-11 17:44:21 +02:00
bjorn3
a894594ae5
Update parser
2021-10-11 16:41:45 +02:00
bjorn3
20463d60f3
Replace StackSlots struct with a type alias
2021-10-11 16:41:45 +02:00
bjorn3
fd59a3e045
Remove all unused stackslot handling code
2021-10-11 16:41:45 +02:00
Steve
92a10d1ace
Added resolve_vmctx_memory function to enable debuggers to resolve sandbox pointers - required because sandbox 'this' pointer cannot be resolved by lldb any other way as lldb expects "this" and "self" to be standard pointers, not sandbox handles.
2021-10-11 09:08:14 +01:00
Advance Software
2fcce7129c
Merge branch 'bytecodealliance:main' into main
2021-10-11 10:04:05 +01:00
Pat Hickey
ed31678161
Merge pull request #3437 from jedisct1/wasi-crypto-update
...
Update wasi-crypto crate
2021-10-10 17:13:02 -07:00
Frank Denis
0ee1689e2f
Update wasi-crypto crate
...
This pulls more recent versions of its dependencies.
2021-10-10 21:34:43 +02:00
Pat Hickey
f3d06d61d2
Merge pull request #3428 from bjorn3/fix_cranelift_codegen_benches
...
Fix cranelift-codegen benches
2021-10-10 10:01:27 -07:00
Pat Hickey
d3f81a3cb9
Merge pull request #3435 from bjorn3/remove_various_dead_code
...
Remove various dead code
2021-10-10 10:00:42 -07:00
Pat Hickey
ccab8c5357
Merge pull request #3434 from bjorn3/remove_cssa_verifier
...
Remove the CSSA verifier
2021-10-10 10:00:19 -07:00
Pat Hickey
bca6946a9d
Merge pull request #3432 from bjorn3/remove_reloc_constant
...
ConstantData related cleanups for the removal of the old backend
2021-10-10 09:59:13 -07:00
Pat Hickey
b7375817b1
Merge pull request #3431 from bjorn3/remove_sarg_t
...
Remove the sarg_t type and dummy_sarg_t instruction
2021-10-10 09:58:14 -07:00
Pat Hickey
b0fbab67ba
Merge pull request #3429 from bjorn3/shrink_cranelift_codegen_shared
...
Move condcodes from cranelift-codegen-shared to cranelift-codegen
2021-10-10 09:56:44 -07:00
Pat Hickey
8bb4e4584e
Merge pull request #3430 from bjorn3/simplify_meta_types
...
Make ValueType::number unfailable
2021-10-10 09:56:16 -07:00
bjorn3
80709ab624
Rustfmt
2021-10-10 15:26:43 +02:00
bjorn3
54293a5929
Remove predicates module
...
It is dead code now
2021-10-10 15:25:29 +02:00
bjorn3
fad3868c1d
Remove no longer existing passes from timing.rs
2021-10-10 15:25:29 +02:00
bjorn3
f7ce91e174
Remove the CSSA verifier
...
The old register allocator required CSSA as intermediate step. The new
register allocator doesn't use SSA at all.
2021-10-10 15:17:19 +02:00