Commit Graph

202 Commits

Author SHA1 Message Date
f101775380 fix(cranelift-backend) Remove broken (and useless?) debug code.
This debug code is broken (it doesn't compile). It can be assumed
nobody uses it, and can be considered as dead code. As such, this PR
removes it.
2019-10-17 22:55:30 +02:00
ed615c4878 fix build error docs 2019-10-07 12:56:55 +02:00
4b3880c88b add details when calling unimplemented! 2019-10-03 11:26:54 +02:00
f48d6f6690 Cranelift backend update to fork of clif version 0.43.1 2019-09-21 13:06:54 -05:00
ea3d7272d9 The VM callbacks for shared static are the same as those for unshared static memory. 2019-09-09 08:34:47 -07:00
3a54111988 replace unimplemented by Err 2019-09-09 13:50:30 +02:00
d8471e2b6a Improved docs with custom logo and favicon 2019-09-03 17:06:31 -07:00
3f0dae3329 Fix compilation on AArch64 Linux. 2019-08-20 16:37:32 -07:00
bccbbb3d8b Add deny nonstandard-style and unused-mut lints 2019-08-15 20:18:29 -06:00
5a41686192 Fix bare_trait_objects warnings 2019-08-08 16:46:52 -06:00
2f70a199e4 Add deny dead_code lint and fix one error 2019-08-01 20:46:35 -06:00
dfef2b6899 Merge branch 'master' into clif-backend 2019-08-01 11:59:02 -06:00
869ac21f7b clif-backend: Eliminate FunctionEnvironment construction in feed_event()
The feed_event() function is called for every wasm binary instruction.
Let's optimize it by storing FunctionEnvironment object in
CraneliftFunctionCodeGenerator, rather than constructing it for every
feed_event() invocation.

This change reduces the time to run "ngix compile" benchmark by 68%:

Before:

  nginx compile           time:   [1.4152 s 1.4186 s 1.4222 s]
  Found 1 outliers among 10 measurements (10.00%)
    1 (10.00%) high mild

After:

  nginx compile           time:   [447.76 ms 448.32 ms 448.80 ms]
                          change: [-68.542% -68.440% -68.352%] (p = 0.00 < 0.05)
                          Performance has improved.

I assume some of the clone() calls are very expensive (Vec::clone(),
likely). I did see libc malloc()/free() high up in "perf top" profiles,
which are eliminted by this change.

I also looked into eliminating FunctionBuilder construction from
feed_event(). That turns out to be painful on lifetime rules because it
borrows bunch of other objects, so I am leaving it for someone who knows
the code better than I do.
2019-08-01 18:06:40 +03:00
a6461c3b14 Removed explicit hashbrown dependency 2019-07-31 23:18:38 -07:00
d7c11bcf5f Fixes case with empty module, handle case with no signatures 2019-07-26 17:58:57 -05:00
18307bb79c Improve panic/unreachable/unimplemented usage. Refactor a little. 2019-07-22 12:15:56 -07:00
df5c12cbe1 Add V128 to wasmer runtime. Unimplemented in clif-backend. Other backends don't build. 2019-07-10 13:48:12 -07:00
75faae2912 Disable jump tables. We don't have an implementation of reloc_jt yet. 2019-07-02 09:55:46 -07:00
8019505e65 Merge remote-tracking branch 'origin/feature/clif-cgapi' into feature/metering 2019-05-31 15:40:05 +08:00
3f0cafce5c Remove old Cranelift compiler code 2019-05-26 22:32:11 -05:00
bf1cfc2578 Re-enable deny warnings in clif backend 2019-05-26 22:17:49 -05:00
f42ca84480 Add calling convention to function signatures 2019-05-26 14:44:17 -05:00
cc4b1871d0 Fix get global type 2019-05-26 14:15:30 -05:00
6ca311f92d Fix compilation errors and warnings 2019-05-26 11:13:37 -05:00
5da0c4766a Update to Arc<RwLock<ModuleInfo>> for interior mutability 2019-05-25 19:30:44 -05:00
d440776bc0 Update lifetime of function builder references 2019-05-25 18:06:41 -05:00
9f2e068ff4 Implement conversion of signatures into clif signatures 2019-05-23 20:04:55 -05:00
a713043360 Update translate_operator op argument 2019-05-22 23:46:38 -05:00
5d3f6ea167 Fixing lifetime issues in clif codegen refactor 2019-05-22 17:21:16 -05:00
04d6ccc95c Pass module info to FCG as Arc 2019-05-21 23:44:31 -05:00
5db575e8ef Fix clif_signatures in function codegen 2019-05-19 15:22:02 -05:00
db669f7eb7 Fix more codegen compilation issues 2019-05-19 15:01:25 -05:00
d547beda72 Fix self.info compilation error in MCG.finalize 2019-05-19 13:05:35 -05:00
47479b547f Implement MCG.{finalize, from_cache} 2019-05-19 10:53:33 -05:00
6d5dd5ff21 Implement more function codegen 2019-05-19 00:27:39 -05:00
2d10306c87 Add copyright notice 2019-05-18 16:32:22 -05:00
74a758d39e Add progress on next_event 2019-05-18 16:31:08 -05:00
ac3fafae9a Merge branch 'master' into feature/clif-cgapi 2019-05-14 23:01:28 -05:00
8218e550fc Improved docs and fixed few typos 2019-05-13 11:18:57 -07:00
7315cd1100 Add some basic partial implementation of Cranelift codegen 2019-05-12 19:16:01 -05:00
d9cd4fc3e0 Add scaffold to use new code generator API for Cranelift 2019-05-12 11:05:26 -05:00
2aefa731a6 Add deny for unreachable patterns and unused unsafe 2019-05-12 00:33:02 -05:00
85158ac22a Add some initial deny for unused_imports and unused_variables
Additional unused variable fix on unix

Remove unused import on unix

Remove unused windows import
2019-05-11 09:23:25 -05:00
5e37368ec9 Exception logging (win32): Handle error codes correctly, add some more strings. 2019-05-02 12:45:52 +02:00
9ab7199fe5 Merge branch 'master' into feature/cleanup-imports-unsafe 2019-04-24 08:37:06 -07:00
14325c975e Rename internal enum to make less confusing 2019-04-22 15:36:47 -07:00
706ddabf61 Hook up error propagation 2019-04-22 15:06:40 -07:00
74b6ba4eaf Return type normalization, and change return errors from imported functions 2019-04-22 11:42:52 -07:00
9e93565a49 Cleanup build warnings imports and unnecessary unsafe 2019-04-20 20:37:39 -05:00
443663aa3f Add caching support to llvm backend 2019-04-19 13:54:48 -07:00