Closed nalmt closed 4 years ago
To fix this case (#951) that may take forever to compile:
function %a(){ ebb477777777: }
We decide to define a maximum threshold for the number of blocks in functions.
Based on a large WASM program (https://github.com/mozilla/perf-automation/blob/master/benchmarks/wasm-misc/AngryBots.wasm), its IR functions does not exceed 1414 blocks. A number 100 times greater (100,000 blocks) seems (currently) enough to define our maximum threshold.
To make this quick benchmark the cranelift-wasm/src/func_translator.rs file has been modified like this:
static mut MAX: usize = 0; pub fn translate_from_reader<FE: FuncEnvironment + ?Sized>(...) { [...] builder.finalize(); // the compiler is single threaded unsafe { if func.dfg.num_ebbs() > MAX { MAX = func.dfg.num_ebbs(); println!("MAX {}", MAX); } } Ok(()) }
To fix this case (#951) that may take forever to compile:
We decide to define a maximum threshold for the number of blocks in functions.
Based on a large WASM program (https://github.com/mozilla/perf-automation/blob/master/benchmarks/wasm-misc/AngryBots.wasm), its IR functions does not exceed 1414 blocks. A number 100 times greater (100,000 blocks) seems (currently) enough to define our maximum threshold.
To make this quick benchmark the cranelift-wasm/src/func_translator.rs file has been modified like this: