Commit graph

253 commits

Author SHA1 Message Date
Chris Fallin d710719cae Add some convenience functions to list pool impl. 2023-04-18 18:13:35 -07:00
Chris Fallin dab18103ce Refactor to store args and types in common list pool. 2023-04-18 18:13:31 -07:00
Chris Fallin 2c84906d77 Better interpreter error results 2023-04-17 16:01:54 -07:00
Chris Fallin b9b02eeff6 Interpreter: hitting a Terminator::None returns as if a trap 2023-04-17 14:43:24 -07:00
Chris Fallin 0e0d3302f7 Bugfix: print tracepoints in IR. 2023-04-15 11:47:04 -07:00
Chris Fallin 9f6f0cfa9e Interpreter: configurable trace hook. 2023-04-14 23:54:44 -07:00
Chris Fallin 73d8789242 Fix "already-compiled function" functionality: avoid mismatch in whether length field is included between CodeSection::raw() and function(). 2023-04-13 19:59:38 -07:00
Chris Fallin e4da0ca0e0 Support compilation of individual functions before serializing whole module, to keep memory usage down 2023-04-13 17:38:14 -07:00
Chris Fallin dc177bfed3 Max-SSA: make cut-block set configurable. 2023-04-08 22:26:19 -07:00
Chris Fallin 9dde72e1a1 Include predecessors in CFGInfo. 2023-04-08 12:40:32 -07:00
Chris Fallin 1311069c6a Add print-func command to waffle-util. 2023-04-01 00:00:48 -07:00
Chris Fallin b198c653aa Support for edge-splitting. 2023-03-24 15:57:37 -07:00
Chris Fallin 9f4310f729 Add some convenience bits to op_traits, and export MemoryArg. 2023-03-23 17:35:51 -07:00
Chris Fallin ce333b3070 Rematerialize constants in backend codegen. 2023-03-01 17:23:09 -08:00
Chris Fallin 6508cc9078 Format. 2023-02-28 16:35:23 -08:00
Chris Fallin 1c0b2964af Tweaks to API around function bodie. 2023-02-28 16:31:53 -08:00
Chris Fallin 2713240bd0 Remove Fuel -- no longer needed 2023-02-28 16:15:44 -08:00
Chris Fallin 610c9710d3 Support expanded but not modified (dirty) functions.
This allows using a function body as a source for a transform without
necessarily requiring a recompilation as well.
2023-02-28 16:11:31 -08:00
Chris Fallin 816ed81ac5 Add new remove_phis pass, and fix empty_blocks. 2023-02-27 23:11:16 -08:00
Chris Fallin 8145c6bca7 Bugfix to localify: properly handle workqueue dedup (actually remove from set when popping from queue) 2023-02-26 00:25:33 -08:00
Chris Fallin ce09169375 bugfixes 2023-02-25 22:52:59 -08:00
Chris Fallin b76e7758b7 WIP. 2023-02-25 17:29:17 -08:00
Chris Fallin f18c624b9a fuzzing: reject too-large memories 2023-02-25 17:12:02 -08:00
Chris Fallin 9c84c7d44d Rewrite localifier (regalloc). 2023-02-25 17:02:14 -08:00
Chris Fallin f81b5bfbe9 Fuel mechanism to help debug opts 2023-02-25 11:31:49 -08:00
Chris Fallin 9031e74abd some tweaks to localify 2023-02-25 11:21:47 -08:00
Chris Fallin 63f5eca6a9 Add SSA validator to end of optimization pipeline. 2023-02-25 10:45:58 -08:00
Chris Fallin 958269be23 add missing fuzzing.rs 2023-02-24 22:07:35 -08:00
Chris Fallin fb719ff0d0 fix opt_diff fuzzbugs 2023-02-24 22:01:33 -08:00
Chris Fallin dc541497b2 fix overflow 2023-02-24 21:54:04 -08:00
Chris Fallin ac2556a7ad Fix opt_diff 2023-02-24 21:52:09 -08:00
Chris Fallin 2ff4d80286 Fuzzer: differential comparison of opt/no-opt 2023-02-24 21:28:40 -08:00
Chris Fallin 055193e926 Add tracing. 2023-02-24 14:40:37 -08:00
Chris Fallin 20ea31c9dd Some refactoring for tracepoints 2023-02-24 12:48:28 -08:00
Chris Fallin 5c48a0a3ea Merge branch 'main' of github.com:cfallin/waffle 2023-02-24 11:36:42 -08:00
Chris Fallin 6dbdefc858 Fix rounding in f32.nearest / f64.nearest 2023-02-24 11:36:38 -08:00
Chris Fallin 8600c1f472 Add some more WASI stubs 2023-02-23 20:53:22 -08:00
Chris Fallin 0f42e16446 Merge branch 'main' of github.com:cfallin/waffle 2023-02-23 20:50:11 -08:00
Chris Fallin 95b04005d4 fix min/max NaN behavior 2023-02-23 20:50:04 -08:00
Chris Fallin 870244f4ce interp: make WASI impl compatible with SpiderMonkey.wasm 2023-02-23 20:37:15 -08:00
Chris Fallin e73ce71519 fix saturating-conversion op bug in const prop 2023-02-23 19:48:09 -08:00
Chris Fallin 7614a382cc fix const_eval for opts 2023-02-23 19:35:45 -08:00
Chris Fallin d6dbc0e830 Fill in some missing FP ops in interpreter 2023-02-23 19:31:51 -08:00
Chris Fallin c01e07977a Separate out barebones WASI impl 2023-02-23 19:20:17 -08:00
Chris Fallin 49a907da25 Working interpreter 2023-02-23 19:16:08 -08:00
Chris Fallin 0d35c06ac6 WIP interpreter. 2023-02-23 18:40:25 -08:00
Chris Fallin de5c990d18 Avoid empty_blocks pass for now; seems problematic. 2023-02-21 22:48:19 -08:00
Chris Fallin 79b4e710c8 Avoid recursion in stackify.
This commit rewrites `stackify` (Ramsey control-flow algorithm) with
explicit-stack control flow, using a state-machine stack, rather than
direct recursion. This avoids stack overflow for large function bodies.
2023-02-21 22:22:14 -08:00
Chris Fallin 0e2e5bf098 Make debuginfo parsing optional. 2023-02-16 16:20:54 -08:00
Philip Craig 5470e80851 DWARF addresses are relative to the start of the code section
This partially reverts the previous commit.

Also fix the logic in `DebugLocReader::get_loc`.
2023-02-15 15:40:27 +10:00